<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 利用捎帶技術(shù)提高ZigBee網(wǎng)絡(luò)性能的方法

          利用捎帶技術(shù)提高ZigBee網(wǎng)絡(luò)性能的方法

          作者: 時間:2008-06-10 來源:網(wǎng)絡(luò) 收藏
          摘要:對構(gòu)建低速無線個域網(wǎng)的關(guān)鍵――協(xié)議進(jìn)行深入研究,重點討論其層所支持的拓?fù)浣Y(jié)構(gòu)及采用的路由算法。ADOVjr是AODV的簡化算法,協(xié)議層使用該路由算法架設(shè)Adhoc,支持隨意的拓?fù)浼軜?gòu)。在深入研究AODVjr的基礎(chǔ)上,提出一種將因特網(wǎng)“確認(rèn)”應(yīng)用于協(xié)議AODVjr路由算法的方案,并使用該方案架設(shè)無線傳感器網(wǎng)絡(luò)。實驗證明該方案能降低算法實現(xiàn)的復(fù)雜度,減少通信量,節(jié)約電池能量,有效ZigBee網(wǎng)絡(luò)的總體,具有一定的實用價值。 DSP2812
          關(guān)鍵字:ZigBee協(xié)議;;AODVjr

          1 引言

          IEEE 802.11、藍(lán)牙、UWB等協(xié)議推出以來,在短距離的無線監(jiān)測、控制、數(shù)據(jù)傳輸領(lǐng)域得到廣泛應(yīng)用,但它們?nèi)匀淮嬖诠拇?、組網(wǎng)能力差等弱點。以組網(wǎng)能力強(qiáng)著稱的ZigBee協(xié)議能彌補(bǔ)上述協(xié)議的不足,特別適合于組建短距離低速無線個域網(wǎng)、無線傳感器網(wǎng)絡(luò)等。

          ZigBee協(xié)議由ZigBee聯(lián)盟于2004年12月中旬正是推出,其介質(zhì)訪問控制子層(MAC)基于IEEE 802.15.4標(biāo)準(zhǔn),網(wǎng)絡(luò)層采用Cluster-Tree+AODVjr路由算法,支持星形(Star)、樹狀(Cluster-Tree)、網(wǎng)格(Mesh)等多種拓?fù)浣Y(jié)構(gòu)[1],算法可在簡單的單片機(jī)平臺上實現(xiàn)[2]。其中,單獨采用AODVjr(AODV Junior,簡化的AODV)路由算法的Mesh網(wǎng)絡(luò)最為簡單,應(yīng)用較廣泛。AODVjr算法是AODV(Ad hoc On Demand Distance Vector, Ad hoc按需距離矢量路由協(xié)議)算法的簡化,它跟AODV一樣,與目標(biāo)節(jié)點通信時,采用先問路由,再發(fā)送數(shù)據(jù)或命令的辦法[3,4]。本文提出采用的AODVjr算法,將要發(fā)送的數(shù)據(jù)捎帶在AODVjr的路由請求和路由應(yīng)答包中,大大ZigBee網(wǎng)絡(luò)的通信效率。DSP2812

          2 ZigBee的AODVjr協(xié)議

          ZigBee協(xié)議網(wǎng)絡(luò)層AODVjr算法是需求驅(qū)動型的,由源節(jié)點選擇路由,它是針對AODV算法的簡化改進(jìn)??紤]到節(jié)能、成本、應(yīng)用方便性等因素,AODVjr簡化AODV的一些特點,但是仍然保持AODV的主要功能。

          首先,在AODVjr路由算法中,沒有目標(biāo)節(jié)點序列號,只有目標(biāo)節(jié)點才能發(fā)送路由應(yīng)答(Route Reply,RREP)包,這樣可以避免循環(huán)問題和無效RREP包出現(xiàn),通信效率。其次,AODVjr刪除路由錯誤(Route Error,RERR)包及前驅(qū)列表(Precursor List)。另外,為了避免廣播風(fēng)暴,AODV中周期性發(fā)送的Hello包也被刪除。在ZigBee的集成路由算法中,AODVjr中的許多優(yōu)點使得路由協(xié)議簡單化且實現(xiàn)AODV的基本路由功能[5,6]。

          圖1(a)和(b)是AODVjr算法尋找路由的方式。當(dāng)節(jié)點A要發(fā)送信息給節(jié)點D時,如果發(fā)現(xiàn)自己沒有到節(jié)點D的路由,便通過組播(Multi-Broadcast)路由請求(Route Request,RREQ)包,請求其鄰居幫忙查找到節(jié)點D的路徑。每個接收到RREQ包的節(jié)點,都維護(hù)一條到節(jié)點A的路由信息,同時幫助節(jié)點A廣播查找節(jié)點D。通過這種洪泛(Flooding)方式,RREQ包會被廣播轉(zhuǎn)發(fā)至節(jié)點D。節(jié)點D接收到RREQ包后,根據(jù)RREQ包的路由代價(Cost)決定是否更新自己的路由表,同時通過路由代價最小的路徑給節(jié)點A回復(fù)RREP包。節(jié)點A查找目標(biāo)節(jié)點通常是通過組播進(jìn)行的,而節(jié)點D給節(jié)點A回復(fù)RREP包則通過單播(Unit-Broadcast)進(jìn)行的。節(jié)點A接收到節(jié)點D的RREP包后,根據(jù)Cost最小原則決定與節(jié)點D通信所走的最佳路徑。圖1中,節(jié)點A查找到節(jié)點D的最短路徑:A->B->C->D,然后把數(shù)據(jù)發(fā)送給節(jié)點D,節(jié)點D再通過D->C->B->A給節(jié)點A確認(rèn)信息。

          DSP2812

          圖1 AODVjr算法查找路由及通信方式

          在ZigBee協(xié)議里,AODVjr的RREQ包和RREP包作為網(wǎng)絡(luò)層命令傳送,成為單獨的網(wǎng)絡(luò)負(fù)荷,如圖2所示。其中命令標(biāo)識值等于0x01時是RREQ包,等于0x02時是RREP包;單字節(jié)的命令選項只使用一個比特,用于區(qū)分該路由包是單獨進(jìn)行路由查找還是進(jìn)行路由修復(fù)(Route Repair)[1]

          (a)路由請求包

          DSP2812

          (b)路由應(yīng)答包

          (c)命令選項

          圖2 ZigBee網(wǎng)絡(luò)層的命令包

          3 捎帶技術(shù)在AODVjr的應(yīng)用

          ZigBee網(wǎng)絡(luò)里的AODVjr屬于后應(yīng)式的按需Ad hoc網(wǎng)絡(luò),不周期性地更新自己的路由信息,只有在需要通信時,才發(fā)起路由查找過程。在ZigBee網(wǎng)絡(luò)里,節(jié)點會移動或者休眠,通信時幾乎每次都要重新查找路由,而每次傳輸?shù)臄?shù)據(jù)量又比較少,絕大多數(shù)情況下只要傳送一次即可完成,如獲取傳感器的值。為了達(dá)到節(jié)能且降低通信復(fù)雜度的目的,可將互聯(lián)網(wǎng)中常用的“捎帶確認(rèn)”技術(shù)應(yīng)用于ZigBee網(wǎng)絡(luò)。

          所謂“捎帶確認(rèn)”,是指為了提高網(wǎng)絡(luò)的通信效率,目標(biāo)節(jié)點接收到源節(jié)點的數(shù)據(jù)后,將確認(rèn)(ACK)信息附加在目標(biāo)節(jié)點發(fā)送給源節(jié)點的數(shù)據(jù)包中,由這些數(shù)據(jù)包捎帶給源節(jié)點。DSP2812

          采用捎帶技術(shù)后,如圖3(a)所示,源節(jié)點可以把要發(fā)送給目標(biāo)節(jié)點的數(shù)據(jù)或命令放置在RREQ包后面,成為網(wǎng)絡(luò)負(fù)荷的一部分,由RREQ包傳送給目標(biāo)節(jié)點。目標(biāo)節(jié)點接收到RREQ包后,在給源節(jié)點回應(yīng)RREP包之前,處理源節(jié)點發(fā)送的數(shù)據(jù)或者命令,將要發(fā)送的ACK或者數(shù)據(jù)由RREP包捎帶給源節(jié)點,如圖3(b)所示。

          (a)捎帶數(shù)據(jù)或命令的路由請求包

          (b)捎帶ACK或數(shù)據(jù)的路由應(yīng)答包

          (c)改進(jìn)后的命令選項

          圖3 采用捎帶技術(shù)的ZigBee網(wǎng)絡(luò)層命令包

          如圖3(c)所示:引進(jìn)捎帶功能后,要修改AODVjr里的命令選項,將保留的7個比特用于表示捎帶數(shù)據(jù)的長度,為0時表示此路由包沒有捎帶任何數(shù)據(jù),是普通的AODVjr路由包。

          沒有采用捎帶技術(shù)時,如圖1所示,源節(jié)點和目標(biāo)節(jié)點之間傳輸數(shù)據(jù)需要2個來回;改進(jìn)后只需要圖1(a)、(b)所示的一個來回。由此可見,將數(shù)據(jù)捎帶在路由包中,對于只需通信一次數(shù)據(jù)就可以傳輸完畢的情況,能夠節(jié)省一個來回的時間。這樣,網(wǎng)絡(luò)在通信延遲、節(jié)能、效率上都有優(yōu)化,同時降低通信復(fù)雜度。

          4 算法的實現(xiàn)

          4.1 協(xié)議棧

          采用捎帶技術(shù)的ZigBee協(xié)議棧有3層,其體系結(jié)構(gòu)如圖4所示。協(xié)議棧參考ZigBee網(wǎng)絡(luò)的結(jié)構(gòu),物理層和介質(zhì)訪問控制層采用IEEE 802.15.4協(xié)議,網(wǎng)絡(luò)層僅使用捎帶技術(shù)的AODVjr路由算法,通過應(yīng)用支持子層與應(yīng)用層建立聯(lián)系。該協(xié)議棧簡單、實用、高效。

          圖4 采用捎帶技術(shù)的ZigBee協(xié)議棧

          4.2 路由設(shè)計與實現(xiàn)

          (a)目標(biāo)節(jié)點接收到RREQ包

          (b)源節(jié)點接收到RREP包

          圖5 目標(biāo)節(jié)點和源節(jié)點處理RREQ和RREP流程

          采用捎帶技術(shù)后,對算法復(fù)雜度的影響不大。只要稍微改動源節(jié)點和目標(biāo)節(jié)點發(fā)送以及接收RREQ包和RREP包的程序即可,中間節(jié)點仍按普通的AODVjr包處理數(shù)據(jù)。

          圖5是目標(biāo)節(jié)點和源節(jié)點處理RREQ包和RREP包的程序流程,從中可以看出,捎帶技術(shù)并沒有增加算法實現(xiàn)的復(fù)雜度。作者在美國赫立訊公司的IP-Link122x系列模塊中使用Keil C編程,實現(xiàn)使用捎帶技術(shù)的ZigBee網(wǎng)絡(luò)。該模塊通過美國FCC認(rèn)證,經(jīng)過ZigBee聯(lián)盟指定的德國萊茵TUV ZigBee實驗室一致性測試,是符合IEEE 802.15.4標(biāo)準(zhǔn)和ZigBee協(xié)議的模塊。本文算法運(yùn)行在模塊自帶的嵌入式芯片――Silicon Laboratories公司的8051內(nèi)核MCU上,采用Chipcon AS公司的射頻芯片CC2420收發(fā)數(shù)據(jù)。

          5 實驗結(jié)果

          研發(fā)過程中,可以使用Chipcon AS公司的IEEE 802.15.4包監(jiān)聽器(Packet Sniffer)分析空氣中傳送的數(shù)據(jù)包,對不同節(jié)點數(shù)目的Ad hoc進(jìn)行測試,可取得良好的結(jié)果。

          實驗中,采用Mesh拓?fù)洌?0個節(jié)點組成的ZigBee網(wǎng)絡(luò)隨意分布在三層樓中,采用對等連接方式,僅使用AODVjr路由算法。兩個節(jié)點通信的平均傳輸延遲及成功率,采用捎帶技術(shù)前后質(zhì)量對比如表1所示。從表1可知,傳輸延遲時間可以減少很多,且成功率有一定的提高。證明本文提出的網(wǎng)絡(luò)結(jié)構(gòu)及軟硬件設(shè)計的可行性。

          表1 采用捎帶技術(shù)前后的通信質(zhì)量對比

          節(jié)點間跳數(shù)

          延遲/ms

          (使用前)

          延遲/ms

          (使用后)

          成功率/%

          (使用前)

          成功率/%

          (使用后)

          2

          132

          82

          99.9

          99.9

          4

          221

          155

          99.2

          99.8

          6

          490

          300

          98.7

          99.3

          8

          623

          389

          96.3

          99.0

          10

          870

          533

          95.9

          98.2

          12

          1108

          612

          95.2

          98.0

          14

          1302

          703

          94.7

          97.7

          16

          1536

          834

          94.3

          97.3

          18

          1787

          965

          93.3

          96.6

          20

          2110

          1164

          92.8

          96.1

          6 結(jié)論

          本文提出采用捎帶技術(shù)的AODVjr算法,同時給出簡化的ZigBee協(xié)議體系結(jié)構(gòu),并在硬件平臺上實現(xiàn)該方案。實踐證明,采用捎帶技術(shù)能降低算法實現(xiàn)的復(fù)雜度,減少通信量,節(jié)約電池能量,有效提高ZigBee網(wǎng)絡(luò)的總體。本還可以在其他使用AODV算法的網(wǎng)絡(luò)中推廣,具有一定的實用價值。DSP2812開發(fā)板

          參考文獻(xiàn)

          [1] Zigbee Alliance. ZigBee Specification (Version 1.1)[S]. 2006.

          [2] 張成武,譚斌.單片機(jī)Zigbee技術(shù)在遠(yuǎn)程抄表系統(tǒng)中的應(yīng)用[J].微計算機(jī)信息,DSP2812開發(fā)板2006:22(32):96-98.

          [3] RFC 3561:Ad hoc On-Demand Distance Vector (AODV) Routing[S].2003.http://www.51kaifa.com/shop/read.php?ID=4732

          [4]Mobility Management and Networking (MOMENT) Laboratory. Ad hoc On-Demand Distance Vector Routing[EB/OL].http://moment.cs.ucsb.edu/AODV/aodv.html, 2007-4-2.

          [5]Ian D. Chakeres, Luke Klein-Verndt. AODVjr,AODV Simplified[J]. Mobile Computing and Communication Review,2002,6(3):100-101.http://www.51kaifa.com/shop/read.php?ID=4732

          [6]Qiu F., Wang J-M., Leng J. "Design and Implementation of a Wireless Personal Area Network Based on AODVjr Routing" in Wireless MobileMultimedia Networks (ICWMMN) Proceedings[C].Beijing:The Institution of Engineering and Technology,London(IET),2006:424-427.



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();