無線傳感器網(wǎng)絡(luò)技術(shù)在人體參數(shù)采集中的應(yīng)用
生理參數(shù)采集是指對(duì)人在特定環(huán)境下靜止或活動(dòng)時(shí)的某些生理參數(shù)進(jìn)行測(cè)量、處理和傳送。該技術(shù)應(yīng)用領(lǐng)域廣泛,如醫(yī)療、保健、體育、軍事和服裝舒適性評(píng)價(jià)等。生理參數(shù)采集的實(shí)現(xiàn)方法是將傳感置于人體相應(yīng)部位,以有線或無線方式將傳感器采集到的數(shù)據(jù)傳送到終端進(jìn)行處理。在使用中有線傳輸?shù)姆绞接袝r(shí)會(huì)受到限制,所以有必要研究采用無線方式傳輸數(shù)據(jù)的方法。如在服裝舒適性評(píng)價(jià)應(yīng)用中,主要方法有:在真實(shí)環(huán)境下對(duì)人體表溫濕度的測(cè)量;在模擬環(huán)境(人工氣候室)下對(duì)真人或假人體表溫濕度的測(cè)量,根據(jù)測(cè)量值給出主客觀評(píng)價(jià)。在進(jìn)行真實(shí)環(huán)境下人體穿著動(dòng)態(tài)實(shí)驗(yàn)時(shí),無線數(shù)據(jù)采集傳輸方式會(huì)帶來很大方便。無線傳感器網(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)護(hù)中的應(yīng)用,參考文獻(xiàn)[3]提出了無線傳感器技術(shù)在醫(yī)療監(jiān)護(hù)中的應(yīng)用。本文將結(jié)合具體應(yīng)用,從無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)軟硬件平臺(tái)選擇、網(wǎng)絡(luò)體系結(jié)構(gòu)、MAC層協(xié)議、節(jié)點(diǎn)低功耗設(shè)計(jì)等方面分析和設(shè)計(jì)人體參數(shù)采集。 1 系統(tǒng)設(shè)計(jì) 1.1 網(wǎng)絡(luò)體系結(jié)構(gòu)及協(xié)議 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要描述網(wǎng)絡(luò)節(jié)點(diǎn)的連接模式。人體生理參數(shù)采集范圍小,傳感器節(jié)點(diǎn)集中,各節(jié)點(diǎn)間一般不需要通信。根據(jù)這些特點(diǎn),可以使用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在星型拓?fù)浣Y(jié)構(gòu)中,每個(gè)分支節(jié)點(diǎn)以點(diǎn)到點(diǎn)的方式連接到中心節(jié)點(diǎn)上,當(dāng)在中心節(jié)點(diǎn)與分支節(jié)點(diǎn)間大量通信時(shí),采用星型拓?fù)浣Y(jié)構(gòu)是最有效的。其優(yōu)點(diǎn)在于能夠?qū)①Y源集中、網(wǎng)絡(luò)易于管理、覆蓋范圍集中、路由算法相對(duì)簡單,有問題的節(jié)點(diǎn)很容易在不影響其他節(jié)點(diǎn)性能的情況下被中心節(jié)點(diǎn)隔離掉。 在無線傳感器網(wǎng)絡(luò)中,MAC(Medium Access Control)協(xié)議決定無線信道的使用方式,在傳感器節(jié)點(diǎn)之間分配有限的無線通信資源,對(duì)傳感器網(wǎng)絡(luò)的性能有較大影響,是保證無線傳感器網(wǎng)絡(luò)低功耗工作的關(guān)鍵網(wǎng)絡(luò)協(xié)議之一。人體生理參數(shù)采集應(yīng)用中,傳感器節(jié)點(diǎn)周期性采集數(shù)據(jù),供電常采用小型紐扣電,而中心節(jié)點(diǎn)一般供電充足,所以采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)控制協(xié)議。中心節(jié)點(diǎn)不關(guān)閉射頻模塊,持續(xù)接收。傳感器節(jié)點(diǎn)定時(shí)采樣、發(fā)送數(shù)據(jù),在需要發(fā)送數(shù)據(jù)時(shí)打開射頻模塊,首先對(duì)信道進(jìn)行偵聽,若信道被占用,則退避一段隨機(jī)時(shí)間后再繼續(xù)偵聽,若此時(shí)信道沒有被占用,則發(fā)送數(shù)據(jù),得到確認(rèn)后關(guān)閉射頻模塊,MCU進(jìn)入睡眠模式,等待下一次定時(shí)觸發(fā)。 1.2 射頻收發(fā)器件及網(wǎng)絡(luò)操作系統(tǒng) 傳感器節(jié)點(diǎn)要求體積小、功耗低、能夠進(jìn)行數(shù)據(jù)處理和無線收發(fā),這里采用TI/Chipcon公司CC2430EM評(píng)估板作為無線收發(fā)模塊,傳感器電路根據(jù)需要自行設(shè)計(jì)。CC2430評(píng)估板的P0.1~P0.7、P1.0~P1.7及P2.0~P2.2口線,可與傳感器電路連接進(jìn)行控制。芯片CC2430內(nèi)嵌CC2420射頻收發(fā)器和8051 MCU,內(nèi)含12 bit模/數(shù)轉(zhuǎn)換器、4個(gè)定時(shí)器、32 kHz晶振的休眠模式定時(shí)器,硬件支持CSMA/CA,供電電壓2.0 V~3.6 V,在掉電模式下電流消耗僅0.5 μA,可通過外部中斷或?qū)崟r(shí)時(shí)鐘喚醒。無線傳感器網(wǎng)絡(luò)可以被視為由多個(gè)能量、存儲(chǔ)空間和處理能力有限的CPU組成的計(jì)算機(jī)系統(tǒng),這些CPU相互獨(dú)立,又協(xié)同工作。為便于軟件開發(fā)與維護(hù),提高軟件開發(fā)效率,采用TinyOS嵌入式操作系統(tǒng)。TinyOS是一種專門為嵌入式系統(tǒng)設(shè)計(jì)的基于組件的操作系統(tǒng),主要應(yīng)用于無線傳感器網(wǎng)絡(luò),由nesC語言實(shí)現(xiàn),它采用輕量級(jí)線程技術(shù)、主動(dòng)消息通信技術(shù)、事件驅(qū)動(dòng)模式、組件化編程方式。使用該操作系統(tǒng)能夠提高CPU使用率,在TinyOS的調(diào)度下,所有與通信事件相關(guān)聯(lián)的任務(wù)在事件產(chǎn)生時(shí)可以迅速進(jìn)行處理。在處理完畢且沒有其他事件的情況下,CPU將進(jìn)入睡眠狀態(tài)。 1.3 節(jié)點(diǎn)設(shè)計(jì) 圖1為人體生理參數(shù)采集網(wǎng)絡(luò)結(jié)構(gòu)示意圖。為提高便攜性能,可以將其中的PC機(jī)用嵌入式設(shè)備替換。圖中各傳感器節(jié)點(diǎn)定時(shí)采樣、發(fā)送數(shù)據(jù),中心節(jié)點(diǎn)收到數(shù)據(jù)后通過串口送至PC機(jī),進(jìn)行顯示和處理。 節(jié)點(diǎn)有兩類:傳感器節(jié)點(diǎn)和中心節(jié)點(diǎn)。在TinyOS環(huán)境下編程語言為nesC,為支持組件化編程模式,nesC語言引入了接口和組件的概念。接口是一些功能類似或相關(guān)的函數(shù)聲明,根據(jù)調(diào)用方向不同命名為命令或事件,具體實(shí)現(xiàn)在提供或使用該接口的組件中。組件包括配件和模塊,配件負(fù)責(zé)把不同組件通過接口連接起來,模塊提供程序所需的代碼實(shí)現(xiàn)。對(duì)于傳感器節(jié)點(diǎn),需要針對(duì)不同的傳感器設(shè)計(jì)硬件驅(qū)動(dòng)組件,結(jié)合已有的中間組件(如系統(tǒng)組件、電源管理組件、A/D轉(zhuǎn)換組件、定時(shí)器組件、射頻組件等),設(shè)計(jì)應(yīng)用層的配置組件和模塊組件。下面以溫濕度傳感器節(jié)點(diǎn)為例說明設(shè)計(jì)方法,溫濕度傳感器采用瑞士SENSIRION公司的SHT10. 溫濕度傳感器節(jié)點(diǎn)的組件連接如圖2所示。小矩形框內(nèi)是各組件使用和提供的接口,箭頭方向表示命令調(diào)用的方向。因?yàn)樗袀鞲衅鞴?jié)點(diǎn)都具有定時(shí)采樣、數(shù)據(jù)處理、按協(xié)議數(shù)據(jù)收發(fā)、射頻模塊和MCU電源管理等功能,所以這里將與傳感器有關(guān)的操作單獨(dú)設(shè)計(jì)一個(gè)組件SHT10_C,在頂層配件中通過與不同類型傳感器組件連接,實(shí)現(xiàn)各傳感器節(jié)點(diǎn)功能。將與傳感器操作無關(guān)、與應(yīng)用相關(guān)的其他功能組合設(shè)計(jì)一個(gè)中間組件SensorNet_C,通過與下層配件McuSleepC、CsmaC和CC2430ActiveMessageC連接,實(shí)現(xiàn)MCU電源管理、CSMA協(xié)議及射頻模塊控制。配件SHT10_C和SensorNet_C僅提供組件間連接關(guān)系,其實(shí)現(xiàn)分別由SHT10_M和SensorNet_M完成。在調(diào)用命令Send.send()發(fā)送數(shù)據(jù)時(shí),首先進(jìn)行清潔信道評(píng)估,如果信道被占用,則需要退避一段時(shí)間。退避時(shí)間由隨機(jī)函數(shù)產(chǎn)生一個(gè)1~31之間的隨機(jī)數(shù),與一個(gè)給定初始值(這里設(shè)為160 μs,即10 symbols)相乘而得。初始值可以根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量進(jìn)行調(diào)整,節(jié)點(diǎn)少則初始值小,反之則適當(dāng)加大。 溫濕度傳感器節(jié)點(diǎn)的頂層配置組件程序如下: configuration SensorNodeSHT_C { } implementation { components MainC; /*TinyOS2主模塊,這里用于關(guān)聯(lián)系統(tǒng)啟動(dò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; /*實(shí)現(xiàn)接口STH的連接*/ }
評(píng)論