高 翔,鄧永莉,呂愿愿,陸起涌
(復(fù)旦大學(xué)電子工程系,上海 200433)
?
基于Z-Stack協(xié)議棧的ZigBee網(wǎng)絡(luò)節(jié)能算法的研究*
高 翔,鄧永莉,呂愿愿,陸起涌*
(復(fù)旦大學(xué)電子工程系,上海 200433)
ZigBee技術(shù)是實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)的重要技術(shù)手段之一,其中,Z-Stack協(xié)議棧是TI公司推出的一種實(shí)現(xiàn)ZigBee技術(shù)的軟件架構(gòu),已被廣泛使用。以CC2530為硬件平臺(tái),Z-Stack協(xié)議棧為軟件平臺(tái),通過對(duì)Z-Stack協(xié)議棧的分析研究,指出了現(xiàn)有的Z-Stack協(xié)議棧在實(shí)際應(yīng)用條件下存在的功耗問題,提出了相應(yīng)的節(jié)能算法:針對(duì)終端節(jié)點(diǎn)的功率優(yōu)化調(diào)節(jié)算法和針對(duì)路由器節(jié)點(diǎn)的低功耗算法,并通過實(shí)驗(yàn)進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,與原始的Z-Stack協(xié)議相比,本文提出的基于Z-Stack協(xié)議棧的節(jié)能算法可以有效地減少節(jié)點(diǎn)在工作過程中的能耗,從而提高網(wǎng)絡(luò)的整體壽命。
無線傳感器網(wǎng)絡(luò);ZigBee網(wǎng)絡(luò);Z-Stack協(xié)議棧;低功耗
無線傳感器網(wǎng)絡(luò)(WSN)是由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成,通過無線通信方式形成的一個(gè)多跳的自組織的網(wǎng)絡(luò)系統(tǒng)[1],從而將感知區(qū)域內(nèi)對(duì)象的信息傳送給觀察者。2003年2月,美國著名的《技術(shù)評(píng)論》雜志將無線傳感器網(wǎng)絡(luò)列為對(duì)人類生活產(chǎn)生深遠(yuǎn)影響的十大新興技術(shù)之首[2]。ZigBee是一種低速無線個(gè)域網(wǎng)技術(shù),它適用于通信數(shù)據(jù)量不大,數(shù)據(jù)傳輸速率相對(duì)較低,分布范圍較小,但對(duì)數(shù)據(jù)的可靠性、成本和功耗有要求的場合[3]。由于ZigBee技術(shù)廣闊的應(yīng)用前景,使得世界各大半導(dǎo)體生產(chǎn)廠商紛紛提出了不同的ZigBee解決方案。其中,Z-Stack協(xié)議棧是TI(德州儀器)公司開發(fā)的ZigBee協(xié)議棧,并且經(jīng)過了ZigBee聯(lián)盟的認(rèn)可而為全球眾多開發(fā)商所廣泛采用。TI的Z-Stack協(xié)議棧的源碼總體上由三個(gè)部分組成:硬件抽象層、操作系統(tǒng)抽象層和ZigBee協(xié)議各層[4]。硬件抽象層提供定時(shí)器、I/O口、串口等資源的API;操作系統(tǒng)抽象層負(fù)責(zé)任務(wù)管理;ZigBee協(xié)議各層集成所有任務(wù)事件[5]。操作系統(tǒng)抽象層提供一種支持多任務(wù)運(yùn)作的系統(tǒng)資源分配機(jī)制負(fù)責(zé)調(diào)度各個(gè)任務(wù)的運(yùn)行,如果有事件發(fā)生了,則會(huì)調(diào)用相應(yīng)的事件處理函數(shù)進(jìn)行處理。因此,僅從程序運(yùn)行的角度而言,對(duì)于Z-Stack協(xié)議棧的理解,可以認(rèn)為是操作系統(tǒng)執(zhí)行的過程。本文通過對(duì)Z-Stack協(xié)議棧的分析研究,指出現(xiàn)有Z-Stack協(xié)議棧在實(shí)際使用中的局限性,并提出相應(yīng)的改進(jìn)算法,包括針對(duì)終端的節(jié)點(diǎn)功率優(yōu)化調(diào)節(jié)算法和針對(duì)路由器節(jié)點(diǎn)的低功耗路由算法。這兩種算法均能減少基于Z-Stack協(xié)議棧的ZigBee節(jié)點(diǎn)的整體能耗。本文所研究的Z-Stack協(xié)議棧版本為ZStack-CC2530-2.3.0-1.4.0,基于CC2530[6]硬件平臺(tái),符合ZigBee2007[7]規(guī)范,具有研究和實(shí)際應(yīng)用價(jià)值。
1.1 算法提出的背景
ZigBee終端節(jié)點(diǎn)在Z-Stack中采用默認(rèn)的發(fā)射功率進(jìn)行數(shù)據(jù)發(fā)送,而根據(jù)Friis傳輸公式[8],當(dāng)節(jié)點(diǎn)的接收靈敏度一定時(shí),假設(shè)終端節(jié)點(diǎn)與協(xié)調(diào)器(或者路由器)之間的距離比較近或者系統(tǒng)損耗較小的時(shí)候,發(fā)射功率可以適當(dāng)減小,以減少不必要的功率損耗。正是由于這種考慮,當(dāng)ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)的布局范圍比較小的時(shí)候,原始Z-Stack協(xié)議棧中固定功率的配置還有進(jìn)一步改進(jìn)的空間?;诖?本文提出了基于Z-Stack協(xié)議棧的終端節(jié)點(diǎn)功率優(yōu)化調(diào)節(jié)算法。
1.2 算法描述
本文提出的基于Z-Stack協(xié)議棧的功率調(diào)節(jié)優(yōu)化算法工作于網(wǎng)絡(luò)的初始化階段,算法將功率等級(jí)的劃分為16級(jí),其中等級(jí)1對(duì)應(yīng)的是最低發(fā)射功率-22 dBm,等級(jí)16對(duì)應(yīng)的是最高發(fā)射功率4.5 dBm。
圖1 Z-Stack協(xié)議棧中功率優(yōu)化調(diào)節(jié)算法流程
算法采用功率探測(cè)數(shù)據(jù)包的方式,如圖1所示,ZigBee終端節(jié)點(diǎn)在入網(wǎng)成功之后,按照功率等級(jí)發(fā)送不同等級(jí)的功率數(shù)據(jù)包,從最低等級(jí)(level 1)開始,并開啟輪詢,等待協(xié)調(diào)器節(jié)點(diǎn)的響應(yīng)。若發(fā)送的功率探測(cè)數(shù)據(jù)包在若干個(gè)輪詢周期內(nèi)(可以設(shè)置為5~10個(gè)周期)未得到響應(yīng),則提高一個(gè)功率等級(jí)繼續(xù)發(fā)送,直至協(xié)調(diào)器返回了數(shù)據(jù)包的功率等級(jí)數(shù)值。為了進(jìn)一步提高功率調(diào)節(jié)后網(wǎng)絡(luò)的可靠性,終端節(jié)點(diǎn)需要檢測(cè)協(xié)調(diào)器返回的Data_level_n數(shù)據(jù)包的RSSI值是否大于-85 dBm,若協(xié)調(diào)器返回的確認(rèn)功率等級(jí)數(shù)據(jù)包的RSSI值大于-85 dBm,才可以認(rèn)定此功率數(shù)值為最低可靠發(fā)射功率等級(jí)。之后,終端節(jié)點(diǎn)可以進(jìn)入睡眠,待喚醒時(shí)間到則可以采用最低可靠功率發(fā)送所需數(shù)據(jù)。
1.3 算法驗(yàn)證
算法驗(yàn)證在CC2530最小系統(tǒng)下進(jìn)行,其硬件結(jié)構(gòu)如圖2所示,測(cè)試用鋰電池電容量約為210 mA·h。
圖2 算法驗(yàn)證測(cè)試ZigBee節(jié)點(diǎn)
在本節(jié)的算法驗(yàn)證中,節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和放置的位置如圖3所示。其中,測(cè)試環(huán)境為室內(nèi),圖中所示位置1與協(xié)調(diào)器節(jié)點(diǎn)距離約為20 cm(中間無障礙物),圖中所示位置2與協(xié)調(diào)器節(jié)點(diǎn)的距離約為4 m~5 m(中間有墻體和障礙物)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為星型拓?fù)浣Y(jié)構(gòu),節(jié)點(diǎn)初始化之后運(yùn)行功率調(diào)節(jié)優(yōu)化算法并進(jìn)入低功耗模式,之后定時(shí)喚醒并發(fā)送”Hello”測(cè)試數(shù)據(jù)包。測(cè)試過程中終端節(jié)點(diǎn)的喚醒周期為T=100 ms。
圖3 功率優(yōu)化調(diào)節(jié)算法測(cè)試網(wǎng)絡(luò)結(jié)構(gòu)
圖4 功率優(yōu)化調(diào)節(jié)算法的驗(yàn)證
最終功率優(yōu)化調(diào)節(jié)算法的測(cè)試結(jié)果如圖4所示,通過監(jiān)測(cè)測(cè)試節(jié)點(diǎn)工作過程中鋰電池電容量與時(shí)間的關(guān)系可以看到,即使終端節(jié)點(diǎn)離協(xié)調(diào)器節(jié)點(diǎn)的距離很近(位置1),未運(yùn)行功率優(yōu)化調(diào)節(jié)算法的終端節(jié)點(diǎn)的功耗也是最大的,而運(yùn)行了功率優(yōu)化調(diào)節(jié)算法的終端的功耗與該終端節(jié)點(diǎn)和其父節(jié)點(diǎn)的距離相關(guān),距離越大,其功耗越大,故優(yōu)化功率終端2的功耗比優(yōu)化功率終端1的功耗大,但二者均較未優(yōu)化功率的節(jié)點(diǎn)更節(jié)能。
測(cè)試結(jié)果表明,在終端節(jié)點(diǎn)與其父節(jié)點(diǎn)(包括路由器節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn))的距離較近的時(shí)候,使用了功率調(diào)節(jié)優(yōu)化算法的終端節(jié)點(diǎn)可以更有效地節(jié)能。在同一位置的節(jié)點(diǎn)工作17 h后,運(yùn)行了功率調(diào)節(jié)優(yōu)化算法的終端節(jié)點(diǎn)可以較未運(yùn)行功率調(diào)節(jié)優(yōu)化算法的終端節(jié)點(diǎn)節(jié)省4%的電量。
2.1 算法提出的背景
在ZigBee網(wǎng)絡(luò)的實(shí)際應(yīng)用過程中,協(xié)調(diào)器節(jié)點(diǎn)是整個(gè)無線傳感器網(wǎng)絡(luò)的匯聚中心,可以由穩(wěn)壓電源進(jìn)行供電;而終端節(jié)點(diǎn)由于可以采用低功耗模式進(jìn)行工作,能達(dá)到較長的工作壽命。但是,在多跳網(wǎng)絡(luò)中,整體網(wǎng)絡(luò)壽命的瓶頸就在于路由器節(jié)點(diǎn)的工作時(shí)間。而現(xiàn)有的ZigBee協(xié)議中并不支持路由器的低功耗,也即RF開關(guān)始終處于打開狀態(tài)。因而,如何解決ZigBee網(wǎng)絡(luò)中路由器節(jié)點(diǎn)的低功耗路由是一個(gè)重要的并且具有現(xiàn)實(shí)意義的問題。
目前,關(guān)于ZigBee網(wǎng)絡(luò)低功耗路由的具體機(jī)制仍在討論之中,在最新的ZigBee 2007協(xié)議中,雖然也提及了低功耗的路由器,但缺乏具體功能的定義和具體實(shí)現(xiàn)的方法。低功耗路由勢(shì)必是ZigBee網(wǎng)絡(luò)將來的一個(gè)至關(guān)重要的特性,也是ZigBee網(wǎng)絡(luò)演進(jìn)的重要方向之一。
2.2 算法流程
本文提出的低功耗路由算法流程如圖5所示,該算法適用于非信標(biāo)使能的ZigBee網(wǎng)絡(luò)。其中,事件A為定時(shí)器事件,事件B是按鍵觸發(fā)事件。初始階段,協(xié)調(diào)器節(jié)點(diǎn)作為網(wǎng)絡(luò)的中心,需要先啟動(dòng),之后路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)陸續(xù)啟動(dòng)并入網(wǎng)。此時(shí),協(xié)調(diào)器節(jié)點(diǎn)觸發(fā)事件A,向全網(wǎng)絡(luò)廣播ANN_REQ命令。剛?cè)刖W(wǎng)的終端節(jié)點(diǎn)和路由器節(jié)點(diǎn)均處于喚醒狀態(tài),能收到廣播數(shù)據(jù)包。路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)在接收到ANN_REQ命令之后,為避免大量擁塞和沖突現(xiàn)象的發(fā)生,需要等待隨機(jī)時(shí)隙后進(jìn)行響應(yīng),一般時(shí)隙選擇為1ms,隨機(jī)時(shí)隙的上限值由網(wǎng)絡(luò)規(guī)模決定。而路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)響應(yīng)ANN_REQ命令的命令號(hào)和信息格式均有所不同。
圖5 Z-Stack協(xié)議棧低功耗路由算法流程
其中,路由器節(jié)點(diǎn)的響應(yīng)命令為ANN_MSG_R,為點(diǎn)播消息,其中包含了本節(jié)點(diǎn)的基本信息,主要包括本節(jié)點(diǎn)的源地址信息和梯度信息,即該路由器節(jié)點(diǎn)到協(xié)調(diào)器節(jié)點(diǎn)的路由跳數(shù),其目的地址為本節(jié)點(diǎn)的下一跳節(jié)點(diǎn),其他的鄰居路由器節(jié)點(diǎn)收到ANN_MSG_R消息后將命令中梯度值加一,然后原封不動(dòng)地轉(zhuǎn)發(fā)該命令,直至消息到達(dá)協(xié)調(diào)器節(jié)點(diǎn)。協(xié)調(diào)器節(jié)點(diǎn)收到ANN_MSG_R的命令之后,提取消息中的源地址信息,將其作為目的地址,同樣通過點(diǎn)播方式發(fā)送ANN_RSP命令,將已上傳消息的路由器節(jié)點(diǎn)的梯度信息反饋給該路由器節(jié)點(diǎn),作為喚醒時(shí)間的一個(gè)修正量。對(duì)于終端節(jié)點(diǎn)而言,收到ANN_REQ命令后,等待隨機(jī)時(shí)隙后發(fā)送響應(yīng)命令A(yù)NN_MSG_E,該命令包含本終端節(jié)點(diǎn)的網(wǎng)絡(luò)地址信息,用于網(wǎng)絡(luò)管理。協(xié)調(diào)器節(jié)點(diǎn)在收到ANN_MSG_E命令后不需要響應(yīng),從命令中提取該終端節(jié)點(diǎn)的網(wǎng)絡(luò)地址,將其加入網(wǎng)絡(luò)地址鏈表。協(xié)調(diào)器節(jié)點(diǎn)需要統(tǒng)一維護(hù)一張?jiān)摼W(wǎng)絡(luò)中所有終端節(jié)點(diǎn)和路由器節(jié)點(diǎn)的地址鏈表,用于網(wǎng)絡(luò)管理和喚醒統(tǒng)計(jì)。
之后,事件B便可以被觸發(fā),協(xié)調(diào)器節(jié)點(diǎn)廣播同步指令SYN_MSG,該命令中包含本次各個(gè)節(jié)點(diǎn)同時(shí)睡眠的統(tǒng)一時(shí)間值。同步指令到達(dá)路由器節(jié)點(diǎn)之后,路由器節(jié)點(diǎn)需要繼續(xù)維持路由信息和轉(zhuǎn)發(fā)數(shù)據(jù),等待一定的時(shí)間t0,然后根據(jù)SYN_MSG消息中的統(tǒng)一睡眠時(shí)間值配置睡眠定時(shí)器,設(shè)置定時(shí)喚醒時(shí)間為t1,再進(jìn)入睡眠模式。
而終端節(jié)點(diǎn)收到SYN_MSG命令之后將關(guān)閉Data Poll,設(shè)置定時(shí)喚醒的時(shí)間為t2(該時(shí)間也即網(wǎng)絡(luò)周期性采集數(shù)據(jù)時(shí)間),直接進(jìn)入睡眠模式,在終端節(jié)點(diǎn)喚醒之前,無法收到任何的來自其他節(jié)點(diǎn)的消息。至此,網(wǎng)絡(luò)中除了協(xié)調(diào)器以外的所有節(jié)點(diǎn)都進(jìn)入了低功耗模式。
在低功耗路由算法中,需要保證的原則是:路由器節(jié)點(diǎn)先于終端節(jié)點(diǎn)喚醒,晚于終端節(jié)點(diǎn)睡眠。睡眠喚醒后的路由器節(jié)點(diǎn)需要通過軟件重啟恢復(fù)與其父節(jié)點(diǎn)的連接,為了減少重新入網(wǎng)的通信開銷,在算法中采用了Z-Stack協(xié)議棧中的NV(Non Volatile)啟動(dòng)方式。NV指的是非易失性存儲(chǔ)器,也即系統(tǒng)斷電后,存儲(chǔ)在該存儲(chǔ)器中的數(shù)據(jù)也不會(huì)丟失。在Z-Stack協(xié)議棧中,NV存儲(chǔ)器主要用于保存網(wǎng)絡(luò)的配置參數(shù),如網(wǎng)絡(luò)地址等。因此,在低功耗路由算法中的路由器可以通過NV啟動(dòng)的方式保持其網(wǎng)絡(luò)狀態(tài)與喚醒前一致。
需要強(qiáng)調(diào)的是,在低功耗路由算法中,每個(gè)路由器節(jié)點(diǎn)計(jì)算出的t1的值是不同的,本文給出其公式,如式(1)所示:
t1=t2+n·T-ξ(ξ≥nmax·T+δ)
(1)
其中,n表示該節(jié)點(diǎn)的梯度值,為網(wǎng)絡(luò)的最大梯度,T表示一個(gè)梯度補(bǔ)償周期,ξ表示最大的誤差補(bǔ)償,稱為最大前向失步補(bǔ)償因子,δ則用來彌補(bǔ)各個(gè)節(jié)點(diǎn)之間的時(shí)鐘誤差,稱為最小前向失步補(bǔ)償因子。一般而言,最小前向失步補(bǔ)償因子越大,越能提高低功耗路由的可靠性,同時(shí)會(huì)帶來一定路由器節(jié)點(diǎn)的能量損耗。但若最小前向失步補(bǔ)償因子設(shè)置過小,則可能會(huì)引起網(wǎng)絡(luò)中某些時(shí)鐘過快的節(jié)點(diǎn)成為孤兒節(jié)點(diǎn)。同時(shí),最小前向失步補(bǔ)償因子的設(shè)定決定了網(wǎng)絡(luò)中新節(jié)點(diǎn)入網(wǎng)的信標(biāo)請(qǐng)求周期。若一個(gè)終端節(jié)點(diǎn)或者路由器節(jié)點(diǎn)需要加入網(wǎng)絡(luò),而此時(shí)正好處于網(wǎng)絡(luò)的睡眠周期,在原始的Z-Stack協(xié)議棧下,節(jié)點(diǎn)將耗費(fèi)大量的功耗,直至網(wǎng)絡(luò)的睡眠周期結(jié)束。事實(shí)上,這樣的請(qǐng)求數(shù)據(jù)包發(fā)送的頻率過于頻繁,低功耗路由延長了其信標(biāo)請(qǐng)求的時(shí)間。但是,如果這個(gè)信標(biāo)請(qǐng)求的周期過長,甚至大于上一級(jí)路由器節(jié)點(diǎn)的喚醒時(shí)間的話,則將無法保證新節(jié)點(diǎn)在第一個(gè)同步周期內(nèi)入網(wǎng),從而會(huì)加大新節(jié)點(diǎn)入網(wǎng)的時(shí)間并降低新節(jié)點(diǎn)成功入網(wǎng)的概率。因而在低功耗路由算法下,新節(jié)點(diǎn)的信標(biāo)請(qǐng)求周期應(yīng)遵循(2)式,以保證新節(jié)點(diǎn)在下一個(gè)喚醒周期內(nèi)可以入網(wǎng)。
Tnew≤δ
(2)
2.3 算法驗(yàn)證
低功耗路由算法驗(yàn)證的測(cè)試節(jié)點(diǎn)和鋰電池同本文1.3節(jié)中描述的一致。在本節(jié)的算法驗(yàn)證中,事件A定義為定時(shí)觸發(fā),時(shí)間為30 s;事件B定義為按鍵觸發(fā),即需要網(wǎng)絡(luò)管理員通過按鍵啟動(dòng)整個(gè)網(wǎng)絡(luò)的休眠過程和時(shí)間同步。其中,t0設(shè)置為5 s,t2設(shè)置為10 min,最小前向失步補(bǔ)償因子錯(cuò)誤!未找到引用源。設(shè)置為1 min,梯度補(bǔ)償周期T=10 s。算法驗(yàn)證采用1個(gè)協(xié)調(diào)器節(jié)點(diǎn)、2個(gè)路由器節(jié)點(diǎn)和2個(gè)終端節(jié)點(diǎn),構(gòu)建如圖6所示的ZigBee鏈狀網(wǎng)絡(luò)進(jìn)行低功耗路由算法的測(cè)試。
圖6 低功耗路由算法驗(yàn)證的ZigBee網(wǎng)絡(luò)結(jié)構(gòu)
本文提出的低功耗路由算法測(cè)試結(jié)果如圖7所示。
圖7 低功耗路由算法的驗(yàn)證
從圖中可以看到,低功耗路由器節(jié)點(diǎn)1和低功耗路由節(jié)點(diǎn)2的功耗均遠(yuǎn)小于普通低功耗路由器節(jié)點(diǎn)的功耗,而這兩個(gè)低功耗路由節(jié)點(diǎn)的功耗差別來源于梯度補(bǔ)償周期產(chǎn)生的額外功耗。最后,測(cè)試結(jié)果得到了普通路由器、低功耗路由器1和低功耗路由器2三者的電量耗盡時(shí)間。其中,普通路由器7 h耗盡所有測(cè)試電池電量,低功耗路由器1使用了20 h耗盡測(cè)試電池電量,而低功耗路由器2使用了21 h耗盡測(cè)試電池電量。算法驗(yàn)證結(jié)果表明,本文提出的低功耗路由算法可以有效地減少路由器節(jié)點(diǎn)的功耗,從而達(dá)到網(wǎng)絡(luò)節(jié)能的目的。
2.4 對(duì)比實(shí)驗(yàn)
現(xiàn)有關(guān)注ZigBee低功耗路由算法的文獻(xiàn)多數(shù)引入節(jié)點(diǎn)能量代價(jià)來改進(jìn)無線傳感器網(wǎng)絡(luò)中的中轉(zhuǎn)路徑,從而達(dá)到低功耗路由的目的[9-11]。其中,參考文獻(xiàn)[10-11]均提出并通過仿真驗(yàn)證了傳統(tǒng)Ad-hoc網(wǎng)絡(luò)中的MMBCR(Min-Max Battery Cost Routing)算法[12]應(yīng)用于ZigBee網(wǎng)絡(luò)的可行性,該算法將節(jié)點(diǎn)的剩余電池電量作為路徑選擇的依據(jù),并使用能量路徑選擇的方法延長ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)的工作時(shí)間。本節(jié)將該算法在CC2530平臺(tái)上進(jìn)行模擬,假設(shè)與工作路由器節(jié)點(diǎn)平行的備選路由器節(jié)點(diǎn)個(gè)數(shù)為3個(gè),剩余電池電量采用文獻(xiàn)[13]和[14]提出的電壓在線測(cè)量方法,網(wǎng)絡(luò)根據(jù)路由器最大剩余能量的原則為終端節(jié)點(diǎn)分配路由器,不工作的路由器則可以進(jìn)入低功耗模式,依次進(jìn)行輪換。實(shí)驗(yàn)時(shí)睡眠路由器節(jié)點(diǎn)的電量估計(jì)周期為10 s,路由選擇的時(shí)間周期為3 min,將MMBCR算法得到的功耗曲線和本文提出的低功耗路由算法進(jìn)行對(duì)比,得到的結(jié)果如圖8所示。
圖8 對(duì)比實(shí)驗(yàn)的結(jié)果
對(duì)比實(shí)驗(yàn)的結(jié)果表明,基于同步休眠機(jī)制的低功耗路由算法比基于能量選擇機(jī)制的低功耗路由算法在對(duì)局部路由器節(jié)點(diǎn)的節(jié)能效果更有效。事實(shí)上,MMBCR算法解決了網(wǎng)絡(luò)中節(jié)點(diǎn)能量分布不均衡的問題,從而避免了網(wǎng)絡(luò)中出現(xiàn)局部“熱點(diǎn)”;而本文提出的低功耗路由算法則充分利用了網(wǎng)絡(luò)節(jié)點(diǎn)周期喚醒的特性,通過使路由器節(jié)點(diǎn)定時(shí)睡眠來節(jié)省能耗,具有更好的節(jié)能效果。
本文通過對(duì)現(xiàn)有Z-Stack協(xié)議棧的分析研究,指出了現(xiàn)有Z-Stack協(xié)議棧中存在著發(fā)射功率固定和無法實(shí)現(xiàn)低功耗路由的問題,并進(jìn)行了改進(jìn),提出了針對(duì)終端節(jié)點(diǎn)的功率優(yōu)化調(diào)節(jié)算法和針對(duì)路由器節(jié)點(diǎn)的低功耗路由算法,并在CC2530平臺(tái)上進(jìn)行了這兩種節(jié)能算法的驗(yàn)證,實(shí)驗(yàn)結(jié)果證明了本文提出的算法可以有效地減少基于Z-Stack協(xié)議棧的ZigBee節(jié)點(diǎn)的能耗,從而延長網(wǎng)絡(luò)壽命。本文提出的算法易于實(shí)現(xiàn)且具有通用性,具有實(shí)用價(jià)值。
[1] 孫利民,李建中,陳渝,等. 無線傳感器網(wǎng)絡(luò)[M]. 北京:清華大學(xué)出版社,2005:4-5.
[2]Wade R,Mitchell W M,Petter F. Ten Emerging Technologies that Will Change the World[J]. Technology Review,2003,106(1):22-49.[3]郭淵博,楊奎武,趙儉,等. ZigBee技術(shù)與應(yīng)用[M]. 北京:國防工業(yè)出版社,2010:6-10.
[4]張奇松,尹航. Z-Stack剖析及其在無線測(cè)溫網(wǎng)絡(luò)中的應(yīng)用[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(2):103-105.
[5]曾寶國. Z-STACK協(xié)議棧應(yīng)用開發(fā)分析[J]. 物聯(lián)網(wǎng)技術(shù),2011(5):71-73.
[6]Texas Instruments. CC2530 Datasheet[EB/OL]. http://www.ti.com.cn/cn/lit/ds/symlink/cc2530.pdf,2010-10-05.
[7]ZigBee Alliance. ZigBee Specification 2007[EB/OL]. http://www.ZigBee.org,2008.
[8]Theodore S Rappaport. Wireless Communications:Principles and Practice(Second Edition)[M]. Prentice Hall,2002:73-74.
[9]董亮,張靈,陳云華. 基于限制廣播的ZigBee分布式動(dòng)態(tài)能量均衡協(xié)議[J]. 傳感技術(shù)學(xué)報(bào),2014,27(8):1120-1124.
[10]Tekbiyik N,Uysal-Biyikoglu E. Energy Efficient Wireless Unicast Routing Alternatives for Machine-to-Machine Networks[J]. Journal of Network and Computer Applications,2011,34(5):1587-1614.[11]Zhang Z,Zhou F,Liang Y. ZigBee Routing Alorithm Based on Energy Awareness and Energybalance[C]//Consumer Electronics,Communicat-ions and Networks(CECNet),2012 2nd International Conference on. IEEE,2012:747-750.
[12]Toh C K. Maximum Battery Life Routing to Support Ubiquitous Mobile Computing in Wireless Ad Hoc Networks[J]. Communications Magazine,IEEE,2001,39(6):138-147.
[13]呂濤,施偉斌,范坤坤,等. WSN節(jié)點(diǎn)電池供電性能測(cè)試研究[J]. 傳感技術(shù)學(xué)報(bào),2013,26(10):1457-1462.
[14]唐慧強(qiáng),李超. 基于CC2530的鋰電池電量檢測(cè)系統(tǒng)的設(shè)計(jì)[J]. 化工自動(dòng)化及儀表,2011(3):350-353.
高翔(1989-),男,上海人,復(fù)旦大學(xué)碩士研究生,主要從事數(shù)字系統(tǒng)與通信、無線傳感器網(wǎng)絡(luò)方面的研究,vernegao@163.com;
陸起涌(1966-),男,江蘇太倉人,復(fù)旦大學(xué)教授,碩士生導(dǎo)師,主要從事智能控制、嵌入式系統(tǒng)、物聯(lián)網(wǎng)技術(shù)等方面的研究,lqyong@fudan.edu.cn。
ResearchonPower-SavingAlgorithmsinZigBeeNetworkBasedonZ-Stack*
GAOXiang,DENGYongli,LüYuanyuan,LUQiyong*
(Department of Electronic Engineering,Fudan University,Shanghai 200433,China)
ZigBee technology is one of the important techniques for wireless sensor network. Among the implements of ZigBee,Z-Stack is one of the software architecture released by TI Corporation,which has been widely used. The article used CC2530 as hardware platform and Z-Stack as software platform to analyze Z-Stack. It points out that there is power consumption issue on current Z-Stack in practical use. The corresponding power-saving algorithms are also put forward. They are power optimization algorithm for end-device nodes and low power consumption routing algorithm for router nodes. Both algorithms are verified by experiments. The results show that the power-saving algorithms based on Z-Stack proposed in the article can save power consumption effectively when the nodes work and then improve the overall life of the network.
wireless sensor network;ZigBee network;Z-Stack;low power consumption
項(xiàng)目來源:國家863計(jì)劃項(xiàng)目(2011AA100701)
2014-06-23修改日期:2014-10-04
10.3969/j.issn.1004-1699.2014.11.017
TN915
:A
:1004-1699(2014)11-1534-05