作者:陳得民,張元,賈德林,李鵬
引言
利用無線傳感器網(wǎng)絡(luò)檢測糧庫的糧食數(shù)量是一項新技術(shù)。由于糧堆的復(fù)雜性,可在糧庫底部散布大量分布不均的壓力傳感器節(jié)點。將糧庫內(nèi)大量分布不均的傳感器節(jié)點進行組網(wǎng),構(gòu)建一種路由算法,這是糧庫WSN(Wire-less Sensor Network)的關(guān)鍵技術(shù)之一。
高效的路由算法需滿足以下幾點:能量高效(協(xié)議簡單和節(jié)省能量和均衡消耗)、可擴展性(網(wǎng)絡(luò)范圍和節(jié)點密度)、魯棒性(節(jié)點變化和拓撲變化)、快速收斂性。本文通過研究目前主要的幾種典型WSN路由算法,提出一種針對糧庫WSN的路由算法。實驗證明,該算法滿足能量高效性、可擴展性、魯棒性和快速收斂性要求。單個對比文中提到的幾種典型路由算法,該算法整體性能比它們都優(yōu)越。
1 典型的WSN路由算法
傳統(tǒng)無線通信網(wǎng)絡(luò)研究的重點放在無線通信的服務(wù)質(zhì)量(QoS)上,而無線傳感器節(jié)點是隨機分布、電池供電的,因此無線傳感器網(wǎng)絡(luò)路由算法的研究重點放在如何提高能量效率上。目前典型的無線傳感器網(wǎng)絡(luò)路由算法主要有以下幾種。
1.1 泛洪算法
泛洪(Flooding)算法是一種傳統(tǒng)的無線通信路由算法。該算法規(guī)定,每個節(jié)點接收來自其他節(jié)點的信息,并以廣播的形式發(fā)送給其他鄰居節(jié)點。如此繼續(xù)下去,最后將信息數(shù)據(jù)發(fā)送給目的節(jié)點。但這個算法容易引起信息的“內(nèi)爆”(implosion)和“重疊”(overlap),造成資源的浪費。因此在泛洪算法的基礎(chǔ)上,提出了閑聊(Gossiping)算法。
1.2 Gossiping算法
Gossiping算法是在泛洪算法的基礎(chǔ)上進行改進而提出的。它傳播信息的途徑是,隨機地選擇一個鄰居節(jié)點,獲得信息的鄰居節(jié)點再以同樣的方式隨機地選擇下一個節(jié)點,進行信息的傳遞。這種方式避免了以廣播形式進行信息傳播的能量消耗,但其代價是延長了信息的傳遞時間。雖然Gossiping算法在一定程度上解決了信息的內(nèi)爆問題,但是仍然存在信息的重疊現(xiàn)象。
1.3 SPIN算法
SPIN(Sensor Protocol for Information via Negotia-tion)算法是一種以數(shù)據(jù)為中心的自適應(yīng)路由算法。其目的是通過節(jié)點之間的協(xié)商,解決Flooding算法和Gossi-ping算法的內(nèi)爆和重疊問題。SPIN算法有3種類型的消息,即ADC、REQ和DATA。ADC用于數(shù)據(jù)的廣播,當某一個節(jié)點有數(shù)據(jù)可以共享時,可以用其進行數(shù)據(jù)信息廣播。REQ用于請求發(fā)送數(shù)據(jù),當某一個節(jié)點希望接收DATA數(shù)據(jù)包時,發(fā)送REQ數(shù)據(jù)包。DATA為傳感器采集的數(shù)據(jù)包。在發(fā)送一個DATA數(shù)據(jù)包之前,一個傳感器節(jié)點首先對外廣播ADV數(shù)據(jù)包。如果某一個節(jié)點希望接收要傳來的數(shù)據(jù)信息,則向發(fā)送ADV數(shù)據(jù)包的節(jié)點回復(fù)REQ數(shù)據(jù)包,因此,便建立起發(fā)送節(jié)點和接收節(jié)點的聯(lián)系,發(fā)送節(jié)點便向接收節(jié)點發(fā)送DATA數(shù)據(jù)包。SPIN協(xié)議的工作流程如圖1所示。
1.4 定向擴散算法
定向擴散(Direeted Diffusion)算法是一種基于查詢的路由機制。整個過程可以分為興趣擴散、梯度建立以及路徑加強3個階段。在興趣擴散階段,匯聚節(jié)點向傳感器節(jié)點發(fā)送其想要獲取的信息種類或內(nèi)容。興趣消息中含有任務(wù)類型、目標區(qū)域、數(shù)據(jù)發(fā)送速率、時間戳等參數(shù)。每個傳感器節(jié)點在收到該信息后,將其保存在Cache 中。當整個信息要求傳遍整個傳感器網(wǎng)絡(luò)后,便在傳感器節(jié)點和匯聚節(jié)點之間建立起一個梯度場,梯度場的建立是根據(jù)成本最小化和能量自適應(yīng)原則。一旦傳感器節(jié)點收集到匯聚節(jié)點感興趣的數(shù)據(jù),就會根據(jù)建立的梯度場尋求最快路徑進行數(shù)據(jù)傳遞。梯度場建立的過程如圖2所示。
1.5 LEACH算法
LEACH(LOW-Energy Adaptive Clustering Hier-archy)算法是一種以最小化傳感器網(wǎng)絡(luò)能量損耗為目標的分層式算法。該算法的主要思想是通過隨機選擇類頭節(jié)點,平均分擔(dān)無線傳感器網(wǎng)絡(luò)的中繼通信業(yè)務(wù),以達到平均消耗傳感器網(wǎng)絡(luò)中節(jié)點能量的目的,進而延長網(wǎng)絡(luò)的生命周期。LEACH算法可以將網(wǎng)絡(luò)生命周期延長15%。LEACH算法分為兩個階段:類準備階段和數(shù)據(jù)傳輸階段。類準備階段和就緒階段所持續(xù)的時間總和稱為一個輪回。在類準備階段,LEACH算法隨機選擇一個傳感器節(jié)點作為類頭節(jié)點,隨機性確保類頭與基站之間數(shù)據(jù)傳輸?shù)母吣芎某杀揪鶆虻胤謹偟剿袀鞲衅鞴?jié)點上。
2 RCCMA算法
定義1 簇區(qū)域,有一些相同的傳感器節(jié)點所占的區(qū)域,處在該區(qū)域內(nèi)的節(jié)點功能相同。在本文中,一級簇區(qū)域內(nèi)所有傳感器節(jié)點都具有輪轉(zhuǎn)調(diào)度機制、數(shù)據(jù)收發(fā)等功能,二級簇區(qū)域內(nèi)傳感器節(jié)點不具有輪轉(zhuǎn)調(diào)度機制。
定義2 絕對夾角,不考慮方向,只考慮大小。
2.1 簇區(qū)域劃分和級別設(shè)定
如圖3所示,將糧庫底面區(qū)域化,在各個區(qū)域內(nèi)計算傳感器節(jié)點密度,ρ=N/S。選取 3個密度最高的區(qū)域作為一級簇區(qū)域,其他區(qū)域為二級簇區(qū)域。在邊界線外部確定整個網(wǎng)絡(luò)的終極節(jié)點。設(shè)終極節(jié)點為O,選取的3個一級簇區(qū)域為A、B、C,終極節(jié)點到3個一級簇區(qū)域中心距離分別為dA、dB、dC,則終極節(jié)點位置滿足min{dA+dB+dC}。
2.2 二級簇區(qū)域內(nèi)節(jié)點問路由
在二級簇區(qū)域內(nèi),選取一個到最近一級簇區(qū)域距離最短的節(jié)點作為該二級簇區(qū)域內(nèi)的目標節(jié)點。利用最小夾角原則進行源節(jié)點到目標節(jié)點路由。具體步驟如下:
設(shè)節(jié)點1為該二級簇區(qū)域內(nèi)選取的目標節(jié)點。節(jié)點8可向節(jié)點4通信,也可以向節(jié)點9通信。如果節(jié)點8、9都正常,則將節(jié)點8分別與節(jié)點4、節(jié)點9和節(jié)點1連接。以節(jié)點8與目標節(jié)點1的連線為終邊,以節(jié)點8與其相鄰的節(jié)點4、9連線為另一邊,判斷它們的絕對角大小。選取構(gòu)成最小角的鄰節(jié)點作為源節(jié)點的下一跳路由節(jié)點,圖4中節(jié)點9構(gòu)成的絕對夾角最小,故選擇節(jié)點9作為源節(jié)點8的下一跳路由節(jié)點。其他節(jié)點及其路由類似。
2.3 一級簇區(qū)域內(nèi)節(jié)點問路由
一級簇區(qū)域負責(zé)與鄰近二級簇區(qū)域節(jié)點通信,同時負責(zé)與整個網(wǎng)絡(luò)終極節(jié)點通信,所以能耗最大。但是,一級簇區(qū)域內(nèi)節(jié)點密度較高,采用輪轉(zhuǎn)調(diào)度機制,每個節(jié)點在某時承擔(dān)目標節(jié)點,將能耗平衡化,降低單個節(jié)點的能耗。
當某時該區(qū)域內(nèi)某節(jié)點是目標節(jié)點時,該區(qū)域內(nèi)的其他節(jié)點和其相鄰的二級簇區(qū)域內(nèi)的目標節(jié)點都是該一級簇區(qū)域內(nèi)目標節(jié)點的子節(jié)點。此時便是所有子節(jié)點與目標節(jié)點問的路由問題。同理,參照最小夾角原則進行路由規(guī)劃。
一級簇區(qū)域內(nèi)目標節(jié)點匯聚了大量的數(shù)據(jù),但節(jié)點數(shù)量較少(本例中任何時刻只有3個)。終極節(jié)點采用查詢機制與3個一級簇區(qū)域目標節(jié)點進行通信。
3 實驗結(jié)果
3.1 實驗環(huán)境
實驗采用30個能量相同的傳感器節(jié)點分別分布在10個等面積區(qū)域內(nèi),A、B、C三個區(qū)域節(jié)點密度最高,都布置了5個節(jié)點,其他區(qū)域節(jié)點布置如圖6所示。然后用一個終極節(jié)點和一級簇區(qū)域內(nèi)節(jié)點通信,此終極節(jié)點能量和通信距離都比其他節(jié)點大。傳感器節(jié)點采用nRF905射頻芯片,ATmegal68單片機,供 3.3 V直流電(舊電池)。
3.2 實驗方法
①先按本路由算法實現(xiàn)整個WSN的通信,記錄最大通信延遲時間。然后,進行多次通信,消耗節(jié)點能量,直到網(wǎng)絡(luò)癱瘓,記錄網(wǎng)絡(luò)工作時間。最后,減少或增加傳感器節(jié)點,按本路由算法再次建立WSN路由,進行相同的測試。在多次測試中,記錄網(wǎng)絡(luò)出錯率。
②采用上述幾種典型的路由算法,按方法1進行同樣的測試。部分參數(shù)對比如表1所列。
實驗發(fā)現(xiàn),本文提出的RCCMA路由算法在能量高效性、可擴展性、魯棒性和快速收斂性方面都比文中提到的幾種典型路由算法優(yōu)越。
4 結(jié)論
本算法有效地把糧倉底部大量分布不均的傳感器節(jié)點進行了很好的路由,實現(xiàn)了整個網(wǎng)絡(luò)的通信路徑規(guī)劃。其創(chuàng)新點是先提出一種分級簇區(qū)域算法,將大量分布不均的傳感器節(jié)點進行了區(qū)域劃分和級別設(shè)定。然后提出一種基于最小夾角的路由算法,實現(xiàn)了二級簇區(qū)域內(nèi)節(jié)點問路由和一級簇區(qū)域與二級區(qū)域內(nèi)目標節(jié)點問的路由。由于一級簇區(qū)域負責(zé)與鄰近二級簇區(qū)域節(jié)點通信,同時負責(zé)與整個網(wǎng)絡(luò)終極節(jié)點通信,所以能耗最大。但是一級簇區(qū)域內(nèi)節(jié)點密度較高,本文采用輪轉(zhuǎn)調(diào)度睡眠機制,每個節(jié)點在某時承擔(dān)目標節(jié)點,將能耗平衡化,降低了單個節(jié)點的能耗。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2566文章
53008瀏覽量
767587 -
無線
+關(guān)注
關(guān)注
31文章
5555瀏覽量
176061
發(fā)布評論請先 登錄
MSAODV路由算法的原理及在無線傳感器網(wǎng)絡(luò)方面的應(yīng)用

NHLERE:應(yīng)用蟻群算法的WSN路由算法
特定環(huán)境下無線傳感器網(wǎng)絡(luò)的組播路由算法研究 論文
C51RF-WSN無線傳感器網(wǎng)絡(luò)
基于微型無線傳感網(wǎng)絡(luò)的路由算法
無線傳感器網(wǎng)絡(luò)低功耗分簇路由算法研究
無線傳感器網(wǎng)絡(luò)路由協(xié)議與改進
淺析無線傳感器網(wǎng)絡(luò)(WSN)
無線傳感器網(wǎng)絡(luò)異構(gòu)驅(qū)動路由算法
無線傳感器網(wǎng)絡(luò)溫控平臺路由協(xié)議研究
一種基于LEACH的改進型無線傳感器網(wǎng)絡(luò)路由算法

無線傳感器網(wǎng)絡(luò)(WSN)研究與開發(fā)
無線傳感器網(wǎng)絡(luò)在地震監(jiān)測中的應(yīng)用研究

評論