張 軒,劉 昊,李智群
(1.東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心,南京 210096;2.東南大學(xué)射頻與光電集成電路研究所,南京 210096)
?
一種超低功耗無線傳感器網(wǎng)絡(luò)MAC協(xié)議*
張 軒1,劉 昊1,李智群2*
(1.東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心,南京 210096;2.東南大學(xué)射頻與光電集成電路研究所,南京 210096)
在無線傳感器網(wǎng)絡(luò)中,能量是一個(gè)關(guān)鍵資源。傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通常在大部分時(shí)間里處于休眠狀態(tài)以節(jié)約能量。其中,節(jié)點(diǎn)間精確地同步和超低的休眠功耗能夠本質(zhì)上延長無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的壽命。然而現(xiàn)實(shí)中節(jié)點(diǎn)在喚醒周期設(shè)置、時(shí)鐘源選擇和網(wǎng)絡(luò)節(jié)點(diǎn)同步時(shí)很難滿足理論研究時(shí)提出的要求。因此,提出了一種低功耗無線傳感器網(wǎng)絡(luò)MAC協(xié)議:允許節(jié)點(diǎn)使用多種時(shí)鐘源實(shí)現(xiàn)功耗最優(yōu)配置,在休眠時(shí)采用內(nèi)部時(shí)鐘以達(dá)到最低功耗,在工作時(shí)采用外部晶振以保證射頻性能,同時(shí)為了解決多時(shí)鐘源誤差增大且休眠周期變化帶來的問題,提出了多時(shí)鐘源休眠喚醒機(jī)制和節(jié)點(diǎn)同步策略。最后文章在IEEE802.15.4硬件測試平臺上完成了多時(shí)鐘源MAC協(xié)議與SMAC協(xié)議的實(shí)證測試,結(jié)果表明對比SMAC協(xié)議的喚醒和同步機(jī)制,低功耗無線傳感器網(wǎng)絡(luò)MAC協(xié)議在傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上能夠極大地減少休眠功耗并顯著地節(jié)約同步的時(shí)間,從而大大延長節(jié)點(diǎn)壽命。
無線傳感器網(wǎng)絡(luò);超低功耗;時(shí)鐘校準(zhǔn);同步機(jī)制
低功耗無線傳感器網(wǎng)絡(luò)(WSN)在環(huán)境監(jiān)測、目標(biāo)檢測以及智能抄表等系統(tǒng)中有著廣泛應(yīng)用,潛力巨大。但是這些應(yīng)用中傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通常是電池供電、不可拆卸和移動(dòng)的節(jié)點(diǎn),因此大部分方案將這些傳感器節(jié)點(diǎn)的低功耗功能放在首位,而將性能放在第2位。
為了降低功耗,無線傳感器網(wǎng)絡(luò)MAC協(xié)議應(yīng)用中廣泛的引入了周期性工作的低功耗技術(shù),這類技術(shù)將傳感器節(jié)點(diǎn)周期性的調(diào)整成工作狀態(tài),包括:SMAC[1],PW-MAC[2]和EM-MAC[3]等,其中周期的占空比是指節(jié)點(diǎn)無線工作的時(shí)間除以整個(gè)節(jié)點(diǎn)工作的時(shí)間。隨著技術(shù)的發(fā)展,占空比已經(jīng)達(dá)到了0.1%甚至更低[4]。在如此低的工作占空比周期下,節(jié)點(diǎn)休眠的功耗占到了主要的部分,直接決定了網(wǎng)絡(luò)的工作壽命。因此,降低休眠的功耗對于低占空比工作周期的節(jié)點(diǎn)來說至關(guān)重要。同時(shí),無線傳感器網(wǎng)絡(luò)MAC協(xié)議的同步機(jī)制在很大程度上也影響了節(jié)點(diǎn)的功耗,目前研究方向上主要基于兩種方式:SRS(Sender-Receiver Synchronization)機(jī)制如TPSN[5]和FTSP[6]算法;RRS(Receiver-Receiver Synchronization)機(jī)制[7]如RBS[8]算法。同步機(jī)制的研究方向主要集中于兩個(gè)方面:減少網(wǎng)絡(luò)同步開銷和提高單跳同步精度,如PBS算法[9]通過監(jiān)聽鄰居節(jié)點(diǎn)時(shí)鐘同步信息來校準(zhǔn)自身的時(shí)鐘,MBS算法[10]通過基準(zhǔn)點(diǎn)時(shí)間來計(jì)算轉(zhuǎn)發(fā)時(shí)間,從而減小開銷并維持了與RBS相當(dāng)?shù)木?MATS算法[11]基于采集樹的架構(gòu)提出了支持多跳低功耗的時(shí)鐘同步算法,隨著同步協(xié)議的研究深入,越來越多的采用了軟件建模方式來評估時(shí)鐘的精度和開銷,利用均方誤差(MSE)和最優(yōu)線性擬合[6]等技術(shù)來提升評估的準(zhǔn)確性和預(yù)見性。但是目前的大部分研究沒有結(jié)合實(shí)際硬件節(jié)點(diǎn)特性進(jìn)行設(shè)計(jì),在遇到成本問題、硬件局限性問題時(shí),傳統(tǒng)理論建模的局限性就顯得尤為突出。
本文對于低功耗的關(guān)注集中于兩點(diǎn):休眠期間的功耗和節(jié)點(diǎn)間周期性同步的功耗。在周期性休眠喚醒的工作模式時(shí)需要有一個(gè)時(shí)鐘源進(jìn)行定時(shí)工作,現(xiàn)有的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片如德州儀器的CC2530和飛思卡爾公司的MC13213[12]以及很多學(xué)術(shù)界通用的平臺TelosB和MicaZ等都需要節(jié)點(diǎn)在休眠時(shí)設(shè)置一個(gè)時(shí)鐘用于定時(shí)喚醒,這個(gè)時(shí)鐘來自多種時(shí)鐘源。對于時(shí)鐘源來說,外部時(shí)鐘(晶體振蕩器)比內(nèi)部時(shí)鐘有著更好的精度,內(nèi)部晶振誤差通常在1~5%而外部晶振只有5~40×10-6。因此在學(xué)術(shù)界協(xié)議研究時(shí)廣泛采用外部時(shí)鐘作為單一時(shí)鐘源[13],然而外部時(shí)鐘需要PLL等輔助電路,功耗比內(nèi)部時(shí)鐘高出2-3個(gè)數(shù)量級,這一點(diǎn)在很多低功耗無線傳感器網(wǎng)絡(luò)協(xié)議設(shè)計(jì)時(shí)沒有考慮到。例如,經(jīng)過測算MicaZ平臺的德州儀器CC2530采用外部時(shí)鐘休眠的功耗比內(nèi)部時(shí)鐘休眠高出幾百倍。因此,如何能利用好內(nèi)部時(shí)鐘功耗低但是精度較差,外時(shí)鐘精度高功耗高的特點(diǎn)設(shè)計(jì)出一個(gè)多時(shí)鐘模式工作的低功耗MAC協(xié)議是一個(gè)非常有吸引力的研究方向。
我們知道內(nèi)部時(shí)鐘功耗低,工作頻率也低,按照內(nèi)部時(shí)鐘最大為2 kHz舉例,MCU的8位定時(shí)器最短的休眠時(shí)間段約8 ms,最長為1 024 ms,當(dāng)需要設(shè)置的周期很長時(shí),必須拆分為多個(gè)1 024 ms休眠周期進(jìn)行多次休眠,而需要設(shè)定的周期不是8 ms的整數(shù)倍,如17 ms時(shí),內(nèi)部時(shí)鐘休眠16 ms后需要切換到更加精確的外部時(shí)鐘源進(jìn)行工作,這就產(chǎn)生了多時(shí)鐘源的切換問題。因此,雖然采用內(nèi)部時(shí)鐘能夠極大的減少休眠期的功耗,卻帶來了復(fù)雜的節(jié)點(diǎn)間時(shí)鐘誤差校準(zhǔn)、節(jié)點(diǎn)自身的喚醒設(shè)定等問題有待解決。
本文提出了一種針對多時(shí)鐘源的低功耗無線傳感器網(wǎng)絡(luò)MAC協(xié)議:設(shè)計(jì)了一套低功耗節(jié)點(diǎn)間時(shí)鐘同步和校準(zhǔn)策略,解決了內(nèi)部時(shí)鐘的精度差,溫漂嚴(yán)重的問題,并依此設(shè)計(jì)了一種超低占空比工作情況下的節(jié)點(diǎn)休眠喚醒工作機(jī)制。本文將提出的MAC協(xié)議與傳統(tǒng)SMAC協(xié)議共同在真實(shí)的硬件測試臺上進(jìn)行了評估。結(jié)果表明,本文設(shè)計(jì)的時(shí)鐘同步校準(zhǔn)算法和改進(jìn)后的節(jié)點(diǎn)休眠喚醒機(jī)制能夠顯著的減小節(jié)點(diǎn)的功耗。
本文剩余部分組織結(jié)構(gòu)如下:第2章描述了雙時(shí)鐘的配置問題和同步算法設(shè)計(jì);第3章設(shè)計(jì)了多時(shí)鐘源低功耗休眠喚醒機(jī)制;第四章比較了ULP-MAC與SMAC協(xié)議并得出結(jié)論;最后一章對全文做了總結(jié)。
無線傳感器網(wǎng)絡(luò)收發(fā)芯片主要分為兩個(gè)組成部分:射頻收發(fā)器又稱射頻調(diào)制解調(diào)器以及MCU,圖1展示了一種目前典型的符合IEEE802.15.4國際標(biāo)準(zhǔn)的無線傳感器網(wǎng)絡(luò)專用芯片及其時(shí)鐘輸入方式,無線芯片工作所需的時(shí)鐘可以由多個(gè)時(shí)鐘源來提供,可以是外部輸入也可以是內(nèi)部晶振。通常,考慮到無線通信的頻率精度的要求,無線通信部分的電路一般設(shè)計(jì)采用外部晶振作為時(shí)鐘源工作。MCU的時(shí)鐘源選擇就更為廣泛了,既可以與無線部分的電路共享一個(gè)外部晶振源如圖1中CLKO為射頻電路向MCU提供了一路共享晶振1的時(shí)鐘信號,或者采用內(nèi)部時(shí)鐘發(fā)生器(ICG)通過外接一個(gè)外部晶振2作為時(shí)鐘源,甚至可以直接采用內(nèi)部低速實(shí)時(shí)時(shí)鐘(RTI)進(jìn)行工作,由于外部時(shí)鐘輸入需要PLL等額外電路進(jìn)行鎖頻、倍頻等工作,無線芯片采用外部時(shí)鐘將比僅采用內(nèi)部時(shí)鐘消耗更多的功耗。
如圖1所示,通常情況下,采用類似CLKO的時(shí)鐘共享引腳,無線電路和MCU電路之間共享晶振1作為時(shí)鐘源,晶振2可以不接,這樣既保證了時(shí)鐘精度,又能夠節(jié)約成本。但是當(dāng)無線傳感器節(jié)點(diǎn)需要進(jìn)入休眠狀態(tài)時(shí),射頻部分以及ICG部分的晶振卻都不能被關(guān)閉,否則時(shí)鐘源就沒有了。在休眠模式下無線傳感器節(jié)點(diǎn)使用外部晶振工作會(huì)導(dǎo)致大量的功耗浪費(fèi),而如果此時(shí)采用RTI作為時(shí)鐘源則功耗將大大降低。因此,本文提出了雙時(shí)鐘配置方案,在節(jié)點(diǎn)喚醒后射頻需要工作時(shí)采用外部時(shí)鐘,而當(dāng)節(jié)點(diǎn)休眠時(shí)則采用內(nèi)部時(shí)鐘進(jìn)行工作。
圖1 典型的IEEE802.15.4時(shí)鐘單元
顯然,采用雙時(shí)鐘方式工作后,無線傳感器節(jié)點(diǎn)的休眠功耗大幅下降,但由此帶來了另外一個(gè)問題:MCU內(nèi)部時(shí)鐘的精度遠(yuǎn)遠(yuǎn)低于外部晶體振蕩器的精度,這導(dǎo)致需要精確計(jì)時(shí)的場合無法使用。目前許多無線傳感器網(wǎng)絡(luò)協(xié)議采用同步方式工作,學(xué)術(shù)界提出了許多時(shí)鐘同步算法[14],這些算法大都假設(shè)一個(gè)節(jié)點(diǎn)只有一個(gè)時(shí)鐘源,為了滿足實(shí)際的節(jié)點(diǎn)的使用需求,本文提出了一種新的采用雙時(shí)鐘配置的時(shí)間同步算法,并修正了時(shí)鐘精度問題。
無線傳感器網(wǎng)絡(luò)中有兩種典型的節(jié)點(diǎn),一種稱之為全功能節(jié)點(diǎn)(BS),這類節(jié)點(diǎn)可以作為網(wǎng)關(guān)、基站、路由器等,通常是無線傳感器網(wǎng)絡(luò)的骨干節(jié)點(diǎn)。另一種節(jié)點(diǎn)稱之為傳感器節(jié)點(diǎn)(Node),通常采用電池供電,低功耗模式運(yùn)行。本文的同步算法,參考時(shí)鐘就是以組建網(wǎng)絡(luò)的全功能節(jié)點(diǎn)作為基準(zhǔn)對全網(wǎng)絡(luò)其他節(jié)點(diǎn)進(jìn)行同步和校準(zhǔn),概括地說雙時(shí)鐘同步算法是指在雙時(shí)鐘工作模式下的低功耗節(jié)點(diǎn),能夠通過全功能節(jié)點(diǎn)發(fā)出的兩次同步信標(biāo),利用本文提出的同步算法完成時(shí)鐘同步并校準(zhǔn)自身的系統(tǒng)時(shí)鐘。
本算法中,全功能節(jié)點(diǎn)周期性的廣播信標(biāo)幀,信標(biāo)幀包含節(jié)點(diǎn)當(dāng)前時(shí)鐘信息以及約定下一次廣播信標(biāo)幀的時(shí)間,如圖2中所示,全功能節(jié)點(diǎn)在TS1時(shí)刻發(fā)送完信標(biāo)幀后仍然保持活動(dòng)狀態(tài),而傳感器節(jié)點(diǎn)接收到信標(biāo)后進(jìn)入休眠狀態(tài)直到下次約定的信標(biāo)幀時(shí)間到來,在這個(gè)過程中傳感器節(jié)點(diǎn)在接收信標(biāo)時(shí)使用外部時(shí)鐘而在休眠時(shí)切換為內(nèi)部時(shí)鐘以節(jié)省功耗。但是由于內(nèi)部時(shí)鐘精度較差,傳感器節(jié)點(diǎn)有可能會(huì)在約定的時(shí)間之前或者之后很久才會(huì)重新進(jìn)入接收狀態(tài),如果在之前很久醒來,節(jié)點(diǎn)會(huì)一直等待全功能節(jié)點(diǎn)發(fā)送下一次信標(biāo),如果是推遲醒來,則節(jié)點(diǎn)會(huì)錯(cuò)過本次信標(biāo)并需要等待整個(gè)休眠周期直到下一次信標(biāo)到來。傳感器節(jié)點(diǎn)收到下一次信標(biāo)幀后將自身的接收時(shí)間TRx存儲(chǔ)在一個(gè)時(shí)序表中并與信標(biāo)中的時(shí)間戳TSx相對應(yīng),如圖2中的TR1,TR2,TR3,TS1,TS2,TS3。
圖2 全功能節(jié)點(diǎn)和傳感器節(jié)點(diǎn)間的信標(biāo)傳輸過程
(1)
(2)
兩次信標(biāo)幀實(shí)際到達(dá)時(shí)間差可以通過以下公式計(jì)算:
(3)
接收節(jié)點(diǎn)收到兩次信標(biāo)時(shí)自身的時(shí)間為:
TNode=TR2-TR1
(4)
發(fā)送信標(biāo)全功能節(jié)點(diǎn)總是處于工作狀態(tài),并且使用外部時(shí)鐘進(jìn)行工作。而傳感器節(jié)點(diǎn)在休眠時(shí)候需要使用內(nèi)部RTI時(shí)鐘進(jìn)行工作,因此兩個(gè)節(jié)點(diǎn)在一次休眠后的時(shí)鐘偏離度為:θ=(TBS-TNode)/Tsleep=[(TS2-TS1)-(TR2-TR1)]/Tsleep
(5)
其中,TBS-TNode為相對時(shí)鐘偏移,Tsleep為傳感器節(jié)點(diǎn)在同步過程中每次休眠的時(shí)間。因此節(jié)點(diǎn)可以通過時(shí)鐘偏移率θ對自身的時(shí)鐘進(jìn)行校準(zhǔn)
同時(shí),圖2所示的時(shí)鐘同步過程可以擴(kuò)展到多跳傳感器節(jié)點(diǎn)網(wǎng)絡(luò)中,只要在信標(biāo)中聲明自身的設(shè)備屬性(通常為全功能節(jié)點(diǎn)或低功耗傳感器節(jié)點(diǎn)),以及節(jié)點(diǎn)轉(zhuǎn)發(fā)這個(gè)信標(biāo)的次數(shù)(通常稱為廣播半徑),待同步的節(jié)點(diǎn)在收到兩次信標(biāo)后完成同步并能夠?yàn)槠湎乱惶?jié)點(diǎn)周期性的提供同步服務(wù)。節(jié)點(diǎn)通過這樣一級一級的同步過程,可以實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)全網(wǎng)同步以及今后的周期性同步校準(zhǔn)。
本文提出的雙時(shí)鐘校準(zhǔn)算法可以廣泛應(yīng)用在低功耗節(jié)點(diǎn)為主無線傳感器網(wǎng)絡(luò)絡(luò)中并大大的節(jié)約了節(jié)點(diǎn)休眠功耗。下一章,我們將研究另一個(gè)能量損耗問題,即節(jié)點(diǎn)周期性喚醒和休眠。
無線傳感器節(jié)點(diǎn)休眠時(shí)采用內(nèi)部時(shí)鐘以節(jié)約功耗,節(jié)點(diǎn)的內(nèi)部時(shí)鐘通常工作在一個(gè)低速的固定頻率,如32.768 kHz或2 kHz等,而配置休眠的方式是通過一個(gè)8位或16位寄存器進(jìn)行計(jì)時(shí),達(dá)到設(shè)定的時(shí)間則產(chǎn)生一次喚醒過程,因此節(jié)點(diǎn)的喚醒時(shí)間選擇并不是連續(xù)的,而是根據(jù)節(jié)點(diǎn)的寄存器設(shè)定的離散化的值。例如飛思卡爾公司的IEEE802.15.4芯片MC13213可以設(shè)定為8 ms、32 ms、64 ms、128 ms、256 ms、512 ms和1 024 ms等,如果某些應(yīng)用需求超過了內(nèi)部時(shí)鐘寄存器允許的范圍,則MCU可以通過設(shè)置一個(gè)軟件時(shí)鐘,并利用多次喚醒休眠累加來實(shí)現(xiàn)超長時(shí)間休眠。問題是,如何選擇一個(gè)最佳的喚醒時(shí)間設(shè)置實(shí)現(xiàn)MCU喚醒次數(shù)最少,喚醒時(shí)間最短?目前這個(gè)問題在眾多研究同步的文章中均沒有提及,因此本文設(shè)計(jì)了兩種可配置的MCU喚醒機(jī)制:固定周期的休眠喚醒機(jī)制和可變周期的休眠喚醒機(jī)制。
如圖3所示,假設(shè)一個(gè)節(jié)點(diǎn)在下次喚醒前需要休眠1 s,如果節(jié)點(diǎn)內(nèi)部時(shí)鐘寄存器設(shè)置每次的喚醒時(shí)間為256 ms并考慮到時(shí)鐘漂移和累積誤差等因素,MCU會(huì)經(jīng)歷3次休眠喚醒周期并在第768 ms以后(下文稱為MCU喚醒狀態(tài))一直保持喚醒以保證在1 s到來時(shí)處于接收狀態(tài),而當(dāng)內(nèi)部時(shí)鐘寄存器設(shè)置每次的喚醒時(shí)間為8 ms或32 ms時(shí),MCU喚醒狀態(tài)所保持的時(shí)間就會(huì)相應(yīng)的縮短,但是整個(gè)1 s周期內(nèi)喚醒的次數(shù)就會(huì)增加,這同樣會(huì)帶來額外的功耗。
圖3 固定周期的休眠喚醒機(jī)制和可變周期的休眠喚醒機(jī)制
另一種喚醒機(jī)制是可變周期喚醒機(jī)制,即節(jié)點(diǎn)可以根據(jù)剩余休眠時(shí)間選擇最大的可配置休眠時(shí)間,節(jié)點(diǎn)會(huì)在每一次休眠之前計(jì)算剩余需要休眠的時(shí)間,并將內(nèi)部時(shí)鐘寄存器配置為最接近該時(shí)間的數(shù)值,如圖3所示,在1 s的休眠周期中,節(jié)點(diǎn)會(huì)不斷地調(diào)節(jié)內(nèi)部時(shí)鐘寄存器數(shù)值為:512 ms、256 ms、128 ms、64 ms、32 ms和8 ms,利用可變周期休眠喚醒機(jī)制,MCU將最后的喚醒時(shí)間變得最小,最大程度的節(jié)約功耗。
顯然,在具備多時(shí)鐘源的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中,使用可變周期休眠喚醒機(jī)制更為合適,這不僅僅考慮到可以更加節(jié)約功耗,而是因?yàn)楣潭ㄖ芷谛菝邌拘褭C(jī)制會(huì)因?yàn)閮?nèi)部時(shí)鐘的精度差導(dǎo)致另一個(gè)嚴(yán)重問題。盡管前文提出的同步算法可以校準(zhǔn)節(jié)點(diǎn)的系統(tǒng)時(shí)鐘,但是卻并不能改變節(jié)點(diǎn)內(nèi)部時(shí)鐘的精度,當(dāng)系統(tǒng)僅僅采用外部時(shí)鐘時(shí),MCU可以較為準(zhǔn)確的設(shè)置其需要的休眠周期,因?yàn)橥獠繒r(shí)鐘的精度可以做到×10-6級別。而采用多時(shí)鐘源時(shí),當(dāng)一個(gè)節(jié)點(diǎn)設(shè)置了內(nèi)部時(shí)鐘休眠周期為512 ms,由于精度問題可能會(huì)遠(yuǎn)遠(yuǎn)大于或小于512 ms(內(nèi)部時(shí)鐘精度通常在百分之幾),這就導(dǎo)致了很難事先為所有節(jié)點(diǎn)選定一套如圖3所示休眠周期配置表。
本章中,我們將評估兩種休眠喚醒機(jī)制對功耗的影響。首先我們將先評估雙時(shí)鐘同步校準(zhǔn)算法對功耗的影響,因?yàn)樗切菝邌拘褭C(jī)制的基礎(chǔ)。此后,我們在相同的休眠喚醒算法下評估學(xué)術(shù)界常用的單時(shí)鐘休眠配置機(jī)制和本文針對雙時(shí)鐘情況提出可變休眠配置機(jī)制對功耗的影響。
3.1 同步精度
圖4 時(shí)鐘同步算法測試方法
我們在目前國際上較為流行的IEEE082.15.4硬件平臺上進(jìn)行了本次評估,平臺采用的是飛思卡爾公司的SoC芯片MC13213,總計(jì)使用了5個(gè)模組,其中一個(gè)作為全功能節(jié)點(diǎn),另外4個(gè)作為傳感器節(jié)點(diǎn),整個(gè)無線網(wǎng)絡(luò)每一秒鐘進(jìn)行一次同步。每個(gè)節(jié)點(diǎn)在軟件中設(shè)置一個(gè)系統(tǒng)時(shí)鐘參數(shù),對于全功能節(jié)點(diǎn)來說,這個(gè)系統(tǒng)時(shí)鐘始終工作在外部時(shí)鐘模式下,對于傳感器節(jié)點(diǎn)來說,我們首先讓節(jié)點(diǎn)處于周期性休眠狀態(tài),節(jié)點(diǎn)采用內(nèi)部時(shí)鐘,當(dāng)節(jié)點(diǎn)在喚醒期收到第一個(gè)信標(biāo)幀以后,開始如圖2所示的同步過程,當(dāng)節(jié)點(diǎn)完成同步后恢復(fù)到僅采用內(nèi)部時(shí)鐘的周期性休眠喚醒模式。測試方法如圖4所示,本輪測試每次由一個(gè)全功能節(jié)點(diǎn)和一個(gè)傳感器節(jié)點(diǎn)進(jìn)行測試。我們控制MCU的一個(gè)I/O引腳在系統(tǒng)時(shí)鐘到達(dá)1 s時(shí)觸發(fā)一次變化,并將此變化的通過示波器記錄下來。我們觀察并記錄下每個(gè)節(jié)點(diǎn)在同步前和同步后的每秒系統(tǒng)時(shí)鐘波形變化,總共記錄10 s,并通過算數(shù)平均計(jì)算傳感器節(jié)點(diǎn)的1 s時(shí)間與全功能節(jié)點(diǎn)1 s時(shí)間的誤差。
圖5展示了時(shí)鐘同步算法經(jīng)過10次同步后的效果,其中“sensor node B/S”和“sensor node A/S”表示同步前和同步后的效果。從圖中可看到,剛開始4個(gè)傳感器節(jié)點(diǎn)和全功能節(jié)點(diǎn)之間誤差都不盡相同,從2.9 ms到34.4 ms(誤差約為0.3%到3%)。當(dāng)完成時(shí)鐘同步算法后,4個(gè)傳感器節(jié)點(diǎn)與全功能節(jié)點(diǎn)誤差范圍縮小到0.6 ms到0.8 ms(誤差約為0.06%到0.08%)。
圖5 短時(shí)間同步效果圖
圖6展示了同步算法在一個(gè)較長時(shí)間下的效果。我們每一分鐘進(jìn)行一次同步共計(jì)10 min,并通過示波器記錄下實(shí)際時(shí)間和節(jié)點(diǎn)系統(tǒng)時(shí)間并進(jìn)行計(jì)算。從圖中我們可以看出在同步前4個(gè)節(jié)點(diǎn)與全功能節(jié)點(diǎn)間的誤差較大,為0.09 s到2.09 s(誤差約為0.2%到3%),當(dāng)完成同步后,誤差縮小到27 ms到34 ms之間(誤差約為0.05%到0.06%)。
圖6 長時(shí)間同步效果圖
3.2 功耗
本節(jié)我們將對兩種時(shí)鐘配置機(jī)制和兩種休眠喚醒機(jī)制進(jìn)行評估。如第2章所述,固定周期休眠喚醒機(jī)制并不適合雙時(shí)鐘的應(yīng)用,我們將比較單時(shí)鐘同步算法下的兩種休眠喚醒機(jī)制以及雙時(shí)鐘模式下的可變周期的休眠喚醒機(jī)制3種組合模式下的功耗情況。
對于固定周期休眠喚醒機(jī)制下節(jié)點(diǎn)功耗而言,最重要的是休眠喚醒周期設(shè)定問題。因此首先我們找到在何種周期下休眠喚醒機(jī)制能夠給節(jié)點(diǎn)帶來最小的功耗,并依據(jù)此周期進(jìn)行接下來的測試。在這組測試中,節(jié)點(diǎn)的休眠喚醒周期設(shè)置為1 s,全功能節(jié)點(diǎn)每秒鐘廣播一個(gè)信標(biāo)幀,傳感器節(jié)點(diǎn)在同步后的每秒鐘喚醒時(shí)會(huì)等待約2 ms來接收全功能節(jié)點(diǎn)的信標(biāo)幀,用來模擬周期性同步和數(shù)據(jù)傳輸,之后進(jìn)入休眠模式。我們讓傳感器節(jié)點(diǎn)僅僅使用外部時(shí)鐘機(jī)制并且將休眠間隔設(shè)置為可以在32 ms到512 ms之間,測試節(jié)點(diǎn)利用圖3中的固定時(shí)間機(jī)制分配休眠和喚醒的時(shí)間,并記錄下每一秒MCU需要醒來多久。每一個(gè)節(jié)點(diǎn)的測試結(jié)果非常接近,如圖7所示。在圖中我們可以看到,當(dāng)使用64 ms作為每次休眠喚醒的周期時(shí),固定周期的機(jī)制可以達(dá)到最低的功耗,盡快采用32 ms為周期可以使得最后MCU的等待時(shí)間更短,但是更為頻繁的休眠喚醒反而消耗了更多的能量,因此在接下來的評估中,我們將選擇64 ms作為固定周期休眠喚醒機(jī)制的周期。
圖7 在固定周期休眠喚醒機(jī)制下不同休眠喚醒周期MCU處于喚醒的時(shí)間
接著,我們將比較兩種機(jī)制的功耗情況。測試框圖如圖8所示,每次試驗(yàn)由一個(gè)全功能節(jié)點(diǎn)和4個(gè)傳感器節(jié)點(diǎn)組成。節(jié)點(diǎn)的休眠喚醒周期設(shè)置為1 s,全功能節(jié)點(diǎn)每秒鐘廣播一個(gè)信標(biāo)幀,傳感器節(jié)點(diǎn)在同步后的每秒鐘喚醒時(shí)會(huì)等待約2 ms來接收全功能節(jié)點(diǎn)的信標(biāo)幀,用來模擬周期性同步和數(shù)據(jù)傳輸,之后進(jìn)入休眠模式,一臺安捷倫電源分析儀接在傳感器節(jié)點(diǎn)電源上,用來記錄節(jié)點(diǎn)的實(shí)際功耗,節(jié)點(diǎn)供電為3.3 V。
圖8 節(jié)點(diǎn)功耗測試示意圖
表1描述了傳感器節(jié)點(diǎn)在單時(shí)鐘和雙時(shí)鐘機(jī)制下節(jié)點(diǎn)在不同狀態(tài)下的平均電流。圖9描述了MCU在單時(shí)鐘和雙時(shí)鐘機(jī)制下,采用固定周期休眠喚醒機(jī)制和可變周期休眠喚醒機(jī)制時(shí)傳感器節(jié)點(diǎn)的在每個(gè)休眠喚醒周期中MCU處于喚醒狀態(tài)的時(shí)間。我們可以看到,由于第2章描述的原因,采用可變周期休眠喚醒機(jī)制的后兩種方案MCU喚醒時(shí)間較少。圖10描述了傳感器節(jié)點(diǎn)綜合利用不同的時(shí)鐘機(jī)制和不同的喚醒休眠機(jī)制時(shí)各種組合在同一周期內(nèi)產(chǎn)生的功耗。其中,功耗按照每個(gè)階段的時(shí)間、電流和電壓進(jìn)行累加。結(jié)果表明,雙時(shí)鐘校準(zhǔn)算法配合可變周期休眠喚醒機(jī)制使得節(jié)點(diǎn)在兩個(gè)主要的時(shí)期以及最后總的周期內(nèi)功耗最低,其原因是因?yàn)椴捎昧巳鐖D9的時(shí)鐘和休眠喚醒策略后,節(jié)點(diǎn)使用了功耗更低的內(nèi)部時(shí)鐘,這使得功耗使用效率得到了最大化。
表1 不同時(shí)鐘機(jī)制下節(jié)點(diǎn)的平均工作電流
圖9 MCU在一個(gè)周期內(nèi)的喚醒時(shí)間Single和Dual分別為單時(shí)鐘和雙時(shí)鐘同步算法;Fixed和Adaptive分別表示固定和可變周期休眠喚醒機(jī)制
圖10 節(jié)點(diǎn)在一個(gè)周期內(nèi)的功耗Single和Dual分別為單時(shí)鐘和雙時(shí)鐘同步算法;Fixed和Adaptive分別表示固定和可變周期休眠喚醒機(jī)制
至此,實(shí)驗(yàn)已經(jīng)表明雙時(shí)鐘校準(zhǔn)算法配合可變周期休眠喚醒機(jī)制使得傳感器節(jié)點(diǎn)可以節(jié)約大量的休眠功耗,之后我們修改節(jié)點(diǎn)的休眠喚醒周期,看看在不同的休眠喚醒周期下節(jié)點(diǎn)功耗情況。我們設(shè)置節(jié)點(diǎn)每個(gè)周期處于工作狀態(tài)的時(shí)間為2 ms,其余時(shí)間處于休眠狀態(tài),休眠喚醒周期從0.5 s、1 s、2 s到4 s,即工作占空比從0.4%到0.05%。同樣,對于固定周期休眠喚醒機(jī)制而言,每次我們都測試并選取其最低功耗的策略。圖11表示在不同時(shí)鐘算法和休眠喚醒機(jī)制組合下,不同工作占空比的傳感器節(jié)點(diǎn)功耗。其中每條線代表的功耗,均是參與測試的4個(gè)傳感器節(jié)點(diǎn)的算數(shù)平均功耗。從圖11中我們可以看到,在占空比為0.4%時(shí),雙時(shí)鐘算法結(jié)合可變周期休眠喚醒機(jī)制比單時(shí)鐘算法結(jié)合固定周期休眠喚醒機(jī)制節(jié)約14%左右的功耗,而當(dāng)工作占空比進(jìn)一步下降至0.1%和0.05%時(shí),功耗分別節(jié)約了27%和36%。
圖11 不同占空比下傳感器節(jié)點(diǎn)的功耗Single和Dual分別為單時(shí)鐘和雙時(shí)鐘同步算法;Fixed和Adaptive分別表示固定和可變周期休眠喚醒機(jī)制
目前,利用電池供電的傳感器網(wǎng)絡(luò)應(yīng)用很多,如智能水表、氣表、安防和智慧農(nóng)業(yè)等等,在這些超低工作占空比的應(yīng)用中,傳感器節(jié)點(diǎn)需要在大部分的時(shí)間里處于休眠狀態(tài),休眠期間的功耗占節(jié)點(diǎn)壽命周期內(nèi)總功耗的90%以上,本文研究了在超低工作占空比工作時(shí)節(jié)點(diǎn)功耗的兩個(gè)重要方面:休眠功耗和周期性的喚醒功耗。我們提出了一種新的時(shí)鐘配置方案可以讓低功耗節(jié)點(diǎn)在休眠時(shí)候使用內(nèi)部時(shí)鐘而在無線電路工作時(shí)使用外部時(shí)鐘,利用這個(gè)方案我們設(shè)計(jì)了一個(gè)多時(shí)鐘源同步策略。同時(shí)我們提出了一種可變周期休眠喚醒機(jī)制,使得節(jié)點(diǎn)可以在雙時(shí)鐘模式下將能量分配的更有效率。之后我們在IEEE802.15.4硬件平臺上對同步算法和休眠喚醒機(jī)制進(jìn)行了對比測試,結(jié)果表明多時(shí)鐘同步策略配合可變周期休眠喚醒機(jī)制可以顯著降低無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)功耗,在典型的0.05%占空比時(shí),功耗可以節(jié)約超過30%,隨著占空比降低,節(jié)約的功耗將進(jìn)一步提高。
[1] Ye W,Heidemann J,Estrin D. An Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//IEEE INFOCOM,2002,3:1567-1576.
[2]Tang L,Sun Y,Gurewitz O,et al. PW-MAC:An Energy-Efficient Predictive-Wakeup MAC Protocol for Wireless Sensor Networks[C]//IEEE INFOCOM,2011:1305-1313.
[3]Tang L,Sun Y,Gurewitz O,et al. EM-MAC:A Dynamic Multichannel Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the Twelfth ACM International Symposium on Mobile Ad Hoc Networking and Computing. ACM,2011:23.
[4]Ye W,Silva F,Heidemann J. Ultra-low Duty Cycle MAC with Scheduled Channel Polling[C]//Proceedings of the 4th International Conference on Embedded Networked Sensor Systems. ACM,2006:321-334.
[5]Ganeriwal S,Kumar R,Srivastava M B. Timing-Sync Protocol for Sensor Networks[C]//Proceedings of the 1st International Conference on Embedded Networked Sensor Systems. ACM,2003:138-149.
[6]許娜,張曉彤,胡國林. 基于能量感知的工業(yè)無線網(wǎng)絡(luò)時(shí)間同步協(xié)議[J]. 傳感技術(shù)學(xué)報(bào),2010,23(3):434-440.
[7]Serpedin E,Chaudhari Q M. 無線傳感器網(wǎng)絡(luò)絡(luò)同步技術(shù)[M]. 北京:科學(xué)出版社,2011:32-213.
[8]Elson J,Girod L,Estrin D. Fine-Grained Network Time Synchronization Using Reference Broadcasts[J]. ACM SIGOPS Operating Systems Review,2002,36(SI):147-163.
[9]Noh K,Serpedin E,Qaraqe K. A New Approach for Time Synchronization in Wireless Sensor Networks:Pairwise Broadcast Synchronization[J]. Wireless Communications,IEEE Transactions on,2008,7(9):3318-3322.
[10]Marco á,Casas R,Ramos J L S,et al. Synchronization of Multihop Wireless Sensor Networks at the Application Layer[J]. Wireless Communications,IEEE,2011,18(1):82-88.
[11]王越,萬洪. 一種節(jié)能的無線傳感器網(wǎng)絡(luò)多跳自適應(yīng)時(shí)間同步算法[J]. 傳感技術(shù)學(xué)報(bào),2013,26(11):1557-1563.
[12]Semiconductor F. The Data Sheet of MC13213[J]. http://www.freescale.com,2009-08-01.
[13]R?mer K,Blum P,Meier L. Time Synchronization and Calibration in Wireless Sensor Networks[J]. Handbook of Sensor Networks:Algorithms and Architectures,2005,49:199.
[14]Wu Y C,Chaudhari Q,Serpedin E. Clock Synchronization of Wireless Sensor Networks[J]. Signal Processing Magazine,IEEE,2011,28(1):124-138.
[15]Lasassmeh S M,Conrad J M. Time Synchronization in Wireless Sensor Networks:A Survey[C]//IEEE SoutheastCon 2010(Southeast Con),Proceedings of the IEEE,2010:242-245.
張軒(1983-)男,碩士研究生,目前在東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心攻讀博士學(xué)位,從事對無線傳感網(wǎng)絡(luò)MAC協(xié)議設(shè)計(jì)和研究,zhxchariot@163.com;
劉昊(1973-)男,博士,東南大學(xué)電子工程與技術(shù)學(xué)院副教授,研究方向?yàn)闊o線傳感網(wǎng)、SoC設(shè)計(jì)、信號與通信系統(tǒng)等方向;
李智群(1959-)男,教授,東南大學(xué)信息科學(xué)與工程學(xué)院博士生導(dǎo)師、IC學(xué)院副院長、教育部射頻集成電路與系統(tǒng)工程研究中心副主任,從事射頻集成電路和無線傳感網(wǎng)射頻電路研究,101010283@seu.edu.cn。
AnUltra-LowPowerMACProtocolforWirelessSensorNetworks*
ZHANGXuan1,LIUYe1,LIUHao1,LIZhiqun2*
(1.National ASIC System Engineering Research Center,Southeast University,Nanjing 210096,China;2.Institute of RF-OE IC,Southeast University,Nanjing 210096,China)
Energy is a critical resource in wireless sensor networks. In order to save the power,sensor nodes need to sleep most of time. Therefore,precise synchronization between nodes and ultra-low sleeping energy consumption is essential for prolonging network lifetime. However,when considering the configuration of wake-up time,clock source selection and the nodes synchronization problem in the actual use of the environment. There are some problems difficult to meet the requirements of the theory research. A new ultra-low power WSN MAC protocol(ULP-MAC)is proposed:Allow the sensor nodes to use serval kinds of clock to realize the optimal configuration of power consumption,using internal clock for the lowest power comsumption and switching to outside clock for the RF transceiver. At the same time,in order to slove the problem about the clock error increasing and the change of sleep cycle,this paper proposes the multi-clock wake-up mechanism and the nodes synchronization strategy. Finally this paper evaluates the introduced protocol and the SMAC protocol in a realistic IEEE802.15.4 test bed. The results show that,compared to SMAC mechanism,the ULP-MAC,which significantly decrease the sleep power comsumption and the synchronization time,greatly extend the life of the nodes.
wireless sensor network;ultra low power consumption;clock calibration;synchronization mechanism
項(xiàng)目來源:江蘇省自然科學(xué)基金項(xiàng)目(BK2011018,BK2011334);江蘇省普通高校研究生科研創(chuàng)新計(jì)劃項(xiàng)目(KYLX_0130)
2014-07-04修改日期:2014-10-04
10.3969/j.issn.1004-1699.2014.11.016
TP393
:A
:1004-1699(2014)11-1527-07