馬小鐵,李 凱
(北京服裝學(xué)院 信息工程學(xué)院,北京 100029)
生理參數(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)部位,以有線(xiàn)或無(wú)線(xiàn)方式將傳感器采集到的數(shù)據(jù)傳送到終端進(jìn)行處理。在使用中有線(xiàn)傳輸?shù)姆绞接袝r(shí)會(huì)受到限制,所以有必要研究采用無(wú)線(xiàn)方式傳輸數(shù)據(jù)的方法。如在服裝舒適性評(píng)價(jià)應(yīng)用中,主要方法有:在真實(shí)環(huán)境下對(duì)人體表溫濕度的測(cè)量;在模擬環(huán)境(人工氣候室)下對(duì)真人或假人體表溫濕度的測(cè)量,根據(jù)測(cè)量值給出主客觀(guān)評(píng)價(jià)。在進(jìn)行真實(shí)環(huán)境下人體穿著動(dòng)態(tài)實(shí)驗(yàn)時(shí),無(wú)線(xiàn)數(shù)據(jù)采集傳輸方式會(huì)帶來(lái)很大方便。無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)發(fā)展迅速,將這一技術(shù)應(yīng)用于人體生理參數(shù)采集在國(guó)內(nèi)已有相關(guān)應(yīng)用,如參考文獻(xiàn)[2]提出基于Zigbee技術(shù)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)在遠(yuǎn)程家庭監(jiān)護(hù)中的應(yīng)用,參考文獻(xiàn)[3]提出了無(wú)線(xiàn)傳感器技術(shù)在醫(yī)療監(jiān)護(hù)中的應(yīng)用。本文將結(jié)合具體應(yīng)用,從無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)軟硬件平臺(tái)選擇、網(wǎng)絡(luò)體系結(jié)構(gòu)、MAC層協(xié)議、節(jié)點(diǎn)低功耗設(shè)計(jì)等方面分析和設(shè)計(jì)人體參數(shù)采集。
網(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ǎn)單,有問(wèn)題的節(jié)點(diǎn)很容易在不影響其他節(jié)點(diǎn)性能的情況下被中心節(jié)點(diǎn)隔離掉。
在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中,MAC(Medium Access Control)協(xié)議決定無(wú)線(xiàn)信道的使用方式,在傳感器節(jié)點(diǎn)之間分配有限的無(wú)線(xiàn)通信資源,對(duì)傳感器網(wǎng)絡(luò)的性能有較大影響,是保證無(wú)線(xiàn)傳感器網(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í)打開(kāi)射頻模塊,首先對(duì)信道進(jìn)行偵聽(tīng),若信道被占用,則退避一段隨機(jī)時(shí)間后再繼續(xù)偵聽(tīng),若此時(shí)信道沒(méi)有被占用,則發(fā)送數(shù)據(jù),得到確認(rèn)后關(guān)閉射頻模塊,MCU進(jìn)入睡眠模式,等待下一次定時(shí)觸發(fā)。
傳感器節(jié)點(diǎn)要求體積小、功耗低、能夠進(jìn)行數(shù)據(jù)處理和無(wú)線(xiàn)收發(fā),這里采用TI/Chipcon公司CC2430EM評(píng)估板作為無(wú)線(xiàn)收發(fā)模塊,傳感器電路根據(jù)需要自行設(shè)計(jì)。CC2430評(píng)估板的 P0.1~P0.7、P1.0~P1.7及 P2.0~P2.2口線(xiàn),可與傳感器電路連接進(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,可通過(guò)外部中斷或?qū)崟r(shí)時(shí)鐘喚醒。無(wú)線(xiàn)傳感器網(wǎng)絡(luò)可以被視為由多個(gè)能量、存儲(chǔ)空間和處理能力有限的CPU組成的計(jì)算機(jī)系統(tǒng),這些CPU相互獨(dú)立,又協(xié)同工作。為便于軟件開(kāi)發(fā)與維護(hù),提高軟件開(kāi)發(fā)效率,采用TinyOS嵌入式操作系統(tǒng)。TinyOS是一種專(zhuān)門(mén)為嵌入式系統(tǒng)設(shè)計(jì)的基于組件的操作系統(tǒng),主要應(yīng)用于無(wú)線(xiàn)傳感器網(wǎng)絡(luò),由nesC語(yǔ)言實(shí)現(xiàn),它采用輕量級(jí)線(xiàn)程技術(shù)、主動(dòng)消息通信技術(shù)、事件驅(qū)動(dòng)模式、組件化編程方式。使用該操作系統(tǒng)能夠提高CPU使用率,在TinyOS的調(diào)度下,所有與通信事件相關(guān)聯(lián)的任務(wù)在事件產(chǎn)生時(shí)可以迅速進(jìn)行處理。在處理完畢且沒(méi)有其他事件的情況下,CPU將進(jìn)入睡眠狀態(tài)。
圖1為人體生理參數(shù)采集網(wǎng)絡(luò)結(jié)構(gòu)示意圖。為提高便攜性能,可以將其中的PC機(jī)用嵌入式設(shè)備替換。圖中各傳感器節(jié)點(diǎn)定時(shí)采樣、發(fā)送數(shù)據(jù),中心節(jié)點(diǎn)收到數(shù)據(jù)后通過(guò)串口送至PC機(jī),進(jìn)行顯示和處理。
圖1 無(wú)線(xiàn)數(shù)據(jù)采集網(wǎng)絡(luò)結(jié)構(gòu)圖
節(jié)點(diǎn)有兩類(lèi):傳感器節(jié)點(diǎn)和中心節(jié)點(diǎn)。在TinyOS環(huán)境下編程語(yǔ)言為nesC,為支持組件化編程模式,nesC語(yǔ)言引入了接口和組件的概念。接口是一些功能類(lèi)似或相關(guān)的函數(shù)聲明,根據(jù)調(diào)用方向不同命名為命令或事件,具體實(shí)現(xiàn)在提供或使用該接口的組件中。組件包括配件和模塊,配件負(fù)責(zé)把不同組件通過(guò)接口連接起來(lái),模塊提供程序所需的代碼實(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)為例說(shuō)明設(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,在頂層配件中通過(guò)與不同類(lèi)型傳感器組件連接,實(shí)現(xiàn)各傳感器節(jié)點(diǎn)功能。將與傳感器操作無(wú)關(guān)、與應(yīng)用相關(guān)的其他功能組合設(shè)計(jì)一個(gè)中間組件SensorNet_C,通過(guò)與下層配件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)的頂層配置組件程序如下:
在配件SensorNet_C中,通過(guò)連接配件CC2430ActiveMessageC使用模塊組件CC2430ActiveMessageP中提供的射頻功能。CC2430ActiveMessageP是射頻堆棧中的頂層組件,提供單跳通信實(shí)現(xiàn)方法。通過(guò)連接配件McuSleepC使用模塊組件McuSleepP中的MCU電源管理功能,實(shí)現(xiàn)MCU睡眠、定時(shí)和啟動(dòng)等功能,以降低節(jié)點(diǎn)功耗。需要在使用McuSleepP組件的上層組件SensorNet_M中實(shí)現(xiàn)事件 McuSleepControl.beforeSleep()和 McuSleepControl.after-Wakeup(),以保護(hù)和恢復(fù)睡眠前后的狀態(tài)。
溫濕度傳感器SHT10具有兩線(xiàn)制串行接口,輸出已校準(zhǔn)數(shù)字信號(hào)。這里定義SHT10的接口SHT如下,需要在模塊組件SHT10_M中實(shí)現(xiàn)接口所定義的命令。
對(duì)人體生理參數(shù)進(jìn)行采集,尤其在室外應(yīng)用中,低功耗對(duì)于電池供電的傳感器節(jié)點(diǎn)來(lái)說(shuō)非常重要。以下應(yīng)用參考文獻(xiàn)[6]中的方法對(duì)本設(shè)計(jì)中的傳感器節(jié)點(diǎn)的功耗進(jìn)行計(jì)算。采用3.3 V直流電源供電,將一個(gè)1%精度的10 Ω電阻與CC2430EM串聯(lián),通過(guò)測(cè)量電阻兩端的電壓降來(lái)計(jì)算一個(gè)采樣周期中各個(gè)時(shí)間段的電流。設(shè)采樣周期T=10 s,CC2430射頻輸出功率設(shè)置為100%,圖3為使用示波器TPS2024在傳感器節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)獲取的電阻兩端電壓變化波形圖,水平方向2.50 ms/div,垂直方向100 mV/div。表1為活動(dòng)期間的電流消耗。
一個(gè)采樣周期T內(nèi)低功耗模式時(shí)間(A段、G段,CC2430在 PM2模式下):
低功耗模式下(CC2430在PM2模式下)電流消耗:
表1 傳感器節(jié)點(diǎn)各時(shí)段電流消耗計(jì)算
一個(gè)采樣周期T內(nèi)總電流消耗:
每小時(shí)消耗電流:1.326×10-4×360=0.047 74 mA
假設(shè)使用60 mAh的紐扣電池,則可以使用時(shí)間為:60 mAh/0.047 74 mA=1 256 h≈52天
本文采用nesC語(yǔ)言設(shè)計(jì)了基于TinyOS的中心節(jié)點(diǎn)和傳感器節(jié)點(diǎn)程序,實(shí)現(xiàn)了使用CSMA/CA協(xié)議的星型無(wú)線(xiàn)傳感器網(wǎng)絡(luò),并以溫濕度數(shù)據(jù)采集為例,設(shè)計(jì)了采用溫濕度數(shù)字傳感器SHT10的傳感器節(jié)點(diǎn)。當(dāng)采樣周期為10 s、使用60 mAh電池供電時(shí),傳感器節(jié)點(diǎn)可持續(xù)工作52天。本設(shè)計(jì)能夠滿(mǎn)足無(wú)線(xiàn)、便攜、低功耗地采集人體生理參數(shù)的需要。使用模塊化編程語(yǔ)言nesC,提高了開(kāi)發(fā)效率,便于擴(kuò)展。本文介紹的研究和設(shè)計(jì)方法可在相關(guān)應(yīng)用中使用。
[1]周永凱,張建春.服裝舒適性與評(píng)價(jià)(第一版)[M].北京:北京工藝美術(shù)出版社,2006.
[2]郭世富,馬樹(shù)元,吳平東,等.基于 Zigbee技術(shù)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)在遠(yuǎn)程家庭監(jiān)護(hù)系統(tǒng)中的應(yīng)用研究 [J].電子技術(shù)應(yīng)用,2006,32(6):28-30.
[3]董大鵬,唐曉英,劉偉峰,等.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)在醫(yī)療監(jiān)護(hù)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2008,34(10):29-31.
[4]HALIT E著.無(wú)線(xiàn)傳感器及元器件:網(wǎng)絡(luò)、設(shè)計(jì)與應(yīng)用(第一版)[M].紀(jì)曉東,趙北雁,彭木根,譯.北京:機(jī)械工業(yè)出版社,2008.
[5]TI.CC2430EM Reference Design(Rev.C)[DB/OL].http://focus.ti.com/docs/toolsw/folders/print/cc2430dk.html.2010.
[6]SELVIG B.Measuring power consumption with CC2430&Z-Stack application note AN053 TI lit[DB/OL].http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=swra144.2010.