劉 星 高 舉 黃榮科 陳良平 吳 博
(重慶郵電大學(xué) 工業(yè)物聯(lián)網(wǎng)與網(wǎng)絡(luò)化控制教育部重點(diǎn)實(shí)驗(yàn)室,中國(guó) 重慶 400065)
無線傳感器網(wǎng)絡(luò)由于應(yīng)用環(huán)境的特殊要求,節(jié)點(diǎn)普遍采用無源電池供電,能量耗盡后一般無法進(jìn)行及時(shí)的后續(xù)補(bǔ)充,因此如何延長(zhǎng)節(jié)點(diǎn)工作時(shí)間是個(gè)重點(diǎn)問題。對(duì)無線網(wǎng)絡(luò)的節(jié)能研究分為硬件方向的芯片、電路改進(jìn)和軟件方面的協(xié)議研究,本文從協(xié)議運(yùn)行的角度分析如何才能使協(xié)議做到高效、低能耗的運(yùn)行。
無線網(wǎng)絡(luò)協(xié)議運(yùn)行時(shí),傳感器節(jié)點(diǎn)主要有四種工作狀態(tài):數(shù)據(jù)通信(接收、發(fā)送)、數(shù)據(jù)處理、空閑、休眠。其中數(shù)據(jù)通信、處理和空閑這三個(gè)狀態(tài)是比較消耗能量的。而數(shù)據(jù)處理的速度具體到協(xié)議實(shí)現(xiàn)來說是與硬件平臺(tái)相關(guān)的,因此主要要從數(shù)據(jù)通信和空閑這兩個(gè)狀態(tài)考慮來達(dá)到節(jié)能目的。有實(shí)驗(yàn)數(shù)據(jù)顯示節(jié)點(diǎn)發(fā)送1bit 數(shù)據(jù)所消耗的電能足以使處理器執(zhí)行3000 條計(jì)算機(jī)指令[1],可見減少通信次數(shù)是能夠做到節(jié)能目的的。同時(shí),處于空閑狀態(tài)時(shí),也是對(duì)能量的無謂浪費(fèi)。基于此,本文提出了減少數(shù)據(jù)通信和空閑工作時(shí)間的研究方案。在減少數(shù)據(jù)通信方向本文提出了如何提高數(shù)據(jù)通信質(zhì)量的一點(diǎn)考慮:通過時(shí)間同步來減少數(shù)據(jù)碰撞、在分簇算法中選舉簇頭時(shí)兼顧節(jié)點(diǎn)本身的剩余能量和通信成功率;在減少空閑工作時(shí)間方面,提出了對(duì)TDMA 機(jī)制分配的時(shí)隙合理利用,減少無謂空等時(shí)間。
簇頭選舉時(shí)引入節(jié)點(diǎn)通信能力是本文的一個(gè)創(chuàng)新點(diǎn),同時(shí)也創(chuàng)新性的提出了時(shí)隙資源的精確合理使用方案,驗(yàn)證結(jié)果顯示這些方案對(duì)于無線網(wǎng)絡(luò)有著明顯的節(jié)能效果。
與傳統(tǒng)網(wǎng)絡(luò)相比,無線網(wǎng)絡(luò)節(jié)數(shù)量大,分布比較密集且能量有限,對(duì)此設(shè)計(jì)人員專門開發(fā)了一系列的路由算法以節(jié)省能量。如LEACH協(xié)議[2]、PEGASIS 協(xié)議[3]等,這些低功耗路由協(xié)議對(duì)網(wǎng)絡(luò)進(jìn)行恰當(dāng)?shù)姆执兀⑦x出簇頭節(jié)點(diǎn)。由于進(jìn)行隨機(jī)簇頭選舉時(shí)沒有考慮到剩余能量問題,有人就此進(jìn)行了算法改進(jìn),如對(duì)LEACH 協(xié)議進(jìn)行改進(jìn)的LEACH-DCHS 算法[4]。
但是這些改進(jìn)算法并沒有考慮到節(jié)點(diǎn)在實(shí)際通信過程中的真實(shí)通信狀況,僅考慮剩余能量作為簇頭選舉參考值是不夠的。如某個(gè)節(jié)點(diǎn)當(dāng)前剩余能量較高,但是其數(shù)據(jù)通信的成功率低于其他設(shè)備,那么當(dāng)該設(shè)備作為簇頭時(shí)就會(huì)出現(xiàn)數(shù)據(jù)通信失敗率較高,不得不消耗額外的能量進(jìn)行重傳等操作。
對(duì)此本文提出在除了把剩余能量作為重要的選擇條件之外,也考慮其實(shí)際工作過程中的通信狀況。方法描述:在每輪簇的組織階段,每個(gè)節(jié)點(diǎn)都生成一個(gè)介于0 和1 之間的一個(gè)隨機(jī)數(shù)n,如果該隨機(jī)數(shù)小于門限值T(n),則該節(jié)點(diǎn)成為簇頭。計(jì)算T(n)時(shí),將節(jié)點(diǎn)Si在第r 輪循環(huán)時(shí)的剩余能量Ei(r)和其在上一輪的通信成功率Ci(r)作為重要參考依據(jù)。從而可以保證讓剩余能量較多、通信成功率較高的節(jié)點(diǎn)擔(dān)任簇首工作,做到均衡使用各節(jié)點(diǎn)電量、減少數(shù)據(jù)重傳延長(zhǎng)網(wǎng)絡(luò)的生存時(shí)間。

N 為網(wǎng)絡(luò)中所有節(jié)點(diǎn)的總個(gè)數(shù),n0為網(wǎng)絡(luò)中的簇群數(shù)目,E(r)為第r 輪循環(huán)時(shí)網(wǎng)絡(luò)節(jié)點(diǎn)的平均剩余能量。
網(wǎng)絡(luò)初始組建時(shí),所有節(jié)點(diǎn)的數(shù)據(jù)通信成功率均為100%。然后在第r 輪選舉時(shí),Ci(r)就是上個(gè)周期內(nèi)的自身實(shí)際通信成功率。把數(shù)據(jù)通信成功率作為一個(gè)重要參數(shù)還有一重好處:當(dāng)網(wǎng)絡(luò)運(yùn)行很長(zhǎng)一段時(shí)間后,可能多數(shù)節(jié)點(diǎn)的能量都較低,不合適充再充當(dāng)簇頭,而有個(gè)別設(shè)備由于通信質(zhì)量問題導(dǎo)致多數(shù)時(shí)間充當(dāng)?shù)氖瞧胀ü?jié)點(diǎn)而非簇頭,那么其剩余能量就要高于均值。通過上述公式計(jì)算時(shí),也會(huì)在這種情況下選舉通信質(zhì)量較弱但剩余能量較多的作為簇頭。
無線傳感器網(wǎng)絡(luò)中,基于TMDA 機(jī)制運(yùn)行的MAC 協(xié)議為加入網(wǎng)絡(luò)的每個(gè)設(shè)備分配獨(dú)立的時(shí)間資源(時(shí)隙)用于網(wǎng)絡(luò)通信和處理任務(wù),在非工作時(shí)間則令節(jié)點(diǎn)設(shè)備及時(shí)的進(jìn)入休眠狀態(tài)。同時(shí),采用TDMA方式通信時(shí),可避免信道沖突引起的數(shù)據(jù)丟包重傳帶來的能耗。由此可知精確的時(shí)間同步對(duì)于無線網(wǎng)絡(luò)減少數(shù)據(jù)碰撞、精確分配節(jié)點(diǎn)時(shí)隙資源以維持傳感器節(jié)點(diǎn)較低的活躍周期就成了低功耗設(shè)計(jì)的前提[5]。
這里要研究的是無線網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)與時(shí)鐘源之間的時(shí)間同步,主要涉及本地時(shí)間與時(shí)鐘源之間的時(shí)間偏差和相對(duì)于時(shí)鐘源節(jié)點(diǎn)自身的物理晶振帶來的頻偏。首先進(jìn)行時(shí)間偏差調(diào)整,流程如下圖1 所示。
發(fā)送方指的是作為接收方的時(shí)鐘源設(shè)備,時(shí)鐘源周期性的發(fā)射包含有時(shí)間同步信息的報(bào)文(如Zigbee 系統(tǒng)發(fā)射的信標(biāo)幀、ISA100.11a協(xié)議發(fā)出的廣告幀和確認(rèn)幀等),待同步的節(jié)點(diǎn)設(shè)備接收到該報(bào)文解析后與之進(jìn)行同步操作,具體過程如下:
1)發(fā)送方在自己的特定時(shí)隙發(fā)射報(bào)文,產(chǎn)生SFD 中斷,硬件通過定時(shí)器捕獲時(shí)間戳后將本地時(shí)間裝載到指定的數(shù)據(jù)字段中發(fā)送出去;
2)接收方接收到報(bào)文,產(chǎn)生SFD 中斷,此時(shí)硬件讀取本地時(shí)間并記錄為T1;
3)廣播幀接收完畢后,接收方解析出廣播幀的時(shí)間戳載荷T2;
4)計(jì)算出兩者的差值為t=|T1-T2|;
5)根據(jù)T1 和T2 的關(guān)系和差值,對(duì)接收方本地時(shí)間進(jìn)行調(diào)整。

圖1 同步流程圖Fig.1 Synchronized flow chart
以上是進(jìn)行的周期性時(shí)間同步過程,但是由于受晶振制作工藝、外界環(huán)境的溫度、壓力等影響,晶體振蕩器的頻率不可能完全一樣,因此還要進(jìn)行頻偏調(diào)整[6]。首先要計(jì)算出本地時(shí)鐘與時(shí)鐘源之間的頻率偏差,方法如下:
如圖2 所示,時(shí)鐘源設(shè)備周期性的發(fā)射報(bào)文,分別在TX1、TX2、TX3三個(gè)時(shí)刻發(fā)射出去,而待同步的節(jié)點(diǎn)則是在對(duì)應(yīng)時(shí)刻TR1、TR2、TR3接收到。假設(shè)在TX1到TX2時(shí)間段內(nèi)的本地時(shí)間偏差Δt,那么可知TX2到TX3時(shí)間段內(nèi)除了這個(gè)Δt 偏差以外,還存在因頻偏帶來的一個(gè)偏差Δf,即:

待同步的節(jié)點(diǎn)以時(shí)鐘源作為參考,那么其自身的頻偏也是一個(gè)相對(duì)值,這個(gè)參考對(duì)象就是時(shí)鐘源。又TX1、TX2、TX3、TR1、TR2、TR3、Δt 都是已知的,那么就可以求出對(duì)應(yīng)的頻偏帶來的時(shí)偏值為:

本地時(shí)鐘相對(duì)于時(shí)鐘源的頻偏Foffset則為:

精確的時(shí)間同步,帶來了嚴(yán)格的時(shí)隙資源分配,每個(gè)節(jié)點(diǎn)設(shè)備對(duì)自己的時(shí)隙是一清二楚,所以對(duì)應(yīng)的工作時(shí)間和空閑時(shí)間就是可知的。經(jīng)過分析一些基于TDMA 機(jī)制運(yùn)行的時(shí)隙分配算法,發(fā)現(xiàn)不管是為保證相鄰節(jié)點(diǎn)的時(shí)隙不同而設(shè)計(jì)的時(shí)隙分配算法,還是考慮到無線網(wǎng)絡(luò)中的暴露終端和隱藏終端問題而設(shè)計(jì)的兩跳節(jié)點(diǎn)時(shí)隙不同的分配算法[7-8],都有一個(gè)共同特點(diǎn),那就是這些算法都是把時(shí)間段分為幀,再把幀分為一個(gè)個(gè)時(shí)隙,協(xié)議基于時(shí)隙運(yùn)行,當(dāng)處于工作時(shí)隙時(shí)進(jìn)行處理、發(fā)送、接收等任務(wù),然后在非空閑時(shí)隙則進(jìn)入休眠狀態(tài)。
在文獻(xiàn)[7]中,節(jié)點(diǎn)在喚醒工作后,將它的工作時(shí)間劃分為等間隔的時(shí)隙Ts,假設(shè)各個(gè)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包大小均相等,數(shù)據(jù)包的發(fā)送時(shí)間Td,則有Ts=2Td。即節(jié)點(diǎn)發(fā)送數(shù)據(jù)包的時(shí)間只占一個(gè)時(shí)隙的一半,時(shí)隙長(zhǎng)度Ts是能夠滿足接收、發(fā)送、處理一個(gè)最大報(bào)文所需時(shí)間長(zhǎng)度的。類似的分配本身在協(xié)議運(yùn)行中并無問題,但是站在使用效率和節(jié)能的角度考慮的話,還是有更進(jìn)一步改進(jìn)的,因?yàn)檎Mㄐ胚^程中并不是每次通信都需要如此長(zhǎng)的時(shí)間的。這里作者根據(jù)自身實(shí)驗(yàn)室研究經(jīng)驗(yàn),想到了兩個(gè)問題:如我們?yōu)槟硞€(gè)節(jié)點(diǎn)分配了2 個(gè)時(shí)隙用于接收上一級(jí)設(shè)備數(shù)據(jù)和發(fā)送自身數(shù)據(jù)(包括轉(zhuǎn)發(fā)),但是現(xiàn)在時(shí)間已經(jīng)走到1.8 個(gè)時(shí)隙了,而該節(jié)點(diǎn)自身的發(fā)送任務(wù)和接收處理已經(jīng)完成,那么此時(shí)是需要繼續(xù)工作0.2 個(gè)時(shí)隙后進(jìn)入休眠還是立即休眠呢? 也或者此時(shí)節(jié)點(diǎn)自身的發(fā)送任務(wù)未完成或者尚未接收到上級(jí)節(jié)點(diǎn)的報(bào)文(節(jié)點(diǎn)自身并不需要考慮是因?yàn)樯霞?jí)節(jié)點(diǎn)沒有發(fā)還是自身接收失敗的問題),但是僅剩下的工作時(shí)隙時(shí)間又不足以讓其完成這個(gè)接收或發(fā)送任務(wù),那么按照現(xiàn)在的時(shí)隙分配算法繼續(xù)等待時(shí)隙結(jié)束后休眠合理么?
這兩個(gè)問題都是針對(duì)時(shí)隙資源的深挖掘有效利用問題,考慮這類問題的大前提就是上面提到的要做到精確時(shí)間同步。當(dāng)時(shí)間同步精度達(dá)到應(yīng)用要求時(shí),這類問題就有了意義,再次繼續(xù)分析問題:出于節(jié)能型考慮,把節(jié)點(diǎn)的工作狀態(tài)嚴(yán)格按照時(shí)隙運(yùn)行有很大的意義,但是從能耗角度和實(shí)際問題角度分析的話,當(dāng)已經(jīng)完成任務(wù)后設(shè)備是可以立即進(jìn)入休眠態(tài)的。
對(duì)以上節(jié)能方案的驗(yàn)證,本文是采用對(duì)比的形式,在Zigbee 協(xié)議進(jìn)行實(shí)現(xiàn)與測(cè)試。使用相同的硬件平臺(tái)(CC2530),分別統(tǒng)計(jì)了低功耗路由協(xié)議LEACH 和PEGASIS 的無線網(wǎng)絡(luò)中節(jié)點(diǎn)生命周期,并把本文提出的簇頭選舉優(yōu)化方案、精確時(shí)間同步和時(shí)隙資源合理使用方案植入到PEGASIS 算法中進(jìn)行統(tǒng)計(jì)。采用約六成節(jié)點(diǎn)死亡(能量基本耗盡,無法維持正常通信)的時(shí)間作為網(wǎng)絡(luò)生存時(shí)間的評(píng)價(jià)標(biāo)準(zhǔn)。網(wǎng)絡(luò)生存時(shí)間的對(duì)比結(jié)果如下表所示:

圖3 節(jié)點(diǎn)生命周期Fig.3 Life cycle of the node
從圖3 我們可以看到把本文提到的節(jié)能方案加入現(xiàn)有的協(xié)議算法上,節(jié)能效果明顯。選擇能量富裕、通信質(zhì)量較好的設(shè)備作為簇頭帶來的優(yōu)質(zhì)通信,精確時(shí)間同步帶來的精準(zhǔn)調(diào)度和時(shí)隙資源的優(yōu)化使用都一定程度上節(jié)省了能量,達(dá)到節(jié)能目的。
對(duì)于無線網(wǎng)絡(luò)來說,靈活的使用方式為使用者帶來了諸多便利,就如當(dāng)今社會(huì)移動(dòng)智能手機(jī)一樣。但是方便使用的背后還有個(gè)急需解決的問題,那就是設(shè)備能量有限,我們要想盡諸多辦法以控制功耗。本文從現(xiàn)有的低功耗協(xié)議算法入手,提出了幾點(diǎn)節(jié)能方案,以作思路擴(kuò)展和補(bǔ)充。而目前對(duì)無線網(wǎng)絡(luò)軟件節(jié)能方向的研究,多數(shù)設(shè)計(jì)者從不同角度提出了諸多優(yōu)秀的低功耗路由協(xié)議,不同程度上控制了設(shè)備功耗。在今后的學(xué)習(xí)中,將更多的學(xué)習(xí)研究各種協(xié)議實(shí)現(xiàn)的優(yōu)點(diǎn),汲取精華之處以實(shí)現(xiàn)一個(gè)更加實(shí)時(shí)、節(jié)能、具有很強(qiáng)魯棒性的低功耗路由協(xié)議。
[1]李紅艷,劉榮.無線傳感器網(wǎng)絡(luò)的節(jié)能優(yōu)化技術(shù)研究[J].信息與電腦,2011(03):67-68.
[2]HEINZELMAN W R,CHANDRAKASAN A,BALAKRISHNAN H.Energyefficient communication protocol for wireless microsensor networks [C]// HICSS 2000:Proceedings of the 33rd Annual Hwaii International Conference on System Sciences.Maui,HI,USA:[s.n.],2000:01-10.
[3]Lindsey S,Raghavendra C S.PEGASIS:Power-efficient gathering in sensor information systerms [C]// Proceedings of the IEEE Aerospace Conference:Vol.03,Mar 09-16,2002,Big Sky,MT,USA.Piscataway,NJ,USA:IEEE,2002:1125-1130.
[4]周沖,余震虹,卜凡云,錢菲菲.WSN 中低功耗路由協(xié)議LEACH 的一種改進(jìn)方法[J].科學(xué)與技術(shù)工程,2011,11(21):5071-5073.
[5]徐世武,王平,黃晞,施文灶,徐雄偉.無線傳感器網(wǎng)絡(luò)中時(shí)間同步技術(shù)的綜述[J].微計(jì)算機(jī)應(yīng)用,2011,32(05):32-35.
[6]李立.無線傳感網(wǎng)器網(wǎng)絡(luò)時(shí)間同步算法研究[D].北京:清華大學(xué),2010.
[7]郭鵬,舒樂,朱光喜.無線傳感器網(wǎng)絡(luò)初始化時(shí)隙分配算法[J].小型微計(jì)算機(jī)系統(tǒng),2009(04):652-654.
[8]段紹米.無線傳感器網(wǎng)絡(luò)TDMA 時(shí)隙分配問題的研究[D].昆明:昆明理工大學(xué),2010.