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