ZigBee協(xié)議棧網(wǎng)絡層的研究與實現(xiàn)
1、ZigBee協(xié)議棧體系結構
本節(jié)將在介紹IEEE802.15.4標準和ZigBee協(xié)議的基礎上,重點分析ZigBee協(xié)議棧的網(wǎng)絡層關鍵技術及其工作機制。
2.1IEEE802.15.4標準
IEEE802.15.4標準[1]于2003年5月制定完成,它滿足國際標準化組織(ISO)開放系統(tǒng)互連(OSI)參考模型,主要包括物理層、數(shù)據(jù)鏈路層。IEEE802.15.4協(xié)議與其他無線網(wǎng)絡相比,突出的優(yōu)點是:組網(wǎng)能力強,適應面廣,可靠性高,節(jié)能性好。
2.2ZigBee協(xié)議棧
完整的Zigbee協(xié)議棧由物理層、介質訪問控制層、網(wǎng)絡層、安全層和高層應用規(guī)范組成。

圖1ZigBee協(xié)議棧
如圖1所示,ZigBee協(xié)議棧的網(wǎng)絡層、安全層和應用程序接口等由ZigBee聯(lián)盟制定。其中安全層(Security)主要實現(xiàn)密鑰管理、存取等功能。應用程序接口負責向用戶提供簡單的應用軟件接口(API),包括應用子層支持(ApplicationSub-laygerSupport,APS)、ZigBee設備對象(ZigBeeDeviceObject,ZDO)等,實現(xiàn)應用層對設備的管理。
2.3網(wǎng)絡層關鍵技術
ZigBee協(xié)議棧的核心部分在網(wǎng)絡層。網(wǎng)絡層主要實現(xiàn)節(jié)點加入或離開網(wǎng)絡、接收或拋棄其他節(jié)點、路由查找及傳送數(shù)據(jù)等功能,支持Cluster-Tree,AODVjr,Cluster-Tree+AODVjr等多種路由算法,支持星形(Star)、樹形(Cluster-Tree)、網(wǎng)格(Mesh)等多種拓撲結構。
Cluster-Tree(簇-樹)是一種由網(wǎng)絡協(xié)調器(Coordinator)展開生成樹狀網(wǎng)絡的拓撲結構,適合于節(jié)點靜止或者移動較少的場合,屬于靜態(tài)路由,不需要存儲路由表。AODVjr算法是針對AODV(Adhoc按需距離矢量路由協(xié)議)算法的改進,考慮到節(jié)能、應用方便性等因素,簡化了AODV的一些特點,但是仍然保持AODV的原始功能。表1是兩種算法的優(yōu)缺點比較。

表1Cluster-Tree和AODVjr的優(yōu)缺點比較
Cluster-Tree+AODVjr路由算法匯聚了Cluster-Tree和AODVjr的優(yōu)點。網(wǎng)絡中的每個節(jié)點被分成四種類型:Coordinator、RN+、RN-、RFD(RN:RoutingNode,路由節(jié)點;RFD:ReducedDevice)。其中Coordinator的路由算法跟RN+相同,Coordinator、RN+和RN-都是全功能節(jié)點(FFD:FullDevice),能給其他節(jié)點充當路由節(jié)點;RFD只能充當Cluster-Tree的葉子(LeafNode)。如果待發(fā)送數(shù)據(jù)的目標節(jié)點是自己的鄰居,直接通信即可;反之,如果不是自己的鄰居時,三種類型的節(jié)點處理數(shù)據(jù)包各不相同:RN+可以啟動AODVjr,主動查找到目標節(jié)點的最佳路由,且它可以扮演路由代理(RoutingAgent)的角色,幫助其他節(jié)點查找路由;RN-只能使用Cluster-Tree算法,它可以通過計算,判斷該交給數(shù)據(jù)包請自己的父節(jié)點還是某個子節(jié)點轉發(fā);而RFD只能把數(shù)據(jù)交給父節(jié)點,請其轉發(fā)。
圖2為Cluster-Tree+AODVjr算法時網(wǎng)絡層數(shù)據(jù)傳輸示意圖。節(jié)點E發(fā)送數(shù)據(jù)包給節(jié)點D,數(shù)字代表各種包發(fā)送的時間先后次序。從圖中可以看出,節(jié)點E的類型是RFD,它只能將數(shù)據(jù)DATA傳送給其父節(jié)點C。C的類型是RN+,所以它先把數(shù)據(jù)放入緩存后,再通過組播AODVjr路由請求包RREQ查找到節(jié)點D的路由,節(jié)點D再通過單播沿最短的路徑D-B-C給節(jié)點C回復AODVjr路由應答包RREP。節(jié)點C找到路由后,把緩存數(shù)據(jù)沿C-B-D發(fā)送給節(jié)點D,節(jié)點D再沿D-B-C-E發(fā)送確認包ACK給節(jié)點E,節(jié)點E收到確認包后,整個通信過程結束。

圖2網(wǎng)絡層數(shù)據(jù)傳輸示意圖
3.網(wǎng)絡層實現(xiàn)
作者已在符合IEEE802.15.4的硬件平臺上實現(xiàn)ZigBee協(xié)議棧,成功研發(fā)出ZigBee開發(fā)包(ZigBeeDevelopmentKit,ZDK),驗證了其可行性。同時,根據(jù)一些特定的應用將算法改進,取得良好的運用效果。本節(jié)將重點介紹ZigBee網(wǎng)絡層的實現(xiàn)。
3.1無線模塊的設計
根據(jù)不同類型節(jié)點功能不同的特點,作者在不同的硬件平臺設計模塊。設計制作的ZigBee系列模塊完全滿足IEEE802.15.4和ZigBee協(xié)議的規(guī)范要求,符合ISM/SRD規(guī)范,通過美國FCC認證。模塊集無線收發(fā)器、微處理器、存儲器和用戶API等軟硬件于一體,能實現(xiàn)1.0版ZigBee協(xié)議棧的功能。Coordinator可以連接使用ARM處理器開發(fā)的嵌入式系統(tǒng),功能較多的路由節(jié)點(RN+,RN-)由高檔單片機充當,功能較少的葉子節(jié)點(RFD)使用普通的單片機。模塊還可以根據(jù)實際需要,工作在不同的睡眠模式和節(jié)能方式。
圖3是模塊的硬件設計框圖,射頻芯片采用Chipcon公司生產(chǎn)的符合IEEE802.15.4標準的模塊CC2420;控制射頻芯片的微處理器,可以根據(jù)需要選擇Atmel公司的AVR系列單片機或者SiliconLabs公司的8051內核單片機。單片機與射頻芯片之間通過SPI進行通信,連接速率是6Mbps。單片機與外部設備之間通過串口進行通信,連接速率是38.4kbps。單片機自帶若干ADC或者溫度傳感器,可以實現(xiàn)簡單的模數(shù)轉換或者溫度監(jiān)控。為了方便代碼移植到不同的硬件平臺,模塊固件采用標準C語言編寫代碼實現(xiàn)。

圖3ZigBee模塊框圖
3.2網(wǎng)絡的建立
ZigBee網(wǎng)絡最初是由協(xié)調器發(fā)動并且建立。協(xié)調器首先進行信道掃描(Scan),采用一個其他網(wǎng)絡沒有使用的空閑信道,同時規(guī)定Cluster-Tree的拓撲參數(shù),如最大的兒子數(shù)(Cm)、最大層數(shù)(Lm)、路由算法、路由表生存期等。

圖4節(jié)點加入及脫離網(wǎng)絡握手示意圖
圖4是設計的節(jié)點加入及脫離網(wǎng)絡握手示意圖。協(xié)調器啟動后,其他普通節(jié)點加入網(wǎng)絡時,只要將自己的信道設置成與現(xiàn)有的協(xié)調器使用的信道相同,并提供正確的認證信息,即可請求加入(Join)網(wǎng)絡。一個節(jié)點加入網(wǎng)絡后,可以從其父節(jié)點得到自己的短MAC地址,ZigBee網(wǎng)絡地址以及協(xié)調器規(guī)定的拓撲參數(shù)。同理,一個節(jié)點要離開(Leave)網(wǎng)絡,只須向其父節(jié)點提出請求即可。一個節(jié)點若成功地接收一個兒子,或者其兒子成功脫離網(wǎng)絡,都必須向協(xié)調器匯報。因此,協(xié)調器可以即時掌握網(wǎng)絡的所有節(jié)點信息,維護網(wǎng)絡信息庫(PIB,PANInformationBase)。
3.3路由設計與實現(xiàn)
在傳輸數(shù)據(jù)時,不同類型的的節(jié)點有不同的處理方法,協(xié)調器的處理機制與RN+相同。網(wǎng)絡層路由設計分為RN+,RN-和RFD三個模塊。圖5至圖7分別是三種類型節(jié)點接收到上層或者其他節(jié)點發(fā)送的數(shù)據(jù)包時,網(wǎng)絡層處理程序的流程圖。
圖5RN+網(wǎng)絡層處理程序的流程圖圖6RN-網(wǎng)絡層處理程序的流程圖

圖7RFD網(wǎng)絡層處理程序的流程圖
因為實際點對點通信是通過MAC地址進行數(shù)據(jù)傳輸?shù)模悦總€節(jié)點在接收到信息包時,都要維護鄰居表,鄰居表主要起地址解析(AddressResolution)的作用:將鄰居節(jié)點的網(wǎng)絡地址轉換成MAC地址。另外,類型是RN+的節(jié)點在接收到信息包或者啟動AODVjr查找路由時,還必須維護路由表。鄰居表和路由表的記錄都有生存期,超過生存期的記錄將被刪除。
3.4測試方法
無線通信有其特殊性質,每個節(jié)點發(fā)送的數(shù)據(jù)包既是信號源,同時又可能是干擾源,因此無線網(wǎng)絡的測試是一大難題。為了能在室內方便測試網(wǎng)絡性能,引入黑名單機制,強制讓一些節(jié)點對黑名單節(jié)點發(fā)送的數(shù)據(jù)包“視而不見”,以測試十幾點甚至幾十點的特殊網(wǎng)絡。在實際應用時,去掉黑名單并不影響網(wǎng)絡的工作性能。測試時,還可以采用符合IEEE802.15.4的包探測器(Sniffer),記錄測試過程中空氣中所傳輸?shù)臒o線數(shù)據(jù)。每個模塊還可以通過I/O輸出自己的收發(fā)狀態(tài)等信息。通過多種手段對測試過程進行分析,才能提高開發(fā)測試效率。
表2是某個節(jié)點的黑名單列表,該節(jié)點接收到的數(shù)據(jù)包發(fā)送方MAC地址如果符合下列n個公式中的一個,則該節(jié)點認為沒有接收到數(shù)據(jù)包,對該數(shù)據(jù)包不作任何處理。

表2黑名單列表
4典型應用
ZDK開發(fā)包,除了實現(xiàn)IEEE802.15.4的MAC層及ZigBee的網(wǎng)絡層功能外,目前還完成一些應用層功能,同時提供簡單易用的API接口,以便使用者根據(jù)實際需要進行二次開發(fā)。該技術已經(jīng)成功地應用于組建家庭無線網(wǎng)絡、無線傳感器網(wǎng)絡、無線門控系統(tǒng)和無線停車場計費系統(tǒng)等領域中。
4.1網(wǎng)絡功能
圖8是一個典型的ZigBee網(wǎng)絡,該網(wǎng)絡可取代有線電纜構成的拓撲。網(wǎng)絡中端對端設備可以采用透明模式(TransparentMode)交互信息,完成無線RS232和RS485的數(shù)據(jù)傳輸功能。只要接上模塊,多臺設備的串口就能直接交互數(shù)據(jù)。這種應用尤其適合不易鋪設有線電纜、通信時須要考慮避雷等因素的場合。

圖8典型的ZigBee網(wǎng)絡示意圖
為了充分發(fā)揮其他網(wǎng)絡的作用,實現(xiàn)網(wǎng)絡與外網(wǎng)(WLAN,Ethernet,PSTN,GPS等)的連接,以便遠程控制ZigBee網(wǎng)絡的工作,協(xié)調器還必須充當網(wǎng)關(Gateway),實現(xiàn)內網(wǎng)(WPAN)和外網(wǎng)的連接。由ARM處理器開發(fā)的嵌入式系統(tǒng)充當協(xié)調器及無線網(wǎng)關,它有RJ45,RJ11,RS232接口,可以通過以太網(wǎng)(Ethernet)、有線電話網(wǎng)(PSTN)、通用無線分組業(yè)務網(wǎng)(GPRS)或者全球地位系統(tǒng)(GPS)連接ZigBee網(wǎng)絡,如圖9所示。

圖9ZigBee網(wǎng)絡與其他網(wǎng)絡連接圖
4.2實踐效果
ZigBee模塊載波頻率為2.4GHz,通信速率為250kbps,發(fā)射功率在0dbm至-24dbm,接收靈敏度為-94dm。點對點通信距離,室內為60米左右,室外為100米左右,誤包率小于0.5%。在不超過10跳的范圍內通信,傳輸延遲不超過2秒,誤包率小于1%;每包數(shù)據(jù)能傳輸?shù)淖畲笥行Ъ冐摵蔀?10字節(jié)。
目前,已經(jīng)測試過50點的網(wǎng)絡,實現(xiàn)跨多個房間、樓宇的數(shù)據(jù)傳輸。在節(jié)能模式下,模塊能在電池供電的條件中長時間(約3個月)工作。本網(wǎng)絡除了包含通用ZigBee網(wǎng)絡的特點外,還能跟其他有線或者無線網(wǎng)絡互通互融,達到優(yōu)勢互補,在實際應用中取得良好的效果。實踐證明,ZigBee網(wǎng)絡有其自己的鮮明特點,在眾多的無線網(wǎng)絡中有其存在和發(fā)展的空間。
5.總結和展望
本文主要討論了該網(wǎng)絡的理論基礎,同時給出了網(wǎng)絡層實現(xiàn)辦法及解決方案。這種方案已被美國赫立訊科技公司用于設計IP-Link系列模塊、ZigBee開發(fā)套件以及海爾家庭無線網(wǎng)絡,取得較好的市場價值。
基于IEEE802.15.4的ZigBee網(wǎng)絡是擴充現(xiàn)有網(wǎng)絡應用的一種良好手段,具有廣闊的應用場合和發(fā)展前景。ZigBee協(xié)議棧還在不斷升級,如何根據(jù)不同的需求設計高性能的ZigBee網(wǎng)絡,如何將ZigBee網(wǎng)絡與其他網(wǎng)絡進行可靠連接,達到功能互補,是一項很有意義的課題。
【編輯推薦】

















