醫(yī)院護(hù)理呼叫通訊系統(tǒng)設(shè)計(jì)及防沖突算法研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
醫(yī)院護(hù)理呼叫系統(tǒng)是傳輸臨床信息的重要手段,是提高護(hù)理人員的工作效率和保證醫(yī)院服務(wù)質(zhì)量的有效途徑,也是提高醫(yī)院信息化管理水平的重要措施。本系統(tǒng)采用模塊化設(shè)計(jì),具備易操作性、易維護(hù)性、易擴(kuò)展性等特點(diǎn)。系統(tǒng)采用三層結(jié)構(gòu),分別是后臺服務(wù)器層、護(hù)士工作站層和病區(qū)呼叫系統(tǒng)層。病區(qū)呼叫系統(tǒng)由一臺主機(jī)和多臺分機(jī)組成,采用RS485通訊總線相連,實(shí)現(xiàn)各種病房呼叫信息、衛(wèi)生間呼叫信息和電生理檢測數(shù)據(jù)的采集,并通過主機(jī)和護(hù)士工作站連接。護(hù)士工作站由普通PC機(jī)組成,其功能是響應(yīng)和處理各類呼叫信息。后臺服務(wù)器和護(hù)士工作站之間采用通用以太網(wǎng)連接,呼叫和處理信息可以以電子文檔形式存儲在后臺服務(wù)器中。本文主要討論病區(qū)呼叫系統(tǒng)的通訊系統(tǒng)設(shè)計(jì)。
1 通訊系統(tǒng)體系結(jié)構(gòu)
一個(gè)病床呼叫分機(jī)管理一間病房的呼叫信息,包括衛(wèi)生間呼叫和病床呼叫等。每個(gè)呼叫點(diǎn)均有呼叫按鈕、取消按鈕和LED指示燈。呼叫分機(jī)還留有電生理信息標(biāo)準(zhǔn)接口,可以連接心電圖儀、呼吸機(jī)和血壓儀等生理檢測設(shè)備,以監(jiān)視和記錄病人的生理信息。病區(qū)呼叫系統(tǒng)主機(jī)放置在護(hù)士工作站內(nèi),負(fù)責(zé)整個(gè)系統(tǒng)的控制與通信。呼叫主機(jī)一邊將病房的呼叫信息傳輸?shù)絃ED顯示屏上并蜂鳴提醒,一邊把呼叫信息傳輸?shù)絇C機(jī)。系統(tǒng)為護(hù)士工作站PC機(jī)提供良好的人機(jī)界面,可以向醫(yī)護(hù)人員顯示系統(tǒng)的工作狀態(tài),病員的基本醫(yī)療信息和呼叫信息以及一些基本的處理數(shù)據(jù)功能。
病區(qū)呼叫系統(tǒng)結(jié)構(gòu)如圖1所示。病區(qū)呼叫系統(tǒng)主機(jī)和病房呼叫系統(tǒng)分機(jī)以MCS-51單片機(jī)為主控制器,分機(jī)之間通過RS-485通訊總線相連。RS-485是美國電氣工業(yè)聯(lián)合會(EIA)制定的利用平衡雙絞線作傳輸線的多點(diǎn)通訊標(biāo)準(zhǔn),它采用差分信號進(jìn)行傳輸,具有傳輸速率高、傳送距離遠(yuǎn)、可靠性高、擴(kuò)展容易等特點(diǎn)。RS485通訊器件采用MAX487-CP,MAX487是MAXIM公司生產(chǎn)的用于RS485和RS422通信的差分總線小功率收發(fā)器,它含有一個(gè)驅(qū)動器和一個(gè)接收器,具有驅(qū)動器/接收器使能功能,輸入阻抗為1/4負(fù)載,總線節(jié)點(diǎn)數(shù)為128,即每個(gè)的驅(qū)動器可驅(qū)動128個(gè)標(biāo)準(zhǔn)負(fù)載。MAX487的驅(qū)動器設(shè)計(jì)成限斜率方式,使輸出信號邊沿不至于過陡,以避免在傳輸線產(chǎn)生過多的高頻分量,從而有效扼制了干擾現(xiàn)象。
系統(tǒng)通訊的數(shù)據(jù)幀格式參考 MS/TP 協(xié)議標(biāo)準(zhǔn), 具體設(shè)計(jì)如下:
前同步碼 2 字節(jié):55H,0FFH;幀類型 1 字節(jié);目的地址1字節(jié);源地址1字節(jié);頭部CRC 1字節(jié);數(shù)據(jù) 8 字節(jié);數(shù)據(jù) CRC 2字節(jié)。一幀數(shù)據(jù)共16字節(jié),128位。
2 基于“錯(cuò)時(shí)退避”策略的防沖突算法
在一臺病房分機(jī)請求發(fā)送數(shù)據(jù)的同時(shí),另一臺病房分機(jī)請求發(fā)送數(shù)據(jù),或在一臺病房分機(jī)在發(fā)送數(shù)據(jù)的過程中,另一臺病房分機(jī)請求發(fā)送數(shù)據(jù),都就會造成通訊沖突。為了防止因通訊沖突而造成的數(shù)據(jù)傳輸錯(cuò)誤,本系統(tǒng)參考CSMA/CD(Carrier Scnse Multiple Access /Collision Detect)技術(shù)。CSMA/CD即載波監(jiān)聽多路訪問/沖突檢測,它的工作原理可用8個(gè)字來表示:“先聽后說,邊聽邊說”。病房呼叫分機(jī)在發(fā)送數(shù)據(jù)前,先檢測信道是否空閑,若空閑,則發(fā)送數(shù)據(jù)。在發(fā)送數(shù)據(jù)的同時(shí),仍繼續(xù)監(jiān)聽信道,以檢測是否存在沖突。一旦檢測到?jīng)_突,就立即停止發(fā)送,并向總線上發(fā)一串阻塞信號,通知總線上其他各有關(guān)站點(diǎn)停止數(shù)據(jù)傳輸。這樣,通道容量就不致因白白傳送已受損的幀而浪費(fèi)。CSMA/CD的工作流程如圖2所示。
一般而言,普通網(wǎng)絡(luò)上傳輸?shù)男畔⒘勘容^大,因此,普通網(wǎng)絡(luò)追求的是信道的使用率和信息的吞吐量。生理呼叫系統(tǒng)的傳輸信息量很小,系統(tǒng)要求的是信息傳輸?shù)膶?shí)時(shí)性,同時(shí)又互不干擾。要解決這個(gè)問題,必須盡可能避免重復(fù)沖突現(xiàn)象的發(fā)生。即要求如果發(fā)生多臺通訊沖突現(xiàn)象,各分機(jī)的退避時(shí)間應(yīng)不同。本文分別討論的延時(shí)退避算法和沖突退避算法有“錯(cuò)時(shí)退避”的特點(diǎn),能有效地解決重復(fù)沖突問題。
2.1 延時(shí)退避算法
系統(tǒng)采用“先聽后說”的工作方式,分機(jī)在發(fā)送呼叫信息前,先監(jiān)聽信道狀態(tài)。如果信道忙,說明有其他分機(jī)正在占用信道傳輸數(shù)據(jù)。根據(jù)前述數(shù)據(jù)幀格式,一幀數(shù)據(jù)共128位,一臺分機(jī)傳輸數(shù)據(jù)所需的時(shí)間為:T=128 bit/波特率。
因此,本次數(shù)據(jù)傳輸還需占用0到T的信道時(shí)間。為了避免同時(shí)監(jiān)聽到信道空閑而發(fā)生的沖突現(xiàn)象,各分機(jī)采用下列延時(shí)退避公式?jīng)Q定延時(shí)監(jiān)聽時(shí)間:
上式中,ti為第i臺分機(jī)的延時(shí)時(shí)間,n是分機(jī)的總臺數(shù),rand(0,1)為一個(gè)0到1的隨機(jī)數(shù),E是應(yīng)急呼叫設(shè)置位(若為應(yīng)急呼叫,則設(shè)置E為1)。系統(tǒng)將衛(wèi)生間呼叫默認(rèn)設(shè)置為應(yīng)急呼叫,一些重癥病人的呼叫也可由系統(tǒng)呼叫主機(jī)設(shè)定設(shè)置為應(yīng)急狀態(tài)。
分機(jī)i以ti的間隔時(shí)間監(jiān)聽信道,當(dāng)監(jiān)聽到信道處于空閑狀態(tài)時(shí),即可進(jìn)行到工作流程的下一步。
2.2 沖突退避算法
盡管系統(tǒng)采用“先聽后說”的工作方式,但也可能發(fā)生兩個(gè)站點(diǎn)因同時(shí)監(jiān)聽到信道空閑而同時(shí)發(fā)送數(shù)據(jù)的現(xiàn)象,即發(fā)生通訊沖突。檢測通訊沖突的方法是:發(fā)送數(shù)據(jù)的呼叫分機(jī)將接收到的信息與原來發(fā)送的信息逐個(gè)比特位進(jìn)行比較,如果兩者一致,說明沒有沖突;如果兩者不一致,則說明發(fā)生了沖突。
造成這種通訊沖突的原因與信號在信道上的傳播時(shí)延有關(guān)。傳播時(shí)延是信號由信道上的一個(gè)站點(diǎn)傳播到另一個(gè)站點(diǎn)的時(shí)間,信息傳播時(shí)延可由式(2)計(jì)算:
設(shè)A、B是系統(tǒng)中的兩臺呼叫分機(jī),它們之間的傳播時(shí)延是tpab。分機(jī)A檢測到信道空閑后,就發(fā)送數(shù)據(jù);分機(jī)B在分機(jī)A開始發(fā)送數(shù)據(jù)的(0,tpab)的時(shí)間內(nèi)檢測信道,由于信號還沒有傳播到分機(jī)B,因此分機(jī)B檢測到信道狀態(tài)仍處于空閑狀態(tài),分機(jī)B也發(fā)送數(shù)據(jù),造成通訊沖突。分機(jī)檢測到通訊沖突后,立即停止發(fā)送,并向總線上發(fā)一串阻塞信號,用以通知總線上其他各有關(guān)站點(diǎn)退避。沖突退避時(shí)延采用式(3)計(jì)算:
tj=tpmax(j+1-E×j)×[rand(0,1)+1] (3)
上式中,tj為第j臺分機(jī)時(shí)延檢測時(shí)間,tpmax為任意兩個(gè)站之間的最大傳播時(shí)延,由公式(2)計(jì)算得到。E、rand(0,1)的含義同式(1)。
無論是(1)式還是(3)式,i( j )值小的分機(jī)先檢測信道,在數(shù)據(jù)傳輸比較繁忙的時(shí)段,i( j )值大的分機(jī)總是要持續(xù)一個(gè)較長的時(shí)延才能檢測信道,這就會造成系統(tǒng)中各分機(jī)競爭不均衡的現(xiàn)象。為了避免這種現(xiàn)象,我們將i( j )設(shè)置為分機(jī)檢測總線的優(yōu)先級別,并把系統(tǒng)設(shè)置成優(yōu)先級循環(huán)的工作方式。初試狀態(tài),i( j )的值為分機(jī)編號,優(yōu)先級分別為1、2、……、n。當(dāng)優(yōu)先級為k的分機(jī)傳輸數(shù)據(jù)后,系統(tǒng)主機(jī)將原來優(yōu)先級為k+1至n的分機(jī)的優(yōu)先級分別設(shè)置為1至n-k,將原優(yōu)先級為1至k的分機(jī)的優(yōu)先級設(shè)置為n-k+1至n。
2.3 退避算法性能分析
醫(yī)院護(hù)理呼叫系統(tǒng)的信息傳輸量很小,追求的是呼叫響應(yīng)時(shí)間。為此,我們假設(shè)出現(xiàn)最不利的情況來分析本文算法的性能:系統(tǒng)共有64臺分機(jī),設(shè)在一臺分機(jī)剛開始傳輸數(shù)據(jù)時(shí),其它63臺分機(jī)同時(shí)申請傳輸數(shù)據(jù)。那么,傳輸64臺分機(jī)的數(shù)據(jù)的總時(shí)間t為:
上式中,第1項(xiàng)為n臺分機(jī)的數(shù)據(jù)傳輸時(shí)間,第二項(xiàng)為每臺分機(jī)檢測總線延時(shí)退避空閑間隔的最大值之和,第3項(xiàng)為每臺分機(jī)沖突退避空閑間隔的最大值之和。
將相關(guān)的數(shù)據(jù)帶入(4)式,得t=0.3s,完全能滿足醫(yī)院護(hù)理呼叫的時(shí)間響應(yīng)要求。
CSMA/CD技術(shù)及相應(yīng)的退避算法能有效地解決普通網(wǎng)絡(luò)信道占用沖突的退避問題,從而提高信道的使用率和信息的吞吐量。但小型的自組織網(wǎng)絡(luò)的信息吞吐量往往不大,因而信道的使用率和信息的吞吐量不是系統(tǒng)追求的主要目標(biāo)。對于一些信息傳輸實(shí)時(shí)性要求比較高的自組織網(wǎng)絡(luò),如何及時(shí)傳輸信息是提高系統(tǒng)性能的關(guān)鍵因素。醫(yī)院護(hù)理系統(tǒng)中的通訊系統(tǒng)采用RS485總線結(jié)構(gòu),參考CSMA/CD構(gòu)建載波監(jiān)聽多路訪問/沖突檢測工作原理,設(shè)計(jì)基于“錯(cuò)時(shí)退避”策略的延時(shí)退避算法和沖突退避算法,有效地降低信道爭用的沖突問題。特別是處理信道爭用二次沖突方面,與一般的CSMA/CD退避算法比較,有著明顯的優(yōu)勢,從而大大提高了信息傳輸?shù)膶?shí)時(shí)性。論文中的算法已應(yīng)用于多家醫(yī)院和養(yǎng)老院的護(hù)理呼叫系統(tǒng)中,性能可靠,達(dá)到預(yù)期的技術(shù)指標(biāo)要求。
參考文獻(xiàn)
[1] 黎瓊,徐海峰. 智能家居中紅外控制系統(tǒng)通訊協(xié)議分析[J]. 微計(jì)算機(jī)信息(測控自動化),2007(1).
[2] 劉宏立,段正華. 具有動態(tài)分配重傳策略的CSMA/CD訪問協(xié)議性能分析[J]. 通信學(xué)報(bào)(計(jì)算機(jī)通信專集),1998.
[3] 鄭德華,陶繼偉. RS-485通訊協(xié)議在集散控制系統(tǒng)中的應(yīng)用[J]. 中國儀器儀表,2005(9).
[4] 劉宏立,童調(diào)生,段正華. CSMA/CD/RR協(xié)議模型分析及其在以太網(wǎng)絡(luò)中的應(yīng)用[J]. 長沙湖南大學(xué)學(xué)報(bào) (自然科學(xué)版),2000(6).