戴初舉 楊炎祥 林玉霓
【摘要】 由于近來電子技術的迅速發展,便攜性醫療電子需求逐漸增大,促進了移動醫療系統的發展。基于Android系統移動終端因其靈活的自定功能、較強的運算處理能力,推動了醫療電子的便攜化和智能化,而智能終端的迅速普及更是為移動健康醫療系統帶來了很大的發展想象空間。我們項目小組在心電(ECG)數據采集前端的基礎上設計添加BLE藍牙模塊CC2451,移動智能端采用自身藍牙,通過BLE協議通信,實現在 Android手持端顯示心電圖和數據儲存。
【關鍵詞】 Android 醫療電子 BLE 心電(ECG)
引言
中國經濟的驚人增長速度,使中國國民更加關注自身健康狀況,現代信息技術用來改善健康監測系統已是必然。與此同時,基于手機等移動智能設備的移動醫療健康系統,因其靈活、便攜帶原因,更是加速了醫療和移動通信產業的有效結合,將使得移動醫療設備不斷增多。
而心電的檢測有助于在急救中及時對突發的病癥進行治療。并且生理數據的長期監測可以為用戶提供寶貴的護理信息,不僅有一定的臨床參考價值,還為未來的遠程醫療的實現提供可能。
一、系統結構
本文提出的ECG采集系統可分為Android設備終端和采集模塊。
心電檢測采集模塊由前置放大、四階低通、一階高通和主放大四部分組成。采集到的數據通過藍牙BLE 4.0傳輸給Android設備,并在Android智能端藍牙Socket接口得到數據并進行處理。再經過應用軟件開發完成信號波形的顯示。如圖1。
1.1數據采集處理
心電信號有波形小、噪聲干擾大等特點,因此采集的心電信號須經放大和多次過濾處理[1]。本文采用ADS1298R芯片,是TI公司專門為生理信號采集而設計的芯片,其集成了8個獨立的模數轉換模塊,同時還集成了8個程控差分輸入放大器、右腿驅動、Wilson電阻網絡等,通過結合高精度的模數轉換和將基線漂移、工頻干擾等噪聲處理放到模數轉換后的數字處理部分,可以簡化數據采集前端的設計。一般心電信號的幅值在10μV-4mV,若放大倍數不夠,就要求系統的電壓分辨率較高。
倘若分辨率不夠,則通常要對信號進行20000倍左右放大;正常的心電信號頻率范圍為 0.05-100Hz,采集心電時,高頻干擾有很大影響,那么需要放大器具有較高共模抑制比(CMRR),前置放大電路將傳感器采集到的心電信號低失真放大,得到高共模抑制比、低漂移的電信號,即可滿足設計要求;四階低通濾波電路消除50Hz頻率的工頻信號;另外從抑制基線漂移和帶外噪聲以及保護器件考慮,需要對輸入信號進行限幅與濾波,高通濾波電路消除頻帶意外的肌電等信號。
再經A/D轉換,得到心電數字信號,再通過藍牙BLE協議傳輸給Android移動端,并對接收到的心電數據進行分析處理、存儲。心最后對通過開發的APP對心電的波形進行顯示。
1.2 藍牙4.0協議棧介紹與開發
本系統使用的是TI的BLE4.0 CC2541藍牙芯片,其使用高性能,低功耗的8051內核,剛好解決了便攜式設備的低功耗問題要求。BLE協議棧結構如圖2。
1)物理層(PHL):即射頻和電路部分,進行IEEE地址分配。
2)鏈路層(LL):可以通過對寄存器的設置控制物理層,并控制設備協議棧的狀態。設置主機或從機角色。
3)主/控接口層(HCI):提供標準藍牙的事件和命令接口以及上下層通信。
4)邏輯鏈路控制和適配層(L2CAP):負責邏輯鏈路連接和數據分發。
5)安全管理層(SM):負責配對及加密等安全性工作。
6)GAP層:用于設備查找、連接建立、廣播發送接收的一些控制。
7)ATT層:將數據暴露給其他設備,所有數據傳輸都是通過它實現。
8)GATT層:基于ATT層的Profile,用來具體實現數據傳輸。
連接過程為:Peripheral開啟廣播—>Central掃描從機廣播—>Peripheral接收到Central的掃描請求,Peripheral向Central發送掃描回應數據—>Central向Peripheral發起連接-->開始通信。
藍牙作為低功耗、低成本的無線標準,Android提供了大量可以管理藍牙通信的API,通過這些API可以實現藍牙設備間的無線連接,建立點到點、點到多點通信模式。
二、軟件設計
Android操作系統在4.3以上版本中添加BLE4.0的功能,本方案采用5.0版本智能設備作為開發平臺。Android系統的結構主要分為四層[2],從低到高分別為Linux內核層、系統運行庫層、應用框架層和應用層。
本文采用的是window7系統,系統開發所需要的軟件為:JDK , Eclipse, Android SDK, ADT。Android應用程序由四個模塊組成:Activity 、Intent 、Content 和Service[3]。軟件流程如圖3。
Android智能端通過藍牙接收到心電數據后,就可以對數據進行初步處理,首先利用File文件存儲心電數據,之后進行波形繪制和心率計算,本研究使用選擇定時器TimeTask、多線程的技術來實現波形的繪制,波形繪制和心率計算分別在不同的線程中實現。TimeTask屬于Java自帶的定時器類,需用的兩個包是:Java.uti.Timer;Java.uti. TimerTask,本文就用Java.uti.Timer來實現接收心電數據流,再分給不同的線程來進行數據處理。
2.1 智能端通信實現
Android平臺通過三種網絡接口進行通信,本研究選擇標準的Java接口來實現Socket通信和HTTP通信,標準的Java接口中Java.net*提供與聯網有關的類,包括流和數據包套接字、Internet協議、常見HTTP處理。
本文采用面向連接的Socket通信,這種方式Socket可以是一個流接口進行開關和讀寫操作,所有發送的數據在另一端同步被接收。Java在Java.net包中提供了兩個Socket和ServerSocket,前者為雙向鏈接中的客戶端,后者為服務器。在建立連接后,利用Socket提供的getInputStream()和getOutputStream()得到對應的輸入和輸出流,就可以進行讀寫數據操作:
OutputStreamoutStream=socket.get.getOutputStream();
RandomAccessFile fileOutStream=new RandomAccessFile(u ploadFile.”r”);
While((len=fileOutStream.read(buffer)) !=-1)
outStream.write(buffer,0,len); fileOutStream.close(); outStream.close();
上面程序中設置采集到的生理參數數據文件為uploadFile。通過Socket類中的getOutputStream()得到輸出流。
三、研究結果
以上詳細介紹了基于Android平臺心電監測系統的設計,經過實際測試,可以成功采集心電信號,下圖4,圖5為心電采集系統采集到的心電信號在Android平板電腦諾基亞N1上顯示的實際波形。
從檢測結果可以看出,顯示的心電圖包含歷史記錄,便于用戶對比查詢,圖形較為準確,有一定的臨床參考價值。
四、總結與展望
本系統設計采用TI公司的藍牙4.0超低功耗CC2541作為控制芯片,配合Android操作系統的智能移動設備來處理、顯示和存儲數據,測量數據準確可靠能實現對病人的長期監測和有效治療。隨著智能移動醫療產業的發展,將來會有更多的智能監測系統誕生,在未來的云計算和云存儲的技術背景下,各種醫療設備將借助大數據來實現長期監測以分析各
種病癥的變化趨勢[4-5]。
參 考 文 獻
[1] Chin-Teng Lin, Fellow, IEEE, Kuan-Cheng.An Intelligent Telec –ardiology System Using a Wearable and Wireless ECG to Detect Atrial Fibrillation[C].IEEE TRANS ACTIO -NS ON INTOFMATION TECHNLOGY IN BIOMEDICINE. 2010:726-733
[2] Ed Burnette.Hello, Android:intro-ducing Google`s mobile development platform [M].北京:人民郵電大學出版社;2009:1-4
[3] 楊豐盛. Android應用開發揭秘[M].北京:機械工業出版社;2010:7
[4] Jun S J,Myllya R, Chung WY. Wireless machine-to-machine healthcare solution using Android in global network [J].Sensors Journal , IEEE, 2013, 13(5): 1419-1424.
[5] Chung WY , Yau C, Shin KS. A cell phone based health monitoring system with self-analysis processor using wirless sensor network technology[A]. Engineering in Medicine and Biology Society[C]. Lyon,France .2007:3705-3708