摘要:為降低成本、提高便攜性和二次開發性,設計了一種基于J2ME的脈搏波測量系統。與傳統設備昂貴且笨拙的有創測量脈搏信號系統的儀器相比,該方案采用了無創光電容積脈搏波法,使用簡易、低成本、通用性高的C8051F330單片機作為信號采集控制單元,在藍牙手機上使用J2ME顯示和存儲脈搏信號。結果表明,系統數據誤差控制在10%以內,并且系統的成本降低50%以上、體積減少5%以上、二次開發程度高。
在我國傳統醫學中,脈診在中醫診斷中占有重要地位,脈診就是從脈搏信號中感知人體的病理信息。隨著現代科技的發展,特別是信號檢測處理技術及計算機技術等信息技術的發展,人們對脈搏信號的檢測分析進行了很多有意義的研究。脈搏波可看成主要是由心臟的收縮與舒張以及血液在沿血管的流動過程中所遇到的各種阻力相互作用而形成的,其中包含了豐富的人體內各器官的生理和病理信息,具有干擾強、頻率低、采集困難等特點。準確地檢測脈搏信號對于預防心血管系統疾病的發生以及對診治過程給予科學合理的指導、提高人們身心健康水平、提高人民生活質量均具有重要的科學和社會意義。
傳統檢測血氧脈搏信號普遍采用大型醫療設備,這類設備一般由傳感器有創采集信號,有線傳輸顯示在儀器面板上,受測者感覺痛苦并且儀器成本昂貴且攜帶不方便,無法做到隨時隨地進行監測。該系統采用無創光電容積脈搏波描記法配合J2ME開發檢測程序,不僅成本低廉、便于攜帶,而且還開發了數據庫存儲功能,將血氧脈搏信號通過藍牙技術無線傳輸,手機端接收并記錄每次檢測的脈搏數據便于用戶對比判斷自身一段時間內的健康狀況,同時在手機端實時顯示數據。其通用性和實用性以及便攜性都有很大的提高。
1 系統基本原理
光電容積脈搏波描記法(Photo Plethyamo Graphy,PPG)是借光電手段在活體組織中檢測血液容積變化的一種無創檢測方法。當一定波長的光束照射到指端皮膚表面時,光束將通過透射或反射方式傳送到光電接收器。在此過程中由于受到指端皮膚肌肉和血液的吸收衰減作用檢測器檢測到的光強度將減弱。其中皮膚肌肉組織等對光的吸收在整個血液循環中是保持恒定不變的,面皮膚內的血液容積在心臟作用下星搏動性變化,當心臟收縮時外周血容量最多,光吸收量也最大,檢測到的光強度量小,而在心臟舒張時正好相反,檢測到的光強度量大,使光接收器接收到的光強度隨之呈脈動性變化。在恒定波長的光源的照射下,通過檢測透過手指的光強將可以間接測量判人體的脈搏信號。
2 系統硬件設計
系統由指端采集器和具有藍牙傳輸數據功能的手機構成。指端采集器由Silcon Labs公司的C8051F330作為主控芯片,采集端使用940nm紅外發射管和光敏電阻,傳輸模塊采用廣州匯承信息科技有限公司生產的HC-05藍牙串口通訊模塊,顯示與存儲設備為含有藍牙模塊的手機。
整體設計結構圖如圖1所示。
圖1 整體系統結構
2.1 采集與放大電路設計
人體血液中的氧合血紅蛋白(HbO2)和沒被氧合還原血紅蛋白(Hb)對于不同波長光的吸收系數是不同的。在波長600~700nm的紅光范圍內,Hb的吸收系數比HbO2的大,而在波長800~1000nm的紅外光范圍內,Hb的吸收系數比HbO2的小,在805nm處兩者相同,在紅光660nm和紅外光940nm處吸收系數差異較大,目前,均采用該波長附近的紅光和紅外光進行雙譜定量分析檢測,并且在紅光660nm和紅外光940nm附近,Hb和HbO2的吸收系數變化曲線都比較平坦,受二極管發光波長誤差影響也較小,所以系統采用940nm光源進行脈搏波的檢測。采集及放大電路如圖2所示。
圖2 采樣及放大電路
光電傳感器拾取的脈搏信號十分徽弱,僅為毫伏量級,所以要求前置放大電路滿足下述要求:1)高輸入阻抗。光電信號是不穩定的內阻變化的微弱信號,為了減少信號源內阻的影響,必須提高放大器輸入阻抗,所以要求放大器具有高的輸入阻抗;2)低噪聲、低漂移。可以減小信號源的影響,增強信號的拾取能力,使輸出穩定。R6為光敏電阻,用于接收來自紅外管發射的脈搏信號。正常人體脈搏信號頻率約在0.3~3.33Hz之間,電路中C4與R8、C3與R9分別構成RC高通濾波器,高通截止頻率為約為0.33Hz,C2與R2構成低通濾波器截止頻率約為3.4Hz,將有效頻率范圍外的工頻干擾和其他高頻干擾濾除。放大器采用LM358,其內部包括有兩個獨立的、高增益、內部頻率補償的雙運算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關。它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運算放大器的場合。第一級運算放大器從LM358的第5腳輸入微弱脈搏信號,在其第7腳獲取放大信號,根據運算放大器公式計算可知一級放大8.5倍,然后通過0.3Hz的高通濾波器,消除第一級放大產生的噪聲,進入二級放大,可以計算出二緩放大100倍,因此獲取850倍的放大能力,獲取到3V之內的脈搏波信號,且其處于放大而不是截止狀態。
2.2 主控電路和藍牙模塊電路設計
主控芯片采用PDIP-20封裝的C8051F330單片機,易于焊接,其使用Silicon Labs的專利CIP-51微控制器內核。CIP-51與MCS-51TM指令集完全兼容,可以使用標準803x/805x的匯編器和編譯器進行軟件開發。CIP-51內核具有標準8052的所有外設部件,包括4個16位計數器/定時器、一個具有增強波特率配置的全雙工UART、一個增強型SPI端口、768字節內部RAM、128字節特殊功能寄存器(SFR)地址空間,僅使用簡單的外部電路便可以搭建系統。
HC-05模塊采用的是CSR BC417143B藍牙芯片,同時內置8M Flash。具有兩種工作模式:命令響應工作模式和自動連接工作模式,在自動連接工作模式下模塊又可分為主(MASTER)、從(Slave)和回環(Loopback)3種工作角色。當模塊處于自動連接工作模式時,將自動根據事先設定的方式連接的數據傳輸;當模塊處于命令響應工作模式時能執行AT命令。通過控制模塊外部引腳(PIO11)輸入電平,可以實現模塊工作狀態的動態轉換。
這里使用其P0.4與P0.5口作為UART傳輸口,與藍牙模塊的UART口通信。
Sout為經過采集和放大電路輸出的脈搏信號,輸入到C8051F330的P1.7進行A/D轉換,C8051F330與HC05的UART口對接,將采樣和濾波以后的信號傳輸給藍牙模塊。開關S1用于藍牙模塊復位,二極管D2用于顯示藍牙模塊狀態。當沒有數據傳輸時D2熄滅,當有數據傳輸時D2閃爍。電路如圖3所示。
圖3 控制與通信電路
3 系統軟件設計
整體系統軟件設計包括單片機端的輸入信號采樣濾波和藍牙程序、手機端的J2ME藍牙客戶端程序設計兩大部分。
3.1 單片機端濾波設計
由于人體呼吸、電極移動會產生脈搏信號中的基線漂移干擾,頻率較低,一般在0.7Hz以下,屬于低頻干擾,為了獲取較好的效果必須盡量消除其影響。人體脈搏波信號為準周期的時間序列,在不同周期的同一相位,其脈搏波的幅值近似不變。如果局部脈搏波在某一時刻發生突變,則這一時刻其幅度必不等于其臨近脈搏波同一相位幅度,根據這一思路,中值濾波的方法處理效果比較好。中值濾波法能有效克服因偶然因素引起的波動干擾,對溫度、液位變化緩慢的被測參數有良好的濾波效果,因此首先采用中值濾波法盡量消除突發擾動。其基本方法是連續采樣N次(N取奇數),把N次采樣值按大小排列然后取中間值為本次有效值。
移動平均濾波對快速周期性運動干擾有較強的抵御能力,是對模擬濾波補充的低通濾波器,用于實時檢測,只要采樣率足夠高,就能得翻較為理想的測量結果。因此系統在中值濾波后再加一級移動平均濾波對數據進行二次濾波。
具體算法是:
y(i)=c1y(k)+c2y(k-1)+…+ciy(k-m+1) (1)
式中,y(k)表示第k次采樣時刻的濾波輸出,各y(i)表示第i次采樣時刻的信號輸入,括號中的數字i代表第i次采樣時刻,c1、c2、…、cm是加權系數。
上式意義是將本次輸入數據連同以前共m次的數據進行加權平均。如果各ci值相同且等于1/m時,就成為m項算術平均運算。
3.2 藍牙設計
藍牙協議棧提供了一組高層協議和API以完成發現服務和模擬串行I/O,還有一個關于包分割和重組的低層協議以及多路技術協議和質量服務。藍牙協議棧如圖4所示。
圖4 藍牙協議棧
應用層(Application):這一層運行的是藍牙通信的J2ME通信程序,通過調用藍牙無線層的API,就可以直接書寫相應的通信功能的程序。
藍牙無線層(JSR-082):所有開發的API均在該層調用,與下層交互。
服務發現協議層(SDP):用于在遠程藍牙設備上尋找服務。服務器維護一張服務記錄列表,每個服務記錄都包含服務器上一個服務的信息,每個服務對應一個服務記錄。客戶端訪問服務器時,首先要獲得服務器的訪問記錄,然后通過服務記錄建立連接。
邏輯鏈接控制器適配層協議(1.2CAP):為上層協議提供面向連接和無連接的數據服務,并提供多協議功能和分割重組操作,可傳輸和接收最大長度64KB的L2CAP數據包。
虛擬串口協議(RFCOMM):基于L2CAP協議的虛擬串口協議,因為它允許藍牙設備模擬串口的功能,所以采用它進行數據傳輸。
對象交換(OBEX):可以用來傳輸文件或者交換對象數據,OBEX協議是基于RFCOMM實現的。
主機控制器接口(HCI)層:這一層是主機和控制器之間的接口,其他所有的層都要經過HCI。
3.2.1 單片機藍牙設計
單片機使用UART接口和藍牙模塊進行通信。HC-05為藍牙透明傳輸模塊,專為具有異步串口的用戶提供快捷藍牙點對點通訊。用戶不需任何協議,就像有線電纜連接一樣,只需對串口寫入數據,就可以將數據傳輸到遠端用戶設備。上電后藍牙主機模塊復位、讀藍牙模塊地址、設置狀態參數和初始化模塊,與遠端的手機連接成功后,可以通過UART異步串口與從機通信。這里將HC-05設置為主機模式,經過初始化后提供藍牙服務,等待手機端藍牙客戶端連接。
3.2.2 手機端J2ME設計
J2ME(Java2 Platform,Micro Edition)是Sun專門為小型的資源受限的消費性電子設備的應用程序開發所提供新的Java版本,它廣泛的使用于移動電話、PDA(個人數字助理以及電視機頂盒等眾多小型資源受限設備中。對于J2ME來說,由于其得天獨厚的跨平臺性與良好的可移植性,使得其在設備繁多、平臺異常混亂的手機與PDA市場更顯得如魚得水。
J2ME平臺是由配置(Configurations)和簡表(Profile)構成的。配置是提供給量大范圍設備使用的最小類庫集合,在配置中同時包含Java虛擬機(JVM)。簡表是針對一系列設備提供的開發包集合。在J2ME中還有一個重要的概念:可選包(Optioual Package),它是針對特定設備提供的類庫,比如某些設備是支持藍牙的,針對此功能,J2ME中制定了JSR82(Bluetooth API)提供了對藍牙的支持。程序流程圖如圖5所示。
圖5 程序流程圖
設計過程如下:
1)構建基于MIDLet的Mobile主類,實現按鈕監聽,在其監聽消息中響應手機左控制鍵退出(Cmd_Exit)和右控制鍵顯示脈搏波(Cmd_Show)的命令。部分代碼如下:
2)建立派生于GameCanvas實現按鈕監聽的Show類,畫脈搏的函數名為DrawPulse用于將接收到的脈搏數據動態顯示在屏幕上。部分代碼如下:
3)建立Record類,通過RecordStore的方法addRecord,deleteRecord,getRecord存儲,刪除和顯示收到的脈搏數據。至此整個J2ME的界面搭建完成。部分代碼如下:
4)建立新類使其實現Punnable(多線程)。由于需要發送連接請求和接收數據,必須要將發送和接收過程使用多線程實現。導人輸入輸出數據流包循環接收數據。部分代碼如下:
4 數據昱示與結果分析
考慮到自然光對測量的影響,將整個電路放置在不透光的小型圓柱形密封容器內(直徑約5cm,高度約5cm),中間打1.5cm直徑的孔,用于固定受測者手指姿態,頂部打0.5cm的孔用于反向放置光敏電阻。分別將采集電路板、藍牙傳輸電路板疊放并用泡沫固定。測試時用手指的指尖按住光敏電阻的表面,受測者可以較長時間保持穩定的姿態。受測過程中有時出現部分毛刺和基線漂移現象,但是不影響整體測量效果。測量結果為:脈搏波形平滑,噪聲抑制良好,長時間觀測達到穩定后能提供使用者健康狀態評價參數,如圖6所示。
圖6 數據顯示
5 結論
系統采用C8051F330單片機和J2ME藍牙研制便攜式脈搏波測量儀,相比傳統的檢測設備,采取了光電容積脈搏波描計法,結果誤差控制在10%以內、成本降低了50%以上、體積減少50%以上,配合J2ME可方便地進行二次開發。同時系統在部分細節還有待提高,比如采用更加有效的濾波方法濾除脈搏波中的基線漂移等噪聲、構建更加人性化的手機界面等等。在系統基礎上使用J2ME二次開發郵件系統或者CPRS,構建遠程社區醫療保健系統,將人體生理信號使用手機發送給醫生進行遠程診斷,會給用戶帶來極大的便利,顯示出良好的使用前景。
評論
查看更多