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