新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 一種快速可靠的無線傳感器網(wǎng)絡(luò)路由

一種快速可靠的無線傳感器網(wǎng)絡(luò)路由

——
作者: 時間:2007-11-26 來源: 收藏

  引 言

  傳感器(wireless sensor networks,簡稱)是當(dāng)前在國際上備受關(guān)注的涉及多學(xué)科高度交叉的熱點(diǎn)研究領(lǐng)域。它綜合了傳感器技術(shù)、嵌入式計(jì)算技術(shù)、現(xiàn)代通信技術(shù)等,能夠通過各類集成化的微型傳感器協(xié)同工作,完成指定的任務(wù),并進(jìn)行自組織通信以多跳中繼方式將所感知信息傳送到用戶終端。

  一般運(yùn)行在人們無法接近的惡劣甚至危險的遠(yuǎn)程環(huán)境中,并且傳感器節(jié)點(diǎn)通常攜帶不能補(bǔ)充的有限能量。低能耗、低延遲、自動修復(fù)路徑成了最根本的要求。目前所存在的WSNs路由協(xié)議大都不能同時滿足這樣的條件,或者需要依靠特殊硬件才能實(shí)現(xiàn)這些功能,本文提出了一種快速可靠的低能耗路由(a fast andreliable protocol,簡稱為),不僅可以滿足上面的基本要求,還可以工作于任務(wù)查詢方式及事件驅(qū)動方式,并具有較強(qiáng)的路徑修復(fù)能力。

  主要分為3個部分。首先是構(gòu)建路由樹結(jié)構(gòu),SINK點(diǎn)以洪泛方式向傳感器網(wǎng)絡(luò)傳播路由樹組建消息,使得網(wǎng)絡(luò)中的每個節(jié)點(diǎn)都擁有自己的級別值和父節(jié)點(diǎn),然后SINK點(diǎn)將所要查詢的任務(wù)通過路由樹發(fā)布出去;最后源節(jié)點(diǎn)將選擇最短路徑將數(shù)據(jù)反饋給SINK點(diǎn)。主要能夠?qū)崿F(xiàn)以下幾種功能:任務(wù)查詢、事件驅(qū)動以及路徑自我修復(fù)。而這些僅依靠普通的射頻芯片即可實(shí)現(xiàn),以下將做詳細(xì)介紹。

  1 FRP路由的建立與運(yùn)行

  1.1 路由樹的建立

  在網(wǎng)絡(luò)里,由于受到射頻芯片通信距離的限制,單個節(jié)點(diǎn)無法了解網(wǎng)絡(luò)中全部節(jié)點(diǎn),只能知道其鄰節(jié)點(diǎn)的一些信息。因此第一步需要建立路由樹結(jié)構(gòu),讓節(jié)點(diǎn)了解其所處的級別及父節(jié)點(diǎn)。SINK點(diǎn)首先通過洪泛方式向網(wǎng)絡(luò)傳播路由樹組建消息。組建消息由組建標(biāo)志位、發(fā)送節(jié)點(diǎn)ID、發(fā)送節(jié)點(diǎn)級值組成。收到該組建消息的節(jié)點(diǎn)將發(fā)送節(jié)點(diǎn)ID記錄為父節(jié)點(diǎn),然后將級值加1,并以自身ID和級值更新消息后繼續(xù)向鄰節(jié)點(diǎn)傳播,直到網(wǎng)絡(luò)中所有節(jié)點(diǎn)都擁有自己父節(jié)點(diǎn)和級值。由于洪泛傳輸中可能會導(dǎo)致已經(jīng)發(fā)出消息的節(jié)點(diǎn)再次收到鄰節(jié)點(diǎn)將級值加1后重新發(fā)送來的消息,從而導(dǎo)致消息循環(huán)。為了解決該問題,文中制定如下規(guī)則:當(dāng)一個節(jié)點(diǎn)從鄰節(jié)點(diǎn)處收到組建消息時,首先檢查消息中級值是否低于自身級值,如果是,則以該級值更新,并向鄰節(jié)點(diǎn)發(fā)送新的組建消息;否則將不予處理。在組建消息傳播過程中,節(jié)點(diǎn)選擇最早發(fā)送其消息,級值更低的節(jié)點(diǎn)作為父節(jié)點(diǎn)。圖1所示為路由樹的初始化過程。

  

  1.2 任務(wù)查詢機(jī)制

  當(dāng)SINK點(diǎn)進(jìn)行任務(wù)查詢時,首先以洪泛方式向整個網(wǎng)絡(luò)發(fā)布任務(wù)查詢命令,該命令主要由任務(wù)查詢標(biāo)志位、任務(wù)發(fā)送節(jié)點(diǎn)ID、任務(wù)發(fā)送節(jié)點(diǎn)級別、任務(wù)條件、任務(wù)存活時間等字段組成。收到該命令的節(jié)點(diǎn),將以記錄的形式將本次任務(wù)存儲在本地存儲器里,每一條記錄代表不同的任務(wù)。當(dāng)節(jié)點(diǎn)收到任務(wù)查詢命令時,首先檢查命令中的發(fā)送節(jié)點(diǎn)級別,若低于本身節(jié)點(diǎn),則與本地存儲的任務(wù)記錄表相比較,如果不存在該任務(wù),則添加該任務(wù)記錄。然后檢查自身是否滿足該任務(wù)條件,若不滿足,則以本身級點(diǎn)更新任務(wù)查詢命令中的任務(wù)發(fā)送節(jié)點(diǎn)ID、任務(wù)發(fā)送節(jié)點(diǎn)級別,然后轉(zhuǎn)發(fā)該命令;否則該節(jié)點(diǎn)即為源節(jié)點(diǎn),并從任務(wù)查詢命令中取出任務(wù)發(fā)送節(jié)點(diǎn)ID,作為目標(biāo)節(jié)點(diǎn),準(zhǔn)備向其發(fā)送任務(wù)確認(rèn)命令。該命令由任務(wù)確認(rèn)標(biāo)志位、源節(jié)點(diǎn)ID、數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID、測量數(shù)據(jù)等字段組成。收到任務(wù)確認(rèn)命令的節(jié)點(diǎn)從中取出數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID,存儲在任務(wù)記錄中,作為以后相同任務(wù)的子節(jié)點(diǎn),然后以自身ID作為新的數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID更新命令,并從任務(wù)列表中取出該任務(wù)的任務(wù)發(fā)送節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)繼續(xù)傳輸任務(wù)確認(rèn)命令,直到返回至SINK點(diǎn)。同時,其它未收到任務(wù)確認(rèn)命令的節(jié)點(diǎn)將會在任務(wù)存活時間到期后,將存儲器中的任務(wù)記錄刪除。在任務(wù)查詢命令廣播過程中,若接收節(jié)點(diǎn)檢測到本地任務(wù)記錄表中存在相同任務(wù),則從該記錄中取出子節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn),向其發(fā)送任務(wù)查詢命令,避免洪泛傳播,從而大大節(jié)約了能量。

  1.3 事件驅(qū)動

  當(dāng)某事件被傳感器節(jié)點(diǎn)捕捉時,則該節(jié)點(diǎn)即為源節(jié)點(diǎn),并向其父節(jié)點(diǎn)發(fā)送事件命令。該命令由事件類型、源節(jié)點(diǎn)ID、發(fā)送節(jié)點(diǎn)ID、測量數(shù)據(jù)組成。收到事件命令的節(jié)點(diǎn),以自身ID作為新的發(fā)送節(jié)點(diǎn)ID更新命令,向其父節(jié)點(diǎn)繼續(xù)傳輸事件驅(qū)動命令,直到數(shù)據(jù)傳輸至SINK點(diǎn)。

  2 路由修復(fù)機(jī)制

  本文中的節(jié)點(diǎn)傳輸路徑是唯一的,這樣可以節(jié)約能量,提高效率。但是由于這種唯一性,如果一個節(jié)點(diǎn)電池耗盡或者物理損害而失效,則會導(dǎo)致其下級節(jié)點(diǎn)也脫離了網(wǎng)絡(luò)。目前有些路由協(xié)議針對這一問題,采用通過由SINK點(diǎn)發(fā)起洪泛協(xié)議進(jìn)行路徑修復(fù)的辦法來解決,但是這樣明顯浪費(fèi)能量,而且在洪泛期間,失效節(jié)點(diǎn)的鄰節(jié)點(diǎn)若產(chǎn)生事件將無法傳遞,導(dǎo)致了數(shù)據(jù)丟失。

  FRP路徑修復(fù)機(jī)制分為2個部分:節(jié)點(diǎn)狀態(tài)檢測和新目標(biāo)節(jié)點(diǎn)的選擇。文中采用應(yīng)答機(jī)制來進(jìn)行節(jié)點(diǎn)狀態(tài)檢測。當(dāng)節(jié)點(diǎn)發(fā)送數(shù)據(jù)給目標(biāo)節(jié)點(diǎn)后,若在一定時間內(nèi),收到目標(biāo)節(jié)點(diǎn)的ACK,則認(rèn)為目標(biāo)節(jié)點(diǎn)仍然正常工作,并已將數(shù)據(jù)向前傳輸;否則目標(biāo)節(jié)點(diǎn)已經(jīng)死亡,需要另行尋找新的目標(biāo)節(jié)點(diǎn)。如果在任務(wù)查詢方式運(yùn)行過程中,某節(jié)點(diǎn)檢測到子節(jié)點(diǎn)死亡時,按相反路徑發(fā)送命令通知SINK點(diǎn),進(jìn)行本次任務(wù)的重新路由,建立新的任務(wù)路徑。如果在事件驅(qū)動方式下,當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)其父節(jié)點(diǎn)死亡,則發(fā)送SEARCH消息,鄰節(jié)點(diǎn)將返回ACK。節(jié)點(diǎn)從中選取響應(yīng)時間低的低級別節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)。若無低級別的節(jié)點(diǎn)應(yīng)答,則該節(jié)點(diǎn)將以洪泛方式發(fā)送命令通知SINK點(diǎn)進(jìn)行新的路由樹的建立。其過程如圖2,圖3所示。

  

  3 軟件仿真

  本文采用了Visual C++開發(fā)了網(wǎng)絡(luò)路由仿真平臺。分別研究了從100到500個節(jié)點(diǎn)共5個不同規(guī)模的傳感器區(qū)域。我們建立參數(shù)如表1所示。

  

  PEQ將根據(jù)上述參數(shù)在相同的仿真環(huán)境下與Directed Diffusion協(xié)議(DD協(xié)議)進(jìn)行測試并進(jìn)行以下幾個方面的比較:SINK點(diǎn)-源節(jié)點(diǎn)-SINK點(diǎn)時間延遲;平均延遲;平均消耗能量,以下將分別作以說明。

  SINK點(diǎn)-源節(jié)點(diǎn)-SINK點(diǎn)的時間延遲指的是從SINK點(diǎn)發(fā)出查詢信息,到數(shù)據(jù)返回到SINK點(diǎn)所消耗的時間。低的延遲時間可以保證用戶有更充足的時間來處理突發(fā)事件。FRP主要通過SINK點(diǎn)發(fā)布任務(wù)查詢命令建立路徑,源節(jié)點(diǎn)沿著該路徑反方向?qū)?shù)據(jù)傳輸給SINK點(diǎn)。而DD協(xié)議則是通過SINK點(diǎn)發(fā)布興趣給網(wǎng)絡(luò),當(dāng)源節(jié)點(diǎn)收到后,源節(jié)點(diǎn)通過多個路徑傳送數(shù)據(jù)給SINK點(diǎn),SINK點(diǎn)收到后,并從中選擇更快捷的路徑加強(qiáng),進(jìn)行數(shù)據(jù)傳輸。FRP比DD協(xié)議在步驟上更簡潔,從而獲得更低的延遲效果。其仿真數(shù)據(jù)如圖4所示:

  平均延遲指的是仿真中所產(chǎn)生的事件從源節(jié)點(diǎn)傳播到SINK點(diǎn)需要的平均時間。仿真數(shù)據(jù)如圖5所示,結(jié)果表明,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,PEQ協(xié)議顯示了比DD協(xié)議更好的延遲特性。

  平均消耗能量指的是仿真結(jié)束后,節(jié)點(diǎn)平均所消耗的能量。仿真數(shù)據(jù)如圖6所示,結(jié)果表明,F(xiàn)RP比DD更節(jié)約能量。原因在于FRP在數(shù)據(jù)傳輸中僅使用單一路徑,而DD協(xié)議在數(shù)據(jù)傳輸中會使用多個傳輸路徑,并對其中傳輸速度慢的路徑進(jìn)行反向增強(qiáng),產(chǎn)生了能量消耗。

  

  4 結(jié) 論

  本文提出了一種新的無線傳感器路由協(xié)議FRP,經(jīng)過與DD協(xié)議仿真比較,實(shí)驗(yàn)數(shù)據(jù)顯示,無論是小規(guī)模網(wǎng)絡(luò)(100個節(jié)點(diǎn)),還是中大規(guī)模網(wǎng)絡(luò)(300~500個節(jié)點(diǎn)),F(xiàn)RP都具有更短的時間延遲和較低的能量消耗。并且該協(xié)議已經(jīng)在基于MSP430F123和NRF2401的硬件節(jié)點(diǎn)上成功應(yīng)用。現(xiàn)場試驗(yàn)表明,該路由反應(yīng)迅速,自我修復(fù)能力強(qiáng),可以滿足無線傳感器實(shí)時監(jiān)測應(yīng)用的要求。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉