淺析基于以太網(wǎng)的病人體溫遠(yuǎn)程自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)方
醫(yī)院病人體溫等參數(shù)的遠(yuǎn)程自動(dòng)檢測(cè)系統(tǒng)是醫(yī)院數(shù)字化建設(shè)中的一個(gè)重要項(xiàng)目。該設(shè)計(jì)主要是針對(duì)醫(yī)院病人體溫進(jìn)行遠(yuǎn)程自動(dòng)檢測(cè),采用分布式多點(diǎn)溫度采集技術(shù),并通過以太網(wǎng)通信技術(shù)傳輸?shù)结t(yī)院監(jiān)控中心,值班醫(yī)生和護(hù)士通過監(jiān)控中心可以實(shí)時(shí)了解病人的體溫變化,監(jiān)控中心可以對(duì)病人的體溫異常進(jìn)行報(bào)警和相應(yīng)的記錄,并且與病人數(shù)據(jù)庫同步,方便醫(yī)生對(duì)病人病情的分析。
本文引用地址:http://m.butianyuan.cn/article/199440.htm1 系統(tǒng)總體設(shè)計(jì)方案
該系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。整個(gè)系統(tǒng)采用三級(jí)結(jié)構(gòu),即醫(yī)院監(jiān)控中心、病房主機(jī)和溫度傳感器。其中病房主機(jī)采用單片機(jī)AT89C52為主控單元,主要實(shí)現(xiàn)網(wǎng)絡(luò)通信、溫度采集和顯示。網(wǎng)絡(luò)通信是通過周立功公司開發(fā)的以太網(wǎng)轉(zhuǎn)串口模塊ZNE-100T實(shí)現(xiàn)的,每臺(tái)ZNE-100T都可以設(shè)定IP地址和服務(wù)器 IP地址,便于構(gòu)成分布式測(cè)溫網(wǎng)絡(luò)。測(cè)溫元件采用美國DALLAS半導(dǎo)體公司生產(chǎn)的數(shù)字溫度傳感器DS18B20,每個(gè)DS18 B20都有惟一的ID號(hào),體積小,可以封裝成普通溫度計(jì)大小,其拉線最長距離可達(dá)80 m,便于分布式安放在病人身上。溫度數(shù)據(jù)可以在病房主機(jī)的液晶上滾動(dòng)顯示。醫(yī)院監(jiān)控中心和各病房主機(jī)之間的網(wǎng)絡(luò)通信,采用C-S架構(gòu),病房主機(jī)每分鐘向醫(yī)院監(jiān)控中心發(fā)送各路溫度數(shù)據(jù)。醫(yī)院監(jiān)控中心接收來自各病房主機(jī)的數(shù)據(jù),可以以曲線或者數(shù)字的方式實(shí)時(shí)顯示各病人溫度變化情況,并進(jìn)行異常處理和相應(yīng)信息記錄,并且與病人數(shù)據(jù)庫同步,及時(shí)提醒值班醫(yī)生和護(hù)士關(guān)注病人情況。
2 硬件設(shè)計(jì)
2.1 單片機(jī)主控單元設(shè)計(jì)
單片機(jī)AT89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8 KB的FLASH和256 B的RAM,片內(nèi)置通用8位中央處理器,具備32個(gè)雙向I/O口。其中單片機(jī)的P0口用于現(xiàn)場(chǎng)顯示電路,采用點(diǎn)陣液晶顯示模塊LM6038D,可以滾動(dòng)顯示各個(gè)病人的體溫;P1口用于接單總線數(shù)字溫度傳感器DS18B20;P2口用于現(xiàn)場(chǎng)控制電路,包括按鍵、指示燈等;P3口的P3.0(RXD)和 P3.1(TXD)用于和ZNE-100T的串口通信。系統(tǒng)采用5V供電。
2.2 單總線溫度采集電路設(shè)計(jì)
DS18B20的測(cè)量范圍為-55~+125℃;在-10~+85℃時(shí),它的精度為±0.625℃,通過特殊處理,可以達(dá)到0.1℃。
單總線數(shù)字溫度傳感器DS18B20的電路連接方式主要有兩種,如圖2所示。該設(shè)計(jì)采用外接電源方式,如圖2(b)所示。理論上單片機(jī)的每個(gè)端口可以接無數(shù)個(gè)DS18B20,但是單片機(jī)端口負(fù)載能力有限,P1口的每個(gè)端口(P1.0至P1.7)只能推動(dòng)8個(gè)DS18B20。該設(shè)計(jì)中只用P1.0端口接了8 只DS18B20。
2.3 以太網(wǎng)通信電路設(shè)計(jì)
ZNE-100T是采用RS 232接口(DB9接頭)與單片機(jī)通信的,而單片機(jī)只能用TTL電平,因此,必須設(shè)計(jì)一個(gè)RS 232轉(zhuǎn)換電路與之通信。RS 232轉(zhuǎn)換芯片選用Maxim公司的MAX232E。其轉(zhuǎn)換電路如圖3所示。
2.4 液晶顯示電路設(shè)計(jì)
液晶顯示模塊采用拓譜微公司生產(chǎn)的LM6038D點(diǎn)陣液晶模塊,該模塊有128(列)×64(行)個(gè)像素點(diǎn),另外每列多設(shè)計(jì)了4個(gè)像素點(diǎn),實(shí)際上是 132×64個(gè)像素點(diǎn),分成9頁。該設(shè)計(jì)充分利用了多出的4個(gè)像素點(diǎn),做成了一個(gè)滾動(dòng)條,通過按鍵可以操作滾動(dòng)條,以便用戶翻頁查看顯示的內(nèi)容。
2.5 控制電路設(shè)計(jì)
該設(shè)計(jì)設(shè)計(jì)了兩個(gè)按鍵,分別接在單片機(jī)的P2.0和P2.1引腳上,分別用于控制液晶顯示屏滾動(dòng)條的上下拉。還設(shè)計(jì)了兩個(gè)指示燈,分別接在單片機(jī)的P2.2和P2.3引腳上,分別用于指示發(fā)送數(shù)據(jù)指示(紅色發(fā)光二極管)和連網(wǎng)成功指示(綠色發(fā)光二極管)。
2.6 看門狗電路設(shè)計(jì)
為防止系統(tǒng)死循環(huán),提高系統(tǒng)的可靠性,采用了MAX813L看門狗電路。其最大超時(shí)為1.6 s,高電平復(fù)位,即RESET腳保持狀態(tài)1.6 s后就發(fā)一復(fù)位信號(hào)。因此,程序中必須每1.6 s內(nèi)改變RESET狀態(tài)1次。
3 單片機(jī)程序設(shè)計(jì)
該系統(tǒng)單片機(jī)程序采用C語言編寫。程序首先對(duì)硬件進(jìn)行初始化,包括對(duì)單片機(jī)AT89C52寄存器的初始化、DS18B20內(nèi)部RAM的初始化、液晶顯示模塊LM6038D的初始化以及對(duì)以太網(wǎng)通信模塊ZNE-100T的初始化。程序通過分時(shí)法輪流采集8只DS18B20的溫度讀數(shù),并實(shí)時(shí)在液晶上顯示,用戶通過操作按鍵可以翻頁查看8只DS18B20的溫度數(shù)據(jù),單片機(jī)每隔1min通過串口把8路溫度數(shù)據(jù)打包后發(fā)送給以ZNE-100T,ZNE- 100T、實(shí)時(shí)把數(shù)據(jù)傳輸?shù)结t(yī)院監(jiān)控中心。系統(tǒng)流程圖如圖4所示。主要的子程序有:DS18B20驅(qū)動(dòng)程序、液晶顯示驅(qū)動(dòng)程序和串口和網(wǎng)絡(luò)通信驅(qū)動(dòng)程序。
3.1 DS18B20驅(qū)動(dòng)程序設(shè)計(jì)
單總線通信時(shí)只需要1根信號(hào)線,并嚴(yán)格按照特定的時(shí)序要求逐位交換信息,主機(jī)和從機(jī)允許數(shù)據(jù)雙向傳輸,但在同一時(shí)刻數(shù)據(jù)的傳輸只能是一個(gè)方向的。
(1)初始化時(shí)序
初始化時(shí)CPU首先發(fā)出一個(gè)復(fù)位信號(hào)將單線總線上所有DS18B20復(fù)位;然后釋放總線,改成接收狀態(tài),單線被上拉電阻R拉成高電平。在檢測(cè)到此上升沿后,DS18B20需要等待15~60μs才向CPU發(fā)出響應(yīng)脈沖,此后便可對(duì)ROM,RAM進(jìn)行操作。
(2)讀/寫時(shí)序
①寫時(shí)序。CPU把I/O線從高電平拉至低電平時(shí),作為一個(gè)寫周期的開始。寫時(shí)序包括2種類型即寫1時(shí)序和寫0時(shí)序。
②讀時(shí)序。當(dāng)CPU將I/O線從高電平拉成低電平時(shí),就作為一個(gè)讀周期的開始,并且I/O線保持低電平至少為1μs。DS18B20的輸出數(shù)據(jù)至讀時(shí)序下降沿后的15μs內(nèi)有效。經(jīng)過15μs后讀時(shí)序結(jié)束,I/O線經(jīng)外部上拉電阻又變成高電平。讀/寫1位數(shù)據(jù)至少需要60μs,并在兩位數(shù)據(jù)之間至少要有 1μs的恢復(fù)期。讀/寫1位數(shù)據(jù)時(shí)序的波形如圖5所示。
3.2 液晶顯示驅(qū)動(dòng)程序設(shè)計(jì)
利用點(diǎn)陣液晶顯示模塊LM6038D的串口模式,其時(shí)序圖如圖6所示。
LM6038D的顯示驅(qū)動(dòng)程序包含了字符庫,由于系統(tǒng)只是簡(jiǎn)單地顯示溫度數(shù)據(jù),所以字符庫做的比較小,只有“0~9”,“.”,“:”,“℃”,“+”以及“-”的字符編碼,采用16×16的字符大小。液晶每一頁只顯示4路DS18B20的數(shù)據(jù),通過兩個(gè)按鍵可以上下翻頁查看其他DS18B20的數(shù)據(jù)。數(shù)據(jù)顯示格式:“1:+36.7℃”。
3.3 串口和網(wǎng)絡(luò)通信驅(qū)動(dòng)程序設(shè)計(jì)
單片機(jī)和ZNE-100T‘模塊之間通過RS 232接口通信,采用中斷的方式進(jìn)行串口通信。單片機(jī)串口初始化波特率為9 600 b/s,單片機(jī)在初始化時(shí),就先通過串口對(duì)ZNE-100T進(jìn)行初始化操作,包括設(shè)置服務(wù)器IP地址,本機(jī)IP地址、網(wǎng)關(guān)、掩碼以及服務(wù)器端口號(hào)等,連網(wǎng)成功后,綠色發(fā)光二極管會(huì)亮起。單片機(jī)單元加上ZNE-100T模塊,就構(gòu)成了病房主機(jī),它和醫(yī)院監(jiān)控中心之間的通信協(xié)議如下:
每個(gè)病房主機(jī)都有一個(gè)ID號(hào)。單片機(jī)每隔1 min把采集到的8路溫度數(shù)據(jù)按照通信協(xié)議打包之后通過串口發(fā)送給ZNE-100T,ZNE-100T則通過網(wǎng)口把數(shù)據(jù)發(fā)送到醫(yī)院監(jiān)控中心,此時(shí)紅色發(fā)光二極管會(huì)不斷的閃,表示正在發(fā)送數(shù)據(jù)。
4 醫(yī)院監(jiān)控中心
醫(yī)院監(jiān)控中心包括數(shù)據(jù)庫和監(jiān)控平臺(tái)。數(shù)據(jù)庫記錄從個(gè)病房主機(jī)發(fā)過來的病人的體溫?cái)?shù)據(jù),并且與病人的其他數(shù)據(jù)庫同步,便于醫(yī)生分析病人的病情變化。監(jiān)控平臺(tái)則實(shí)時(shí)顯示各床號(hào)病人的體溫?cái)?shù)據(jù),并對(duì)體溫變化異常的病床號(hào)進(jìn)行預(yù)警,同時(shí)顯示相應(yīng)的編號(hào)和床位信息,提示醫(yī)護(hù)人員注意檢查病人身體狀況。
5 測(cè)試結(jié)果和實(shí)際使用情況
(1)DS18B20溫度測(cè)量精度
在測(cè)試過程中選用了水銀體溫計(jì)同時(shí)測(cè)量溫度,以檢驗(yàn)DS18B20的測(cè)量精度。在此測(cè)量20次體溫,DS18B20的測(cè)量結(jié)果和水銀體溫記的測(cè)量結(jié)果基本一致。
(2)監(jiān)控中心溫度顯示
在實(shí)際測(cè)試過程中,用5臺(tái)病房主機(jī)和監(jiān)控中心組成了一個(gè)測(cè)試網(wǎng)絡(luò),可以在監(jiān)控中心實(shí)時(shí)看到各病房主機(jī)發(fā)送過來的溫度數(shù)據(jù),每路溫度數(shù)據(jù)都可以以曲線或者數(shù)字的方式顯示。
6 結(jié)語
實(shí)踐表明,該系統(tǒng)可以穩(wěn)定地測(cè)量多個(gè)人體溫度,可以正常與監(jiān)控中心通信,并且可以實(shí)時(shí)地在病房主機(jī)上顯示測(cè)量的溫度數(shù)據(jù)。該系統(tǒng)具備穩(wěn)定性好,成本低廉,采用單總線測(cè)溫技術(shù)和以太網(wǎng)通信技術(shù),便于實(shí)現(xiàn)分布式溫度測(cè)量,可以作為子系統(tǒng)模塊在醫(yī)院信息系統(tǒng)中應(yīng)。
評(píng)論