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