畢業(yè)論文--zigbee網(wǎng)絡(luò)路由算法設(shè)計_第1頁
已閱讀1頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  編 號: </p><p>  審定成績: </p><p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  填表時間: 2012年 5 月</p><p> 設(shè)計(論文)題目:ZigBee網(wǎng)絡(luò)路由算法設(shè)計</p><

2、;p><b>  摘 要</b></p><p>  ZigBee技術(shù)是一種低功耗、低成本、低速率的無線通信技術(shù)。目前在工業(yè)領(lǐng)域、醫(yī)學(xué)領(lǐng)域、軍事領(lǐng)域、智能家居、道路監(jiān)測、家庭自動化等方面有著良好的應(yīng)用前景。ZigBee網(wǎng)絡(luò)常用的路由算法有Cluster-Tree算法、AODVjr算法和Cluster-Tree&AODVjr算法。其中AODVjr是AODV算法的簡化版本。<

3、;/p><p>  本文借助Matlab的Truetime1.5工具箱搭建了ZigBee網(wǎng)絡(luò)的仿真平臺,在此平臺上實現(xiàn)了對AODV路由算法的設(shè)計。該設(shè)計可以分為以下幾個模塊來實現(xiàn):初始化、路由發(fā)現(xiàn)及維護、節(jié)點收發(fā)數(shù)據(jù)、節(jié)點移動、顯示及時鐘模塊。重點分析介紹了AODV路由發(fā)現(xiàn)及維護模塊。分析了一種基于路由發(fā)現(xiàn)過程的改進方案。該方案通過增加反向的RREQ分組和備用路由表來降低網(wǎng)絡(luò)阻塞的概率和數(shù)據(jù)丟失率。</p>

4、;<p>  通過設(shè)計節(jié)點的移動來模擬真實網(wǎng)絡(luò)中節(jié)點失效的情況。通過測試,在該平臺上,可以實現(xiàn)AODV路由的發(fā)現(xiàn)、建立、維護、收發(fā)數(shù)據(jù)等功能。</p><p>  【關(guān)鍵詞】ZigBee AODV Truetime 1.5 路由</p><p><b>  ABSTRACT</b></p><p>  ZigBee is a

5、 technology of wireless communication, which is low power, low cost, low rate. Currently, it is widely used in such as industrial,medical,military areas,intelligent house, road monitoring ,home automation and so on. Typi

6、cally,there are three kind of route algorithms,namely AODVjr algorithm ,Cluster-Tree algorithm and Cluster-Tree & AODVjr algorithm.Of the three ones,the AODVjr algorithm is a short version of AODV protocol.</p>

7、<p>  We build a simulation platform of the ZigBee network with the toolbox of TrueTime 1.5 in Matlab,and then design the protocol of AODV on it. The design can be divided into several modules to achieve, they are

8、 the block of route discovery and maintance , initialization, the animation block, clock, node moving and sending and reciving data.We introduce the route discovery and maintance block as a key.Then an improved AODV algo

9、rithm is analyzed in detail,which helps to reduce the loss of data and th</p><p>  We simulate the real environment of network by moving two nodes .As a result,we realize the feature of discoverying and main

10、taining a route, sending and receiving datas and so on.</p><p>  【Key words】ZigBee AODV Truetime 1.5 Improved routing protocol</p><p><b>  目 錄</b></p><p><b>  

11、前 言1</b></p><p><b>  第一章 緒論2</b></p><p>  第一節(jié) 選題背景2</p><p>  一、無線傳感網(wǎng)絡(luò)概述2</p><p>  二、ZigBee網(wǎng)絡(luò)概述3</p><p>  第二節(jié) 選題意義5</p>&

12、lt;p>  一、ZigBee的應(yīng)用領(lǐng)域5</p><p>  二、ZigBee的發(fā)展現(xiàn)狀6</p><p>  第三節(jié)論文的結(jié)構(gòu)和主要研究內(nèi)容7</p><p>  第四節(jié) 本章小結(jié)8</p><p>  第二章 ZigBee路由協(xié)議分析9</p><p>  第一節(jié) 網(wǎng)絡(luò)層規(guī)范簡介9<

13、;/p><p>  一、網(wǎng)絡(luò)層數(shù)據(jù)實體9</p><p>  二、網(wǎng)絡(luò)層管理實體10</p><p>  第三節(jié) 組網(wǎng)過程12</p><p>  第四節(jié) 路由協(xié)議的基本思想14</p><p>  一、Cluster-Tree算法14</p><p>  二、AODVjr算法15<

14、;/p><p>  三、Cluster-Tree&AODVjr結(jié)合的算法16</p><p>  第五節(jié) 本章小結(jié)18</p><p>  第三章 基于ZigBee的AODV路由算法設(shè)計19</p><p>  第一節(jié) 系統(tǒng)總體設(shè)計19</p><p>  第二節(jié) 各個子模塊的設(shè)計19</p>

15、<p><b>  一、初始化19</b></p><p>  二、路由發(fā)現(xiàn)及維護21</p><p>  三、節(jié)點收發(fā)數(shù)據(jù)39</p><p>  四、節(jié)點的移動40</p><p><b>  五、顯示41</b></p><p><b>

16、;  六、時鐘42</b></p><p>  第三節(jié) 本章小結(jié)45</p><p>  第四章 基于路由發(fā)現(xiàn)過程的AODV路由改進方案46</p><p>  第一節(jié) 改進方案的思想46</p><p>  一、增加反向RREQ46</p><p>  二、增加備用路由表50</p&

17、gt;<p>  第二節(jié) 改進方案的優(yōu)勢53</p><p>  第三節(jié) 本章小結(jié)53</p><p>  第五章 AODV路由協(xié)議的實現(xiàn)與測試54</p><p>  第一節(jié) 驗證與測試環(huán)境的搭建54</p><p>  第二節(jié) AODV路由協(xié)議的測試55</p><p>  第三節(jié)

18、 測試結(jié)果分析57</p><p>  第四節(jié) 本章小結(jié)58</p><p><b>  結(jié) 論59</b></p><p><b>  致 謝60</b></p><p><b>  參考文獻61</b></p><p><b&

19、gt;  附 錄62</b></p><p><b>  一、英文原文62</b></p><p><b>  二、英文翻譯74</b></p><p>  三、工程設(shè)計圖紙:85</p><p><b>  前 言</b></p><

20、;p>  隨著無線傳感網(wǎng)絡(luò)應(yīng)用的逐步推廣,ZigBee技術(shù)憑借其低功耗、低成本、短時延、高可靠性等諸多優(yōu)勢得到了越來越多的關(guān)注。同時,ZigBee技術(shù)在工業(yè)領(lǐng)域、汽車上、智能家居、道路監(jiān)測、醫(yī)學(xué)等諸多領(lǐng)域也已取得初步的成就。目前,對ZigBee技術(shù)的研究也有一定的深度,主要有安全和能量兩方面的問題。相對于國外比較早的研究,中國目前對ZigBee技術(shù)的研究還處于起步階段,與國外的差距比較大。</p><p>

21、  ZigBee網(wǎng)絡(luò)層的作用是保證MAC子層的正常工作,并為應(yīng)用層提供合適的接口。其網(wǎng)絡(luò)層分為數(shù)據(jù)實體和管理實體,其中管理實體是網(wǎng)絡(luò)層的核心,主要完成配置新設(shè)備、網(wǎng)絡(luò)建立及維護、路由實現(xiàn)、數(shù)據(jù)收發(fā)控制等任務(wù)。</p><p>  AODV是一種應(yīng)用于無線網(wǎng)狀網(wǎng)絡(luò)的路由協(xié)議。它源節(jié)點需要發(fā)送數(shù)據(jù)時才進行路由發(fā)現(xiàn)。當沒有數(shù)據(jù)發(fā)送請求時并不執(zhí)行。在路由發(fā)現(xiàn)過程中首先檢查路由表中是否存在從源節(jié)點到目的節(jié)點的路由,若存在則

22、直接進行數(shù)據(jù)轉(zhuǎn)發(fā),若不存在,則廣播RREQ分組進行尋找并建立路由。當目的節(jié)點收到第一個RREQ分組時,立即回復(fù)RREP分組給源節(jié)點,當源節(jié)點收到RREP分組時,便沿著RREP的路徑建立了一條到目的節(jié)點的路徑,然后通過此路徑進行數(shù)據(jù)的傳送。當節(jié)點在轉(zhuǎn)發(fā)分組失敗的時候便廣播一個RRER分組,以此來告知源節(jié)點路徑斷開,源節(jié)點收到RRER之后將要發(fā)送的數(shù)據(jù)存入緩存,并重新發(fā)起路由發(fā)現(xiàn)的過程,直到新的路由路徑建立起來的時候,才將緩存中的數(shù)據(jù)依次發(fā)

23、送給目的節(jié)點。</p><p>  ZigBee網(wǎng)絡(luò)中的節(jié)點大多采用電池供電,特別是當節(jié)點分布的環(huán)境比較復(fù)雜,節(jié)點數(shù)量繁多的時候,更換電池很難的情況下,如何保證網(wǎng)絡(luò)存在周期最長,節(jié)點功耗降到最低就顯得尤為重要。同時,如何才能減小丟包率,這個問題也很重要。本文分析了一種基于AODV路由發(fā)現(xiàn)的改進方案,通過增加反向的RREQ分組及建立備用路由表,可以有效的減小AODV路由算法中路由發(fā)現(xiàn)過程中的RREQ洪泛轉(zhuǎn)發(fā)帶來的網(wǎng)

24、絡(luò)阻塞,及路由失效帶來的數(shù)據(jù)丟失問題。</p><p><b>  第一章 緒論</b></p><p><b>  第一節(jié) 選題背景</b></p><p>  一、無線傳感網(wǎng)絡(luò)概述</p><p>  無線傳感網(wǎng)(WSN,Wireless Sensor Network),是由傳感器、數(shù)據(jù)處理

25、單與及通信模塊構(gòu)成的。傳感器是隨機分布的,組網(wǎng)方式是自組織。無線傳感網(wǎng)通過嵌入在內(nèi)部的各種傳感器來實現(xiàn)對所需要的信息的采集,比如溫度、濕度、光強、土壤中營養(yǎng)成分的濃度等 []。無線傳感網(wǎng)的一般都采用短距離的無線低功率通信技術(shù)來實現(xiàn)通信。表1.1列舉了無線傳感網(wǎng)絡(luò)中幾種常用的無線通信技術(shù)[]。</p><p>  表1.1 幾種短距離無線通信技術(shù)的比較</p><p>  無線傳感器網(wǎng)絡(luò)的

26、在軍事、環(huán)境檢測和預(yù)報、健康護理、智能家居、建筑物狀態(tài)監(jiān)控、復(fù)雜機械監(jiān)控、城市交通、空間探索、大型車間管理,以及機場、大型工業(yè)園區(qū)的安全檢測等方面都得到了廣泛的應(yīng)用,吸引了來自政府部門、軍方、企業(yè)及科研機構(gòu)的高度關(guān)注,成為目前工業(yè)界、學(xué)術(shù)界的研究熱點之一。隨著無線傳感器網(wǎng)絡(luò)技術(shù)的進一步發(fā)展,無線傳感網(wǎng)將逐漸深入到人類生活的各個領(lǐng)域[]。</p><p>  無線傳感網(wǎng)絡(luò)具有大規(guī)模、無線、自組織、多跳、無分區(qū)、無基

27、礎(chǔ)設(shè)施支持的特點,其節(jié)點是同構(gòu)的、低成本的、體積較小、不移動,被隨意的撒布在工作區(qū)域。無線傳感網(wǎng)絡(luò)所傳輸?shù)臄?shù)據(jù)通常為小量的突發(fā)信號,這一類信號的特征是數(shù)據(jù)量小、傳輸速率低,但是需要實時傳送。由于系統(tǒng)所使用的設(shè)備一般是電池供電的嵌入式設(shè)備,所以無線傳感網(wǎng)的數(shù)據(jù)傳輸要求傳輸設(shè)備具有成本低、功耗小的特點。傳統(tǒng)的無線通信技術(shù)基本都能夠?qū)崿F(xiàn)數(shù)據(jù)的實時傳輸,但是由于設(shè)備成本高、能耗高、體積比較大等諸多問題,使得人們正在尋找一種低成本、小體積、低能耗

28、、低數(shù)據(jù)傳輸速率的無線通信技術(shù)。在2002年,由英mInvensys公司、日本三菱電氣公司、美國摩托羅拉公司及荷蘭飛利浦公司共同組成 ZigBee技術(shù)聯(lián)盟,共同研究開發(fā)ZigBee技術(shù)。ZigBee技術(shù)是目前唯一面向無線傳感器網(wǎng)絡(luò)的技術(shù)標準,它是該技術(shù)的迅速發(fā)展的產(chǎn)物。 ZigBee的目標是建立一個 “無所不在的傳感器網(wǎng)絡(luò)” (Ubiquitous Sensor Network)[3]。 </p><p> 

29、 二、ZigBee網(wǎng)絡(luò)概述</p><p>  ZigBee是基于802.15.4標準的,在此基礎(chǔ)上,只定義了物理層和MAC子層。ZigBee聯(lián)盟又在物理層和MAC的基礎(chǔ)上擴展了網(wǎng)絡(luò)層(NWK,Network Layer )和應(yīng)用層框架。ZigBee的體系結(jié)構(gòu)如圖2.1所示 [3]。應(yīng)用層包括應(yīng)用支持子層(APS,Application Support Sub-layer )、ZigBee設(shè)備對象(ZDO,Zig

30、Bee Device Object)以及設(shè)備商自定義的醫(yī)用組件。如下圖描述了ZigBee網(wǎng)絡(luò)的體系結(jié)構(gòu)圖。</p><p>  圖2.1 ZigBee網(wǎng)絡(luò)的體系結(jié)構(gòu)</p><p>  基于ZigBee協(xié)議組建的無線網(wǎng)絡(luò),一般稱之為ZigBee網(wǎng)絡(luò)。它主要有以下特點[]: </p><p>  ①功耗低:這是ZigBee的最重要的特性。設(shè)備的發(fā)射功率在3.6dBm

31、以下。并且由于ZigBee具有能量檢測及鏈路質(zhì)量指標的能力,這樣設(shè)備就可以根據(jù)這些檢測的結(jié)果對發(fā)射功率進行自動調(diào)整,從而實現(xiàn)在保障鏈路質(zhì)量的前提下最大限度的降低設(shè)備的能耗。同時,MAC層采用的休眠機制使得ZigBee網(wǎng)絡(luò)中國的節(jié)點在中斷過程中非常省電,從而使得一般節(jié)點的電池工作時間都可以達到至少半年,最長的電池工作時間甚至可以達到兩年。 </p><p>  ②通信距離近:由于ZigBee節(jié)點的發(fā)射功率低,因此限

32、制其相鄰節(jié)點的通信距離在20~100m的范圍內(nèi)。不過可以通過節(jié)點的傳遞通信來增加傳輸?shù)木嚯x。</p><p> ?、鄣统杀荆河捎赯igBee協(xié)議簡單從而降低了對控制器及存儲空間的要求,并且ZigBee協(xié)議是可以免費使用的,故從總體上來講,ZigBee技術(shù)的成本低。</p><p> ?、艿蛿?shù)據(jù)傳輸速率:ZigBee工作在不同的頻段下,傳輸速率都比較低,868MHz頻段下則只有20 kbps

33、,91.5MHz頻段下為40kbps,2.4GHz頻段下為250 kbps[]。</p><p>  ⑤時延短:網(wǎng)絡(luò)的時延主要是從休眠狀態(tài)中激活的時延和的通信時延,二ZigBee網(wǎng)絡(luò)的這兩個時延都很短。因此一是節(jié)省了能量的消耗,二是更加適用于對時間敏感的場所。</p><p> ?、蘧W(wǎng)絡(luò)容量很大:ZigBee網(wǎng)絡(luò)的拓撲結(jié)構(gòu)總的來說可以分為星型網(wǎng)絡(luò)和對等網(wǎng)絡(luò)。在每種組網(wǎng)方式下,網(wǎng)絡(luò)的地址碼可

34、以是16bits短地址,也可以使64bits的長地址,能夠容納的最大設(shè)備個數(shù)分別為216和264個 []。</p><p>  ⑦高可靠性:ZigBee在引進了CSMA/CA機制,即避免沖突的載波偵聽多路機制的同時還為通信的數(shù)據(jù)預(yù)先保留了專用時隙,從而有效的避免了在數(shù)據(jù)發(fā)送過程洪的信道競爭及沖突問題。MAC層中通過采用每個待發(fā)送的數(shù)據(jù)信息必須在接收方傳回的確認信息之后方可發(fā)送的機制,有效地保證節(jié)點之間在信息傳輸中

35、的可靠性。同時還采用了密鑰長度為128位的加密算法,保證了設(shè)備間通信數(shù)據(jù)的安全。</p><p><b>  第二節(jié) 選題意義</b></p><p>  一、ZigBee的應(yīng)用領(lǐng)域</p><p>  以上的特點使得ZigBee在一些簡單的儀表控制等其他領(lǐng)域已經(jīng)有成功的應(yīng)用范例。隨著ZigBee技術(shù)的進一步發(fā)展,它將在越來越多的領(lǐng)域得到應(yīng)用

36、。目前,ZigBee網(wǎng)絡(luò)的應(yīng)用領(lǐng)域有以下幾方面[]:</p><p> ?、僭趥鞲衅骶W(wǎng)絡(luò)領(lǐng)域 </p><p>  傳感器網(wǎng)絡(luò)被稱作未來十大技術(shù)之一,它是由不同種類的傳感器以及ZigBee裝置構(gòu)成的一種用來監(jiān)測控制的網(wǎng)絡(luò),可以實現(xiàn)對數(shù)據(jù)的自動采集、分析處理等工作,適用于工業(yè)、農(nóng)業(yè)、醫(yī)學(xué)、軍事等需要數(shù)據(jù)自動采集并進行網(wǎng)絡(luò)傳輸?shù)念I(lǐng)域。</p><p><b>

37、 ?、谠诠I(yè)領(lǐng)域</b></p><p>  在工業(yè)領(lǐng)域廣泛使用ZigBee技術(shù),主要是由于ZigBee具有低功耗的特點。借助于ZigBee網(wǎng)絡(luò)來傳遞信息,可以達到工業(yè)與環(huán)境控制的目的。比如一些比較危險的化學(xué)成分的檢測、生產(chǎn)機床流水香上的的流程控制、工業(yè)控制危險情況比如火警的早期的檢測及預(yù)報等這些不適合工作人員直接接觸的危險工作,都可以通過無線傳感網(wǎng)絡(luò)中的傳感器節(jié)點進行監(jiān)測。</p>&

38、lt;p><b> ?、墼谄嚿?lt;/b></p><p>  這主要是傳遞消息的通用傳感器。汽車上的很多傳感器都只能內(nèi)置在快速轉(zhuǎn)動的輪胎或者發(fā)動機中,比如輪胎的壓力監(jiān)測。這些除了要借助無線傳感技術(shù)外,更重要的這些系統(tǒng)要求電池的使用時間要長,同時還要能夠在干擾很大的環(huán)境中正常工作,不受金屬對電磁波的屏障效應(yīng)等?;谏鲜龇治?,ZigBee可以說是一個很好的選擇。</p>&l

39、t;p> ?、茉诩彝ズ蜆怯钭詣踊悄芙ㄔO(shè)上</p><p>  隨著智能家居的關(guān)注度提高,家庭和樓宇自動化在無線通信方面的應(yīng)用越來越多。未來的家庭中,將會出現(xiàn)在常用的電器及煤氣監(jiān)測、家庭的安保系統(tǒng)等其他的生活用品中都會出現(xiàn)基于ZigBee的無線傳感模塊[7]。家庭生活必將越來越智能化。</p><p>  ⑤在精確的農(nóng)業(yè)耕種上</p><p>  ZigBee

40、技術(shù)在農(nóng)業(yè)方面的應(yīng)用將會使農(nóng)業(yè)活動從傳統(tǒng)的依靠人力監(jiān)測生長狀況、機械裝置現(xiàn)場操作中解放出來。基于ZigBee通信的大量的傳感器的組成的無線傳感網(wǎng)絡(luò),將收集到包括土壤的濕度、土壤中氮的含量、土壤酸堿度、空氣溫濕度等在內(nèi)的各種和作物生長密切相關(guān)的數(shù)據(jù)。這為農(nóng)民決策提供了可靠的數(shù)據(jù),降低了風(fēng)險。</p><p><b> ?、拊卺t(yī)學(xué)領(lǐng)域</b></p><p>  在病房中

41、安置各類傳感器可以實時的監(jiān)測和病人病情密切相關(guān)的數(shù)據(jù),比如血壓、心跳速度等,然后通過無線傳感網(wǎng)絡(luò)傳送給醫(yī)生,這不僅減少了醫(yī)生查房的工作負擔,而且有助于給醫(yī)生的醫(yī)治決策提供準確的數(shù)據(jù)。</p><p> ?、咴谙M電子及家用電器的自動化市場上</p><p>  隨著智能家居技術(shù)的不斷發(fā)展,可以聯(lián)網(wǎng)的家用電器,比如電視、錄像機、電腦的外設(shè)(鍵盤和鼠標等)、還有休閑的器械、兒童的玩具等都可以通

42、過內(nèi)置傳感器而構(gòu)成無線傳感網(wǎng),通過ZigBee通信。這些結(jié)合創(chuàng)造出了巨大的市場前景。</p><p> ?、嘣诘缆分甘尽⒎奖惆踩新贩矫?lt;/p><p>  在街道、高速公路上分布大量的能夠提供路標及道路狀況的傳感器或其他的裝置,將能夠幫助判斷所處的位置及正在走的方向,同時會可以實時提供道路的通行狀況、維修狀況、事故信息等和行車關(guān)系重大的信息。這些傳感器的更換也比較麻煩,所以低功耗成了首要

43、考慮的問題,無疑,ZigBee技術(shù)是最好的選擇。</p><p><b> ?、嵩谲娛律?lt;/b></p><p>  軍事應(yīng)用是ZigBee的又一重要應(yīng)用。ZigBee網(wǎng)絡(luò)不需要架設(shè)網(wǎng)絡(luò)設(shè)施、可以快速的展開、抗摧毀能力很強,這些特點都為ZigBee技術(shù)在復(fù)雜戰(zhàn)場環(huán)境中通信創(chuàng)造了優(yōu)勢。 </p><p>  基于上述的分析,可以看出ZigBee的

44、應(yīng)用前景非常的廣闊,故對于ZigBee技術(shù)的研究就顯得非常重要,而且很有意義。</p><p>  二、ZigBee的發(fā)展現(xiàn)狀</p><p>  在ZigBee技術(shù)的被迅速應(yīng)用的生活中的很多方面時,其自身所存在的一些問題吸引學(xué)者的關(guān)注,如何進一步優(yōu)化和完善該技術(shù)也成為了一個研究熱點。</p><p>  ZigBee協(xié)議規(guī)范從推出至今,已經(jīng)有大量研究者對ZigBe

45、e網(wǎng)絡(luò)的時間同步、安全機制、廣播問題等進行了研究,但目前仍然存在一些問題[4]。</p><p>  從安全方面來看,無線自組織網(wǎng)絡(luò)有容易被攻擊和難以追蹤的缺陷,這主要是無線自組織網(wǎng)絡(luò)所使用的共享無線信道存在的安全隱患所導(dǎo)致的。</p><p>  從能量控制來看,無線自組織網(wǎng)絡(luò)沒有固定基礎(chǔ)設(shè)施,一般采用電池供電,而且電池更換不方便,所以,降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)生存期,避免節(jié)點死亡,這些是

46、ZigBee網(wǎng)絡(luò)研究的重要問題。目前,降低能耗的主要方法有通過選擇性的調(diào)整節(jié)點接收器到休眠狀態(tài)、使用可調(diào)輸出功率的發(fā)送器、采用節(jié)能型路由等等。 </p><p>  從接入控制來看,對接入節(jié)點的公平性、多種網(wǎng)絡(luò)共存問題、隱藏終端問題、暴露終端問題等雖然已提出了很多技術(shù)和方法,但是并沒有得到完善的解決。</p><p>  總之,中國關(guān)于傳感器網(wǎng)絡(luò)以及ZigBee協(xié)議的研究剛開始,但是,該技

47、術(shù)屬于新興技術(shù),國外的發(fā)展并沒有超前很多,所以及時開展對該技術(shù)的前沿科學(xué)研究,對以后的發(fā)展大有裨益。 </p><p>  論文的結(jié)構(gòu)和主要研究內(nèi)容</p><p>  本文在概述了無線傳感網(wǎng)和ZigBee網(wǎng)絡(luò)的發(fā)展狀況及應(yīng)用,分析了基于ZigBee的AODV路由協(xié)議。ZigBee的網(wǎng)絡(luò)層分為數(shù)據(jù)實體和管理實體,路由發(fā)現(xiàn)及維護等過程都由管理實體執(zhí)行,它是ZigBee網(wǎng)絡(luò)的核心。對ZigBe

48、e的組網(wǎng)過程、現(xiàn)有路由協(xié)議的思想及機制進行了詳細的分析。然后利用matlab中的TrueTime1.5工具箱搭建了仿真平臺,在此基礎(chǔ)上,詳細介紹了AODV路由協(xié)議的設(shè)計思路。針對丟失RREP分組導(dǎo)致的數(shù)據(jù)丟失問題,分析了一種改進方案。最后對仿真進行了測試,并對測試結(jié)果進行了詳細的分析。</p><p>  本文的結(jié)構(gòu)安排如下:</p><p>  第一章 緒論:簡單介紹了課題的背景及其研

49、究意義,概述了無線傳感網(wǎng)及ZigBee技術(shù)的特點、發(fā)展現(xiàn)狀。</p><p>  第二章 ZigBee的路由協(xié)議分析:簡要介紹了ZigBee網(wǎng)絡(luò)層、組網(wǎng)過程、數(shù)據(jù)的收發(fā)過程、常用路由算法的原理及實現(xiàn)過程。</p><p>  第三章 基于ZigBee的AODV路由設(shè)計:通過模塊化的思想,詳細分析了基于ZigBee的AODV路由算法的實現(xiàn)過程。對AODV路由協(xié)議中路由的發(fā)現(xiàn)過程和路由的維

50、護過程進行了重點介紹。</p><p>  第四章 AODV的一種改進方案:分析了一種基于路由發(fā)現(xiàn)過程的改進方案,該方案通過增加反向RREQ分組來建立備用路由,降低了網(wǎng)絡(luò)阻塞率和丟包率。</p><p>  第五章 AODV路由算法的實現(xiàn)與測試:本章主要對仿真的結(jié)果進行了測試,并對測試結(jié)果和本次實驗中的不足進行了詳細的分析。</p><p><b> 

51、 第四節(jié) 本章小結(jié)</b></p><p>  本章由無線傳感網(wǎng)的概念展開,對幾種常用的無線通信技術(shù)進行了比較,概括介紹了ZigBee技術(shù)的特點,并對ZigBee網(wǎng)絡(luò)的體系結(jié)構(gòu)及未來的應(yīng)用領(lǐng)域進行了簡要的分析,對比了國內(nèi)外ZigBee技術(shù)的發(fā)展現(xiàn)狀,提出了目前ZigBee技術(shù)發(fā)展的中存在的待解決的問題。對文章的主要內(nèi)容及文章架構(gòu)進行了概述。</p><p>  第二章 Zi

52、gBee路由協(xié)議分析</p><p>  第一節(jié) 網(wǎng)絡(luò)層規(guī)范簡介</p><p>  網(wǎng)絡(luò)層提供了保證MAC子層正常工作的功能及為應(yīng)用層的服務(wù)提供接入點。要和應(yīng)用層通信,網(wǎng)絡(luò)層的概念包括兩個服務(wù)實體,數(shù)據(jù)實體(NLDE,Network Layer Data Entity)和管理實體(NLME,Network Layer Mannger Entity)。如圖2.1所示[5]。數(shù)據(jù)實體的主要

53、任務(wù)是為上層提供所需要的常規(guī)數(shù)據(jù)服務(wù),而管理實體則提供訪問內(nèi)部層參數(shù)、配置、管理數(shù)據(jù)、組網(wǎng)等機制。NWK層數(shù)據(jù)實體通過其相關(guān)的SAP來提供相關(guān)的服務(wù)。NIME使用NLDE來獲得它的一些管理任務(wù),而且還維護一個叫做網(wǎng)絡(luò)信息庫(NIB)的數(shù)據(jù)庫,。</p><p>  圖2.1 ZigBee網(wǎng)絡(luò)層結(jié)構(gòu)</p><p>  一、網(wǎng)絡(luò)層數(shù)據(jù)實體 </p><p>  網(wǎng)絡(luò)

54、層數(shù)據(jù)實體為數(shù)據(jù)提供服務(wù),對應(yīng)用層和MAC層的接口分別為網(wǎng)絡(luò)層數(shù)據(jù)訪問接口(NLDE-SAP)和MAC層數(shù)據(jù)訪問接口(MCPS-SAP),實現(xiàn)兩個對等的應(yīng)用層之間的端到端的傳輸。網(wǎng)絡(luò)層在接收到來自高層的數(shù)據(jù)傳輸請求原語后首先組織一個NPDU,然后根據(jù)路由算法決定下一跳目的設(shè)備。故數(shù)據(jù)實體對于路由而言提供了一個接口,當高層需要發(fā)送數(shù)據(jù)是就會啟動路由查詢機制。</p><p>  二、網(wǎng)絡(luò)層管理實體 </p&g

55、t;<p>  網(wǎng)絡(luò)層的管理實體控制著網(wǎng)絡(luò)層,維護其網(wǎng)絡(luò)信息庫,為應(yīng)用層提供接入點,可以說這是是網(wǎng)絡(luò)層的關(guān)鍵所在。它提供以下服務(wù):</p><p>  ①配置新設(shè)備。包括根據(jù)要求配置協(xié)議棧以及通過一系列操作成為ZigBee協(xié)調(diào)器或者加入現(xiàn)有網(wǎng)絡(luò)。</p><p> ?、诮⑿戮W(wǎng)絡(luò)。定義協(xié)調(diào)器(Coordinator)用來建立新的網(wǎng)絡(luò)。只有一個未加入網(wǎng)絡(luò)的協(xié)調(diào)器才能建立網(wǎng)絡(luò)。&

56、lt;/p><p> ?、奂尤牒碗x開網(wǎng)絡(luò)。定義了路由器(Router)和節(jié)點(Node)如何加入一個網(wǎng)絡(luò),以及協(xié)調(diào)器和路由器如何使一個設(shè)備離開網(wǎng)絡(luò)。</p><p> ?、艿刂贩峙洹f(xié)調(diào)器和路由器為加入網(wǎng)絡(luò)的設(shè)備分配地址。</p><p>  ⑤鄰居設(shè)備的發(fā)現(xiàn)。發(fā)現(xiàn)一跳范圍內(nèi)的鄰居設(shè)備,將鄰居節(jié)點的數(shù)據(jù)記錄在路由表中,并進行路由表的維護。</p><

57、p>  ⑥路由發(fā)現(xiàn)。目的設(shè)備不在一跳范圍內(nèi)時,開始一個路由發(fā)現(xiàn)過程,發(fā)現(xiàn)路由路徑并且記錄在路由表中。</p><p>  ⑦接收控制。管理實體通過控制接收器的開關(guān)時間來達到降低功耗目的,同時保證MAC層的同步和數(shù)據(jù)的正常接收。</p><p>  圖2.2、圖2.3和圖2.4分別給出了各種設(shè)備的網(wǎng)絡(luò)層功能模塊[1]。首先對網(wǎng)絡(luò)層進行初始化,沒有加入網(wǎng)絡(luò)的協(xié)調(diào)器在初始化之后建立新的網(wǎng)絡(luò)

58、、設(shè)定網(wǎng)絡(luò)參數(shù)、管理網(wǎng)絡(luò)中的節(jié)點,路由器和終端設(shè)備在發(fā)現(xiàn)網(wǎng)絡(luò)后請求加入網(wǎng)絡(luò),在加入網(wǎng)絡(luò)的過程中協(xié)調(diào)器和路由器為加入的設(shè)備分配地址。ZigBee路由器可以參與路由的發(fā)現(xiàn)過程、消息的轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)過程、允許其他節(jié)點通過自己關(guān)聯(lián)網(wǎng)絡(luò)等;ZigBee終端節(jié)點通過ZigBee協(xié)調(diào)器節(jié)點或ZigBee路由節(jié)點關(guān)聯(lián)到網(wǎng)絡(luò),但不具有允許其它任何節(jié)點通過它加入網(wǎng)絡(luò)的能力。數(shù)據(jù)發(fā)送和接收涉及路由的選擇,發(fā)起一個路由發(fā)現(xiàn)之后對路由算法進行選擇,在這個過程中進行鄰居

59、列表的維護、路由表的維護等。</p><p>  圖2.2 Coordinator功能模塊示意圖</p><p>  圖2.3 Router的功能模塊示意圖</p><p>  圖2.4 End device功能模塊示意圖</p><p><b>  第三節(jié) 組網(wǎng)過程</b></p><p> 

60、 在ZigBee網(wǎng)絡(luò)中,每個網(wǎng)絡(luò)只有一個協(xié)調(diào)器節(jié)點,建立新的網(wǎng)絡(luò)只能由沒有加入其它網(wǎng)絡(luò)中的協(xié)調(diào)器點發(fā)起,ZigBee網(wǎng)絡(luò)組網(wǎng)過程如圖2.6。</p><p>  協(xié)調(diào)器首先利用MAC子層提供的掃描功能,進行信道的能量探測掃描以及主動掃描[],選擇一個其他網(wǎng)絡(luò)沒有使用的空閑信道,然后分配網(wǎng)絡(luò)的16-bit地址,配置網(wǎng)絡(luò)的拓撲結(jié)構(gòu)參數(shù)、確定自己的網(wǎng)絡(luò)PAN ID(個人局域網(wǎng)標識)等。因為PAN標識是所選信道中的唯一標

61、志,因而與在此信道中探測到得PAN ID不會有沖突。在以上各個參數(shù)都定下來以后,協(xié)調(diào)器便開始發(fā)送信標幀,等待其它的設(shè)備請求加入網(wǎng)絡(luò)。</p><p>  如圖2.7所示為一個節(jié)點加入當前網(wǎng)絡(luò)和脫離當前網(wǎng)絡(luò)的過程示意圖[4]。</p><p>  網(wǎng)絡(luò)建立完成后,協(xié)調(diào)器允許新節(jié)點的加入。當一個新的節(jié)點想要加入當前網(wǎng)絡(luò),和網(wǎng)絡(luò)中的節(jié)點建立網(wǎng)絡(luò)關(guān)聯(lián)[],網(wǎng)絡(luò)關(guān)聯(lián)的處理包括兩部分:待加入網(wǎng)絡(luò)中的節(jié)

62、點的關(guān)聯(lián)請求;網(wǎng)絡(luò)中節(jié)點對關(guān)聯(lián)申請的處理。網(wǎng)絡(luò)中節(jié)點是否有能力接受關(guān)聯(lián)請求,主要在于它本身的存儲容量和能量的大小。如果節(jié)點有能力作為父節(jié)點,則它在收到關(guān)聯(lián)請求以后,則發(fā)出關(guān)聯(lián)應(yīng)答,并為待加入節(jié)點分配一個唯一的16位網(wǎng)絡(luò)地址,待加入節(jié)點在收到關(guān)聯(lián)應(yīng)答后,成功加入網(wǎng)絡(luò)中。加入到網(wǎng)絡(luò)的節(jié)點又可以作為其他節(jié)點的父節(jié)點接受關(guān)聯(lián)請求。ZigBee中,離開網(wǎng)絡(luò)有兩種情況,子節(jié)點向父節(jié)點發(fā)出離開網(wǎng)絡(luò)的請求和父節(jié)點向子節(jié)點發(fā)送請求使其離開。兩種情況一般同

63、時存在。當一個子節(jié)點收到來高層的離開請求后,先要求自己的子節(jié)點離開,待所有子節(jié)點離開后通過MAC層的取消關(guān)聯(lián)的操作再向其父節(jié)點發(fā)送離開網(wǎng)絡(luò)的申請。</p><p>  圖2.6 ZigBee的組網(wǎng)過程</p><p>  圖2.7 ZigBee網(wǎng)絡(luò)中節(jié)點加入和離開網(wǎng)絡(luò)</p><p>  第四節(jié) 路由協(xié)議的基本思想</p><p>  Z

64、igBee網(wǎng)絡(luò)中常用的路由算法主要有Cluster-Tree算法,AODVjr算法及Cluster-Tree&AODVjr算法。</p><p>  一、Cluster-Tree算法</p><p>  Cluster—Tree路由算法由主協(xié)調(diào)器展開生成簇,采用樹狀網(wǎng)絡(luò)拓撲結(jié)構(gòu),不需要存儲路由表。樹中的大部分設(shè)備為全功能設(shè)備(FFD),具有轉(zhuǎn)發(fā)功能,而終端節(jié)點是精簡功能設(shè)備(RFD

65、),它只能作為樹枝末尾處的葉節(jié)點,一次只能連接到一個 全功能設(shè)備上 。如果 RFD節(jié)點要發(fā)送數(shù)據(jù)包到某目的節(jié)點,則直接將該數(shù)據(jù)包發(fā)送給其父親節(jié)點,由父親節(jié)點進行轉(zhuǎn)發(fā)。如果FFD節(jié)點要發(fā)送數(shù)據(jù)包到某目的節(jié)點,則先判斷目的節(jié)點是不是FFD的下屬節(jié)點,如果是其下屬節(jié)點,則轉(zhuǎn)發(fā)給子節(jié)點,如果不是其下屬節(jié)點,則把該數(shù)據(jù)包交給父親節(jié)點轉(zhuǎn)發(fā)[]。如圖2.8為其數(shù)據(jù)發(fā)送流程圖:</p><p>  圖2.8 Cluster-Tr

66、ee路由過程</p><p>  ClusterTree算法按樹型結(jié)構(gòu)分層遍歷,算法簡單且查找目的節(jié)點的速度快,路由過程中由于不需要維護路由表,降低節(jié)點路由開銷及能耗的同時,也降低了對節(jié)點存儲能力的要求,從而節(jié)點的成本也降低了。但是,使用Cluster-Tree算法建立的路由不一定是最佳的路徑,這可能會造成數(shù)據(jù)分組在傳輸過程中時延的增加。對于靠近ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器的深度較小的節(jié)點,通常它們的業(yè)務(wù)量較大,而深

67、度大的節(jié)點,業(yè)務(wù)量相對較小,這就容易引起網(wǎng)絡(luò)中通信流量的分配不均的問題,故網(wǎng)絡(luò)的壽命會縮短。</p><p>  二、AODVjr算法</p><p>  AODV是一種按需路由協(xié)議,根據(jù)業(yè)務(wù)需求建立和維護路由,它是DSDV (Destination—SequencedDistance-Vector)協(xié)議和DSR(Dynamic Source Routing) 協(xié)議的結(jié)合,使用DSDV協(xié)議

68、中的目的節(jié)點序列號來防止緩存的路由信息過期以及環(huán)路的產(chǎn)生,路由建立則是基于DSR協(xié)議中所采用的方法,不同點在于AODV采用的是逐跳路由而不是源路由,可以實現(xiàn)ZigBee節(jié)點之間動態(tài)的、自發(fā)的路由,使節(jié)點很快實現(xiàn)到目的節(jié)點的通信。ZigBee路由算法中使用的AODVjr算法是對AODV算法的精簡和改進,但是仍然保持AODV的原始功能。其特點是路由路徑最佳,缺點是單個節(jié)點需要路由表,整體路由代價高。</p><p>

69、  AODVjr算法與AODV算法存在一些差別[][][]: </p><p> ?、俦苊猸h(huán)路的機制不同: AODV算法中使用目的節(jié)點序列號來保證在任意的時刻,網(wǎng)絡(luò)中沒有環(huán)路存在,而AODVjr則沒有使用目的節(jié)點序列號,它規(guī)定只有目的節(jié)點才可以回復(fù)RREP,中間的節(jié)點無論是否有通往目的節(jié)點的路由路徑則都不能回復(fù)RREP。這樣做減少了AODVjr的控制開銷,簡化了路由的發(fā)現(xiàn)過程。如果2.9a所示。</p>

70、;<p> ?、诼酚杀淼慕Y(jié)構(gòu)不同:在AODV中,如果節(jié)點檢測到鏈路中斷則通過上游節(jié)點廣播RERR分組來通知所有受到影響的源節(jié)點。而在AODVjr 中,出錯報文RERR只會轉(zhuǎn)發(fā)給那些傳輸數(shù)據(jù)失敗的源節(jié)點。所以在AODVjr中的路由表結(jié)構(gòu)中,可以沒有先驅(qū)節(jié)點列表,這相對于AODV的路由表來說要簡單一些。 </p><p>  ③修復(fù)路由的機制不同:如果在傳送數(shù)據(jù)的過程中,鏈路發(fā)生了中斷,則AODVjr算

71、法采用本地修復(fù),若失敗,則直接發(fā)送RERR分組到源節(jié)點,告知目的節(jié)點由于鏈路中斷而不可達。所發(fā)送的RERR分組被簡化為只含有一個不可達目的節(jié)點。在AODV處理中,所發(fā)送的RERR中包含了不止一個不可達的目的節(jié)點。</p><p> ?、茑徆?jié)點對信息的處理機制不同:AODV路由算法中,會周期性的發(fā)送HELLO報文來確定節(jié)點與鄰居節(jié)點之間是否連通,從而來實現(xiàn)對鏈路的維護。而在AODVjr中,只是根據(jù)收到的報文或者MA

72、C層提供的信息來對鄰居節(jié)點列表進行更新,不需要周期性的發(fā)送報文來維護,這就要求目的節(jié)點間斷地向源節(jié)點發(fā)送包。如果數(shù)據(jù)量是單向的,那么將定期發(fā)送信息,以維護該路徑 (如圖2.9b所示)。若數(shù)據(jù)通信是雙向的,那么就不需要額外開銷。AODVjr使用終端對終端機制,HELLO消息、RERR和先驅(qū)節(jié)點列表就不需要了。假如在數(shù)據(jù)傳輸中發(fā)生鏈路中斷,那么源節(jié)點將停止接收從目的節(jié)點發(fā)來的信息。如圖2.9c所示,節(jié)點 4離開路徑,一段時間后,源節(jié)點將偵測

73、到路徑鏈路中斷,因為源節(jié)點不能收到來自目的節(jié)點的信息。假如還需要路由的話,源節(jié)點將修改路由發(fā)現(xiàn)路徑[]。</p><p>  圖2.9 AODVjr運行機制</p><p>  三、Cluster-Tree&AODVjr結(jié)合的算法</p><p>  為了提高路由效率,ZigBee中允許具有路由功能的節(jié)點使用AODVjr算法去發(fā)現(xiàn)路由,即具有路由功能的節(jié)點可

74、以不按照父子關(guān)系而直接發(fā)送信息到其通信范圍內(nèi)的其它具有路由功能的節(jié)點,尋找通往目的節(jié)點的最優(yōu)路徑;而不具有路由功能的節(jié)點仍然使用Cluster-Tree路由發(fā)送數(shù)據(jù)分組和控制分組。這就是Cluster-Tree&AODVjr算法,它結(jié)合了Cluster-Tree 與 AODVjr的優(yōu)點。由于AODVjr的使用,Cluster-Tree算法中的分組傳輸時延降低了,從而分組遞交率也提高了。</p><p> 

75、 在這種算法中,網(wǎng)絡(luò)中的節(jié)點被分成 Coordinator 、RN+ 、RN- 、RFD 四 種類型。其中 Coordinator ,及協(xié)調(diào)器和 RN+節(jié)點的路由算法相同,Coordinator、RN+、RN-是全功能節(jié)點,能充當其他節(jié)點的路由節(jié)點;RFD是精簡功能節(jié)點,只能充當 Cluster-Tree 的葉子(Leaf-Node )。圖2.10為Cluster-Tree&AODVjr算法的路由流程圖[]。</p>

76、<p>  圖2.10 Cluster-Tree&AODVjr算法的路由流程圖</p><p><b>  第五節(jié) 本章小結(jié)</b></p><p>  本章主要對ZigBee網(wǎng)絡(luò)層進行了介紹。網(wǎng)絡(luò)層的規(guī)范包括數(shù)據(jù)實體和管理實體,第一節(jié)對兩種實體在網(wǎng)絡(luò)層中的作用分別進行了描述。ZigBee在路由過程中依據(jù)路由消耗來選擇路由路徑,然后再依據(jù)AOD

77、V或Cluster-Tree路由算法進行路由的建立和維護。本章ZigBee常用路由協(xié)議的分類、基本思想、路由過程及路由中用到的數(shù)據(jù)結(jié)構(gòu)等,都進行了詳細的描述。重點介紹了ZigBee的路由機制。</p><p>  第三章 基于ZigBee的AODV路由算法設(shè)計</p><p>  第一節(jié) 系統(tǒng)總體設(shè)計</p><p>  AODV路由協(xié)議的設(shè)計是一個比較大的程序,里

78、面涉及到很多不同的功能,為了使思路更清晰,理解更方便,設(shè)計采用模塊化編程的思想,把整個設(shè)計分為五大模塊,即:初始化、路由的建立及維護、顯示、時鐘、節(jié)點移動模塊。再針對每個大的模塊劃分出更小的子模塊來進行設(shè)計。軟件的總體設(shè)計框圖如圖3.1所示:</p><p>  圖3.1 軟件總體設(shè)計框圖</p><p>  第二節(jié) 各個子模塊的設(shè)計</p><p>  本節(jié)對本次

79、設(shè)計中涉及到的關(guān)鍵函數(shù)進行詳細的分析和解釋。</p><p><b>  一、初始化</b></p><p>  本程序中的初始化涉及到兩個子函數(shù),節(jié)點初始化和變量初始化,即node_init和initsm。</p><p><b>  1、節(jié)點初始化</b></p><p>  node_init

80、主要針對搭建的模型中的子節(jié)點進行初始化。包括對核心模塊的初始化、創(chuàng)建AODV的發(fā)送和接收任務(wù),設(shè)置優(yōu)先級等。其具體任務(wù)如圖3.2所示:</p><p>  圖3.2 節(jié)點初始化函數(shù)項</p><p> ?、拧ruetime的Kernel模塊初始化</p><p>  Kernel是每個節(jié)點的核心處理模塊,該模塊的初始化通過調(diào)用Truetime工具箱自帶的函數(shù)ttI

81、nitKernel(nbrInp, nbrOutp, prioFcn)來完成。其中的參數(shù)nbrInp,表示輸入通道的數(shù)目,nbrOutp,表示輸出通道的數(shù)目,prioFcn表示該模塊的優(yōu)先級。再通過調(diào)用自帶函數(shù) ttCreateMailbox(mailboxname, maxsize)來創(chuàng)建任務(wù)之間通信的發(fā)信信箱AODVSendBox和收信信箱AODVRcvBox。</p><p>  ⑵、創(chuàng)建發(fā)送和接收任

82、務(wù)</p><p>  數(shù)據(jù)結(jié)構(gòu)dataAODVsnd用來在源節(jié)點需要發(fā)送數(shù)據(jù)時,發(fā)起路由發(fā)現(xiàn)過程。包含源節(jié)點標識、RREQ標識、信息緩存區(qū)、信息緩存區(qū)矩陣的創(chuàng)建、緩存區(qū)為空的標識等。調(diào)用自帶函數(shù)ttCreateTask(name, deadline, priority, codeFcn, data)創(chuàng)建發(fā)送任務(wù)AODVSendTask。參數(shù)依次代表創(chuàng)建的任務(wù)名,任務(wù)到期的相對時間,任務(wù)優(yōu)先級,任務(wù)執(zhí)行函

83、數(shù)名,任務(wù)的本地內(nèi)存。此處用到的任務(wù)本地內(nèi)存即dataAODVsnd。</p><p>  該過程創(chuàng)建了接收任務(wù)AODVRcvTask的過程和發(fā)送任務(wù)的創(chuàng)建過程一樣。</p><p> ?、?、HELLO報文初始化</p><p>  AODV中來在路由使用過程中周期性的發(fā)送HELLO報文來維護路由鏈路狀態(tài)信息。涉及到hello報文的初始化及周期設(shè)定、周期性任務(wù)的創(chuàng)建

84、。創(chuàng)建周期性任務(wù)調(diào)用的是ttCreatePeriodicTask(name, offset, period, priority, codeFcn, data)。參數(shù)依次代表創(chuàng)建的任務(wù)名、釋放周期性任務(wù)第一次工作的時間、周期、優(yōu)先級、執(zhí)行函數(shù)名稱、該任務(wù)的本地內(nèi)存。</p><p>  ⑷、時間處理函數(shù)的創(chuàng)建</p><p>  包括中斷處理任務(wù)timer_handler和時間任務(wù)

85、TimerTask的創(chuàng)建。其中的時間處理任務(wù)主要用來完成對路由路徑到期時間的處理。調(diào)用ttCreateInterruptHandler(name, priority, codeFcn, data)來創(chuàng)建timer_handler任務(wù),ttCreateTask(name, deadline, priority, codeFcn, data)來創(chuàng)建TimerTask任務(wù)。</p><p>  其中的ti

86、mer_handler任務(wù)將在響應(yīng)中斷的時候被執(zhí)行。中斷可以由計時器、網(wǎng)絡(luò)的接收通道、外部中斷通道或者溢出處理程序觸發(fā)。每一個處理任務(wù)只能和一個中斷源相連。</p><p><b> ?、伞⒐?jié)點初始化</b></p><p>  本次設(shè)計中涉及到節(jié)點發(fā)送和接收數(shù)據(jù)、節(jié)點移動任務(wù)。其中發(fā)送數(shù)據(jù)的任務(wù)SendTask和節(jié)點移動的任務(wù)MoveTask都是周期性任務(wù),由ttC

87、reatePeriodicTask(name, offset, period, priority, codeFcn, data)來創(chuàng)建。接收任務(wù)RcvTask是當有數(shù)據(jù)要接收時才進行,所以不是周期性的,故由ttCreateTask(name, deadline, priority, codeFcn, data)來創(chuàng)建。</p><p><b> ?、省⒕W(wǎng)絡(luò)初始化</b>&l

88、t;/p><p>  本設(shè)計中所用的網(wǎng)絡(luò)是ZigBee。對網(wǎng)絡(luò)的初始化首先通過ttCreateInterruptHandler(name, priority, codeFcn, data)來創(chuàng)建nw_handler任務(wù),對應(yīng)的執(zhí)行函數(shù)為nwrcvcode。然后調(diào)用ttInitNetwork(nodenumber, handlername)來對網(wǎng)絡(luò)進行初始化。參數(shù)nodenumber代表節(jié)點在網(wǎng)絡(luò)中的地址,ha

89、ndlername當信息到達網(wǎng)絡(luò)時應(yīng)當被調(diào)用的中斷處理程序名稱。在信息發(fā)送或者接受之前必須是用該命令對網(wǎng)絡(luò)的接口進行初始化,否則將不能正常進行。</p><p><b>  2、變量初始化</b></p><p>  initsm主要對本次設(shè)計中涉及到的全局變量進行初始化,包括網(wǎng)絡(luò)中節(jié)點的數(shù)目、路由表、AODV的序列號、AODV參數(shù)、節(jié)點初始位置等。</p>

90、;<p><b>  二、路由發(fā)現(xiàn)及維護</b></p><p>  AODV是按需路由,故只有當有數(shù)據(jù)發(fā)送請求的時候才去查找或者建立路由。這個過程中涉及到的函數(shù)包括AODV數(shù)據(jù)發(fā)送和接收控制程序、查詢路由表程序、建立路徑、獲取下一跳地址等。涉及到的函數(shù)模塊如圖3.3所示:</p><p>  圖3.3 路由發(fā)現(xiàn)及維護過程中涉及到的函數(shù)功能</p&

91、gt;<p>  當路由路徑建立好之后,需要進行周期性的維護及更新。</p><p>  當有節(jié)點通過ZigBee網(wǎng)絡(luò)向另一個節(jié)點發(fā)送信息時,AODV發(fā)送任務(wù)被激活。當源節(jié)點需要和目的節(jié)點通信時,首先查詢自己的路由表,如果已經(jīng)存在了可用的路由路徑,則不會有任何的尋找路由的操作。如果路由表中沒有可用路由路徑,則源節(jié)點會通過向鄰居節(jié)點廣播RREQs分組來發(fā)起路由發(fā)現(xiàn)的過程。中間節(jié)點可能會從不同的鄰居收到

92、同一個廣播的RREQs分組,此時,中間節(jié)點會對收到的分組進行判斷:如果節(jié)點已經(jīng)收到了相同廣播標識和源節(jié)點地址的RREQs時,它就會丟掉這個分組。如果節(jié)點以前并沒有收到這樣的RREQs分組,它就會保存一些信息用于建立反向路徑,然后再把這個 RREQs分組廣播出去。 RREQs分組最終將到達一個節(jié)點,該節(jié)點要么就是目的節(jié)點,要么就是這個節(jié)點有到達目的節(jié)的路由路徑。如果該中間節(jié)點有到達目的節(jié)點的最新路由,并且這個 RREQs還沒有被處理過,該

93、節(jié)點將會沿著RREQs接收的方向建立反向路由,返回RREPs分組,否則中間節(jié)點將重新廣播RREQs到其鄰居節(jié)點。源節(jié)點接收到第一個 RREPs分組后,就開始向目的節(jié)點發(fā)送數(shù)據(jù)分組,并通過周期性地發(fā)送Hello分組來查詢鄰居節(jié)點之間是否連通。如果發(fā)現(xiàn)</p><p>  圖3.4為路由發(fā)現(xiàn)過程被激活,建立到目的節(jié)點路由并發(fā)送數(shù)據(jù)的總流程圖。</p><p>  圖 3.4 AODV路由發(fā)現(xiàn)及

94、數(shù)據(jù)發(fā)送過程</p><p>  下面針對上述過程中涉及到的子模塊進行詳細的分析。</p><p>  1、發(fā)起路由發(fā)現(xiàn)過程</p><p>  該功能的實現(xiàn)是當發(fā)送數(shù)據(jù)任務(wù)AODVSendTask被激活時,對應(yīng)的函數(shù)AODVsendcode(seg,data)被調(diào)用。參數(shù)seg用來作為程序中switch語句判斷。如果是1,則直接從發(fā)送數(shù)據(jù)存儲器即AODVSendB

95、ox中讀取要發(fā)送的數(shù)據(jù);如果是2,則從緩存中讀取數(shù)據(jù)進行處理;如果是3,則跳過正常的執(zhí)行順序轉(zhuǎn)而執(zhí)行下一個程序。程序執(zhí)行流程圖如圖3.5所示。圖3.6、3.7、是子程序執(zhí)行流程圖。</p><p>  圖3.5 AODVsendcode主流程圖</p><p>  圖3.6 發(fā)送新產(chǎn)生的數(shù)據(jù)</p><p>  圖3.7 發(fā)送緩存中的數(shù)據(jù)</p>

96、<p>  2、AODV相關(guān)報文處理</p><p>  當路由發(fā)現(xiàn)過程被發(fā)起時,各個節(jié)點收到RREQs分組、RREPs分組及RERRs分組時,需要針對收到的不同的報文及同一報文的不同收到時間進行處理。這些任務(wù)由AODVrcvcode()函數(shù)來執(zhí)行。其流程圖如圖3.8所示:</p><p>  圖 3.8 AODVrcvcode主流程圖</p><p> 

97、 圖3.9對RREQ報文的處理過程進行了詳細的分析。圖3.10是節(jié)點對RREQ報文的詳細處理流程圖。</p><p>  圖3.9 RREQ分組處理流程圖</p><p>  圖3.10轉(zhuǎn)發(fā)或者處理RREQ分組</p><p>  圖3.11描述了節(jié)點在收到RREP回復(fù)報文時的處理流程。圖3.12是節(jié)點收到RREP分組之后轉(zhuǎn)發(fā)或者處理的詳細的流程圖。</p&

98、gt;<p>  圖3.11 處理RREP分組</p><p>  圖3.12處理或者轉(zhuǎn)發(fā)RREP分組</p><p>  圖3.13描述了節(jié)點在收到RERR報文之后的處理情況。</p><p>  圖3.13 RERR分組處理</p><p>  圖3.14 HELLO分組處理</p><p>&l

99、t;b>  3、查詢路由表</b></p><p>  當AODVsendcode()發(fā)起路由發(fā)現(xiàn)過程的時候,首先要進行路由表查詢,以此來判斷是否有可用的路由,如果有,則直接使用該路由來發(fā)送數(shù)據(jù),如果沒有,則再發(fā)送RREQs分組請求建立路由。查詢路由表的函數(shù)是findEntry()。其執(zhí)行流程圖如圖3.15所示:</p><p>  圖3.15 findEntry流程圖

100、</p><p><b>  4、獲取路徑</b></p><p>  調(diào)用findEntry()函數(shù)查詢路由表,如果有可用路由,則需要獲取路由路徑,對應(yīng)該功能的函數(shù)是getRoute()。其函數(shù)執(zhí)行流程圖如圖3.16所示。</p><p>  圖3.16 getRoute流程圖</p><p>  5、判斷RREQ報文

101、收到的次數(shù)</p><p>  AODV路由協(xié)議中間節(jié)點只對第一次收到的RREQs分組進行轉(zhuǎn)發(fā)處理,對于后面收到的分組直接丟棄。這個功能的實現(xiàn)是findInCache()函數(shù)。每一個RREQ在不同的節(jié)點會有不同的標識RREQID,該函數(shù)就是借助于查詢RREQID來判斷是否是第一次收到。其程序流程圖如圖3.17所示:</p><p>  圖3.17 判讀是否第一次收到RREQ分組</

102、p><p><b>  6、周期性監(jiān)測路徑</b></p><p>  AODV路由協(xié)議通過周期性廣播Hello報文來監(jiān)視鏈路是否連通。Hello包的生存時間1,只在相鄰節(jié)點間進行傳送。當一個節(jié)點收到一個Hello包時,便新建一個鄰居條目或者斷定一個鄰居節(jié)點與自己依然保持連接。如果在一定時間內(nèi)收不到一個鄰居節(jié)點的Hello報文,則認為該鄰居節(jié)點與自己不再連接,此時,斷開節(jié)

103、點的上游節(jié)點廣播RERRs分組給所有的鄰居節(jié)點,鄰居節(jié)點收到出錯報文RERR后繼續(xù)廣播知道源節(jié)點收到該報文。源節(jié)點收到RERR報文后知道該與該節(jié)點有關(guān)的路徑不能使用,便重新發(fā)起路由發(fā)現(xiàn)過程。其流程圖如圖3.18所示:</p><p>  圖3.18 hello報文維護路由過程</p><p><b>  7、獲取下一跳地址</b></p><p&g

104、t;  該功能對應(yīng)的函數(shù)是updateReverse()。當需要創(chuàng)建新的路徑的時候調(diào)用該函數(shù),用來獲取路由的下一跳地址。其實現(xiàn)流程圖如圖3.19所示:</p><p>  圖3.19 路由更新流程圖</p><p><b>  三、節(jié)點收發(fā)數(shù)據(jù)</b></p><p><b>  1、節(jié)點發(fā)送數(shù)據(jù)</b></p>

105、;<p>  節(jié)點1周期性地向節(jié)點7發(fā)送數(shù)據(jù)。創(chuàng)建了發(fā)送任務(wù)SendTask,對應(yīng)的函數(shù)為APPLsendcode()。其實現(xiàn)過程如圖3.20所示:</p><p>  圖3.20 節(jié)點周期性發(fā)送數(shù)據(jù)流程圖</p><p><b>  2、節(jié)點接收數(shù)據(jù)</b></p><p>  數(shù)據(jù)接收任務(wù)和數(shù)據(jù)發(fā)送任務(wù)對應(yīng),當路由建立成功之后

106、,源節(jié)點周期性地發(fā)送數(shù)據(jù)到目的節(jié)點,目的節(jié)點對數(shù)據(jù)的接收并不是周期性的,而是根據(jù)收到的報文來定的。其流程圖如圖3.21:</p><p>  圖3.21 節(jié)點接收數(shù)據(jù)流程圖</p><p><b>  四、節(jié)點的移動</b></p><p>  本次設(shè)計中涉及到了兩個節(jié)點的移動。節(jié)點5在第3秒到第8秒的時候開始移動,節(jié)點6在第10秒到第14秒之

107、間移動。節(jié)點移動的程序流程圖如圖3.22所示:</p><p>  圖3.22 節(jié)點移動程序流程圖</p><p><b>  五、顯示</b></p><p>  本次設(shè)計中的顯示部分用來模擬ZigBee網(wǎng)絡(luò)。形象的顯示了節(jié)點之間的路由關(guān)系及節(jié)點移動過程。如圖3.23為顯示部分的主流程圖。</p><p>  圖3.

108、23顯示模塊主流程圖</p><p>  圖3.24為顯示模塊初始化函數(shù)流程圖。顯示函數(shù)被調(diào)用時給定參數(shù),以此來判斷是執(zhí)行哪個子程序。當所給參數(shù)都不調(diào)用顯示相關(guān)的子程序時,程序就會報錯。</p><p>  圖3.24 顯示模塊初始化函數(shù)流程圖</p><p><b>  六、時鐘</b></p><p>  在整個程序

109、的運行過程中,每個任務(wù)的運行都有時間限制,報文及路由也都有生存時間,當?shù)搅松鏁r間但是沒有得到更新時,過期的報文、路由都無效。本部分主要涉及到兩個任務(wù)TimerTask和timer_handler,對應(yīng)的執(zhí)行程序為expcode.m和timercode.m。其中,timer_handler任務(wù)將在響應(yīng)中斷的時候被執(zhí)行,用來創(chuàng)建TimerTask任務(wù)。TimerTask任務(wù)執(zhí)行的流程圖如圖3.12所示。時鐘部分另外一個重要的函數(shù)就是upd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論