隨著當前信息技術和醫(yī)療水平的不斷發(fā)展以及人們生活水平的不斷提高,越來越多的人們對個人及家庭的健康護理提出了更高的要求,希望能夠隨時了解自己的身體健康狀況,并盡早發(fā)現(xiàn)病癥、解決問題。目前傳統(tǒng)的Holter系統(tǒng)體積大,使用不便的缺點也給人們的日常使用帶來了很大不便。因此,利用最新的無線傳感網(wǎng)與微處理器技術,設計實現(xiàn)一個可長期在線且具有無線移動監(jiān)控能力的移動心電信息采集監(jiān)控系統(tǒng)具有很高的實用價值和市場潛力。
本文通過研究人體心電信號的各項主要特征和實際監(jiān)測應用需求,設計開發(fā)了一套無線傳感心電信息監(jiān)測系統(tǒng),該系統(tǒng)通過嵌入內(nèi)衣穿戴的智能電極對心電信號進行采集處理,并通過目前已成為移動設備標配的藍牙無線數(shù)據(jù)網(wǎng)絡將心電數(shù)據(jù)發(fā)送至Android智能監(jiān)控終端進行接收數(shù)據(jù)的存儲、管理和分析。
2.系統(tǒng)設計的總體結(jié)構
系統(tǒng)總體結(jié)構框圖如圖1所示,包括嵌入內(nèi)衣的心電圖導聯(lián)、智能電極信號處理電路模塊、以及配置有藍牙的智能Android終端應用,其中智能電極信號處理模塊包括模擬信號調(diào)理電路、微處理器電路和無線藍牙網(wǎng)絡模塊以及可在模塊上擴展體溫傳感器和血氧探頭等,進而擴展生命健康監(jiān)測參數(shù)。
本系統(tǒng)首先將嵌入內(nèi)衣的導聯(lián)電極采集的心電信號送往智能電極中信號處理電路模塊中,由模擬信號調(diào)理電路進行濾波放大。
信號經(jīng)調(diào)理之后經(jīng)A/D轉(zhuǎn)換送給主控微處理器分析預處理。之后經(jīng)無線藍牙網(wǎng)絡通過無線信道送給配置有藍牙的智能Android終端應用進行診斷分析以及監(jiān)控顯示。當發(fā)現(xiàn)異常時,終端應用發(fā)出警報并可將結(jié)果通過移動互聯(lián)網(wǎng)發(fā)送至遠程醫(yī)療中心。
由于智能電極中模擬信號調(diào)理電路不是本文對系統(tǒng)設計所要重點闡述的部分,所以本文主要對數(shù)據(jù)分析預處理、無線藍牙通信和Android終端應用程序設計做介紹。
3.智能電極控制軟件設計
本系統(tǒng)采用TI公司MSP430G2553超低功耗微處理器構建中心處理單元。MSP430單片機在低功耗方面表現(xiàn)出色,支持快速休眠,大量節(jié)省系統(tǒng)能耗,并且在惡劣條件下工作性能穩(wěn)定。所采用的G2553型號單片機加載有自主設計的危急特征提取算法,能夠滿足設計的需求。
如圖2所示為智能電極控制軟件流程圖。
主要過程為在信號調(diào)理電路預處理心電模擬信號之后,超低功耗微處理器通過內(nèi)置的10位AD轉(zhuǎn)換模塊(采樣精度為3mV)對模擬數(shù)據(jù)進行采集和轉(zhuǎn)換,采樣周期為5ms,并將轉(zhuǎn)換后的數(shù)據(jù)取高8位后通過與異步串口(UART)交由藍牙模塊通過無線藍牙網(wǎng)絡發(fā)出。
4.Android終端應用程序設計
4.1 藍牙數(shù)據(jù)接收模塊設計
現(xiàn)代社會智能移動終端已經(jīng)成為人們生活中不可或缺的一部分,而目前大部分以手機為代表智能移動終端都是以Android系統(tǒng)為操作平臺并配置有藍牙裝置,因此為了滿足人們?nèi)粘I钍褂玫男枨笠耘渲糜兴{牙的智能Android移動終端為數(shù)據(jù)處理和診斷平臺來開發(fā)應用程。該應用程序以Java語言為主來進行開發(fā)。如圖3所示為Android設備藍牙數(shù)據(jù)接收模塊設計。
4.2 Android設備藍牙傳輸?shù)膶崿F(xiàn)方案
藍牙通信采用C / S通信模式。在設計時將接收端(Android設備)的藍牙作為客戶端,發(fā)送端(智能電極)藍牙作為服務器端。
在藍牙進行相互連接時,利用了數(shù)據(jù)通信中常用的Socket(套接字)機制。當兩端的套接字相互連接好以后,收發(fā)雙方的應用就可以將數(shù)據(jù)發(fā)送給自己的套接字,并從套接字處獲取數(shù)據(jù),雙方的套接字則作為連接中轉(zhuǎn)站一樣,相互收發(fā)數(shù)據(jù)。下面對Android設備上藍牙接收軟件實現(xiàn)過程詳細闡述。
首先開啟A n d r o i d終端的藍牙功能,Android終端藍牙設備作為客戶端需要主動搜索周圍的藍牙設備。這個搜索過程需要用到廣播機制,即搜索發(fā)起端需要一個廣播接收器,用于接收搜索信息。其建立的具體步驟為,首先定義一個繼承BroadcastReceicer的類,用這個類生成的實例就具備了對接收信息的操作能力,可以獲取需要的信息,比如藍牙設備名稱和MAC地址。經(jīng)過設置,該廣播接收器只對發(fā)現(xiàn)了藍牙設備這一消息和藍牙搜索結(jié)束這兩條消息響應,并且完成了廣播接收器在本應用中的注冊。用戶在使用時,只需要點擊“搜索”按鈕,終端設備開始搜索周圍藍牙設備,整個搜索過程將耗時12秒。這個過程中,本地藍牙適配器會搜索到周圍所有可以連接的藍牙設備,將這些搜索結(jié)果以列表的形式呈現(xiàn)在屏幕上,供選擇。連接開始前,首先關閉藍牙搜索功能。
在系統(tǒng)庫中有BluetoothSocket類,利用這個類生成相應的實例便是接收端藍牙的套接字,如果該藍牙是作為服務器來連接的,則利用系統(tǒng)類BluetoothServerSocket來生成套接字對象。在連接之前需要預先設置好UUID,然后由Android智能終端發(fā)起連接請求,這里需要調(diào)用BluetoothSocket類中的connect()方法,作為服務器端的藍牙設備監(jiān)聽到連接請求后會驗證其UUID是否與自己的一致,驗證通過后便可以完成連接了。需要特別注意的是,在這個過程中,連接過程是一個阻塞調(diào)用過程,為不影響主線程的工作,需要一個單獨的線程來進行連接工作。 等待藍牙連接完成后,便可以進行數(shù)據(jù)傳輸。在藍牙間的數(shù)據(jù)傳輸是由藍牙模塊自動按照藍牙協(xié)議棧的要求進行的,而在智能電極端從微控制器到藍牙模塊以及在Android終端從藍牙設備到應用程序的數(shù)據(jù)傳輸都是按照URAT異步串口通信方式進行的數(shù)據(jù)傳輸。在設計中所設置的數(shù)據(jù)傳輸格式是以一個字節(jié)長度為一幀來傳輸?shù)模渲杏?位數(shù)據(jù)位和1位奇偶校驗位共同組成。所以接收端所接收的數(shù)據(jù)都是以字節(jié)為單位來存儲的。在這個通信系統(tǒng)中,還加入了對接收數(shù)據(jù)的另一數(shù)據(jù)檢錯方案。數(shù)據(jù)的收發(fā)并不是將采集數(shù)據(jù)直接轉(zhuǎn)換成二進制的串行數(shù)據(jù)進行傳輸?shù)?,而是將這些數(shù)據(jù)轉(zhuǎn)換成所對應的ASCII碼再轉(zhuǎn)成串行數(shù)據(jù)再進行數(shù)據(jù)的發(fā)送,這樣在接收端接收到數(shù)據(jù)后,會將這些數(shù)據(jù)轉(zhuǎn)為ASCII碼,如果這些ASCII對應的不是數(shù)字或是已超出ASCII碼范圍,則認為是錯誤的數(shù)據(jù),將其丟棄。這樣做了之后,結(jié)合奇偶校驗,只有低三位同時有兩位都傳輸錯誤的數(shù)據(jù)不能被監(jiān)測出來,出現(xiàn)這種情況的概率比較小,并且藍牙傳輸距離短,傳輸環(huán)境并不算惡劣,這樣的檢錯能力已經(jīng)足夠了。數(shù)據(jù)接收過程也是一個阻塞調(diào)用的過程,所以同樣需要一個單獨的線程來完成。
接收到的數(shù)據(jù),全部轉(zhuǎn)換為數(shù)字的形式(振幅信息)存儲起來,供心電圖的顯示提供數(shù)據(jù)支持。Android藍牙傳輸軟件流程如圖4所示。
4.3 終端心電圖顯示
接收數(shù)據(jù)之后還有要在Android終端上描繪出心電圖,供使用者查看。在Android應用開發(fā)中,通常會使用View這樣的控件來描繪圖案。本系統(tǒng)圖形是一個心跳幅度關于時間的二維坐標圖,縱坐標以毫伏為單位,橫坐標以秒為單位。需要注意的是橫坐標的標識間隔,藍牙通信速率設置為9600位每秒,即1200字節(jié)每秒,所以每秒會收發(fā)1200個數(shù)據(jù)點的信息,橫坐標的設置應該以1200個點為1秒進行設置。
波形的描繪是一個坐標描點的過程。
將接收到的心電信號數(shù)據(jù)轉(zhuǎn)換成坐標點的表示形式,存入到緩存區(qū)當中。應用程序在進行波形描繪時會從該緩存區(qū)中依次提取數(shù)據(jù)點,在坐標圖上描繪出一個連續(xù)的波形圖。
5.系統(tǒng)功能鏈路實現(xiàn)
按照如圖5所示鏈路對移動心電監(jiān)控系統(tǒng)進行搭建,并以一正常無心電類疾病史人員為測試對象對整個系統(tǒng)鏈路功能進行實現(xiàn)。
啟動系統(tǒng)的智能電極和Android終端應用程序之后,首先進行數(shù)據(jù)配對進入界面選擇配對設備,并點擊“connect”按鈕,連接開始,由Android終端主動發(fā)起連接請求,發(fā)送端監(jiān)聽到請求信息后即可回應并建立連接。
為了方便使用和控制,數(shù)據(jù)傳輸是由接收端發(fā)起的。點擊屏幕中的“receive”按鈕,接收端通過藍牙向發(fā)送端發(fā)送數(shù)據(jù)傳輸?shù)?ldquo;開始”信號作為數(shù)據(jù)發(fā)送的起始信號。發(fā)送端在接到發(fā)送的“開始”信號后,便會開始發(fā)送數(shù)據(jù),直到將緩沖區(qū)內(nèi)的數(shù)據(jù)發(fā)送完畢為止,在接收端擁有與發(fā)送端相同大小的緩沖區(qū)接收數(shù)據(jù),當接收緩沖區(qū)裝滿后,接收停止。以此來進行數(shù)據(jù)的收發(fā)同步。接收端需要對接收到的數(shù)據(jù)進行檢錯,丟棄錯誤數(shù)據(jù),然后將有效數(shù)據(jù)存入波形顯示緩沖區(qū)中。在屏幕中部可以看到清晰的心電波形圖,如圖6所示。
當用戶點擊“realTIme”按鈕時,就可以在在屏幕上觀測到實時更新的心電圖。
6.結(jié)束語
本文介紹了移動心電信息監(jiān)控系統(tǒng)方案的設計與實現(xiàn)過程,包括系統(tǒng)的總體設計以及智能電極和Android移動終端的設計過程和主要實現(xiàn)方法。
本方案中的系統(tǒng)設計將傳統(tǒng)Holter系統(tǒng)中數(shù)據(jù)采集、處理和傳輸、診斷進行分離,僅利用內(nèi)衣穿戴形式的智能電極對信息參數(shù)進行采集并采用微控制器進行簡單預處理,之后將數(shù)據(jù)通過藍牙無線傳輸技術通過無線網(wǎng)絡發(fā)出,交由配置有藍牙Android智能接收終端進行進一步的處理和診斷??朔藗鹘y(tǒng)Holter系統(tǒng)體積大,使用不便,功耗大的缺點,可在日常生活中多日長期在線工作,對使用者的健康隱患進行監(jiān)測;并且終端數(shù)據(jù)管理與診斷分析程序能夠準確記錄用戶的測試信息并且隨時查詢,而且在發(fā)生危急狀況時發(fā)出報警挽救生命。