劉雪鋒,孫文匯
(青島工學(xué)院,青島266300)
近些年來(lái)各大醫(yī)院病房時(shí)常處于人滿為患的狀態(tài),隨之而來(lái)的弊端是患者在病房時(shí)與醫(yī)護(hù)人員的聯(lián)系也變得不方便。隨著醫(yī)療行業(yè)信息化改革步伐的不斷加快,國(guó)內(nèi)許多大中型醫(yī)院都已經(jīng)實(shí)現(xiàn)了病房的實(shí)時(shí)呼叫,然而現(xiàn)有系統(tǒng)依然存在設(shè)備維護(hù)麻煩的缺點(diǎn)。本文提出采用ZigBee技術(shù)設(shè)計(jì)的醫(yī)療病房呼叫系統(tǒng)的方案,以便于更好地適應(yīng)現(xiàn)代化的腳步,改變現(xiàn)有的病床呼叫系統(tǒng)中存在的不足,并提高醫(yī)院病床管理的效率。基于ZigBee的“病房呼叫系統(tǒng)”可實(shí)現(xiàn)對(duì)醫(yī)院病房的智能化管理,它有著實(shí)現(xiàn)按等級(jí)呼叫、監(jiān)聽(tīng)、顯示、信息存儲(chǔ)等功能,由此既方便了病患及其家屬呼叫護(hù)士,也方便了護(hù)士對(duì)病患出現(xiàn)的狀況做出正確的判斷,為患者的搶救爭(zhēng)取了時(shí)間。
病房呼叫系統(tǒng)大體分為:硬件部分和軟件部分。其中,硬件部分包括:主控芯片、電源、節(jié)點(diǎn)。本文的重點(diǎn)集中在組網(wǎng)通信方面。本文采用的主控芯片是TI的ZigBee主推CC2530芯片,使用Z-Stack協(xié)議棧,采用的開(kāi)發(fā)環(huán)境是IAR Embedded Workbench,它可以直接使用TI公司所提供的Z-Stack協(xié)議棧進(jìn)行開(kāi)發(fā),采用仿真器CC-Debugger進(jìn)行仿真驗(yàn)證。
整個(gè)病房呼叫系統(tǒng)由病房呼叫器節(jié)點(diǎn)、呼叫器節(jié)點(diǎn)路由器、ZigBee協(xié)調(diào)器和病房呼叫控制中心-上位機(jī)組成。病房呼叫系統(tǒng)整體架構(gòu)圖如圖1所示。
(1)病房呼叫器節(jié)點(diǎn)
呼叫節(jié)點(diǎn)主要由電源模塊、ZigBee無(wú)線模塊、CC2530芯片和其他功能模塊構(gòu)成。它的功能主要是在病患按下呼叫按鍵后,采集并預(yù)處理患者的基本信息,并將信息和節(jié)點(diǎn)地址上傳給節(jié)點(diǎn)路由器。
(2)呼叫器節(jié)點(diǎn)路由器
呼叫器節(jié)點(diǎn)路由器主要由電源模塊、ZigBee無(wú)線模塊、CC2530芯片和其他功能模塊構(gòu)成。節(jié)點(diǎn)路由器的主要的任務(wù)是負(fù)責(zé)網(wǎng)絡(luò)的發(fā)起和維護(hù),把病房呼叫器節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)上傳給ZigBee網(wǎng)關(guān)并將ZigBee網(wǎng)關(guān)命令傳遞給呼叫節(jié)點(diǎn)。節(jié)點(diǎn)路由器也可以作為一個(gè)普通的節(jié)點(diǎn)使用[1]。
(3)ZigBee協(xié)調(diào)器
ZigBee協(xié)調(diào)器負(fù)責(zé)建立ZigBee局域網(wǎng)絡(luò),并且病房呼叫控制中心——上位機(jī)和呼叫節(jié)點(diǎn)路由器間傳遞病患發(fā)來(lái)的呼叫信息。與此同時(shí),它也可以作為一個(gè)普通的病房呼叫器節(jié)點(diǎn)來(lái)使用。
(4)病房呼叫控制中心——上位機(jī)
病房呼叫控制中心就是個(gè)人電腦,它主要負(fù)責(zé)處理最終上傳來(lái)數(shù)據(jù),并在電腦屏幕上顯示呼叫信息。

圖1 病房呼叫系統(tǒng)整體架構(gòu)圖
ZigBee核心板包括CC2530芯片和收發(fā)天線,還包括幾個(gè)濾波電容,幾個(gè)保護(hù)電阻,一個(gè)32MHz石英晶振,在串口無(wú)線通信的時(shí)候,要用32MHz的石英晶振作為高頻時(shí)鐘來(lái)源。

圖2 病房呼叫器節(jié)點(diǎn)結(jié)構(gòu)圖
病房呼叫器節(jié)點(diǎn)比較簡(jiǎn)單只有三個(gè)按鍵和三個(gè)10K?限流電阻,它們分別連接到CC2530主控芯片上的外部中斷上。分別按下會(huì)發(fā)送不同的信息給上位機(jī),發(fā)送的信息按緊急程度從高到低依次分別為“緊急搶救”、“換藥”、“幫助”。
本文中采用了一顆RS232-USB接口轉(zhuǎn)換器芯片PL2303,集成度較高,它可提供USB功能接口,可以很方便地連接RS-232進(jìn)行全雙工異步串行通信裝置。
電源在實(shí)際病房里應(yīng)用時(shí)使用7號(hào)3.7V鋰電池,通過(guò)LDO穩(wěn)壓供電。ZigBee的最大優(yōu)勢(shì)之一就是省電,在低耗電待機(jī)模式下2節(jié)5號(hào)干電池可支持1個(gè)節(jié)點(diǎn)工作6-24個(gè)月,甚至更長(zhǎng),所以說(shuō)在病房里不需要擔(dān)心因節(jié)點(diǎn)電量耗盡而無(wú)法呼叫導(dǎo)致延誤病人的治療等情況。CC2530板提供了3.3V和5V兩種電源。
把ZigBee技術(shù)應(yīng)用到病房呼叫系統(tǒng)中的優(yōu)勢(shì)在于它的網(wǎng)絡(luò)范圍廣,網(wǎng)絡(luò)容量大,在整個(gè)網(wǎng)絡(luò)正常運(yùn)行的時(shí)候,節(jié)點(diǎn)可以自由的加進(jìn)和退出網(wǎng)絡(luò),并且整個(gè)網(wǎng)絡(luò)的穩(wěn)定不造成影響,只需要完成本節(jié)點(diǎn)信息的初始化,大大地節(jié)約了資源,提高了系統(tǒng)的使用效率。
(1)網(wǎng)絡(luò)建立
ZigBee網(wǎng)絡(luò)的發(fā)起和建立是由協(xié)調(diào)器完成的。ZigBee無(wú)線局域網(wǎng)中,節(jié)點(diǎn)(無(wú)線模塊)按照在網(wǎng)絡(luò)中的功能劃分為協(xié)調(diào)器、路由器和終端。它們的硬件可以完全一樣,之所以在網(wǎng)絡(luò)中表現(xiàn)不同的功能,是因?yàn)橄螺d了不同功能的代碼。一個(gè)模塊到底是協(xié)調(diào)器、路由器還是終端,前提是它必須在一個(gè)ZigBee無(wú)線局域網(wǎng)里,如果它還沒(méi)有入網(wǎng),那么它僅僅是一個(gè)下載了相應(yīng)功能代碼的模塊而已。任何一個(gè)ZigBee模塊要接入一個(gè)網(wǎng)絡(luò),一定要一個(gè)處于該網(wǎng)絡(luò)的節(jié)點(diǎn)作為介紹人,并且這個(gè)介紹人不能是終端節(jié)點(diǎn),要么是路由器,要么是協(xié)調(diào)器。在本設(shè)計(jì)中為了便于系統(tǒng)的實(shí)現(xiàn)、維護(hù)和觀察,采用星狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[2]。
(2)呼叫終端節(jié)點(diǎn)入網(wǎng)
圖3為呼叫終端節(jié)點(diǎn)入網(wǎng)的流程圖。下載了終端代碼的節(jié)點(diǎn)模塊,上電后第一件事是尋找網(wǎng)絡(luò)請(qǐng)求加入,這個(gè)網(wǎng)絡(luò)是不會(huì)平白無(wú)故產(chǎn)生的,創(chuàng)建網(wǎng)絡(luò)這個(gè)工作由下載了協(xié)調(diào)器代碼的模塊來(lái)完成。

圖3 呼叫終端節(jié)點(diǎn)入網(wǎng)流程圖
(3)協(xié)調(diào)器組網(wǎng)
協(xié)調(diào)器上電后,首先檢測(cè)周?chē)袩o(wú)建好的網(wǎng)絡(luò),如果沒(méi)有,協(xié)調(diào)器就檢查哪條信道的信號(hào)比較好,協(xié)調(diào)器會(huì)選擇一個(gè)信號(hào)相對(duì)良好的信道發(fā)起網(wǎng)絡(luò)建立的請(qǐng)求,網(wǎng)絡(luò)建好后,協(xié)調(diào)器就會(huì)在網(wǎng)絡(luò)里發(fā)出廣播,等待其他節(jié)點(diǎn)加入此網(wǎng)絡(luò)。協(xié)調(diào)器組網(wǎng)流程圖如圖4所示。
硬件只能做到組網(wǎng)連接、傳送消息等任務(wù),完整的系統(tǒng)實(shí)現(xiàn)還得需要軟件的配合,需要有能夠發(fā)送病房呼叫信息的節(jié)點(diǎn)與協(xié)調(diào)器通信,協(xié)調(diào)器與上位機(jī)的通信,上位機(jī)的顯示和控制整個(gè)網(wǎng)絡(luò),才能組成整個(gè)無(wú)線病房呼叫系統(tǒng)的實(shí)現(xiàn)。軟硬件的組合需要通信協(xié)議來(lái)把它們串聯(lián)起來(lái)。
病房呼叫系統(tǒng)串口通信主要的有三個(gè)部分:?jiǎn)?dòng)高頻晶振、初始化、等待串口中斷發(fā)送數(shù)據(jù)。

圖4 協(xié)調(diào)器組網(wǎng)流程圖
(1)高頻晶振的啟動(dòng)
要使用串口要讓CPU工作在32MHz高頻時(shí)鐘下,開(kāi)啟高頻時(shí)鐘函數(shù)代碼如下:
void Cfg32M()
{
SLEEPCMD&=0xFB;//fB 0 00讓2個(gè)時(shí)鐘源都起振
while(0==(SLEEPSTA&0x40));//0100 0000 如 果32M晶振供電且穩(wěn)定了,那么程序往下運(yùn)行
CLKCONCMD&=0xF8;//1111 1000不分頻輸出
CLKCONCMD&=0xBF;//1011 1111讓32M作為系統(tǒng)主時(shí)鐘供給CPU
while(1==(CLKCONSTA&0x40));//如果 32M 確實(shí)供給CPU在工作,那么程序往下執(zhí)行
SLEEPCMD|=0x40;//0000 0100
}
(2)初始化串口中斷
要使用串口中斷,初始化是必不可少的,串口的初始化代碼如下:
void UartCfg()
{//串口0的備用位置1配置成波特率9600
PERCFG&=0xFE;//1111 1110選中串口0的備用位置1
P0SEL|=0x0C; //0000 1100 P0_2 p0_3為偏上外設(shè)功能
U0CSR|=0Xc0;
U0GCR=8;
U0BAUD=59;
EA=1;
URX0IE=1;
}
(3)發(fā)送數(shù)據(jù)
進(jìn)入串口中斷,按字節(jié)存入發(fā)送緩沖區(qū),由發(fā)送緩沖發(fā)送數(shù)據(jù),串口中斷函數(shù)如下:
_interrupt void sdfs(void)
{
URX0IF=0;//串口0來(lái)數(shù)據(jù)的標(biāo)志位,硬件會(huì)置1,軟件要清0
ch=U0DBUF;//從接受寄存器里取字節(jié)存入變量ch
U0DBUF=ch;//
while(0==UTX0IF);
UTX0IF=0;
}
(1)ZigBee協(xié)調(diào)器調(diào)試
終端發(fā)送消息給協(xié)調(diào)器,協(xié)調(diào)器負(fù)責(zé)與上位機(jī)的通信,兩者的程序不是一樣的。兩者需要分開(kāi)調(diào)試,而本論文所研究的ZigBee通信協(xié)議主要是在HJApp.c中進(jìn)行,具體過(guò)程為:
打開(kāi)IAR軟件,將協(xié)調(diào)器主程序添加入HJApp.c中,點(diǎn)擊保存->點(diǎn)擊編譯->程序仿真->查看,然后選擇工作方式為協(xié)調(diào)器模塊CoordinatorEB-Pro,將仿真器連接節(jié)點(diǎn)模塊與電腦USB接口,點(diǎn)擊下載程序,點(diǎn)擊全速運(yùn)行,程序燒就寫(xiě)進(jìn)ZigBee節(jié)點(diǎn)模塊作為協(xié)調(diào)器了。
(2)病房呼叫器節(jié)點(diǎn)調(diào)試
節(jié)點(diǎn)程序的燒錄與協(xié)調(diào)器的燒錄只有一點(diǎn)不同,那就是在選擇工作方式的時(shí)候選擇EndDeviceEB-Pro選項(xiàng),工作在終端模式下,編譯、仿真及燒錄和協(xié)調(diào)器都是一樣的。下載完成后查看終端節(jié)點(diǎn)的工作是否正常,在協(xié)調(diào)器上電的情況下,給終端節(jié)點(diǎn)供電,看是否能加入到協(xié)調(diào)器的網(wǎng)絡(luò)當(dāng)中去,看終端節(jié)點(diǎn)上的指示燈狀態(tài),如果在閃爍,表示終端沒(méi)有加入網(wǎng)絡(luò),當(dāng)一直亮的時(shí)候表示已入網(wǎng)。
圖5所示為呼叫器節(jié)點(diǎn)。主要由三個(gè)外接獨(dú)立按鍵、CC2530最小系統(tǒng)板和嵌入了電源模塊與串口模塊的功能底板組成。外接獨(dú)立按鍵由杜邦線接到CC2530芯片的P0.0、P1.2和P2.0。圖6為系統(tǒng)上位機(jī)截圖。

圖5 終端連線圖

圖6 上位機(jī)截圖
本課題主要是在TI公司提供的Z-Stack協(xié)議的基礎(chǔ)上,通過(guò)添加需要的功能模塊,從而搭建出一個(gè)Zig-Bee病房呼叫系統(tǒng)網(wǎng)絡(luò)。把CC2530射頻芯片作為主控芯片,終端呼叫節(jié)點(diǎn)主要是按鍵與控制電路。選用了TI公司的Z-Stack協(xié)議棧作為硬件通信協(xié)議,在滿足硬件需求的前提下進(jìn)行協(xié)議的編寫(xiě),使其節(jié)點(diǎn)完成與協(xié)調(diào)器的通信。系統(tǒng)可以將按鍵信息通過(guò)終端節(jié)點(diǎn)發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器經(jīng)過(guò)分類(lèi)整合將數(shù)據(jù)反饋給上位機(jī),上位機(jī)可通過(guò)判別信息提醒護(hù)士。
ZigBee技術(shù)的應(yīng)用提高了病房呼叫的呼叫效率,節(jié)約了人力物力,降低了因呼叫不及時(shí)耽誤患者最佳治療時(shí)間的發(fā)生。而且系統(tǒng)開(kāi)發(fā)價(jià)格不高,組裝和維護(hù)也比較簡(jiǎn)單,而ZigBee協(xié)議是標(biāo)準(zhǔn)統(tǒng)一的,再加上整個(gè)網(wǎng)絡(luò)有自動(dòng)組網(wǎng)的能力,只要呼叫器上電,自動(dòng)加入網(wǎng)絡(luò),有利于呼叫節(jié)點(diǎn)的擴(kuò)展[3]。