黃澤慧,陳勇昌
(廣東第二師范學(xué)院計(jì)算機(jī)學(xué)院,廣州 510800)
隨著科技的不斷發(fā)展,人們追求越來越好的生活和服務(wù)。在醫(yī)院里,病人需要及時(shí)呼叫護(hù)士或醫(yī)生來處理突發(fā)情況,因此醫(yī)院呼叫管理系統(tǒng)的重要性也隨之提高。利用病房呼叫系統(tǒng)可以非常方便和高效地尋求醫(yī)生或護(hù)理人員的幫助,這有助于促進(jìn)醫(yī)院管理服務(wù)質(zhì)量的提高。目前,病房呼叫系統(tǒng)主要分為有線和無線兩種形式[1]。其中有線式病房呼叫系統(tǒng)存在呼叫不及時(shí)、布線復(fù)雜和抗干擾能力差的現(xiàn)象;相比之下,無線呼叫系統(tǒng)具有顯著優(yōu)勢(shì),因?yàn)樗恍枰罅夸佋O(shè)線路,從而使得系統(tǒng)的安裝更簡(jiǎn)捷、經(jīng)濟(jì)[2]。
為了讓患者處于舒適的環(huán)境,在呼叫系統(tǒng)上增加對(duì)病房環(huán)境溫度的實(shí)時(shí)監(jiān)測(cè),以便環(huán)境溫度不適宜時(shí)醫(yī)護(hù)人員可采取相應(yīng)措施。本系統(tǒng)即基于單片機(jī)的病房呼叫與監(jiān)測(cè)系統(tǒng),可分為從機(jī)和主機(jī)兩部分。數(shù)據(jù)傳輸主要借助NRF24L01無線收發(fā)模塊完成。
從機(jī)即病房部分主要是實(shí)現(xiàn)呼叫的病床號(hào)按鍵檢測(cè)和病房溫度的實(shí)時(shí)采集,最終實(shí)現(xiàn)無線發(fā)送數(shù)據(jù),比如環(huán)境的溫度、患者是否按下呼叫鍵。
主機(jī)即醫(yī)護(hù)人員部分負(fù)責(zé)接收從機(jī)的呼叫信息和溫度信息以及顯示和報(bào)警等功能。主機(jī)部分在收到來自從機(jī)發(fā)送過來的信號(hào)之后,顯示屏實(shí)時(shí)顯示病房溫度信息。當(dāng)從機(jī)病床按下呼叫鍵顯示屏?xí)霈F(xiàn)患者床號(hào)信息,同時(shí)指示燈亮起,發(fā)出提示音,當(dāng)醫(yī)護(hù)人員按下響應(yīng)鍵,表明已知悉,此時(shí)報(bào)警聲取消,指示燈熄滅,顯示屏清空患者床號(hào)信息。
基于單片機(jī)的病房呼叫與監(jiān)測(cè)系統(tǒng)的實(shí)現(xiàn)首先需要將系統(tǒng)功能考慮齊全,從而根據(jù)功能去設(shè)計(jì)原理圖,確認(rèn)原理圖無誤后便是繪制PCB 圖,然后檢查PCB 布線,無誤后便可打板,最后進(jìn)行元器件的焊接。軟件端需要在Keil uVision5完成源程序的設(shè)計(jì)并生成可執(zhí)行的目標(biāo)代碼,再通過燒錄軟件STC-ISP 把代碼燒錄進(jìn)單片機(jī),根據(jù)系統(tǒng)功能測(cè)試是否實(shí)現(xiàn),如果未實(shí)現(xiàn)則需要分析是軟件問題還是硬件問題。整體的系統(tǒng)設(shè)計(jì)流程如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)流程
根據(jù)系統(tǒng)設(shè)計(jì)功能需求,設(shè)計(jì)從機(jī)和主機(jī)的硬件系統(tǒng)。主要的硬件系統(tǒng)包括主從機(jī)MCU主控、信號(hào)發(fā)射電路、信號(hào)接收電路、按鍵掃描處理電路、溫度采集處理電路、液晶顯示處理電路、聲光報(bào)警處理及電源轉(zhuǎn)化處理等八個(gè)模塊,總體硬件系統(tǒng)框圖如圖2所示。
圖2 硬件系統(tǒng)框圖
一個(gè)處理器即單片機(jī),可以使得單片機(jī)恢復(fù)到一個(gè)確定狀態(tài)的復(fù)位電路和提供時(shí)序信號(hào)的時(shí)鐘電路,這三部分是構(gòu)成單片機(jī)最小系統(tǒng)的最低要求,下面將分別介紹這些模塊。
2.2.1 單片機(jī)
基于本系統(tǒng)的特點(diǎn),從機(jī)部分主要處理病床按鍵掃描、溫度采集和無線通信等任務(wù),而主機(jī)部分最重要的是接收、處理從機(jī)的數(shù)據(jù),其中處理來自從機(jī)即病床的呼叫信息和顯示處理結(jié)果也是其中重要的任務(wù)。這些任務(wù)都可以通過此主控芯片來實(shí)現(xiàn),從而減少了外接太多元器件的需求,因此很有成本優(yōu)勢(shì)。同時(shí),此主控芯片具備豐富的輸入輸出接口,適合于連接無線模塊和各種處理模塊。它內(nèi)部帶有8 KB的Flash 存儲(chǔ)器可供編程使用,因此在程序編程的時(shí)候可以更加靈活地應(yīng)用修改,故采用的主控芯片為STC89C52型號(hào)。
STC89C52 單片機(jī)采用DIP40 封裝,總的來說它的引腳功能有四類,分別為電源、時(shí)鐘、控制和并行I/O口引腳。
2.2.2 時(shí)鐘電路
STC89C52 芯片內(nèi)部結(jié)構(gòu)的高增益反相放大器是可以用來構(gòu)成振蕩器的。時(shí)鐘可以通過內(nèi)部機(jī)制或外部機(jī)制來生成。本系統(tǒng)設(shè)計(jì)所采用的時(shí)鐘電路是一種內(nèi)部方式,只需要將晶體振蕩器和微調(diào)電容跨接在單片機(jī)的第18 個(gè)引腳XTAL1 和第19 個(gè)引腳XTAL2 引腳之間,即可組成一個(gè)穩(wěn)定的自激振蕩器。
系統(tǒng)中使用了單片機(jī)的串行通信,比如單總線和SPI 通信,因此時(shí)鐘電路是必不可少的,通常采用12 MHz 振蕩頻率的晶振,電容采用30 pF左右,主要起到穩(wěn)定頻率和快速起振的作用,時(shí)鐘電路圖如圖3所示。
圖3 時(shí)鐘電路原理圖
2.2.3 復(fù)位電路
單片機(jī)上電時(shí),利用電解電容C5 的充電過程來觸發(fā)復(fù)位功能。接通電源一瞬間,RST 端的電位會(huì)與VCC相同,然后隨著電容充電電流逐漸下降。只要保證RST端為高電平的時(shí)間大于兩個(gè)機(jī)器周期,系統(tǒng)即可實(shí)現(xiàn)正常復(fù)位。此外,按下RESET1按鍵也可以在信號(hào)端即RST產(chǎn)生一個(gè)復(fù)位高電平。復(fù)位電路原理圖如圖4所示。
圖4 復(fù)位電路原理圖
DS18B20 是一種單總線數(shù)字溫度傳感器,測(cè)試范圍為-55℃~125℃。其工作電壓范圍為3.0~5.5 V,而本系統(tǒng)采用的單片機(jī)供電電壓為5 V,因此選用5 V 電源供應(yīng)給DS18B20[3]。該器件通過簡(jiǎn)單的單總線接口就可以實(shí)現(xiàn)信息的傳送,因此在單片機(jī)和DS18B20 之間僅需要一根通信線DQ,通信方式是異步、半雙工的,通信接口是1-Wire(單總線)。在利用溫度傳感器采集溫度時(shí),需要注意單總線的時(shí)序結(jié)構(gòu),主要涉及單總線的初始化、發(fā)送一位、接收一位;根據(jù)調(diào)用發(fā)送和接收一位完成發(fā)送一個(gè)字節(jié)和接收一個(gè)字節(jié)的操作,最終得到一個(gè)低位在前的字節(jié)。DS18B20的原理圖設(shè)計(jì)如圖5所示。
圖5 DS18B20原理圖
LCD1602 液晶屏為字符型液晶顯示模塊,能夠展示標(biāo)準(zhǔn)ASCII碼字符以及內(nèi)置的其他特殊字符,呈現(xiàn)內(nèi)容十分豐富[4]。
該模塊顯示容量為16×2 個(gè)5×7 點(diǎn)陣字符。它的工作電壓范圍為4.5~5.5 V,而該模塊的最佳工作電壓為5.0 V。在5.0 V的電壓下,模塊的工作電流為2.0 m?。
LCD1602 具有兩行顯示,每行能夠顯示16個(gè)字符,因此整個(gè)LCD1602 最多可顯示32 個(gè)字符。其D0-D7八個(gè)引腳作為通信腳,用于傳輸8位數(shù)據(jù)。每個(gè)顯示位置對(duì)應(yīng)一個(gè)地址,如圖6所示。比如想要顯示第一行的第四個(gè)位置,可以用圖中的“03”表示。將其轉(zhuǎn)換為二進(jìn)制即0000 0011。但是LCD1602 為了顯示地址,需要使最高位D7 保持高電位。因此,顯示真實(shí)地址時(shí),應(yīng)為1000 0011。
圖6 LCD1602內(nèi)部顯示地址
LCD1602 的原理圖如圖7 所示,背光源正、負(fù)極分別接電源和地;V0通過2 kΩ 電阻接到地端,調(diào)節(jié)LCD顯示對(duì)比度。
圖7 LCD1602原理圖
NRF24L01 包含多個(gè)內(nèi)部寄存器,并提供SPI接口與外部單片機(jī)交互,使外部單片機(jī)可以通過SPI接口配置芯片內(nèi)部的寄存器。這些內(nèi)部寄存器分別為控制寄存器和數(shù)據(jù)寄存器。NRF24L01 工作電壓為1.9~3.6 V,在電源模塊設(shè)計(jì)了一個(gè)穩(wěn)壓電源,提供穩(wěn)定的3.3 V 工作電壓給無線通信模塊供電。通過單片機(jī),可以將NRF24L01 配置為發(fā)送或接收模式,并對(duì)其進(jìn)行一系列配置,如頻道、地址、每次發(fā)送的字節(jié)數(shù)、是否啟用CRC校驗(yàn)以及設(shè)定功率等[5]。當(dāng)將其配置為發(fā)送模式后,單片機(jī)可通過寫入要發(fā)送的數(shù)據(jù)至NRF24L01 中,讓NRF24L01 自動(dòng)將數(shù)據(jù)發(fā)出;而在將其設(shè)置為接收模式后,單片機(jī)則可通過觀察IRQ 引腳,了解是否已經(jīng)接收到了數(shù)據(jù),并通過SPI口將數(shù)據(jù)取出,原理圖如圖8所示。
圖8 NRF24L01電路圖
當(dāng)主機(jī)檢測(cè)到從機(jī)的呼叫信息,蜂鳴器會(huì)發(fā)出提示音以及紅色LED 指示燈亮起。硬件上通過三極管PNP作為開關(guān),當(dāng)BEEP 輸入低電平時(shí),三極管的發(fā)射結(jié)正偏,集電結(jié)反偏,三極管導(dǎo)通,蜂鳴器會(huì)發(fā)聲、紅色LED 指示燈點(diǎn)亮,實(shí)現(xiàn)聲光電報(bào)警提示,原理如圖9所示。
圖9 聲光報(bào)警電路
從機(jī)發(fā)送部分總體實(shí)現(xiàn)過程為,先定義變量、初始化無線模塊,接著檢測(cè)無線模塊是否存在,如果不存在,LED 指示燈閃爍;如果無線模塊存在,則進(jìn)入按鍵檢測(cè)和溫度處理,將采集到的病床號(hào)數(shù)據(jù)以及環(huán)境溫度寫入發(fā)送數(shù)據(jù)數(shù)組,最后通過無線模塊發(fā)送數(shù)據(jù),整體流程如圖10所示。
圖10 從機(jī)流程圖
主機(jī)接收部分的總體實(shí)現(xiàn)過程為,首先是初始化無線模塊、LCD 顯示屏,接著檢測(cè)無線模塊是否存在,如果不存在,蜂鳴器發(fā)出報(bào)警聲;如果無線模塊存在,則進(jìn)入大循環(huán)讀取狀態(tài)寄存器來判斷數(shù)據(jù)接收狀況,如果有數(shù)據(jù),將讀取放在接收緩沖區(qū)中,接著將主機(jī)配置為接收模塊再進(jìn)行簡(jiǎn)單的數(shù)據(jù)驗(yàn)證,驗(yàn)證成功后將數(shù)據(jù)存放在LCD 顯示數(shù)組里,再調(diào)用LCD 顯示函數(shù)以及按鍵處理,最終顯示呼叫信息和溫度信息,如圖11所示。
圖11 主機(jī)流程圖
在焊接好設(shè)計(jì)的PCB 板之后,首先需要對(duì)電源信號(hào)進(jìn)行檢測(cè),使用萬用表的蜂鳴檔測(cè)量各個(gè)電源信號(hào)與地是否存在短路,若不存在短路給設(shè)備上電,使用電壓檔測(cè)量各個(gè)電源電壓是否正確,以上過程無誤就進(jìn)入源程序生成可執(zhí)行的目標(biāo)文件燒錄測(cè)試。整體的調(diào)試流程如圖12所示。
圖12 調(diào)試流程圖
本系統(tǒng)的預(yù)期使用是實(shí)現(xiàn)病房呼叫及病房溫度顯示,因此需要對(duì)每個(gè)病房能否呼叫、主機(jī)能否呼應(yīng)、溫度能否顯示進(jìn)行測(cè)試。為了確保測(cè)試的正確性,也需要對(duì)主要模塊進(jìn)行單獨(dú)的測(cè)試,比如無線模塊損壞測(cè)試。最終本系統(tǒng)可以實(shí)現(xiàn)從機(jī)病床1、2、3、4 號(hào)按下呼叫鍵,按下瞬間指示燈閃爍,主機(jī)顯示屏第一行顯示溫度以及第二行顯示呼叫的病床號(hào)1、2、3、4,同時(shí)蜂鳴器發(fā)出報(bào)警聲以及紅色指示燈常亮。
以下是主從機(jī)的整體外觀及實(shí)現(xiàn)過程中的部分效果圖,當(dāng)圖13(a)所示的從機(jī)所處的病床1、2、3、4 號(hào)同時(shí)按下呼叫鍵,主機(jī)的顯示屏顯示病床號(hào)信息和病房溫度信息,同時(shí)LED 燈亮起、蜂鳴器響,如圖13(b)所示;最終主機(jī)按下呼叫鍵顯示屏清空病床號(hào)信息,溫度仍顯示,如圖13(c)所示。
圖13 主從機(jī)整體外觀及部分效果
本系統(tǒng)經(jīng)過硬件的搭建、軟件的編寫、軟硬件調(diào)試,最終實(shí)現(xiàn)護(hù)理站即主機(jī)可以通過無線模塊接收病房從機(jī)的呼叫信息和溫度信息。通過無線傳輸模塊NRF24L01使從機(jī)采集病床是否按下呼叫鍵以及環(huán)境溫度信息,而環(huán)境的溫度利用DS18B20 來采集。主機(jī)接收從機(jī)發(fā)過來的信號(hào),當(dāng)病床有呼叫信號(hào)時(shí),主機(jī)會(huì)控制蜂鳴器和發(fā)光二極管,發(fā)出聲光報(bào)警,以提醒監(jiān)護(hù)人員有病人呼叫,此時(shí)LCD 顯示屏?xí)@示呼叫的病房號(hào)和病房溫度,若此時(shí)護(hù)理人員按下主機(jī)的呼應(yīng)鍵,則會(huì)取消對(duì)應(yīng)的呼叫,表示已知曉病人的呼叫,同時(shí)顯示屏清空病房號(hào)信息。本系統(tǒng)具有易操作、性能可靠等優(yōu)點(diǎn)。
隨著醫(yī)療技術(shù)、醫(yī)療設(shè)備和醫(yī)療管理的不斷進(jìn)步,病房呼叫和監(jiān)測(cè)系統(tǒng)必將不斷改善和更新,更加趨于智能化和無線化。在未來可對(duì)本系統(tǒng)逐步增強(qiáng)無線信號(hào)覆蓋率和使用抗干擾性能更強(qiáng)的無線協(xié)議,以此提高醫(yī)療服務(wù)的效率和質(zhì)量。