李清平,劉清華,傅幼萍
(1.浙江育英職業(yè)技術學院 信息技術分院,浙江 杭州 310018) (2.杭州萬向職業(yè)技術學院 經濟貿易系,浙江 杭州 310023)
基于IEEE802.15.4標準的ZigBee是一種低功耗、近距離的WSN(Wireless Sensor Network,無線傳感器網絡)通訊技術,具有短時延、低復雜度、自組織、低功耗、免執(zhí)照頻段等特點[1-4].作為一種新興的無線通信技術,ZigBee得到了越來越廣泛的關注和應用.由于ZigBee聯(lián)盟直到2005年6月才推出技術規(guī)范[5],因此對于IEEE802.15.4和ZigBee的研究仍處于活躍階段,目前主要存在以下幾方面的問題:(1)ZigBee的核心技術之一是動態(tài)組網,即網絡中的每個節(jié)點相隔一定時間,需要以無線信號交流的方式重新組網,這就涉及到網絡地址的分配機制問題;(2)由于ZigBee網絡中部署了大量微型無線傳感器,節(jié)點分布密集,每一個網絡節(jié)點除了自身作為信息采集點和執(zhí)行來自中心的命令外,還承擔著來自網絡的數(shù)據(jù)中轉任務.當由于能量耗盡、傳感器損壞、環(huán)境變化等因素導致節(jié)點失效后,ZigBee網絡能否有效修復路由路徑、確保數(shù)據(jù)傳輸,也是技術瓶頸之一.
此外,ZigBee網絡節(jié)點能耗問題、數(shù)據(jù)傳輸時延問題以及傳輸距離問題,均為當前ZigBee技術實際應用亟待解決和完善之處[6-8].
ZigBee網絡的基本單元是節(jié)點,按功能可分為全功能設備(Full Function Device,F(xiàn)FD)和簡化功能設備(Reduced Function Device,RFD).FFD可用作網絡協(xié)調器,連接協(xié)調器或另一個通信設備,還能發(fā)現(xiàn)其它FFD和RFD并建立通信聯(lián)系.RFD按最少RAM和ROM資源設計成簡單的收/發(fā)節(jié)點,能搜索現(xiàn)有網絡,必要時傳輸數(shù)據(jù),向協(xié)調器請求數(shù)據(jù),多數(shù)時間處于休眠狀態(tài)以節(jié)省電池能耗[9].
(1)協(xié)調器(Coordinator):啟動和配置網絡的設備,具有最高權限,負責網絡正常工作以及保持與網絡中其它設備的通信并負責網絡ID的分配.一個ZigBee網絡只允許有一個ZigBee 協(xié)調器.
(2)路由器(Router):一種支持關聯(lián)的設備,能夠實現(xiàn)其它節(jié)點消息的轉發(fā)功能,同時還具有為其它子節(jié)點分配網絡ID的功能,這就意味著路由器和終端設備可以不依賴協(xié)調器而自行構成一個ZigBee網絡.
(3)終端設備(EndDevice):具體執(zhí)行數(shù)據(jù)采集和傳輸?shù)脑O備,不能轉發(fā)其它節(jié)點消息.
ZigBee網絡中的所有節(jié)點都有兩個地址:64位的IEEE地址(MAC地址)和16位的網絡地址.64位的MAC地址是全球唯一地址,由IEEE組織來分配和維護.16位網絡地址是節(jié)點加入網絡時動態(tài)分配的,用于設備識別和數(shù)據(jù)傳輸,僅在網絡內部使用,采用邏輯樹層次機制進行分配[9-10].
網絡地址是節(jié)點加入網絡時由其父節(jié)點動態(tài)分配的,彼此形成父子關系,所有的節(jié)點共同組成樹狀邏輯關系,邏輯樹中的每一個節(jié)點都擁有兩個參數(shù):網絡地址A和網絡深度d,網絡深度表示僅僅采用父子關系的網絡中,一個數(shù)據(jù)分組發(fā)送到ZigBee協(xié)調器所傳遞的最小跳數(shù)[10-11].
Coordinator是整個ZigBee網絡的根節(jié)點,當Coordinator建立一個新網絡時,它將給自己分配網絡地址A0=0,網絡深度d0=0.如果節(jié)點i加入網絡,并且與節(jié)點k連接,那么父節(jié)點k將根據(jù)自身的網絡地址AK和網絡深度dk,為子節(jié)點i分配網絡地址Ai和網絡深度di=dk+1,網絡地址Ai的算法為[10-11]:
(1)如果加入的是沒有路由功能的RFD節(jié)點,則:Ai=AK+Cskip(di)×Rm+i, 1≤i≤Cm-Rm.
(2)如果加入的是具有路由功能的FFD節(jié)點,則:Ai=AK+1+Cskip(di)×(i-1), 1≤i≤Rm.式中
Cskip(d)=
(1)
式(1)中:Cskip(d)表示不同深度下父節(jié)點擁有的地址數(shù);Cm表示父節(jié)點可以擁有的最大子節(jié)點數(shù);Lm表示網絡最大深度;Rm表示父節(jié)點可以擁有的最大子路由節(jié)點數(shù).
以圖1為例說明網絡地址的分配算法.協(xié)調器Coordinator節(jié)點的Cskip(d)=31,所以Coordinator關聯(lián)的第1個路由器節(jié)點Router1分配地址1,第2個路由器節(jié)點Router2分配地址1+31=32,第3個路由器節(jié)點Router3分配地址32+31=63,第4個路由器節(jié)點Router4分配地址63+31=94,各個子路由器節(jié)點的地址以此類推.由于終端節(jié)點的父節(jié)點Coordinator的Rm=4,所以第1個終端節(jié)點EndDevice1的地址為0+31*4+1=125,第2個終端節(jié)點EndDevice2的地址為0+31*4+2=126,可見網絡中所有同一父節(jié)點的終端設備的16位短地址都是連續(xù)的.
圖1 ZigBee網絡地址分配算法示意圖Fig.1 Diagram of address allocation algorithm of ZigBee network
路由協(xié)議是自組網體系結構的核心部分,ZigBee協(xié)議采用Cluster-Tree和AODVjr作為自身的路由算法,主要是發(fā)現(xiàn)和維護路由,選擇路由并轉發(fā)數(shù)據(jù),監(jiān)控網絡拓撲結構變化等,以達到成本低、功耗低、可靠性高的設計目標[11-12].
1)Cluster-Tree路由算法
Cluster-Tree算法按樹型結構分層遍歷,節(jié)點根據(jù)目的網絡地址計算下一跳.假設網絡地址為A,網絡深度為d的路由節(jié)點收到目的地址位為D的數(shù)據(jù)分組,則根據(jù)
A (2) 判斷是否為自己的子節(jié)點. 如果是自己的子節(jié)點,則轉發(fā)給子節(jié)點N.N由公式(3)確定,即 (3) 如果不是自己的子節(jié)點,則轉發(fā)給其父節(jié)點. 2)AODVjr路由算法 AODVjr(AODV Junior)算法是一種按需分配的路由協(xié)議,是對AODV(Ad-Hoc On Demand Distance Vector)算法的一種簡化改進.首先源節(jié)點以廣播的方式發(fā)送RREQ(Router Request,路由請求分組),具有路由功能的節(jié)點收到消息后,建立反向路由,轉發(fā)RREQ分組,并將源節(jié)點到此節(jié)點的路由開銷添加到路由搜索表和RREQ中,直到目的節(jié)點收到此RREQ.目的節(jié)點選擇開銷最少的反向路由,將RREP(Router Replies,路由回復分組)返回源節(jié)點,同時所有接收到此RREP分組的節(jié)點都將更新自己的鄰居表,最終建立各個節(jié)點的路由表. 按有無路由功能,ZigBee網絡節(jié)點可分為有路由功能的RN+節(jié)點(Coordinator設備、Router設備)和無路由功能的RN-節(jié)點(EndDevice設備).RN+節(jié)點有足夠的存儲空間和路由選擇能力,執(zhí)行AODVjr路由算法;RN-節(jié)點存儲空間受限,不具備路由選擇能力,收到分組后只能采用Cluster-Tree算法處理[12-14].不同規(guī)模下結合兩種算法的ZigBee網絡節(jié)點轉發(fā)率和平均延時分別如圖2和圖3所示. 圖2 不同網絡規(guī)模的節(jié)點轉發(fā)率Fig.2 Forwarding rate of nodes of different network scale 圖3 不同網絡規(guī)模的平均延時Fig.3 The average delay of different network scale 圖2和圖3顯示,隨著網絡規(guī)模的擴大,ZigBee網絡轉發(fā)節(jié)點數(shù)占節(jié)點總數(shù)的比例整體上呈現(xiàn)不斷下降趨勢,平均延時逐漸減少,其原因在于隨著網絡規(guī)模的擴展,同一區(qū)域內的節(jié)點密度也隨之增加,使得網絡節(jié)點的轉發(fā)率不斷減小,平均延時因數(shù)據(jù)傳輸距離縮短,轉發(fā)效率提升而降低. 通過OPNET平臺,仿真ZigBee網絡的某個路由器節(jié)點失效后,其關聯(lián)的子節(jié)點如何重新找到路由路徑,從而體現(xiàn)ZigBee網絡在無需人工干預情況下的自組織功能,并分析和評估由此對整個網絡產生的影響. OPNET是一個能夠準確分析復雜網絡性能和行為的仿真平臺,提供Process(進程)、Node(節(jié)點)和Network(網絡)三層建模機制,三層模型完全對應實際的協(xié)議、設備和網絡層次,用戶通過OPNET平臺能完整而深入了解網絡的相關特征.采用離散事件驅動模擬機理和混合建模機制,把基于包的分析方法和基于統(tǒng)計的數(shù)學建模方法結合起來,在提高仿真效率的同時,可得到詳細的模擬結果[15-16]. 設置一個2 000m×1 750m的ZigBee網絡仿真場景,網絡中包含一個ZigBee協(xié)調器Coordinator、一個ZigBee固定路由器Fixed_Router,一個ZigBee可移動路由器Mobile_Router和兩個ZigBee終端節(jié)點EndDevice1、EndDevice2.終端節(jié)點EndDevice1、EndDevice2都無法直接與協(xié)調器Coordinator進行通信,必須通過各自關聯(lián)的父節(jié)點路由器轉發(fā)數(shù)據(jù),EndDevice1通過Fixed_Router路由器接收轉發(fā)Coordinator傳送的數(shù)據(jù)分組,EndDevice2通過Mobile_Route路由器接收轉發(fā)Coordinator傳送的數(shù)據(jù)分組,如圖4所示的粗實線展示部分.當Mobile_Route路由器沿著設定的白色細實線軌跡移動到ZigBee網絡信號覆蓋范圍之外時,模擬該節(jié)點“失效”后EndDevice2的路由重發(fā)現(xiàn)和數(shù)據(jù)分組新的轉發(fā)路徑如圖4虛線展示部分. 圖4 ZigBee網絡路由失效前后數(shù)據(jù)分組轉發(fā)路徑拓撲圖Fig.4 Topological graph of data packet forwarding path before and after the routing failure of ZigBee network 設置ZigBee仿真場景中所有節(jié)點的PAN ID為1,信號傳輸頻段為2 450MHz,發(fā)射功率為3mW,接收靈敏度為-85dBm. dBm是無線網絡發(fā)射功率的絕對值,其計算公式為:10lg(p/1mW) 式中,p是以mW為單位的功率值. 場景中,仿真節(jié)點發(fā)射功率為3mW,求得p=10lg3=4.77dBm ;因此,發(fā)射功率減去接收靈敏度的差值為4.77-(-85)=89.77dB. 自由空間路徑損耗公式為 FSPL=32.45+20lgd(C)+20lgf (4) 式(4)中:FSPL(Free Space Path-Loss)單位為dB;d(C)為視距傳播距離,單位km;f為頻率,單位MHz. 已知f=2 450MHz,F(xiàn)SPL=89.77dB,由式(4)可得d(C)=0.299 80km=299.8m. 從部署的仿真場景可知Coordinator的坐標(1 871,1 263),EndDevice1的坐標(673,970),EndDevice2的坐標(640,1 422),由此可以計算EndDevice1、EndDevice2分別與Coordinator之間的直線距離D(E1-C)=1 233.31m、D(E2-C)=1 241.23m,兩者的值都大于視距傳播距離d(C),說明兩個終端節(jié)點接收的數(shù)據(jù)分組都無法通過協(xié)調器直接發(fā)送,且D(E1-C)和D(E2-C)兩者之間的直線距離D(E1- E2)=453.2m,也大于視距傳播距離d(C),說明彼此之間的信號區(qū)域不會覆蓋重疊[16-18].因此終端節(jié)點EndDevice1、EndDevice2必須通過各自的父節(jié)點進行數(shù)據(jù)轉發(fā),這為模擬其中某一父節(jié)點失效后重新建立路由并轉發(fā)數(shù)據(jù)的實驗提供了可行性. 圖5顯示,Mobile_Route路由器沿著設定的軌跡移動,大約在12min后離開ZigBee網絡,節(jié)點的路由功能“失效”. 圖5 Mobile_Route節(jié)點路由功能變化情況Fig.5 The variation of routing function of Mobile_Route node 圖6顯示,開始階段所有節(jié)點啟動發(fā)送和接收工作,數(shù)據(jù)分組轉發(fā)速率明顯加大,幾分鐘之后趨于平穩(wěn),然后Mobile_Route路由器開始移動至約12min后離開ZigBee網絡而路由功能“失效”,EndDevice2節(jié)點的接收速率因此而產生抖動現(xiàn)象,在與Mobile_Route路由器失聯(lián)后,其數(shù)據(jù)接收中斷,但在較短時間內重新恢復了與Coordinator協(xié)調器之間的通信,驗證了網絡設備較強的自我修復功能,同時也顯示了ZigBee網絡良好的魯棒性. 圖6 EndDevice2節(jié)點自我修復情況Fig.6 Self-healing of EndDevice2 node 路由節(jié)點“失效”后,網絡數(shù)據(jù)傳輸?shù)淖兓鐖D7所示.由于受影響節(jié)點能夠在極短的時間內實現(xiàn)自我修復,重新恢復中斷的收/發(fā)路徑,因此從網絡節(jié)點的接收速率來看,路由節(jié)點的“失效”對整個ZigBee網絡的數(shù)據(jù)傳輸影響較小,顯示了ZigBee網絡良好的收斂性. 圖8為Coordinator節(jié)點到EndDevice2節(jié)點的延時曲線.開始時節(jié)點延時增大,隨后因Mobile_Route的移動引發(fā)延時曲線振蕩加劇,路由“失效”后,數(shù)據(jù)傳輸中斷,延時曲線陡然下降,但在很短時間內Coordinator就將數(shù)據(jù)分組通過Fixed_Router傳送給EndDevice2節(jié)點,此時點對點延時曲線趨向平穩(wěn),進一步驗證了ZigBee網絡的“失效”自修復能力. 圖7 ZigBee網絡各節(jié)點應用層數(shù)據(jù)分組接收情況Fig.7 Reception of the application layer data packet of each node in the ZigBee network 圖8 Coordinator節(jié)點到EndDevice2節(jié)點的延時情況Fig.8 Time delay from Coordinator node to EndDevice2 node 無線傳感器網絡WSN涉及嵌入式計算、無線傳感器、現(xiàn)代通信、分布式信息處理等交叉學科,為當前無線組網技術的重點研究領域.自組網能力強、自恢復能力強的無線自組網技術標準ZigBee發(fā)展迅速,已在部分智能傳感器場景中得到應用,智慧城市的建設和發(fā)展將進一步推動ZigBee產品的推廣應用和不斷更新. ZigBee網絡存在的問題主要體現(xiàn)在地址分配機制、節(jié)點能耗、數(shù)據(jù)傳輸時延、傳輸距離以及路由失效自修復等方面.邏輯樹分配機制說明ZigBee網絡中同一父節(jié)點的終端設備的16位短地址都是連續(xù)的,結合Cluster-Tree和AODVjr路由算法的RN+節(jié)點和RN-節(jié)點路由選擇策略,使得網絡轉發(fā)節(jié)點數(shù)占節(jié)點總數(shù)的比例隨網絡規(guī)模的擴大呈下降趨勢,平均延時逐漸減少,通過設置OPNET平臺的仿真場景和拓撲結構,分析了路由失效對數(shù)據(jù)傳輸、點對點延時等性能產生的影響,通過路由收斂性驗證了ZigBee網絡的自我修復能力和網絡的魯棒性. [1]AKYILDIZ I F, SU W, SANKARASUBRAMANIAM Y, et al. A survey on sensor networks[J]. IEEE Communications Magazine, 2002,40(8):102-114. [2]IEEE Std.15.4:Wireless Medium Access Control(MAC) and PhysicalLayer(PHY) Specifications for Low-Rate Wireless Personal AreaNetworks[S]. NewYork: IEEE, 2003. [3]RACHANA B S,RAJESH P.Comprehensive survey on effect of mobility over routing issues in wireless multimedia sensor networks[J].International Journal of Pervasive Computing and Communications, 2016,12(4):447-465. [4]MANJEET S,SURENDER K S.A comprehensive review of fuzzy-based clustering techniques in wireless sensor networks[J].Sensor Review,2017,37(3):289-304. [5] 郭昌飛.基于ZigBee的無線傳感器組網技術研究與應用[D].北京:北京信息科技大學,2012. [6] 潘恒曦,辛旺,范蟠果.ZigBee在無線傳感器網絡中的應用[J].機械與電子,2010(S1):245-248. [7] 劉承鵬.無線傳感器網絡定位算法研究[D].淄博:山東理工大學,2016. [8] 李冉.基于ZigBee無線傳感器網絡定位的研究[D].廣州:廣東工業(yè)大學,2016. [9] 楊春華.基于ZigBee技術的無線網絡協(xié)調器的研究[D].成都:西南石油大學,2011. [10] 李明.IEEE802.15.4MAC協(xié)議中能耗與時延均衡研究[D].廣州:暨南大學,2010. [11] 王月平,耿曉菊,劉春濤,等.IEEE802.15.4MAC協(xié)議低功耗研究[J].計算機技術與發(fā)展,2009,19(12):139-142,165. [12] 練云翔.無線傳感器網絡路由算法與能耗模型研究與仿真[D].蘭州:蘭州交通大學,2016. [13] 周登龍,陳碩.ZigBee網絡中不同路由性能的研究與仿真[J]無線互聯(lián)科技,2012(9):69-71. [14] 穆嘉松,劉開華,史偉光.ZigBee網絡中基于節(jié)點移動性的路由選擇策略[J].天津大學學報,2012,45(4):301-308. [15] 李清平.基于進程核心的網絡仿真建模及統(tǒng)計分析[J].武漢理工大學學報(信息與管理工程版),2012,34(6):681-683. [16] 陳敏.OPNET網絡仿真[M].北京:清華大學出版社,2004. [17] 范燕,俞洋,李永義,等.基于ZigBee 無線傳感器網絡的遠程監(jiān)控系統(tǒng)[J].實驗室研究與探索,2016,35(1):80-84. [18] 王一棋,何麗莉,胡成全,等.基于ZigBee和Internet的無線智能家居網關系統(tǒng)[J].吉林大學學報(理學版),2015,53(2):302-306.2.2 ZigBee網絡路由策略
3 基于OPNET平臺的ZigBee網絡路由失效自修復仿真
3.1 OPNET仿真平臺簡介
3.2 場景設置及拓撲結構
3.3 仿真參數(shù)設置
3.4 仿真結果分析
4 結束語