劉 星 高 舉 黃榮科 陳良平 吳 博
(重慶郵電大學 工業(yè)物聯網與網絡化控制教育部重點實驗室,中國 重慶 400065)
無線傳感器網絡由于應用環(huán)境的特殊要求,節(jié)點普遍采用無源電池供電,能量耗盡后一般無法進行及時的后續(xù)補充,因此如何延長節(jié)點工作時間是個重點問題。對無線網絡的節(jié)能研究分為硬件方向的芯片、電路改進和軟件方面的協議研究,本文從協議運行的角度分析如何才能使協議做到高效、低能耗的運行。
無線網絡協議運行時,傳感器節(jié)點主要有四種工作狀態(tài):數據通信(接收、發(fā)送)、數據處理、空閑、休眠。其中數據通信、處理和空閑這三個狀態(tài)是比較消耗能量的。而數據處理的速度具體到協議實現來說是與硬件平臺相關的,因此主要要從數據通信和空閑這兩個狀態(tài)考慮來達到節(jié)能目的。有實驗數據顯示節(jié)點發(fā)送1bit 數據所消耗的電能足以使處理器執(zhí)行3000 條計算機指令[1],可見減少通信次數是能夠做到節(jié)能目的的。同時,處于空閑狀態(tài)時,也是對能量的無謂浪費。基于此,本文提出了減少數據通信和空閑工作時間的研究方案。在減少數據通信方向本文提出了如何提高數據通信質量的一點考慮:通過時間同步來減少數據碰撞、在分簇算法中選舉簇頭時兼顧節(jié)點本身的剩余能量和通信成功率;在減少空閑工作時間方面,提出了對TDMA 機制分配的時隙合理利用,減少無謂空等時間。
簇頭選舉時引入節(jié)點通信能力是本文的一個創(chuàng)新點,同時也創(chuàng)新性的提出了時隙資源的精確合理使用方案,驗證結果顯示這些方案對于無線網絡有著明顯的節(jié)能效果。
與傳統網絡相比,無線網絡節(jié)數量大,分布比較密集且能量有限,對此設計人員專門開發(fā)了一系列的路由算法以節(jié)省能量。如LEACH協議[2]、PEGASIS 協議[3]等,這些低功耗路由協議對網絡進行恰當的分簇,并選出簇頭節(jié)點。由于進行隨機簇頭選舉時沒有考慮到剩余能量問題,有人就此進行了算法改進,如對LEACH 協議進行改進的LEACH-DCHS 算法[4]。
但是這些改進算法并沒有考慮到節(jié)點在實際通信過程中的真實通信狀況,僅考慮剩余能量作為簇頭選舉參考值是不夠的。如某個節(jié)點當前剩余能量較高,但是其數據通信的成功率低于其他設備,那么當該設備作為簇頭時就會出現數據通信失敗率較高,不得不消耗額外的能量進行重傳等操作。
對此本文提出在除了把剩余能量作為重要的選擇條件之外,也考慮其實際工作過程中的通信狀況。方法描述:在每輪簇的組織階段,每個節(jié)點都生成一個介于0 和1 之間的一個隨機數n,如果該隨機數小于門限值T(n),則該節(jié)點成為簇頭。計算T(n)時,將節(jié)點Si在第r 輪循環(huán)時的剩余能量Ei(r)和其在上一輪的通信成功率Ci(r)作為重要參考依據。從而可以保證讓剩余能量較多、通信成功率較高的節(jié)點擔任簇首工作,做到均衡使用各節(jié)點電量、減少數據重傳延長網絡的生存時間。
N 為網絡中所有節(jié)點的總個數,n0為網絡中的簇群數目,E(r)為第r 輪循環(huán)時網絡節(jié)點的平均剩余能量。
網絡初始組建時,所有節(jié)點的數據通信成功率均為100%。然后在第r 輪選舉時,Ci(r)就是上個周期內的自身實際通信成功率。把數據通信成功率作為一個重要參數還有一重好處:當網絡運行很長一段時間后,可能多數節(jié)點的能量都較低,不合適充再充當簇頭,而有個別設備由于通信質量問題導致多數時間充當的是普通節(jié)點而非簇頭,那么其剩余能量就要高于均值。通過上述公式計算時,也會在這種情況下選舉通信質量較弱但剩余能量較多的作為簇頭。
無線傳感器網絡中,基于TMDA 機制運行的MAC 協議為加入網絡的每個設備分配獨立的時間資源(時隙)用于網絡通信和處理任務,在非工作時間則令節(jié)點設備及時的進入休眠狀態(tài)。同時,采用TDMA方式通信時,可避免信道沖突引起的數據丟包重傳帶來的能耗。由此可知精確的時間同步對于無線網絡減少數據碰撞、精確分配節(jié)點時隙資源以維持傳感器節(jié)點較低的活躍周期就成了低功耗設計的前提[5]。
這里要研究的是無線網絡內部節(jié)點與時鐘源之間的時間同步,主要涉及本地時間與時鐘源之間的時間偏差和相對于時鐘源節(jié)點自身的物理晶振帶來的頻偏。首先進行時間偏差調整,流程如下圖1 所示。
發(fā)送方指的是作為接收方的時鐘源設備,時鐘源周期性的發(fā)射包含有時間同步信息的報文(如Zigbee 系統發(fā)射的信標幀、ISA100.11a協議發(fā)出的廣告幀和確認幀等),待同步的節(jié)點設備接收到該報文解析后與之進行同步操作,具體過程如下:
1)發(fā)送方在自己的特定時隙發(fā)射報文,產生SFD 中斷,硬件通過定時器捕獲時間戳后將本地時間裝載到指定的數據字段中發(fā)送出去;
2)接收方接收到報文,產生SFD 中斷,此時硬件讀取本地時間并記錄為T1;
3)廣播幀接收完畢后,接收方解析出廣播幀的時間戳載荷T2;
4)計算出兩者的差值為t=|T1-T2|;
5)根據T1 和T2 的關系和差值,對接收方本地時間進行調整。
圖1 同步流程圖Fig.1 Synchronized flow chart
以上是進行的周期性時間同步過程,但是由于受晶振制作工藝、外界環(huán)境的溫度、壓力等影響,晶體振蕩器的頻率不可能完全一樣,因此還要進行頻偏調整[6]。首先要計算出本地時鐘與時鐘源之間的頻率偏差,方法如下:
如圖2 所示,時鐘源設備周期性的發(fā)射報文,分別在TX1、TX2、TX3三個時刻發(fā)射出去,而待同步的節(jié)點則是在對應時刻TR1、TR2、TR3接收到。假設在TX1到TX2時間段內的本地時間偏差Δt,那么可知TX2到TX3時間段內除了這個Δt 偏差以外,還存在因頻偏帶來的一個偏差Δf,即:
待同步的節(jié)點以時鐘源作為參考,那么其自身的頻偏也是一個相對值,這個參考對象就是時鐘源。又TX1、TX2、TX3、TR1、TR2、TR3、Δt 都是已知的,那么就可以求出對應的頻偏帶來的時偏值為:
本地時鐘相對于時鐘源的頻偏Foffset則為:
精確的時間同步,帶來了嚴格的時隙資源分配,每個節(jié)點設備對自己的時隙是一清二楚,所以對應的工作時間和空閑時間就是可知的。經過分析一些基于TDMA 機制運行的時隙分配算法,發(fā)現不管是為保證相鄰節(jié)點的時隙不同而設計的時隙分配算法,還是考慮到無線網絡中的暴露終端和隱藏終端問題而設計的兩跳節(jié)點時隙不同的分配算法[7-8],都有一個共同特點,那就是這些算法都是把時間段分為幀,再把幀分為一個個時隙,協議基于時隙運行,當處于工作時隙時進行處理、發(fā)送、接收等任務,然后在非空閑時隙則進入休眠狀態(tài)。
在文獻[7]中,節(jié)點在喚醒工作后,將它的工作時間劃分為等間隔的時隙Ts,假設各個節(jié)點發(fā)送的數據包大小均相等,數據包的發(fā)送時間Td,則有Ts=2Td。即節(jié)點發(fā)送數據包的時間只占一個時隙的一半,時隙長度Ts是能夠滿足接收、發(fā)送、處理一個最大報文所需時間長度的。類似的分配本身在協議運行中并無問題,但是站在使用效率和節(jié)能的角度考慮的話,還是有更進一步改進的,因為正常通信過程中并不是每次通信都需要如此長的時間的。這里作者根據自身實驗室研究經驗,想到了兩個問題:如我們?yōu)槟硞€節(jié)點分配了2 個時隙用于接收上一級設備數據和發(fā)送自身數據(包括轉發(fā)),但是現在時間已經走到1.8 個時隙了,而該節(jié)點自身的發(fā)送任務和接收處理已經完成,那么此時是需要繼續(xù)工作0.2 個時隙后進入休眠還是立即休眠呢? 也或者此時節(jié)點自身的發(fā)送任務未完成或者尚未接收到上級節(jié)點的報文(節(jié)點自身并不需要考慮是因為上級節(jié)點沒有發(fā)還是自身接收失敗的問題),但是僅剩下的工作時隙時間又不足以讓其完成這個接收或發(fā)送任務,那么按照現在的時隙分配算法繼續(xù)等待時隙結束后休眠合理么?
這兩個問題都是針對時隙資源的深挖掘有效利用問題,考慮這類問題的大前提就是上面提到的要做到精確時間同步。當時間同步精度達到應用要求時,這類問題就有了意義,再次繼續(xù)分析問題:出于節(jié)能型考慮,把節(jié)點的工作狀態(tài)嚴格按照時隙運行有很大的意義,但是從能耗角度和實際問題角度分析的話,當已經完成任務后設備是可以立即進入休眠態(tài)的。
對以上節(jié)能方案的驗證,本文是采用對比的形式,在Zigbee 協議進行實現與測試。使用相同的硬件平臺(CC2530),分別統計了低功耗路由協議LEACH 和PEGASIS 的無線網絡中節(jié)點生命周期,并把本文提出的簇頭選舉優(yōu)化方案、精確時間同步和時隙資源合理使用方案植入到PEGASIS 算法中進行統計。采用約六成節(jié)點死亡(能量基本耗盡,無法維持正常通信)的時間作為網絡生存時間的評價標準。網絡生存時間的對比結果如下表所示:
圖3 節(jié)點生命周期Fig.3 Life cycle of the node
從圖3 我們可以看到把本文提到的節(jié)能方案加入現有的協議算法上,節(jié)能效果明顯。選擇能量富裕、通信質量較好的設備作為簇頭帶來的優(yōu)質通信,精確時間同步帶來的精準調度和時隙資源的優(yōu)化使用都一定程度上節(jié)省了能量,達到節(jié)能目的。
對于無線網絡來說,靈活的使用方式為使用者帶來了諸多便利,就如當今社會移動智能手機一樣。但是方便使用的背后還有個急需解決的問題,那就是設備能量有限,我們要想盡諸多辦法以控制功耗。本文從現有的低功耗協議算法入手,提出了幾點節(jié)能方案,以作思路擴展和補充。而目前對無線網絡軟件節(jié)能方向的研究,多數設計者從不同角度提出了諸多優(yōu)秀的低功耗路由協議,不同程度上控制了設備功耗。在今后的學習中,將更多的學習研究各種協議實現的優(yōu)點,汲取精華之處以實現一個更加實時、節(jié)能、具有很強魯棒性的低功耗路由協議。
[1]李紅艷,劉榮.無線傳感器網絡的節(jié)能優(yōu)化技術研究[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 中低功耗路由協議LEACH 的一種改進方法[J].科學與技術工程,2011,11(21):5071-5073.
[5]徐世武,王平,黃晞,施文灶,徐雄偉.無線傳感器網絡中時間同步技術的綜述[J].微計算機應用,2011,32(05):32-35.
[6]李立.無線傳感網器網絡時間同步算法研究[D].北京:清華大學,2010.
[7]郭鵬,舒樂,朱光喜.無線傳感器網絡初始化時隙分配算法[J].小型微計算機系統,2009(04):652-654.
[8]段紹米.無線傳感器網絡TDMA 時隙分配問題的研究[D].昆明:昆明理工大學,2010.