心電監(jiān)護(hù)儀應(yīng)用案例之遠(yuǎn)程心電實時監(jiān)護(hù)系統(tǒng)設(shè)計
(5)FlashLoadECGData():從數(shù)據(jù)分區(qū)中讀取一定字節(jié)數(shù)的心電數(shù)據(jù)。首先需要在Flash空閑狀態(tài)下獲取Flash的控制權(quán),隨后利用 FlashECGDMap()獲取實際操作地址并判斷是否出現(xiàn)跨頁讀操作。如果不需跨頁,則調(diào)用FlashPageRead(),讀出相應(yīng)數(shù)據(jù)到讀緩沖即可;若跨頁,則分別在兩頁分兩次讀取規(guī)定字節(jié)個數(shù)的連續(xù)心電數(shù)據(jù)。
3.2 GPRS網(wǎng)絡(luò)接口設(shè)計
硬件平臺的通信模塊是Wavecom公司的2406B。GPRS又稱無線分組服務(wù),用于在GSM網(wǎng)絡(luò)上傳輸數(shù)據(jù)。在進(jìn)行GPRS數(shù)據(jù)發(fā)送的同時,短消息和語音服務(wù)不會被禁止,但GPRS數(shù)據(jù)服務(wù)和GSM服務(wù)不能同時進(jìn)行。2406B模塊的GPRS上行速率可以達(dá)到10kbps,通過設(shè)置數(shù)據(jù)發(fā)送串口的波特率為9 600bps,可使數(shù)據(jù)進(jìn)出流量匹配。
3.2.1 2406B模塊初始化
首先設(shè)置2406B中兩個串口的波特率、綁定的數(shù)據(jù)類型及模塊時鐘。串口1綁定GPRS數(shù)據(jù),串口2綁定GSM數(shù)據(jù)。串口1的波特率設(shè)置為9 600即可使網(wǎng)絡(luò)與接口速率匹配;串口2返回模塊控制字,設(shè)置為19 200的波特率即可與處理器運行速度匹配。同時還要為模塊設(shè)置當(dāng)前時間。
AT指令見表1中“AT指令序列1”。其次通過AT指令連接GPRS網(wǎng)絡(luò)和服務(wù)器。AT指令見表1中“AT指令序列2”。
模塊的OpenAT程序?qū)崿F(xiàn)了TCP/IP協(xié)議,同時把漢字字模加入模塊。指令序列2 中的AT指令按照順序設(shè)置成功后即建立TCP/IP連接,模塊即進(jìn)入數(shù)據(jù)模式。
此時通過串口送入的所有數(shù)據(jù)全部作為網(wǎng)絡(luò)數(shù)據(jù)送交網(wǎng)絡(luò),送入即Ctrl-C(0x03)將斷開TCP連接,若要向服務(wù)器發(fā)送0x03,須發(fā)送數(shù)據(jù)對,此時保持網(wǎng)絡(luò)并向服務(wù)器發(fā)送0x03。
3.2.2 網(wǎng)絡(luò)模型及接口函數(shù)
數(shù)據(jù)傳輸過程分為注冊階段和數(shù)據(jù)發(fā)送階段。
在注冊階段,監(jiān)護(hù)儀向服務(wù)器發(fā)送注冊認(rèn)證數(shù)據(jù)報。內(nèi)容包括設(shè)備序列號(Machine ID)、數(shù)據(jù)格式(FMT)、采樣頻率、采樣位數(shù)、采樣環(huán)境工頻頻率、AD轉(zhuǎn)換高低電壓和直流偏置、數(shù)據(jù)壓縮方法以及采樣起始時間。服務(wù)器收到注冊數(shù)據(jù)后進(jìn)行身份驗證,驗證通過則發(fā)送回應(yīng)消息,即為服務(wù)接納的時間和聯(lián)系人列表。監(jiān)護(hù)儀收到回應(yīng)消息即進(jìn)入數(shù)據(jù)發(fā)送階段。
數(shù)據(jù)發(fā)送階段,監(jiān)護(hù)儀向服務(wù)器發(fā)送實時心電數(shù)據(jù)。數(shù)據(jù)發(fā)送策略有兩種:注重“實時性”的發(fā)送策略,定義當(dāng)前采樣點至其前1分鐘的心電數(shù)據(jù)為“實時心電數(shù)據(jù)”,享有發(fā)送的優(yōu)先權(quán),“補發(fā)數(shù)據(jù)”在“實時心電數(shù)據(jù)”發(fā)送完畢以后發(fā)送;注重“連續(xù)性”的發(fā)送策略,以保持?jǐn)?shù)據(jù)完整性為目標(biāo),“補發(fā)數(shù)據(jù)”享有數(shù)據(jù)發(fā)送優(yōu)先權(quán),服務(wù)器申請的數(shù)據(jù)會被優(yōu)先發(fā)送。數(shù)據(jù)發(fā)送階段病人及設(shè)備的各種異常狀況定義為“報警消息”發(fā)送給服務(wù)器。
網(wǎng)絡(luò)狀態(tài)轉(zhuǎn)換圖如圖3,由此設(shè)計的網(wǎng)絡(luò)接口函數(shù)為:(1)TransData():負(fù)責(zé)發(fā)送實時數(shù)據(jù)、補發(fā)數(shù)據(jù)和發(fā)送報警消息,其中報警消息具有最高優(yōu)先級,連續(xù)性的發(fā)送策略補發(fā)數(shù)據(jù)優(yōu)先級高于實時數(shù)據(jù),實時性的發(fā)送策略發(fā)送優(yōu)先級與連續(xù)性策略相反;(2)ECGRegister():負(fù)責(zé)建立與服務(wù)器之間的ECG連接,函數(shù)定時發(fā)送注冊信息包和完成注冊過程確認(rèn)。
3.3 GSM功能接口
GSM功能包括:短消息收發(fā)、信號強(qiáng)度獲取、時間獲取、電量獲取、按鍵消息通知、發(fā)聲。這些都依靠無線模塊串口2以AT指令進(jìn)行配置和查詢。
使用的AT指令有:“AT+CNMI=0,1,1,1,0”,配置短消息格式;“AT+CSMP=17,169,0,8”,文本采用Unicode編碼; “AT+CMGF=1”,短消息發(fā)送采用TXT格式;“AT+CSCA=短消息服務(wù)中心號碼>”,設(shè)置短消息服務(wù)中心號碼。
“AT+ CMGS=號碼>r短消息內(nèi)容>Ctrl-Z”,向號碼>發(fā)送短消息;“AT+CSQ”,獲取信號強(qiáng)度,格式為“+CSQ:信號強(qiáng)度>,xx”;“AT+CCLK?”,獲取當(dāng)前時間,格式為“+CCLK:yy/mm/dd hh:mm:ss”。
“AT+ADC?”,獲取電池電量,以毫伏為單位,格式為“+ADC:xxxx,……”;“AT+CMER=,1”,配置模塊返回按鍵產(chǎn)生的消息,消息結(jié)構(gòu)為“+CKEY:,0 or 1>”;“AT+WTONE=1,2,4000”,讓蜂鳴器發(fā)出頻率為4000Hz的聲音;“AT+WTONE=0”,停止發(fā)聲。
模塊接收到的短消息以0xAA為通知碼,接著是發(fā)送者號碼,隨后是短消息的Bitmap,可直接用于顯示,短消息不保存在模塊中,并僅在串口2給出通知。
3.4 LCD顯示
硬件平臺使用80×160點陣的單色LCD,軟件維護(hù)一個微型字庫,包括幾十個漢字以及所有ASCII符號中的可見字符,供界面顯示使用。無線模塊自帶漢字庫,可以直接顯示收到的SMS。預(yù)存的短消息維護(hù)在單片機(jī)的程序存儲器中,每條預(yù)存消息有Unicode和Bitmap兩種格式,Unicode用于發(fā)送,Bitmap用于顯示。
四、 監(jiān)護(hù)儀軟件功能
利用中斷將數(shù)據(jù)采集與數(shù)據(jù)發(fā)送分離。數(shù)據(jù)采集、存儲和解析組成一個事務(wù)集;數(shù)據(jù)發(fā)送與短信瀏覽、監(jiān)護(hù)狀態(tài)顯示及緊急求救報警等事務(wù)組成另一個事務(wù)集。兩個事務(wù)集并行運行,F(xiàn)lash存儲器及其中的數(shù)據(jù)和消息為關(guān)鍵資源。
4.1 心電實時監(jiān)護(hù)
心電實時監(jiān)護(hù)即心電數(shù)據(jù)采集、存儲、發(fā)送。監(jiān)護(hù)程序流程圖如圖4。
4.2 醫(yī)囑短信收發(fā)
監(jiān)護(hù)儀可以向服務(wù)器、醫(yī)生、親人等發(fā)送預(yù)設(shè)消息,同時可以接收聯(lián)系人的短消息。圖5(a)為預(yù)設(shè)短消息發(fā)送界面。
評論