無線傳感器網(wǎng)絡(luò)技術(shù)在人體參數(shù)采集中的應(yīng)用
掃描二維碼
隨時隨地手機看文章
生理參數(shù)采集是指對人在特定環(huán)境下靜止或活動時的某些生理參數(shù)進行測量、處理和傳送。該技術(shù)應(yīng)用領(lǐng)域廣泛,如醫(yī)療、保健、體育、軍事和服裝舒適性評價等。生理參數(shù)采集的實現(xiàn)方法是將傳感置于人體相應(yīng)部位,以有線或無線方式將傳感器采集到的數(shù)據(jù)傳送到終端進行處理。在使用中有線傳輸?shù)姆绞接袝r會受到限制,所以有必要研究采用無線方式傳輸數(shù)據(jù)的方法。如在服裝舒適性評價應(yīng)用中,主要方法有:在真實環(huán)境下對人體表溫濕度的測量;在模擬環(huán)境(人工氣候室)下對真人或假人體表溫濕度的測量,根據(jù)測量值給出主客觀評價。在進行真實環(huán)境下人體穿著動態(tài)實驗時,無線數(shù)據(jù)采集傳輸方式會帶來很大方便。無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展迅速,將這一技術(shù)應(yīng)用于人體生理參數(shù)采集在國內(nèi)已有相關(guān)應(yīng)用,如參考文獻(xiàn)[2]提出基于Zigbee技術(shù)的無線傳感器網(wǎng)絡(luò)在遠(yuǎn)程家庭監(jiān)護中的應(yīng)用,參考文獻(xiàn)[3]提出了無線傳感器技術(shù)在醫(yī)療監(jiān)護中的應(yīng)用。本文將結(jié)合具體應(yīng)用,從無線傳感器網(wǎng)絡(luò)節(jié)點軟硬件平臺選擇、網(wǎng)絡(luò)體系結(jié)構(gòu)、MAC層協(xié)議、節(jié)點低功耗設(shè)計等方面分析和設(shè)計人體參數(shù)采集。 1 系統(tǒng)設(shè)計 1.1 網(wǎng)絡(luò)體系結(jié)構(gòu)及協(xié)議 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要描述網(wǎng)絡(luò)節(jié)點的連接模式。人體生理參數(shù)采集范圍小,傳感器節(jié)點集中,各節(jié)點間一般不需要通信。根據(jù)這些特點,可以使用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在星型拓?fù)浣Y(jié)構(gòu)中,每個分支節(jié)點以點到點的方式連接到中心節(jié)點上,當(dāng)在中心節(jié)點與分支節(jié)點間大量通信時,采用星型拓?fù)浣Y(jié)構(gòu)是最有效的。其優(yōu)點在于能夠?qū)①Y源集中、網(wǎng)絡(luò)易于管理、覆蓋范圍集中、路由算法相對簡單,有問題的節(jié)點很容易在不影響其他節(jié)點性能的情況下被中心節(jié)點隔離掉。 在無線傳感器網(wǎng)絡(luò)中,MAC(Medium Access Control)協(xié)議決定無線信道的使用方式,在傳感器節(jié)點之間分配有限的無線通信資源,對傳感器網(wǎng)絡(luò)的性能有較大影響,是保證無線傳感器網(wǎng)絡(luò)低功耗工作的關(guān)鍵網(wǎng)絡(luò)協(xié)議之一。人體生理參數(shù)采集應(yīng)用中,傳感器節(jié)點周期性采集數(shù)據(jù),供電常采用小型紐扣電,而中心節(jié)點一般供電充足,所以采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)控制協(xié)議。中心節(jié)點不關(guān)閉射頻模塊,持續(xù)接收。傳感器節(jié)點定時采樣、發(fā)送數(shù)據(jù),在需要發(fā)送數(shù)據(jù)時打開射頻模塊,首先對信道進行偵聽,若信道被占用,則退避一段隨機時間后再繼續(xù)偵聽,若此時信道沒有被占用,則發(fā)送數(shù)據(jù),得到確認(rèn)后關(guān)閉射頻模塊,MCU進入睡眠模式,等待下一次定時觸發(fā)。 1.2 射頻收發(fā)器件及網(wǎng)絡(luò)操作系統(tǒng) 傳感器節(jié)點要求體積小、功耗低、能夠進行數(shù)據(jù)處理和無線收發(fā),這里采用TI/Chipcon公司CC2430EM評估板作為無線收發(fā)模塊,傳感器電路根據(jù)需要自行設(shè)計。CC2430評估板的P0.1~P0.7、P1.0~P1.7及P2.0~P2.2口線,可與傳感器電路連接進行控制。芯片CC2430內(nèi)嵌CC2420射頻收發(fā)器和8051 MCU,內(nèi)含12 bit模/數(shù)轉(zhuǎn)換器、4個定時器、32 kHz晶振的休眠模式定時器,硬件支持CSMA/CA,供電電壓2.0 V~3.6 V,在掉電模式下電流消耗僅0.5 μA,可通過外部中斷或?qū)崟r時鐘喚醒。無線傳感器網(wǎng)絡(luò)可以被視為由多個能量、存儲空間和處理能力有限的CPU組成的計算機系統(tǒng),這些CPU相互獨立,又協(xié)同工作。為便于軟件開發(fā)與維護,提高軟件開發(fā)效率,采用TinyOS嵌入式操作系統(tǒng)。TinyOS是一種專門為嵌入式系統(tǒng)設(shè)計的基于組件的操作系統(tǒng),主要應(yīng)用于無線傳感器網(wǎng)絡(luò),由nesC語言實現(xiàn),它采用輕量級線程技術(shù)、主動消息通信技術(shù)、事件驅(qū)動模式、組件化編程方式。使用該操作系統(tǒng)能夠提高CPU使用率,在TinyOS的調(diào)度下,所有與通信事件相關(guān)聯(lián)的任務(wù)在事件產(chǎn)生時可以迅速進行處理。在處理完畢且沒有其他事件的情況下,CPU將進入睡眠狀態(tài)。 1.3 節(jié)點設(shè)計 圖1為人體生理參數(shù)采集網(wǎng)絡(luò)結(jié)構(gòu)示意圖。為提高便攜性能,可以將其中的PC機用嵌入式設(shè)備替換。圖中各傳感器節(jié)點定時采樣、發(fā)送數(shù)據(jù),中心節(jié)點收到數(shù)據(jù)后通過串口送至PC機,進行顯示和處理。 節(jié)點有兩類:傳感器節(jié)點和中心節(jié)點。在TinyOS環(huán)境下編程語言為nesC,為支持組件化編程模式,nesC語言引入了接口和組件的概念。接口是一些功能類似或相關(guān)的函數(shù)聲明,根據(jù)調(diào)用方向不同命名為命令或事件,具體實現(xiàn)在提供或使用該接口的組件中。組件包括配件和模塊,配件負(fù)責(zé)把不同組件通過接口連接起來,模塊提供程序所需的代碼實現(xiàn)。對于傳感器節(jié)點,需要針對不同的傳感器設(shè)計硬件驅(qū)動組件,結(jié)合已有的中間組件(如系統(tǒng)組件、電源管理組件、A/D轉(zhuǎn)換組件、定時器組件、射頻組件等),設(shè)計應(yīng)用層的配置組件和模塊組件。下面以溫濕度傳感器節(jié)點為例說明設(shè)計方法,溫濕度傳感器采用瑞士SENSIRION公司的SHT10. 溫濕度傳感器節(jié)點的組件連接如圖2所示。小矩形框內(nèi)是各組件使用和提供的接口,箭頭方向表示命令調(diào)用的方向。因為所有傳感器節(jié)點都具有定時采樣、數(shù)據(jù)處理、按協(xié)議數(shù)據(jù)收發(fā)、射頻模塊和MCU電源管理等功能,所以這里將與傳感器有關(guān)的操作單獨設(shè)計一個組件SHT10_C,在頂層配件中通過與不同類型傳感器組件連接,實現(xiàn)各傳感器節(jié)點功能。將與傳感器操作無關(guān)、與應(yīng)用相關(guān)的其他功能組合設(shè)計一個中間組件SensorNet_C,通過與下層配件McuSleepC、CsmaC和CC2430ActiveMessageC連接,實現(xiàn)MCU電源管理、CSMA協(xié)議及射頻模塊控制。配件SHT10_C和SensorNet_C僅提供組件間連接關(guān)系,其實現(xiàn)分別由SHT10_M和SensorNet_M完成。在調(diào)用命令Send.send()發(fā)送數(shù)據(jù)時,首先進行清潔信道評估,如果信道被占用,則需要退避一段時間。退避時間由隨機函數(shù)產(chǎn)生一個1~31之間的隨機數(shù),與一個給定初始值(這里設(shè)為160 μs,即10 symbols)相乘而得。初始值可以根據(jù)網(wǎng)絡(luò)中節(jié)點數(shù)量進行調(diào)整,節(jié)點少則初始值小,反之則適當(dāng)加大。 溫濕度傳感器節(jié)點的頂層配置組件程序如下: configuration SensorNodeSHT_C { } implementation { components MainC; /*TinyOS2主模塊,這里用于關(guān)聯(lián)系統(tǒng)啟動*/ components new TimerMilliC() as TimerC; components SensorNet_C; /*射頻模塊、CSMA協(xié)議及MCU電源管理控制配置組件*/ components SHT10_C; /*溫濕度傳感器SHT10配置組件*/ components SensorNodeSHT_M; /*頂層模塊組件*/ SensorNodeSHT_M.Boot->MainC.Boot; SensorNodeSTH_M.Timer->TimerC; SensorNodeSTH_M.RFControl->SensorNet_C; SensorNodeSTH_M.AMPacket->SensorNet_C; …… SensorNodeSTH_M.Send->SensorNet_C; SensorNodeSTH_M.SHT->SHT10_C; /*實現(xiàn)接口STH的連接*/ } 在配件SensorNet_C中,通過連接配件CC2430ActiveMessageC使用模塊組件CC2430ActiveMessageP中提供的射頻功能。CC2430ActiveMessageP是射頻堆棧中的頂層組件,提供單跳通信實現(xiàn)方法。通過連接配件McuSleepC使用模塊組件McuSleepP中的MCU電源管理功能,實現(xiàn)MCU睡眠、定時和啟動等功能,以降低節(jié)點功耗。需要在使用McuSleepP組件的上層組件SensorNet_M中實現(xiàn)事件McuSleepControl.beforeSleep()和McuSleepControl.afterWakeup(),以保護和恢復(fù)睡眠前后的狀態(tài)。 溫濕度傳感器SHT10具有兩線制串行接口,輸出已校準(zhǔn)數(shù)字信號。這里定義SHT10的接口SHT如下,需要在模塊組件SHT10_M中實現(xiàn)接口所定義的命令。 interface SHT{ command error_t read(); /*在傳感器模塊組件STH10_M中實現(xiàn)*/ event void readDone(error_t result,uint16_t temperature,uint16_t humidity); /*在頂層模塊組件SensorNodeSHT_M中實現(xiàn)*/ } 中心節(jié)點實現(xiàn)射頻數(shù)據(jù)接收,然后通過串口將數(shù)據(jù)送給PC機。其頂層配置文件如下: configuration CenterNode_C{ } implementation{ components CenterNode_M; /*頂層模塊組件*/ components MainC; components CC2430ActiveMessageC as ActiveMessageC; components ABSC; /*串口通信控制組件*/ CenterNode_M.Boot->MainC.Boot; CenterNode_M.RFControl->ActiveMessageC; CenterNode_M.AMPacket->ActiveMessageC; CenterNode_M.Packet->ActiveMessageC; CenterNode_M.Receive->ActiveMessageC.Receive; CenterNode_M.ABS->ABSC; } 2 傳感器節(jié)點功耗計算 對人體生理參數(shù)進行采集,尤其在室外應(yīng)用中,低功耗對于電池供電的傳感器節(jié)點來說非常重要。以下應(yīng)用參考文獻(xiàn)[6]中的方法對本設(shè)計中的傳感器節(jié)點的功耗進行計算。采用3.3 V直流電源供電,將一個1%精度的10 Ω電阻與CC2430EM串聯(lián),通過測量電阻兩端的電壓降來計算一個采樣周期中各個時間段的電流。設(shè)采樣周期T=10 s,CC2430射頻輸出功率設(shè)置為100%,圖3為使用示波器TPS2024在傳感器節(jié)點發(fā)送數(shù)據(jù)時獲取的電阻兩端電壓變化波形圖,水平方向2.50 ms/div,垂直方向100 mV/div.表1為活動期間的電流消耗。 一個采樣周期T內(nèi)低功耗模式時間(A段、G段,CC2430在PM2模式下): TPM2=T-Ton=10000 ms-20.45 ms=10 451.65 ms 低功耗模式下(CC2430在PM2模式下)電流消耗: 0.000 5 mA×10 451.65 ms=5.225 8 mA·ms 一個采樣周期T內(nèi)總電流消耗: 472.1 mA·ms+5.225 8 mA·ms)/(3 600 000 ms/h)=1.326×10-4 mAh/10 s 每小時消耗電流:1.326×10-4×360=0.047 74 mA 假設(shè)使用60 mAh的紐扣電池,則可以使用時間為:60 mAh/0.047 74 mA=1 256 h≈52 天 本文采用nesC語言設(shè)計了基于TinyOS的中心節(jié)點和傳感器節(jié)點程序,實現(xiàn)了使用CSMA/CA協(xié)議的星型無線傳感器網(wǎng)絡(luò),并以溫濕度數(shù)據(jù)采集為例,設(shè)計了采用溫濕度數(shù)字傳感器SHT10的傳感器節(jié)點。當(dāng)采樣周期為10 s、使用60 mAh電池供電時,傳感器節(jié)點可持續(xù)工作52天。本設(shè)計能夠滿足無線、便攜、低功耗地采集人體生理參數(shù)的需要。使用模塊化編程語言nesC,提高了開發(fā)效率,便于擴展。本文介紹的研究和設(shè)計方法可在相關(guān)應(yīng)用中使用。