版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 編 號(hào): </p><p> 審定成績(jī): </p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 填表時(shí)間: 2012年 5 月</p><p> 設(shè)計(jì)(論文)題目:ZigBee網(wǎng)絡(luò)路由算法設(shè)計(jì)</p><
2、;p><b> 摘 要</b></p><p> ZigBee技術(shù)是一種低功耗、低成本、低速率的無(wú)線通信技術(shù)。目前在工業(yè)領(lǐng)域、醫(yī)學(xué)領(lǐng)域、軍事領(lǐng)域、智能家居、道路監(jiān)測(cè)、家庭自動(dòng)化等方面有著良好的應(yīng)用前景。ZigBee網(wǎng)絡(luò)常用的路由算法有Cluster-Tree算法、AODVjr算法和Cluster-Tree&AODVjr算法。其中AODVjr是AODV算法的簡(jiǎn)化版本。<
3、;/p><p> 本文借助Matlab的Truetime1.5工具箱搭建了ZigBee網(wǎng)絡(luò)的仿真平臺(tái),在此平臺(tái)上實(shí)現(xiàn)了對(duì)AODV路由算法的設(shè)計(jì)。該設(shè)計(jì)可以分為以下幾個(gè)模塊來(lái)實(shí)現(xiàn):初始化、路由發(fā)現(xiàn)及維護(hù)、節(jié)點(diǎn)收發(fā)數(shù)據(jù)、節(jié)點(diǎn)移動(dòng)、顯示及時(shí)鐘模塊。重點(diǎn)分析介紹了AODV路由發(fā)現(xiàn)及維護(hù)模塊。分析了一種基于路由發(fā)現(xiàn)過(guò)程的改進(jìn)方案。該方案通過(guò)增加反向的RREQ分組和備用路由表來(lái)降低網(wǎng)絡(luò)阻塞的概率和數(shù)據(jù)丟失率。</p>
4、;<p> 通過(guò)設(shè)計(jì)節(jié)點(diǎn)的移動(dòng)來(lái)模擬真實(shí)網(wǎng)絡(luò)中節(jié)點(diǎn)失效的情況。通過(guò)測(cè)試,在該平臺(tái)上,可以實(shí)現(xiàn)AODV路由的發(fā)現(xiàn)、建立、維護(hù)、收發(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ú)線傳感網(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)和主要研究?jī)?nèi)容7</p><p> 第四節(jié) 本章小結(jié)8</p><p> 第二章 ZigBee路由協(xié)議分析9</p><p> 第一節(jié) 網(wǎng)絡(luò)層規(guī)范簡(jiǎn)介9<
13、;/p><p> 一、網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體9</p><p> 二、網(wǎng)絡(luò)層管理實(shí)體10</p><p> 第三節(jié) 組網(wǎng)過(guò)程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è)計(jì)19</p><p> 第一節(jié) 系統(tǒng)總體設(shè)計(jì)19</p><p> 第二節(jié) 各個(gè)子模塊的設(shè)計(jì)19</p>
15、<p><b> 一、初始化19</b></p><p> 二、路由發(fā)現(xiàn)及維護(hù)21</p><p> 三、節(jié)點(diǎn)收發(fā)數(shù)據(jù)39</p><p> 四、節(jié)點(diǎn)的移動(dòng)40</p><p><b> 五、顯示41</b></p><p><b>
16、; 六、時(shí)鐘42</b></p><p> 第三節(jié) 本章小結(jié)45</p><p> 第四章 基于路由發(fā)現(xiàn)過(guò)程的AODV路由改進(jìn)方案46</p><p> 第一節(jié) 改進(jìn)方案的思想46</p><p> 一、增加反向RREQ46</p><p> 二、增加備用路由表50</p&
17、gt;<p> 第二節(jié) 改進(jìn)方案的優(yōu)勢(shì)53</p><p> 第三節(jié) 本章小結(jié)53</p><p> 第五章 AODV路由協(xié)議的實(shí)現(xiàn)與測(cè)試54</p><p> 第一節(jié) 驗(yàn)證與測(cè)試環(huán)境的搭建54</p><p> 第二節(jié) AODV路由協(xié)議的測(cè)試55</p><p> 第三節(jié)
18、 測(cè)試結(jié)果分析57</p><p> 第四節(jié) 本章小結(jié)58</p><p><b> 結(jié) 論59</b></p><p><b> 致 謝60</b></p><p><b> 參考文獻(xiàn)61</b></p><p><b&
19、gt; 附 錄62</b></p><p><b> 一、英文原文62</b></p><p><b> 二、英文翻譯74</b></p><p> 三、工程設(shè)計(jì)圖紙:85</p><p><b> 前 言</b></p><
20、;p> 隨著無(wú)線傳感網(wǎng)絡(luò)應(yīng)用的逐步推廣,ZigBee技術(shù)憑借其低功耗、低成本、短時(shí)延、高可靠性等諸多優(yōu)勢(shì)得到了越來(lái)越多的關(guān)注。同時(shí),ZigBee技術(shù)在工業(yè)領(lǐng)域、汽車上、智能家居、道路監(jiān)測(cè)、醫(yī)學(xué)等諸多領(lǐng)域也已取得初步的成就。目前,對(duì)ZigBee技術(shù)的研究也有一定的深度,主要有安全和能量?jī)煞矫娴膯?wèn)題。相對(duì)于國(guó)外比較早的研究,中國(guó)目前對(duì)ZigBee技術(shù)的研究還處于起步階段,與國(guó)外的差距比較大。</p><p>
21、 ZigBee網(wǎng)絡(luò)層的作用是保證MAC子層的正常工作,并為應(yīng)用層提供合適的接口。其網(wǎng)絡(luò)層分為數(shù)據(jù)實(shí)體和管理實(shí)體,其中管理實(shí)體是網(wǎng)絡(luò)層的核心,主要完成配置新設(shè)備、網(wǎng)絡(luò)建立及維護(hù)、路由實(shí)現(xiàn)、數(shù)據(jù)收發(fā)控制等任務(wù)。</p><p> AODV是一種應(yīng)用于無(wú)線網(wǎng)狀網(wǎng)絡(luò)的路由協(xié)議。它源節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí)才進(jìn)行路由發(fā)現(xiàn)。當(dāng)沒(méi)有數(shù)據(jù)發(fā)送請(qǐng)求時(shí)并不執(zhí)行。在路由發(fā)現(xiàn)過(guò)程中首先檢查路由表中是否存在從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路由,若存在則
22、直接進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),若不存在,則廣播RREQ分組進(jìn)行尋找并建立路由。當(dāng)目的節(jié)點(diǎn)收到第一個(gè)RREQ分組時(shí),立即回復(fù)RREP分組給源節(jié)點(diǎn),當(dāng)源節(jié)點(diǎn)收到RREP分組時(shí),便沿著RREP的路徑建立了一條到目的節(jié)點(diǎn)的路徑,然后通過(guò)此路徑進(jìn)行數(shù)據(jù)的傳送。當(dāng)節(jié)點(diǎn)在轉(zhuǎn)發(fā)分組失敗的時(shí)候便廣播一個(gè)RRER分組,以此來(lái)告知源節(jié)點(diǎn)路徑斷開,源節(jié)點(diǎn)收到RRER之后將要發(fā)送的數(shù)據(jù)存入緩存,并重新發(fā)起路由發(fā)現(xiàn)的過(guò)程,直到新的路由路徑建立起來(lái)的時(shí)候,才將緩存中的數(shù)據(jù)依次發(fā)
23、送給目的節(jié)點(diǎn)。</p><p> ZigBee網(wǎng)絡(luò)中的節(jié)點(diǎn)大多采用電池供電,特別是當(dāng)節(jié)點(diǎn)分布的環(huán)境比較復(fù)雜,節(jié)點(diǎn)數(shù)量繁多的時(shí)候,更換電池很難的情況下,如何保證網(wǎng)絡(luò)存在周期最長(zhǎng),節(jié)點(diǎn)功耗降到最低就顯得尤為重要。同時(shí),如何才能減小丟包率,這個(gè)問(wèn)題也很重要。本文分析了一種基于AODV路由發(fā)現(xiàn)的改進(jìn)方案,通過(guò)增加反向的RREQ分組及建立備用路由表,可以有效的減小AODV路由算法中路由發(fā)現(xiàn)過(guò)程中的RREQ洪泛轉(zhuǎn)發(fā)帶來(lái)的網(wǎng)
24、絡(luò)阻塞,及路由失效帶來(lái)的數(shù)據(jù)丟失問(wèn)題。</p><p><b> 第一章 緒論</b></p><p><b> 第一節(jié) 選題背景</b></p><p> 一、無(wú)線傳感網(wǎng)絡(luò)概述</p><p> 無(wú)線傳感網(wǎng)(WSN,Wireless Sensor Network),是由傳感器、數(shù)據(jù)處理
25、單與及通信模塊構(gòu)成的。傳感器是隨機(jī)分布的,組網(wǎng)方式是自組織。無(wú)線傳感網(wǎng)通過(guò)嵌入在內(nèi)部的各種傳感器來(lái)實(shí)現(xiàn)對(duì)所需要的信息的采集,比如溫度、濕度、光強(qiáng)、土壤中營(yíng)養(yǎng)成分的濃度等 []。無(wú)線傳感網(wǎng)的一般都采用短距離的無(wú)線低功率通信技術(shù)來(lái)實(shí)現(xiàn)通信。表1.1列舉了無(wú)線傳感網(wǎng)絡(luò)中幾種常用的無(wú)線通信技術(shù)[]。</p><p> 表1.1 幾種短距離無(wú)線通信技術(shù)的比較</p><p> 無(wú)線傳感器網(wǎng)絡(luò)的
26、在軍事、環(huán)境檢測(cè)和預(yù)報(bào)、健康護(hù)理、智能家居、建筑物狀態(tài)監(jiān)控、復(fù)雜機(jī)械監(jiān)控、城市交通、空間探索、大型車間管理,以及機(jī)場(chǎng)、大型工業(yè)園區(qū)的安全檢測(cè)等方面都得到了廣泛的應(yīng)用,吸引了來(lái)自政府部門、軍方、企業(yè)及科研機(jī)構(gòu)的高度關(guān)注,成為目前工業(yè)界、學(xué)術(shù)界的研究熱點(diǎn)之一。隨著無(wú)線傳感器網(wǎng)絡(luò)技術(shù)的進(jìn)一步發(fā)展,無(wú)線傳感網(wǎng)將逐漸深入到人類生活的各個(gè)領(lǐng)域[]。</p><p> 無(wú)線傳感網(wǎng)絡(luò)具有大規(guī)模、無(wú)線、自組織、多跳、無(wú)分區(qū)、無(wú)基
27、礎(chǔ)設(shè)施支持的特點(diǎn),其節(jié)點(diǎn)是同構(gòu)的、低成本的、體積較小、不移動(dòng),被隨意的撒布在工作區(qū)域。無(wú)線傳感網(wǎng)絡(luò)所傳輸?shù)臄?shù)據(jù)通常為小量的突發(fā)信號(hào),這一類信號(hào)的特征是數(shù)據(jù)量小、傳輸速率低,但是需要實(shí)時(shí)傳送。由于系統(tǒng)所使用的設(shè)備一般是電池供電的嵌入式設(shè)備,所以無(wú)線傳感網(wǎng)的數(shù)據(jù)傳輸要求傳輸設(shè)備具有成本低、功耗小的特點(diǎn)。傳統(tǒng)的無(wú)線通信技術(shù)基本都能夠?qū)崿F(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸,但是由于設(shè)備成本高、能耗高、體積比較大等諸多問(wèn)題,使得人們正在尋找一種低成本、小體積、低能耗
28、、低數(shù)據(jù)傳輸速率的無(wú)線通信技術(shù)。在2002年,由英mInvensys公司、日本三菱電氣公司、美國(guó)摩托羅拉公司及荷蘭飛利浦公司共同組成 ZigBee技術(shù)聯(lián)盟,共同研究開發(fā)ZigBee技術(shù)。ZigBee技術(shù)是目前唯一面向無(wú)線傳感器網(wǎng)絡(luò)的技術(shù)標(biāo)準(zhǔn),它是該技術(shù)的迅速發(fā)展的產(chǎn)物。 ZigBee的目標(biāo)是建立一個(gè) “無(wú)所不在的傳感器網(wǎng)絡(luò)” (Ubiquitous Sensor Network)[3]。 </p><p>
29、 二、ZigBee網(wǎng)絡(luò)概述</p><p> ZigBee是基于802.15.4標(biāo)準(zhǔn)的,在此基礎(chǔ)上,只定義了物理層和MAC子層。ZigBee聯(lián)盟又在物理層和MAC的基礎(chǔ)上擴(kuò)展了網(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è)備對(duì)象(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ú)線網(wǎng)絡(luò),一般稱之為ZigBee網(wǎng)絡(luò)。它主要有以下特點(diǎn)[]: </p><p> ?、俟牡停哼@是ZigBee的最重要的特性。設(shè)備的發(fā)射功率在3.6dBm
31、以下。并且由于ZigBee具有能量檢測(cè)及鏈路質(zhì)量指標(biāo)的能力,這樣設(shè)備就可以根據(jù)這些檢測(cè)的結(jié)果對(duì)發(fā)射功率進(jìn)行自動(dòng)調(diào)整,從而實(shí)現(xiàn)在保障鏈路質(zhì)量的前提下最大限度的降低設(shè)備的能耗。同時(shí),MAC層采用的休眠機(jī)制使得ZigBee網(wǎng)絡(luò)中國(guó)的節(jié)點(diǎn)在中斷過(guò)程中非常省電,從而使得一般節(jié)點(diǎn)的電池工作時(shí)間都可以達(dá)到至少半年,最長(zhǎng)的電池工作時(shí)間甚至可以達(dá)到兩年。 </p><p> ?、谕ㄐ啪嚯x近:由于ZigBee節(jié)點(diǎn)的發(fā)射功率低,因此限
32、制其相鄰節(jié)點(diǎn)的通信距離在20~100m的范圍內(nèi)。不過(guò)可以通過(guò)節(jié)點(diǎn)的傳遞通信來(lái)增加傳輸?shù)木嚯x。</p><p> ?、鄣统杀荆河捎赯igBee協(xié)議簡(jiǎn)單從而降低了對(duì)控制器及存儲(chǔ)空間的要求,并且ZigBee協(xié)議是可以免費(fèi)使用的,故從總體上來(lái)講,ZigBee技術(shù)的成本低。</p><p> ④低數(shù)據(jù)傳輸速率:ZigBee工作在不同的頻段下,傳輸速率都比較低,868MHz頻段下則只有20 kbps
33、,91.5MHz頻段下為40kbps,2.4GHz頻段下為250 kbps[]。</p><p> ?、輹r(shí)延短:網(wǎng)絡(luò)的時(shí)延主要是從休眠狀態(tài)中激活的時(shí)延和的通信時(shí)延,二ZigBee網(wǎng)絡(luò)的這兩個(gè)時(shí)延都很短。因此一是節(jié)省了能量的消耗,二是更加適用于對(duì)時(shí)間敏感的場(chǎng)所。</p><p> ?、蘧W(wǎng)絡(luò)容量很大:ZigBee網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)總的來(lái)說(shuō)可以分為星型網(wǎng)絡(luò)和對(duì)等網(wǎng)絡(luò)。在每種組網(wǎng)方式下,網(wǎng)絡(luò)的地址碼可
34、以是16bits短地址,也可以使64bits的長(zhǎng)地址,能夠容納的最大設(shè)備個(gè)數(shù)分別為216和264個(gè) []。</p><p> ?、吒呖煽啃裕篫igBee在引進(jìn)了CSMA/CA機(jī)制,即避免沖突的載波偵聽多路機(jī)制的同時(shí)還為通信的數(shù)據(jù)預(yù)先保留了專用時(shí)隙,從而有效的避免了在數(shù)據(jù)發(fā)送過(guò)程洪的信道競(jìng)爭(zhēng)及沖突問(wèn)題。MAC層中通過(guò)采用每個(gè)待發(fā)送的數(shù)據(jù)信息必須在接收方傳回的確認(rèn)信息之后方可發(fā)送的機(jī)制,有效地保證節(jié)點(diǎn)之間在信息傳輸中
35、的可靠性。同時(shí)還采用了密鑰長(zhǎng)度為128位的加密算法,保證了設(shè)備間通信數(shù)據(jù)的安全。</p><p><b> 第二節(jié) 選題意義</b></p><p> 一、ZigBee的應(yīng)用領(lǐng)域</p><p> 以上的特點(diǎn)使得ZigBee在一些簡(jiǎn)單的儀表控制等其他領(lǐng)域已經(jīng)有成功的應(yīng)用范例。隨著ZigBee技術(shù)的進(jìn)一步發(fā)展,它將在越來(lái)越多的領(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ò)被稱作未來(lái)十大技術(shù)之一,它是由不同種類的傳感器以及ZigBee裝置構(gòu)成的一種用來(lái)監(jiān)測(cè)控制的網(wǎng)絡(luò),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的自動(dòng)采集、分析處理等工作,適用于工業(yè)、農(nóng)業(yè)、醫(yī)學(xué)、軍事等需要數(shù)據(jù)自動(dòng)采集并進(jìn)行網(wǎng)絡(luò)傳輸?shù)念I(lǐng)域。</p><p><b>
37、 ?、谠诠I(yè)領(lǐng)域</b></p><p> 在工業(yè)領(lǐng)域廣泛使用ZigBee技術(shù),主要是由于ZigBee具有低功耗的特點(diǎn)。借助于ZigBee網(wǎng)絡(luò)來(lái)傳遞信息,可以達(dá)到工業(yè)與環(huán)境控制的目的。比如一些比較危險(xiǎn)的化學(xué)成分的檢測(cè)、生產(chǎn)機(jī)床流水香上的的流程控制、工業(yè)控制危險(xiǎn)情況比如火警的早期的檢測(cè)及預(yù)報(bào)等這些不適合工作人員直接接觸的危險(xiǎn)工作,都可以通過(guò)無(wú)線傳感網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)進(jìn)行監(jiān)測(cè)。</p>&
38、lt;p><b> ?、墼谄嚿?lt;/b></p><p> 這主要是傳遞消息的通用傳感器。汽車上的很多傳感器都只能內(nèi)置在快速轉(zhuǎn)動(dòng)的輪胎或者發(fā)動(dòng)機(jī)中,比如輪胎的壓力監(jiān)測(cè)。這些除了要借助無(wú)線傳感技術(shù)外,更重要的這些系統(tǒng)要求電池的使用時(shí)間要長(zhǎng),同時(shí)還要能夠在干擾很大的環(huán)境中正常工作,不受金屬對(duì)電磁波的屏障效應(yīng)等?;谏鲜龇治?,ZigBee可以說(shuō)是一個(gè)很好的選擇。</p>&l
39、t;p> ?、茉诩彝ズ蜆怯钭詣?dòng)化智能建設(shè)上</p><p> 隨著智能家居的關(guān)注度提高,家庭和樓宇自動(dòng)化在無(wú)線通信方面的應(yīng)用越來(lái)越多。未來(lái)的家庭中,將會(huì)出現(xiàn)在常用的電器及煤氣監(jiān)測(cè)、家庭的安保系統(tǒng)等其他的生活用品中都會(huì)出現(xiàn)基于ZigBee的無(wú)線傳感模塊[7]。家庭生活必將越來(lái)越智能化。</p><p> ⑤在精確的農(nóng)業(yè)耕種上</p><p> ZigBee
40、技術(shù)在農(nóng)業(yè)方面的應(yīng)用將會(huì)使農(nóng)業(yè)活動(dòng)從傳統(tǒng)的依靠人力監(jiān)測(cè)生長(zhǎng)狀況、機(jī)械裝置現(xiàn)場(chǎng)操作中解放出來(lái)。基于ZigBee通信的大量的傳感器的組成的無(wú)線傳感網(wǎng)絡(luò),將收集到包括土壤的濕度、土壤中氮的含量、土壤酸堿度、空氣溫濕度等在內(nèi)的各種和作物生長(zhǎng)密切相關(guān)的數(shù)據(jù)。這為農(nóng)民決策提供了可靠的數(shù)據(jù),降低了風(fēng)險(xiǎn)。</p><p><b> ⑥在醫(yī)學(xué)領(lǐng)域</b></p><p> 在病房中
41、安置各類傳感器可以實(shí)時(shí)的監(jiān)測(cè)和病人病情密切相關(guān)的數(shù)據(jù),比如血壓、心跳速度等,然后通過(guò)無(wú)線傳感網(wǎng)絡(luò)傳送給醫(yī)生,這不僅減少了醫(yī)生查房的工作負(fù)擔(dān),而且有助于給醫(yī)生的醫(yī)治決策提供準(zhǔn)確的數(shù)據(jù)。</p><p> ?、咴谙M(fèi)電子及家用電器的自動(dòng)化市場(chǎng)上</p><p> 隨著智能家居技術(shù)的不斷發(fā)展,可以聯(lián)網(wǎng)的家用電器,比如電視、錄像機(jī)、電腦的外設(shè)(鍵盤和鼠標(biāo)等)、還有休閑的器械、兒童的玩具等都可以通
42、過(guò)內(nèi)置傳感器而構(gòu)成無(wú)線傳感網(wǎng),通過(guò)ZigBee通信。這些結(jié)合創(chuàng)造出了巨大的市場(chǎng)前景。</p><p> ?、嘣诘缆分甘?、方便安全行路方面</p><p> 在街道、高速公路上分布大量的能夠提供路標(biāo)及道路狀況的傳感器或其他的裝置,將能夠幫助判斷所處的位置及正在走的方向,同時(shí)會(huì)可以實(shí)時(shí)提供道路的通行狀況、維修狀況、事故信息等和行車關(guān)系重大的信息。這些傳感器的更換也比較麻煩,所以低功耗成了首要
43、考慮的問(wèn)題,無(wú)疑,ZigBee技術(shù)是最好的選擇。</p><p><b> ?、嵩谲娛律?lt;/b></p><p> 軍事應(yīng)用是ZigBee的又一重要應(yīng)用。ZigBee網(wǎng)絡(luò)不需要架設(shè)網(wǎng)絡(luò)設(shè)施、可以快速的展開、抗摧毀能力很強(qiáng),這些特點(diǎn)都為ZigBee技術(shù)在復(fù)雜戰(zhàn)場(chǎng)環(huán)境中通信創(chuàng)造了優(yōu)勢(shì)。 </p><p> 基于上述的分析,可以看出ZigBee的
44、應(yīng)用前景非常的廣闊,故對(duì)于ZigBee技術(shù)的研究就顯得非常重要,而且很有意義。</p><p> 二、ZigBee的發(fā)展現(xiàn)狀</p><p> 在ZigBee技術(shù)的被迅速應(yīng)用的生活中的很多方面時(shí),其自身所存在的一些問(wèn)題吸引學(xué)者的關(guān)注,如何進(jìn)一步優(yōu)化和完善該技術(shù)也成為了一個(gè)研究熱點(diǎn)。</p><p> ZigBee協(xié)議規(guī)范從推出至今,已經(jīng)有大量研究者對(duì)ZigBe
45、e網(wǎng)絡(luò)的時(shí)間同步、安全機(jī)制、廣播問(wèn)題等進(jìn)行了研究,但目前仍然存在一些問(wèn)題[4]。</p><p> 從安全方面來(lái)看,無(wú)線自組織網(wǎng)絡(luò)有容易被攻擊和難以追蹤的缺陷,這主要是無(wú)線自組織網(wǎng)絡(luò)所使用的共享無(wú)線信道存在的安全隱患所導(dǎo)致的。</p><p> 從能量控制來(lái)看,無(wú)線自組織網(wǎng)絡(luò)沒(méi)有固定基礎(chǔ)設(shè)施,一般采用電池供電,而且電池更換不方便,所以,降低網(wǎng)絡(luò)能耗,延長(zhǎng)網(wǎng)絡(luò)生存期,避免節(jié)點(diǎn)死亡,這些是
46、ZigBee網(wǎng)絡(luò)研究的重要問(wèn)題。目前,降低能耗的主要方法有通過(guò)選擇性的調(diào)整節(jié)點(diǎn)接收器到休眠狀態(tài)、使用可調(diào)輸出功率的發(fā)送器、采用節(jié)能型路由等等。 </p><p> 從接入控制來(lái)看,對(duì)接入節(jié)點(diǎn)的公平性、多種網(wǎng)絡(luò)共存問(wèn)題、隱藏終端問(wèn)題、暴露終端問(wèn)題等雖然已提出了很多技術(shù)和方法,但是并沒(méi)有得到完善的解決。</p><p> 總之,中國(guó)關(guān)于傳感器網(wǎng)絡(luò)以及ZigBee協(xié)議的研究剛開始,但是,該技
47、術(shù)屬于新興技術(shù),國(guó)外的發(fā)展并沒(méi)有超前很多,所以及時(shí)開展對(duì)該技術(shù)的前沿科學(xué)研究,對(duì)以后的發(fā)展大有裨益。 </p><p> 論文的結(jié)構(gòu)和主要研究?jī)?nèi)容</p><p> 本文在概述了無(wú)線傳感網(wǎng)和ZigBee網(wǎng)絡(luò)的發(fā)展?fàn)顩r及應(yīng)用,分析了基于ZigBee的AODV路由協(xié)議。ZigBee的網(wǎng)絡(luò)層分為數(shù)據(jù)實(shí)體和管理實(shí)體,路由發(fā)現(xiàn)及維護(hù)等過(guò)程都由管理實(shí)體執(zhí)行,它是ZigBee網(wǎng)絡(luò)的核心。對(duì)ZigBe
48、e的組網(wǎng)過(guò)程、現(xiàn)有路由協(xié)議的思想及機(jī)制進(jìn)行了詳細(xì)的分析。然后利用matlab中的TrueTime1.5工具箱搭建了仿真平臺(tái),在此基礎(chǔ)上,詳細(xì)介紹了AODV路由協(xié)議的設(shè)計(jì)思路。針對(duì)丟失RREP分組導(dǎo)致的數(shù)據(jù)丟失問(wèn)題,分析了一種改進(jìn)方案。最后對(duì)仿真進(jìn)行了測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行了詳細(xì)的分析。</p><p> 本文的結(jié)構(gòu)安排如下:</p><p> 第一章 緒論:簡(jiǎn)單介紹了課題的背景及其研
49、究意義,概述了無(wú)線傳感網(wǎng)及ZigBee技術(shù)的特點(diǎn)、發(fā)展現(xiàn)狀。</p><p> 第二章 ZigBee的路由協(xié)議分析:簡(jiǎn)要介紹了ZigBee網(wǎng)絡(luò)層、組網(wǎng)過(guò)程、數(shù)據(jù)的收發(fā)過(guò)程、常用路由算法的原理及實(shí)現(xiàn)過(guò)程。</p><p> 第三章 基于ZigBee的AODV路由設(shè)計(jì):通過(guò)模塊化的思想,詳細(xì)分析了基于ZigBee的AODV路由算法的實(shí)現(xiàn)過(guò)程。對(duì)AODV路由協(xié)議中路由的發(fā)現(xiàn)過(guò)程和路由的維
50、護(hù)過(guò)程進(jìn)行了重點(diǎn)介紹。</p><p> 第四章 AODV的一種改進(jìn)方案:分析了一種基于路由發(fā)現(xiàn)過(guò)程的改進(jìn)方案,該方案通過(guò)增加反向RREQ分組來(lái)建立備用路由,降低了網(wǎng)絡(luò)阻塞率和丟包率。</p><p> 第五章 AODV路由算法的實(shí)現(xiàn)與測(cè)試:本章主要對(duì)仿真的結(jié)果進(jìn)行了測(cè)試,并對(duì)測(cè)試結(jié)果和本次實(shí)驗(yàn)中的不足進(jìn)行了詳細(xì)的分析。</p><p><b>
51、 第四節(jié) 本章小結(jié)</b></p><p> 本章由無(wú)線傳感網(wǎng)的概念展開,對(duì)幾種常用的無(wú)線通信技術(shù)進(jìn)行了比較,概括介紹了ZigBee技術(shù)的特點(diǎn),并對(duì)ZigBee網(wǎng)絡(luò)的體系結(jié)構(gòu)及未來(lái)的應(yīng)用領(lǐng)域進(jìn)行了簡(jiǎn)要的分析,對(duì)比了國(guó)內(nèi)外ZigBee技術(shù)的發(fā)展現(xiàn)狀,提出了目前ZigBee技術(shù)發(fā)展的中存在的待解決的問(wèn)題。對(duì)文章的主要內(nèi)容及文章架構(gòu)進(jìn)行了概述。</p><p> 第二章 Zi
52、gBee路由協(xié)議分析</p><p> 第一節(jié) 網(wǎng)絡(luò)層規(guī)范簡(jiǎn)介</p><p> 網(wǎng)絡(luò)層提供了保證MAC子層正常工作的功能及為應(yīng)用層的服務(wù)提供接入點(diǎn)。要和應(yīng)用層通信,網(wǎng)絡(luò)層的概念包括兩個(gè)服務(wù)實(shí)體,數(shù)據(jù)實(shí)體(NLDE,Network Layer Data Entity)和管理實(shí)體(NLME,Network Layer Mannger Entity)。如圖2.1所示[5]。數(shù)據(jù)實(shí)體的主要
53、任務(wù)是為上層提供所需要的常規(guī)數(shù)據(jù)服務(wù),而管理實(shí)體則提供訪問(wèn)內(nèi)部層參數(shù)、配置、管理數(shù)據(jù)、組網(wǎng)等機(jī)制。NWK層數(shù)據(jù)實(shí)體通過(guò)其相關(guān)的SAP來(lái)提供相關(guān)的服務(wù)。NIME使用NLDE來(lái)獲得它的一些管理任務(wù),而且還維護(hù)一個(gè)叫做網(wǎng)絡(luò)信息庫(kù)(NIB)的數(shù)據(jù)庫(kù),。</p><p> 圖2.1 ZigBee網(wǎng)絡(luò)層結(jié)構(gòu)</p><p> 一、網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體 </p><p> 網(wǎng)絡(luò)
54、層數(shù)據(jù)實(shí)體為數(shù)據(jù)提供服務(wù),對(duì)應(yīng)用層和MAC層的接口分別為網(wǎng)絡(luò)層數(shù)據(jù)訪問(wèn)接口(NLDE-SAP)和MAC層數(shù)據(jù)訪問(wèn)接口(MCPS-SAP),實(shí)現(xiàn)兩個(gè)對(duì)等的應(yīng)用層之間的端到端的傳輸。網(wǎng)絡(luò)層在接收到來(lái)自高層的數(shù)據(jù)傳輸請(qǐng)求原語(yǔ)后首先組織一個(gè)NPDU,然后根據(jù)路由算法決定下一跳目的設(shè)備。故數(shù)據(jù)實(shí)體對(duì)于路由而言提供了一個(gè)接口,當(dāng)高層需要發(fā)送數(shù)據(jù)是就會(huì)啟動(dòng)路由查詢機(jī)制。</p><p> 二、網(wǎng)絡(luò)層管理實(shí)體 </p&g
55、t;<p> 網(wǎng)絡(luò)層的管理實(shí)體控制著網(wǎng)絡(luò)層,維護(hù)其網(wǎng)絡(luò)信息庫(kù),為應(yīng)用層提供接入點(diǎn),可以說(shuō)這是是網(wǎng)絡(luò)層的關(guān)鍵所在。它提供以下服務(wù):</p><p> ?、倥渲眯略O(shè)備。包括根據(jù)要求配置協(xié)議棧以及通過(guò)一系列操作成為ZigBee協(xié)調(diào)器或者加入現(xiàn)有網(wǎng)絡(luò)。</p><p> ?、诮⑿戮W(wǎng)絡(luò)。定義協(xié)調(diào)器(Coordinator)用來(lái)建立新的網(wǎng)絡(luò)。只有一個(gè)未加入網(wǎng)絡(luò)的協(xié)調(diào)器才能建立網(wǎng)絡(luò)。&
56、lt;/p><p> ?、奂尤牒碗x開網(wǎng)絡(luò)。定義了路由器(Router)和節(jié)點(diǎn)(Node)如何加入一個(gè)網(wǎng)絡(luò),以及協(xié)調(diào)器和路由器如何使一個(gè)設(shè)備離開網(wǎng)絡(luò)。</p><p> ?、艿刂贩峙?。協(xié)調(diào)器和路由器為加入網(wǎng)絡(luò)的設(shè)備分配地址。</p><p> ?、萼従釉O(shè)備的發(fā)現(xiàn)。發(fā)現(xiàn)一跳范圍內(nèi)的鄰居設(shè)備,將鄰居節(jié)點(diǎn)的數(shù)據(jù)記錄在路由表中,并進(jìn)行路由表的維護(hù)。</p><
57、p> ?、蘼酚砂l(fā)現(xiàn)。目的設(shè)備不在一跳范圍內(nèi)時(shí),開始一個(gè)路由發(fā)現(xiàn)過(guò)程,發(fā)現(xiàn)路由路徑并且記錄在路由表中。</p><p> ⑦接收控制。管理實(shí)體通過(guò)控制接收器的開關(guān)時(shí)間來(lái)達(dá)到降低功耗目的,同時(shí)保證MAC層的同步和數(shù)據(jù)的正常接收。</p><p> 圖2.2、圖2.3和圖2.4分別給出了各種設(shè)備的網(wǎng)絡(luò)層功能模塊[1]。首先對(duì)網(wǎng)絡(luò)層進(jìn)行初始化,沒(méi)有加入網(wǎng)絡(luò)的協(xié)調(diào)器在初始化之后建立新的網(wǎng)絡(luò)
58、、設(shè)定網(wǎng)絡(luò)參數(shù)、管理網(wǎng)絡(luò)中的節(jié)點(diǎn),路由器和終端設(shè)備在發(fā)現(xiàn)網(wǎng)絡(luò)后請(qǐng)求加入網(wǎng)絡(luò),在加入網(wǎng)絡(luò)的過(guò)程中協(xié)調(diào)器和路由器為加入的設(shè)備分配地址。ZigBee路由器可以參與路由的發(fā)現(xiàn)過(guò)程、消息的轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)過(guò)程、允許其他節(jié)點(diǎn)通過(guò)自己關(guān)聯(lián)網(wǎng)絡(luò)等;ZigBee終端節(jié)點(diǎn)通過(guò)ZigBee協(xié)調(diào)器節(jié)點(diǎn)或ZigBee路由節(jié)點(diǎn)關(guān)聯(lián)到網(wǎng)絡(luò),但不具有允許其它任何節(jié)點(diǎn)通過(guò)它加入網(wǎng)絡(luò)的能力。數(shù)據(jù)發(fā)送和接收涉及路由的選擇,發(fā)起一個(gè)路由發(fā)現(xiàn)之后對(duì)路由算法進(jìn)行選擇,在這個(gè)過(guò)程中進(jìn)行鄰居
59、列表的維護(hù)、路由表的維護(hù)等。</p><p> 圖2.2 Coordinator功能模塊示意圖</p><p> 圖2.3 Router的功能模塊示意圖</p><p> 圖2.4 End device功能模塊示意圖</p><p><b> 第三節(jié) 組網(wǎng)過(guò)程</b></p><p>
60、 在ZigBee網(wǎng)絡(luò)中,每個(gè)網(wǎng)絡(luò)只有一個(gè)協(xié)調(diào)器節(jié)點(diǎn),建立新的網(wǎng)絡(luò)只能由沒(méi)有加入其它網(wǎng)絡(luò)中的協(xié)調(diào)器點(diǎn)發(fā)起,ZigBee網(wǎng)絡(luò)組網(wǎng)過(guò)程如圖2.6。</p><p> 協(xié)調(diào)器首先利用MAC子層提供的掃描功能,進(jìn)行信道的能量探測(cè)掃描以及主動(dòng)掃描[],選擇一個(gè)其他網(wǎng)絡(luò)沒(méi)有使用的空閑信道,然后分配網(wǎng)絡(luò)的16-bit地址,配置網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)參數(shù)、確定自己的網(wǎng)絡(luò)PAN ID(個(gè)人局域網(wǎng)標(biāo)識(shí))等。因?yàn)镻AN標(biāo)識(shí)是所選信道中的唯一標(biāo)
61、志,因而與在此信道中探測(cè)到得PAN ID不會(huì)有沖突。在以上各個(gè)參數(shù)都定下來(lái)以后,協(xié)調(diào)器便開始發(fā)送信標(biāo)幀,等待其它的設(shè)備請(qǐng)求加入網(wǎng)絡(luò)。</p><p> 如圖2.7所示為一個(gè)節(jié)點(diǎn)加入當(dāng)前網(wǎng)絡(luò)和脫離當(dāng)前網(wǎng)絡(luò)的過(guò)程示意圖[4]。</p><p> 網(wǎng)絡(luò)建立完成后,協(xié)調(diào)器允許新節(jié)點(diǎn)的加入。當(dāng)一個(gè)新的節(jié)點(diǎn)想要加入當(dāng)前網(wǎng)絡(luò),和網(wǎng)絡(luò)中的節(jié)點(diǎn)建立網(wǎng)絡(luò)關(guān)聯(lián)[],網(wǎng)絡(luò)關(guān)聯(lián)的處理包括兩部分:待加入網(wǎng)絡(luò)中的節(jié)
62、點(diǎn)的關(guān)聯(lián)請(qǐng)求;網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)關(guān)聯(lián)申請(qǐng)的處理。網(wǎng)絡(luò)中節(jié)點(diǎn)是否有能力接受關(guān)聯(lián)請(qǐng)求,主要在于它本身的存儲(chǔ)容量和能量的大小。如果節(jié)點(diǎn)有能力作為父節(jié)點(diǎn),則它在收到關(guān)聯(lián)請(qǐng)求以后,則發(fā)出關(guān)聯(lián)應(yīng)答,并為待加入節(jié)點(diǎn)分配一個(gè)唯一的16位網(wǎng)絡(luò)地址,待加入節(jié)點(diǎn)在收到關(guān)聯(lián)應(yīng)答后,成功加入網(wǎng)絡(luò)中。加入到網(wǎng)絡(luò)的節(jié)點(diǎn)又可以作為其他節(jié)點(diǎn)的父節(jié)點(diǎn)接受關(guān)聯(lián)請(qǐng)求。ZigBee中,離開網(wǎng)絡(luò)有兩種情況,子節(jié)點(diǎn)向父節(jié)點(diǎn)發(fā)出離開網(wǎng)絡(luò)的請(qǐng)求和父節(jié)點(diǎn)向子節(jié)點(diǎn)發(fā)送請(qǐng)求使其離開。兩種情況一般同
63、時(shí)存在。當(dāng)一個(gè)子節(jié)點(diǎn)收到來(lái)高層的離開請(qǐng)求后,先要求自己的子節(jié)點(diǎn)離開,待所有子節(jié)點(diǎn)離開后通過(guò)MAC層的取消關(guān)聯(lián)的操作再向其父節(jié)點(diǎn)發(fā)送離開網(wǎng)絡(luò)的申請(qǐng)。</p><p> 圖2.6 ZigBee的組網(wǎng)過(guò)程</p><p> 圖2.7 ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)加入和離開網(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ò)拓?fù)浣Y(jié)構(gòu),不需要存儲(chǔ)路由表。樹中的大部分設(shè)備為全功能設(shè)備(FFD),具有轉(zhuǎn)發(fā)功能,而終端節(jié)點(diǎn)是精簡(jiǎn)功能設(shè)備(RFD
65、),它只能作為樹枝末尾處的葉節(jié)點(diǎn),一次只能連接到一個(gè) 全功能設(shè)備上 。如果 RFD節(jié)點(diǎn)要發(fā)送數(shù)據(jù)包到某目的節(jié)點(diǎn),則直接將該數(shù)據(jù)包發(fā)送給其父親節(jié)點(diǎn),由父親節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)。如果FFD節(jié)點(diǎn)要發(fā)送數(shù)據(jù)包到某目的節(jié)點(diǎn),則先判斷目的節(jié)點(diǎn)是不是FFD的下屬節(jié)點(diǎn),如果是其下屬節(jié)點(diǎn),則轉(zhuǎn)發(fā)給子節(jié)點(diǎn),如果不是其下屬節(jié)點(diǎn),則把該數(shù)據(jù)包交給父親節(jié)點(diǎn)轉(zhuǎn)發(fā)[]。如圖2.8為其數(shù)據(jù)發(fā)送流程圖:</p><p> 圖2.8 Cluster-Tr
66、ee路由過(guò)程</p><p> ClusterTree算法按樹型結(jié)構(gòu)分層遍歷,算法簡(jiǎn)單且查找目的節(jié)點(diǎn)的速度快,路由過(guò)程中由于不需要維護(hù)路由表,降低節(jié)點(diǎn)路由開銷及能耗的同時(shí),也降低了對(duì)節(jié)點(diǎn)存儲(chǔ)能力的要求,從而節(jié)點(diǎn)的成本也降低了。但是,使用Cluster-Tree算法建立的路由不一定是最佳的路徑,這可能會(huì)造成數(shù)據(jù)分組在傳輸過(guò)程中時(shí)延的增加。對(duì)于靠近ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器的深度較小的節(jié)點(diǎn),通常它們的業(yè)務(wù)量較大,而深
67、度大的節(jié)點(diǎn),業(yè)務(wù)量相對(duì)較小,這就容易引起網(wǎng)絡(luò)中通信流量的分配不均的問(wèn)題,故網(wǎng)絡(luò)的壽命會(huì)縮短。</p><p> 二、AODVjr算法</p><p> AODV是一種按需路由協(xié)議,根據(jù)業(yè)務(wù)需求建立和維護(hù)路由,它是DSDV (Destination—SequencedDistance-Vector)協(xié)議和DSR(Dynamic Source Routing) 協(xié)議的結(jié)合,使用DSDV協(xié)議
68、中的目的節(jié)點(diǎn)序列號(hào)來(lái)防止緩存的路由信息過(guò)期以及環(huán)路的產(chǎn)生,路由建立則是基于DSR協(xié)議中所采用的方法,不同點(diǎn)在于AODV采用的是逐跳路由而不是源路由,可以實(shí)現(xiàn)ZigBee節(jié)點(diǎn)之間動(dòng)態(tài)的、自發(fā)的路由,使節(jié)點(diǎn)很快實(shí)現(xiàn)到目的節(jié)點(diǎn)的通信。ZigBee路由算法中使用的AODVjr算法是對(duì)AODV算法的精簡(jiǎn)和改進(jìn),但是仍然保持AODV的原始功能。其特點(diǎn)是路由路徑最佳,缺點(diǎn)是單個(gè)節(jié)點(diǎn)需要路由表,整體路由代價(jià)高。</p><p>
69、 AODVjr算法與AODV算法存在一些差別[][][]: </p><p> ?、俦苊猸h(huán)路的機(jī)制不同: AODV算法中使用目的節(jié)點(diǎn)序列號(hào)來(lái)保證在任意的時(shí)刻,網(wǎng)絡(luò)中沒(méi)有環(huán)路存在,而AODVjr則沒(méi)有使用目的節(jié)點(diǎn)序列號(hào),它規(guī)定只有目的節(jié)點(diǎn)才可以回復(fù)RREP,中間的節(jié)點(diǎn)無(wú)論是否有通往目的節(jié)點(diǎn)的路由路徑則都不能回復(fù)RREP。這樣做減少了AODVjr的控制開銷,簡(jiǎn)化了路由的發(fā)現(xiàn)過(guò)程。如果2.9a所示。</p>
70、;<p> ②路由表的結(jié)構(gòu)不同:在AODV中,如果節(jié)點(diǎn)檢測(cè)到鏈路中斷則通過(guò)上游節(jié)點(diǎn)廣播RERR分組來(lái)通知所有受到影響的源節(jié)點(diǎn)。而在AODVjr 中,出錯(cuò)報(bào)文RERR只會(huì)轉(zhuǎn)發(fā)給那些傳輸數(shù)據(jù)失敗的源節(jié)點(diǎn)。所以在AODVjr中的路由表結(jié)構(gòu)中,可以沒(méi)有先驅(qū)節(jié)點(diǎn)列表,這相對(duì)于AODV的路由表來(lái)說(shuō)要簡(jiǎn)單一些。 </p><p> ?、坌迯?fù)路由的機(jī)制不同:如果在傳送數(shù)據(jù)的過(guò)程中,鏈路發(fā)生了中斷,則AODVjr算
71、法采用本地修復(fù),若失敗,則直接發(fā)送RERR分組到源節(jié)點(diǎn),告知目的節(jié)點(diǎn)由于鏈路中斷而不可達(dá)。所發(fā)送的RERR分組被簡(jiǎn)化為只含有一個(gè)不可達(dá)目的節(jié)點(diǎn)。在AODV處理中,所發(fā)送的RERR中包含了不止一個(gè)不可達(dá)的目的節(jié)點(diǎn)。</p><p> ?、茑徆?jié)點(diǎn)對(duì)信息的處理機(jī)制不同:AODV路由算法中,會(huì)周期性的發(fā)送HELLO報(bào)文來(lái)確定節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間是否連通,從而來(lái)實(shí)現(xiàn)對(duì)鏈路的維護(hù)。而在AODVjr中,只是根據(jù)收到的報(bào)文或者M(jìn)A
72、C層提供的信息來(lái)對(duì)鄰居節(jié)點(diǎn)列表進(jìn)行更新,不需要周期性的發(fā)送報(bào)文來(lái)維護(hù),這就要求目的節(jié)點(diǎn)間斷地向源節(jié)點(diǎn)發(fā)送包。如果數(shù)據(jù)量是單向的,那么將定期發(fā)送信息,以維護(hù)該路徑 (如圖2.9b所示)。若數(shù)據(jù)通信是雙向的,那么就不需要額外開銷。AODVjr使用終端對(duì)終端機(jī)制,HELLO消息、RERR和先驅(qū)節(jié)點(diǎn)列表就不需要了。假如在數(shù)據(jù)傳輸中發(fā)生鏈路中斷,那么源節(jié)點(diǎn)將停止接收從目的節(jié)點(diǎn)發(fā)來(lái)的信息。如圖2.9c所示,節(jié)點(diǎn) 4離開路徑,一段時(shí)間后,源節(jié)點(diǎn)將偵測(cè)
73、到路徑鏈路中斷,因?yàn)樵垂?jié)點(diǎn)不能收到來(lái)自目的節(jié)點(diǎn)的信息。假如還需要路由的話,源節(jié)點(diǎn)將修改路由發(fā)現(xiàn)路徑[]。</p><p> 圖2.9 AODVjr運(yùn)行機(jī)制</p><p> 三、Cluster-Tree&AODVjr結(jié)合的算法</p><p> 為了提高路由效率,ZigBee中允許具有路由功能的節(jié)點(diǎn)使用AODVjr算法去發(fā)現(xiàn)路由,即具有路由功能的節(jié)點(diǎn)可
74、以不按照父子關(guān)系而直接發(fā)送信息到其通信范圍內(nèi)的其它具有路由功能的節(jié)點(diǎn),尋找通往目的節(jié)點(diǎn)的最優(yōu)路徑;而不具有路由功能的節(jié)點(diǎn)仍然使用Cluster-Tree路由發(fā)送數(shù)據(jù)分組和控制分組。這就是Cluster-Tree&AODVjr算法,它結(jié)合了Cluster-Tree 與 AODVjr的優(yōu)點(diǎn)。由于AODVjr的使用,Cluster-Tree算法中的分組傳輸時(shí)延降低了,從而分組遞交率也提高了。</p><p>
75、 在這種算法中,網(wǎng)絡(luò)中的節(jié)點(diǎn)被分成 Coordinator 、RN+ 、RN- 、RFD 四 種類型。其中 Coordinator ,及協(xié)調(diào)器和 RN+節(jié)點(diǎn)的路由算法相同,Coordinator、RN+、RN-是全功能節(jié)點(diǎn),能充當(dāng)其他節(jié)點(diǎn)的路由節(jié)點(diǎn);RFD是精簡(jiǎn)功能節(jié)點(diǎn),只能充當(dāng) 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> 本章主要對(duì)ZigBee網(wǎng)絡(luò)層進(jìn)行了介紹。網(wǎng)絡(luò)層的規(guī)范包括數(shù)據(jù)實(shí)體和管理實(shí)體,第一節(jié)對(duì)兩種實(shí)體在網(wǎng)絡(luò)層中的作用分別進(jìn)行了描述。ZigBee在路由過(guò)程中依據(jù)路由消耗來(lái)選擇路由路徑,然后再依據(jù)AOD
77、V或Cluster-Tree路由算法進(jìn)行路由的建立和維護(hù)。本章ZigBee常用路由協(xié)議的分類、基本思想、路由過(guò)程及路由中用到的數(shù)據(jù)結(jié)構(gòu)等,都進(jìn)行了詳細(xì)的描述。重點(diǎn)介紹了ZigBee的路由機(jī)制。</p><p> 第三章 基于ZigBee的AODV路由算法設(shè)計(jì)</p><p> 第一節(jié) 系統(tǒng)總體設(shè)計(jì)</p><p> AODV路由協(xié)議的設(shè)計(jì)是一個(gè)比較大的程序,里
78、面涉及到很多不同的功能,為了使思路更清晰,理解更方便,設(shè)計(jì)采用模塊化編程的思想,把整個(gè)設(shè)計(jì)分為五大模塊,即:初始化、路由的建立及維護(hù)、顯示、時(shí)鐘、節(jié)點(diǎn)移動(dòng)模塊。再針對(duì)每個(gè)大的模塊劃分出更小的子模塊來(lái)進(jìn)行設(shè)計(jì)。軟件的總體設(shè)計(jì)框圖如圖3.1所示:</p><p> 圖3.1 軟件總體設(shè)計(jì)框圖</p><p> 第二節(jié) 各個(gè)子模塊的設(shè)計(jì)</p><p> 本節(jié)對(duì)本次
79、設(shè)計(jì)中涉及到的關(guān)鍵函數(shù)進(jìn)行詳細(xì)的分析和解釋。</p><p><b> 一、初始化</b></p><p> 本程序中的初始化涉及到兩個(gè)子函數(shù),節(jié)點(diǎn)初始化和變量初始化,即node_init和initsm。</p><p><b> 1、節(jié)點(diǎn)初始化</b></p><p> node_init
80、主要針對(duì)搭建的模型中的子節(jié)點(diǎn)進(jìn)行初始化。包括對(duì)核心模塊的初始化、創(chuàng)建AODV的發(fā)送和接收任務(wù),設(shè)置優(yōu)先級(jí)等。其具體任務(wù)如圖3.2所示:</p><p> 圖3.2 節(jié)點(diǎn)初始化函數(shù)項(xiàng)</p><p> ⑴、Truetime的Kernel模塊初始化</p><p> Kernel是每個(gè)節(jié)點(diǎn)的核心處理模塊,該模塊的初始化通過(guò)調(diào)用Truetime工具箱自帶的函數(shù)ttI
81、nitKernel(nbrInp, nbrOutp, prioFcn)來(lái)完成。其中的參數(shù)nbrInp,表示輸入通道的數(shù)目,nbrOutp,表示輸出通道的數(shù)目,prioFcn表示該模塊的優(yōu)先級(jí)。再通過(guò)調(diào)用自帶函數(shù) ttCreateMailbox(mailboxname, maxsize)來(lái)創(chuàng)建任務(wù)之間通信的發(fā)信信箱AODVSendBox和收信信箱AODVRcvBox。</p><p> ?、?、創(chuàng)建發(fā)送和接收任
82、務(wù)</p><p> 數(shù)據(jù)結(jié)構(gòu)dataAODVsnd用來(lái)在源節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí),發(fā)起路由發(fā)現(xiàn)過(guò)程。包含源節(jié)點(diǎn)標(biāo)識(shí)、RREQ標(biāo)識(shí)、信息緩存區(qū)、信息緩存區(qū)矩陣的創(chuàng)建、緩存區(qū)為空的標(biāo)識(shí)等。調(diào)用自帶函數(shù)ttCreateTask(name, deadline, priority, codeFcn, data)創(chuàng)建發(fā)送任務(wù)AODVSendTask。參數(shù)依次代表創(chuàng)建的任務(wù)名,任務(wù)到期的相對(duì)時(shí)間,任務(wù)優(yōu)先級(jí),任務(wù)執(zhí)行函
83、數(shù)名,任務(wù)的本地內(nèi)存。此處用到的任務(wù)本地內(nèi)存即dataAODVsnd。</p><p> 該過(guò)程創(chuàng)建了接收任務(wù)AODVRcvTask的過(guò)程和發(fā)送任務(wù)的創(chuàng)建過(guò)程一樣。</p><p> ⑶、HELLO報(bào)文初始化</p><p> AODV中來(lái)在路由使用過(guò)程中周期性的發(fā)送HELLO報(bào)文來(lái)維護(hù)路由鏈路狀態(tài)信息。涉及到hello報(bào)文的初始化及周期設(shè)定、周期性任務(wù)的創(chuàng)建
84、。創(chuàng)建周期性任務(wù)調(diào)用的是ttCreatePeriodicTask(name, offset, period, priority, codeFcn, data)。參數(shù)依次代表創(chuàng)建的任務(wù)名、釋放周期性任務(wù)第一次工作的時(shí)間、周期、優(yōu)先級(jí)、執(zhí)行函數(shù)名稱、該任務(wù)的本地內(nèi)存。</p><p> ⑷、時(shí)間處理函數(shù)的創(chuàng)建</p><p> 包括中斷處理任務(wù)timer_handler和時(shí)間任務(wù)
85、TimerTask的創(chuàng)建。其中的時(shí)間處理任務(wù)主要用來(lái)完成對(duì)路由路徑到期時(shí)間的處理。調(diào)用ttCreateInterruptHandler(name, priority, codeFcn, data)來(lái)創(chuàng)建timer_handler任務(wù),ttCreateTask(name, deadline, priority, codeFcn, data)來(lái)創(chuàng)建TimerTask任務(wù)。</p><p> 其中的ti
86、mer_handler任務(wù)將在響應(yīng)中斷的時(shí)候被執(zhí)行。中斷可以由計(jì)時(shí)器、網(wǎng)絡(luò)的接收通道、外部中斷通道或者溢出處理程序觸發(fā)。每一個(gè)處理任務(wù)只能和一個(gè)中斷源相連。</p><p><b> ?、伞⒐?jié)點(diǎn)初始化</b></p><p> 本次設(shè)計(jì)中涉及到節(jié)點(diǎn)發(fā)送和接收數(shù)據(jù)、節(jié)點(diǎn)移動(dòng)任務(wù)。其中發(fā)送數(shù)據(jù)的任務(wù)SendTask和節(jié)點(diǎn)移動(dòng)的任務(wù)MoveTask都是周期性任務(wù),由ttC
87、reatePeriodicTask(name, offset, period, priority, codeFcn, data)來(lái)創(chuàng)建。接收任務(wù)RcvTask是當(dāng)有數(shù)據(jù)要接收時(shí)才進(jìn)行,所以不是周期性的,故由ttCreateTask(name, deadline, priority, codeFcn, data)來(lái)創(chuàng)建。</p><p><b> ?、?、網(wǎng)絡(luò)初始化</b>&l
88、t;/p><p> 本設(shè)計(jì)中所用的網(wǎng)絡(luò)是ZigBee。對(duì)網(wǎng)絡(luò)的初始化首先通過(guò)ttCreateInterruptHandler(name, priority, codeFcn, data)來(lái)創(chuàng)建nw_handler任務(wù),對(duì)應(yīng)的執(zhí)行函數(shù)為nwrcvcode。然后調(diào)用ttInitNetwork(nodenumber, handlername)來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行初始化。參數(shù)nodenumber代表節(jié)點(diǎn)在網(wǎng)絡(luò)中的地址,ha
89、ndlername當(dāng)信息到達(dá)網(wǎng)絡(luò)時(shí)應(yīng)當(dāng)被調(diào)用的中斷處理程序名稱。在信息發(fā)送或者接受之前必須是用該命令對(duì)網(wǎng)絡(luò)的接口進(jìn)行初始化,否則將不能正常進(jìn)行。</p><p><b> 2、變量初始化</b></p><p> initsm主要對(duì)本次設(shè)計(jì)中涉及到的全局變量進(jìn)行初始化,包括網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目、路由表、AODV的序列號(hào)、AODV參數(shù)、節(jié)點(diǎn)初始位置等。</p>
90、;<p><b> 二、路由發(fā)現(xiàn)及維護(hù)</b></p><p> AODV是按需路由,故只有當(dāng)有數(shù)據(jù)發(fā)送請(qǐng)求的時(shí)候才去查找或者建立路由。這個(gè)過(guò)程中涉及到的函數(shù)包括AODV數(shù)據(jù)發(fā)送和接收控制程序、查詢路由表程序、建立路徑、獲取下一跳地址等。涉及到的函數(shù)模塊如圖3.3所示:</p><p> 圖3.3 路由發(fā)現(xiàn)及維護(hù)過(guò)程中涉及到的函數(shù)功能</p&
91、gt;<p> 當(dāng)路由路徑建立好之后,需要進(jìn)行周期性的維護(hù)及更新。</p><p> 當(dāng)有節(jié)點(diǎn)通過(guò)ZigBee網(wǎng)絡(luò)向另一個(gè)節(jié)點(diǎn)發(fā)送信息時(shí),AODV發(fā)送任務(wù)被激活。當(dāng)源節(jié)點(diǎn)需要和目的節(jié)點(diǎn)通信時(shí),首先查詢自己的路由表,如果已經(jīng)存在了可用的路由路徑,則不會(huì)有任何的尋找路由的操作。如果路由表中沒(méi)有可用路由路徑,則源節(jié)點(diǎn)會(huì)通過(guò)向鄰居節(jié)點(diǎn)廣播RREQs分組來(lái)發(fā)起路由發(fā)現(xiàn)的過(guò)程。中間節(jié)點(diǎn)可能會(huì)從不同的鄰居收到
92、同一個(gè)廣播的RREQs分組,此時(shí),中間節(jié)點(diǎn)會(huì)對(duì)收到的分組進(jìn)行判斷:如果節(jié)點(diǎn)已經(jīng)收到了相同廣播標(biāo)識(shí)和源節(jié)點(diǎn)地址的RREQs時(shí),它就會(huì)丟掉這個(gè)分組。如果節(jié)點(diǎn)以前并沒(méi)有收到這樣的RREQs分組,它就會(huì)保存一些信息用于建立反向路徑,然后再把這個(gè) RREQs分組廣播出去。 RREQs分組最終將到達(dá)一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)要么就是目的節(jié)點(diǎn),要么就是這個(gè)節(jié)點(diǎn)有到達(dá)目的節(jié)的路由路徑。如果該中間節(jié)點(diǎn)有到達(dá)目的節(jié)點(diǎn)的最新路由,并且這個(gè) RREQs還沒(méi)有被處理過(guò),該
93、節(jié)點(diǎn)將會(huì)沿著RREQs接收的方向建立反向路由,返回RREPs分組,否則中間節(jié)點(diǎn)將重新廣播RREQs到其鄰居節(jié)點(diǎn)。源節(jié)點(diǎn)接收到第一個(gè) RREPs分組后,就開始向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)分組,并通過(guò)周期性地發(fā)送Hello分組來(lái)查詢鄰居節(jié)點(diǎn)之間是否連通。如果發(fā)現(xiàn)</p><p> 圖3.4為路由發(fā)現(xiàn)過(guò)程被激活,建立到目的節(jié)點(diǎn)路由并發(fā)送數(shù)據(jù)的總流程圖。</p><p> 圖 3.4 AODV路由發(fā)現(xiàn)及
94、數(shù)據(jù)發(fā)送過(guò)程</p><p> 下面針對(duì)上述過(guò)程中涉及到的子模塊進(jìn)行詳細(xì)的分析。</p><p> 1、發(fā)起路由發(fā)現(xiàn)過(guò)程</p><p> 該功能的實(shí)現(xiàn)是當(dāng)發(fā)送數(shù)據(jù)任務(wù)AODVSendTask被激活時(shí),對(duì)應(yīng)的函數(shù)AODVsendcode(seg,data)被調(diào)用。參數(shù)seg用來(lái)作為程序中switch語(yǔ)句判斷。如果是1,則直接從發(fā)送數(shù)據(jù)存儲(chǔ)器即AODVSendB
95、ox中讀取要發(fā)送的數(shù)據(jù);如果是2,則從緩存中讀取數(shù)據(jù)進(jìn)行處理;如果是3,則跳過(guò)正常的執(zhí)行順序轉(zhuǎn)而執(zhí)行下一個(gè)程序。程序執(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)報(bào)文處理</p><p> 當(dāng)路由發(fā)現(xiàn)過(guò)程被發(fā)起時(shí),各個(gè)節(jié)點(diǎn)收到RREQs分組、RREPs分組及RERRs分組時(shí),需要針對(duì)收到的不同的報(bào)文及同一報(bào)文的不同收到時(shí)間進(jìn)行處理。這些任務(wù)由AODVrcvcode()函數(shù)來(lái)執(zhí)行。其流程圖如圖3.8所示:</p><p> 圖 3.8 AODVrcvcode主流程圖</p><p>
97、 圖3.9對(duì)RREQ報(bào)文的處理過(guò)程進(jìn)行了詳細(xì)的分析。圖3.10是節(jié)點(diǎn)對(duì)RREQ報(bào)文的詳細(xì)處理流程圖。</p><p> 圖3.9 RREQ分組處理流程圖</p><p> 圖3.10轉(zhuǎn)發(fā)或者處理RREQ分組</p><p> 圖3.11描述了節(jié)點(diǎn)在收到RREP回復(fù)報(bào)文時(shí)的處理流程。圖3.12是節(jié)點(diǎn)收到RREP分組之后轉(zhuǎn)發(fā)或者處理的詳細(xì)的流程圖。</p&
98、gt;<p> 圖3.11 處理RREP分組</p><p> 圖3.12處理或者轉(zhuǎn)發(fā)RREP分組</p><p> 圖3.13描述了節(jié)點(diǎn)在收到RERR報(bào)文之后的處理情況。</p><p> 圖3.13 RERR分組處理</p><p> 圖3.14 HELLO分組處理</p><p>&l
99、t;b> 3、查詢路由表</b></p><p> 當(dāng)AODVsendcode()發(fā)起路由發(fā)現(xiàn)過(guò)程的時(shí)候,首先要進(jìn)行路由表查詢,以此來(lái)判斷是否有可用的路由,如果有,則直接使用該路由來(lái)發(fā)送數(shù)據(jù),如果沒(méi)有,則再發(fā)送RREQs分組請(qǐng)求建立路由。查詢路由表的函數(shù)是findEntry()。其執(zhí)行流程圖如圖3.15所示:</p><p> 圖3.15 findEntry流程圖
100、</p><p><b> 4、獲取路徑</b></p><p> 調(diào)用findEntry()函數(shù)查詢路由表,如果有可用路由,則需要獲取路由路徑,對(duì)應(yīng)該功能的函數(shù)是getRoute()。其函數(shù)執(zhí)行流程圖如圖3.16所示。</p><p> 圖3.16 getRoute流程圖</p><p> 5、判斷RREQ報(bào)文
101、收到的次數(shù)</p><p> AODV路由協(xié)議中間節(jié)點(diǎn)只對(duì)第一次收到的RREQs分組進(jìn)行轉(zhuǎn)發(fā)處理,對(duì)于后面收到的分組直接丟棄。這個(gè)功能的實(shí)現(xiàn)是findInCache()函數(shù)。每一個(gè)RREQ在不同的節(jié)點(diǎn)會(huì)有不同的標(biāo)識(shí)RREQID,該函數(shù)就是借助于查詢RREQID來(lái)判斷是否是第一次收到。其程序流程圖如圖3.17所示:</p><p> 圖3.17 判讀是否第一次收到RREQ分組</
102、p><p><b> 6、周期性監(jiān)測(cè)路徑</b></p><p> AODV路由協(xié)議通過(guò)周期性廣播Hello報(bào)文來(lái)監(jiān)視鏈路是否連通。Hello包的生存時(shí)間1,只在相鄰節(jié)點(diǎn)間進(jìn)行傳送。當(dāng)一個(gè)節(jié)點(diǎn)收到一個(gè)Hello包時(shí),便新建一個(gè)鄰居條目或者斷定一個(gè)鄰居節(jié)點(diǎn)與自己依然保持連接。如果在一定時(shí)間內(nèi)收不到一個(gè)鄰居節(jié)點(diǎn)的Hello報(bào)文,則認(rèn)為該鄰居節(jié)點(diǎn)與自己不再連接,此時(shí),斷開節(jié)
103、點(diǎn)的上游節(jié)點(diǎn)廣播RERRs分組給所有的鄰居節(jié)點(diǎn),鄰居節(jié)點(diǎn)收到出錯(cuò)報(bào)文RERR后繼續(xù)廣播知道源節(jié)點(diǎn)收到該報(bào)文。源節(jié)點(diǎn)收到RERR報(bào)文后知道該與該節(jié)點(diǎn)有關(guān)的路徑不能使用,便重新發(fā)起路由發(fā)現(xiàn)過(guò)程。其流程圖如圖3.18所示:</p><p> 圖3.18 hello報(bào)文維護(hù)路由過(guò)程</p><p><b> 7、獲取下一跳地址</b></p><p&g
104、t; 該功能對(duì)應(yīng)的函數(shù)是updateReverse()。當(dāng)需要?jiǎng)?chuàng)建新的路徑的時(shí)候調(diào)用該函數(shù),用來(lái)獲取路由的下一跳地址。其實(shí)現(xiàn)流程圖如圖3.19所示:</p><p> 圖3.19 路由更新流程圖</p><p><b> 三、節(jié)點(diǎn)收發(fā)數(shù)據(jù)</b></p><p><b> 1、節(jié)點(diǎn)發(fā)送數(shù)據(jù)</b></p>
105、;<p> 節(jié)點(diǎn)1周期性地向節(jié)點(diǎn)7發(fā)送數(shù)據(jù)。創(chuàng)建了發(fā)送任務(wù)SendTask,對(duì)應(yīng)的函數(shù)為APPLsendcode()。其實(shí)現(xiàn)過(guò)程如圖3.20所示:</p><p> 圖3.20 節(jié)點(diǎn)周期性發(fā)送數(shù)據(jù)流程圖</p><p><b> 2、節(jié)點(diǎn)接收數(shù)據(jù)</b></p><p> 數(shù)據(jù)接收任務(wù)和數(shù)據(jù)發(fā)送任務(wù)對(duì)應(yīng),當(dāng)路由建立成功之后
106、,源節(jié)點(diǎn)周期性地發(fā)送數(shù)據(jù)到目的節(jié)點(diǎn),目的節(jié)點(diǎn)對(duì)數(shù)據(jù)的接收并不是周期性的,而是根據(jù)收到的報(bào)文來(lái)定的。其流程圖如圖3.21:</p><p> 圖3.21 節(jié)點(diǎn)接收數(shù)據(jù)流程圖</p><p><b> 四、節(jié)點(diǎn)的移動(dòng)</b></p><p> 本次設(shè)計(jì)中涉及到了兩個(gè)節(jié)點(diǎn)的移動(dòng)。節(jié)點(diǎn)5在第3秒到第8秒的時(shí)候開始移動(dòng),節(jié)點(diǎn)6在第10秒到第14秒之
107、間移動(dòng)。節(jié)點(diǎn)移動(dòng)的程序流程圖如圖3.22所示:</p><p> 圖3.22 節(jié)點(diǎn)移動(dòng)程序流程圖</p><p><b> 五、顯示</b></p><p> 本次設(shè)計(jì)中的顯示部分用來(lái)模擬ZigBee網(wǎng)絡(luò)。形象的顯示了節(jié)點(diǎn)之間的路由關(guān)系及節(jié)點(diǎn)移動(dòng)過(guò)程。如圖3.23為顯示部分的主流程圖。</p><p> 圖3.
108、23顯示模塊主流程圖</p><p> 圖3.24為顯示模塊初始化函數(shù)流程圖。顯示函數(shù)被調(diào)用時(shí)給定參數(shù),以此來(lái)判斷是執(zhí)行哪個(gè)子程序。當(dāng)所給參數(shù)都不調(diào)用顯示相關(guān)的子程序時(shí),程序就會(huì)報(bào)錯(cuò)。</p><p> 圖3.24 顯示模塊初始化函數(shù)流程圖</p><p><b> 六、時(shí)鐘</b></p><p> 在整個(gè)程序
109、的運(yùn)行過(guò)程中,每個(gè)任務(wù)的運(yùn)行都有時(shí)間限制,報(bào)文及路由也都有生存時(shí)間,當(dāng)?shù)搅松鏁r(shí)間但是沒(méi)有得到更新時(shí),過(guò)期的報(bào)文、路由都無(wú)效。本部分主要涉及到兩個(gè)任務(wù)TimerTask和timer_handler,對(duì)應(yīng)的執(zhí)行程序?yàn)閑xpcode.m和timercode.m。其中,timer_handler任務(wù)將在響應(yīng)中斷的時(shí)候被執(zhí)行,用來(lái)創(chuàng)建TimerTask任務(wù)。TimerTask任務(wù)執(zhí)行的流程圖如圖3.12所示。時(shí)鐘部分另外一個(gè)重要的函數(shù)就是upd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)路由協(xié)議畢業(yè)論文
- ZigBee網(wǎng)絡(luò)高穩(wěn)定路由算法研究.pdf
- ZigBee網(wǎng)絡(luò)混合高效路由算法研究.pdf
- ZigBee網(wǎng)絡(luò)PAN間路由算法研究.pdf
- 基于ZigBee網(wǎng)絡(luò)的路由算法研究.pdf
- ZigBee網(wǎng)絡(luò)路由算法的研究與改進(jìn).pdf
- 畢業(yè)論文---基于蟻群算法的網(wǎng)絡(luò)多節(jié)點(diǎn)路由優(yōu)化
- 企業(yè)級(jí)網(wǎng)絡(luò)bgp路由協(xié)議設(shè)計(jì)【畢業(yè)論文】
- 基于能量感知的ZigBee網(wǎng)絡(luò)路由算法研究.pdf
- 基于ZigBee網(wǎng)絡(luò)的無(wú)線路由算法研究.pdf
- 基于DAAM機(jī)制的Zigbee網(wǎng)絡(luò)路由算法研究.pdf
- ZigBee網(wǎng)絡(luò)層AODVjr路由算法的節(jié)能研究.pdf
- 校園網(wǎng)絡(luò)規(guī)劃—校園路由網(wǎng)絡(luò)設(shè)計(jì)-職業(yè)學(xué)院畢業(yè)論文
- 基于ZigBee網(wǎng)絡(luò)的能量均衡路由算法研究.pdf
- 基于能量有效的ZigBee網(wǎng)絡(luò)路由算法研究.pdf
- 基于MESH結(jié)構(gòu)的Zigbee網(wǎng)絡(luò)可靠路由算法.pdf
- 網(wǎng)絡(luò)廣播算法研究畢業(yè)論文
- zigbee組網(wǎng)研究畢業(yè)論文
- 通信工程畢業(yè)論文_延遲容忍網(wǎng)絡(luò)中傳染路由算法仿真研究
- ZigBee網(wǎng)絡(luò)孤立點(diǎn)問(wèn)題與節(jié)能路由算法研究.pdf
評(píng)論
0/150
提交評(píng)論