歡迎您光臨本站 登入註冊首頁

ZigBee協議棧網路層的研究與實現

admin @ 2014-03-26 , reply:0

概述

1.引言  隨著科學技術的發展,無線技術逐漸取代有線技術,僅支持靜態固定拓撲的無線網路也逐漸被支持動態變化拓撲的無線網路取代。在短距離的無線控制、監測、數據傳輸領域,通用的技術有802.11、藍牙、H……

1. 引言
  隨著科學技術的發展,無線技術逐漸取代有線技術,僅支持靜態固定拓撲的無線網路也逐漸被支持動態變化拓撲的無線網路取代。在短距離的無線控制、監測、數據傳輸領域,通用的技術有802.11、藍牙、HomeRF等,它們各有自己的優勢,但仍然存在功耗大、組網能力差等劣勢。為了彌補上述協議的不足, ZigBee聯盟於2004年12月中旬推出基於IEEE 802.15.4的ZigBee協議棧。 ZigBee短距離低速無線個域網(Low Rate-Wireless Personal Area Network,LR-WPAN)不僅具有低成本、低功耗、低速率、低複雜度的特點;而且具有可靠性高,組網簡單、靈活的優勢。本文將介紹ZigBee協議棧並提出網路層的具體實現方案。

2. ZigBee協議棧體系結構
    本節將在介紹IEEE 802.15.4標準和ZigBee協議的基礎上,重點分析ZigBee協議棧的網路層關鍵技術及其工作機制。

2.1 IEEE 802.15.4標準
    IEEE 802.15.4標準[1]於2003年5月制定完成,它滿足國際標準化組織 (ISO)開放系統互連(OSI)參考模型,主要包括物理層、數據鏈路層。IEEE 802.15.4協議與其他無線網路相比,突出的優點是:組網能力強,適應面廣,可靠性高,節能性好。

2.2 ZigBee協議棧
    完整的Zigbee協議棧由物理層、介質訪問控制層、網路層、安全層和高層應用規範組成。

圖1 ZigBee協議棧
    如圖1所示,ZigBee協議棧的網路層、安全層和應用程序介面等由ZigBee聯盟制定。其中安全層(Security)主要實現密鑰管理、存取等功能。應用程序介面負責向用戶提供簡單的應用軟體介面(API),包括應用子層支持(Application Sub-layger Support,APS)、ZigBee設備對象(ZigBee Device Object,ZDO)等,實現應用層對設備的管理。

2.3 網路層關鍵技術
    ZigBee 協議棧的核心部分在網路層。網路層主要實現節點加入或離開網路、接收或拋棄其他節點、路由查找及傳送數據等功能,支持Cluster-Tree, AODVjr,Cluster-Tree+AODVjr等多種路由演算法,支持星形(Star)、樹形(Cluster-Tree)、網格(Mesh)等多種拓撲結構。
    Cluster-Tree(簇-樹)是一種由網路協調器(Coordinator)展開生成樹狀網路的拓撲結構,適合於節點靜止或者移動較少的場合,屬於靜態路由,不需要存儲路由表。AODVjr演算法是針對AODV(Ad hoc按需距離矢量路由協議)演算法的改進,考慮到節能、應用方便性等因素,簡化了AODV的一些特點,但是仍然保持AODV的原始功能。表1是兩種演算法的優缺點比較。

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

圖2 網路層數據傳輸示意圖

3.網路層實現
    作者已在符合IEEE 802.15.4的硬體平台上實現ZigBee協議棧,成功研發出ZigBee開發包(ZigBee Development Kit,ZDK),驗證了其可行性。同時,根據一些特定的應用將演算法改進,取得良好的運用效果。本節將重點介紹ZigBee網路層的實現。

3.1無線模塊的設計
    根據不同類型節點功能不同的特點,作者在不同的硬體平台設計模塊。設計製作的ZigBee系列模塊完全滿足IEEE 802.15.4和ZigBee協議的規範要求,符合ISM/SRD規範,通過美國FCC認證。模塊集無線收發器、微處理器、存儲器和用戶API等軟硬體於一體,能實現1.0版ZigBee協議棧的功能。Coordinator可以連接使用ARM處理器開發的嵌入式系統,功能較多的路由節點(RN+,RN -)由高檔單片機充當,功能較少的葉子節點(RFD)使用普通的單片機。模塊還可以根據實際需要,工作在不同的睡眠模式和節能方式。
     圖3是模塊的硬體設計框圖,射頻晶元採用Chipcon公司生產的符合IEEE 802.15.4標準的模塊CC2420;控制射頻晶元的微處理器,可以根據需要選擇Atmel公司的AVR系列單片機或者Silicon Labs公司的8051內核單片機。單片機與射頻晶元之間通過SPI進行通信,連接速率是6Mbps。單片機與外部設備之間通過串口進行通信,連接速率是 38.4kbps。單片機自帶若干ADC或者溫度感測器,可以實現簡單的模數轉換或者溫度監控。為了方便代碼移植到不同的硬體平台,模塊固件採用標準C語言編寫代碼實現。

圖3 ZigBee模塊框圖

3.2網路的建立
    ZigBee網路最初是由協調器發動並且建立。協調器首先進行通道掃描(Scan),採用一個其他網路沒有使用的空閑通道,同時規定Cluster-Tree的拓撲參數,如最大的兒子數(Cm)、最大層數(Lm)、路由演算法、路由表生存期等。

圖4 節點加入及脫離網路握手示意圖
    圖4 是設計的節點加入及脫離網路握手示意圖。協調器啟動后,其他普通節點加入網路時,只要將自己的通道設置成與現有的協調器使用的通道相同,並提供正確的認證信息,即可請求加入(Join)網路。一個節點加入網路后,可以從其父節點得到自己的短MAC地址,ZigBee網路地址以及協調器規定的拓撲參數。同理,一個節點要離開(Leave)網路,只須向其父節點提出請求即可。一個節點若成功地接收一個兒子,或者其兒子成功脫離網路,都必須向協調器彙報。因此,協調器可以即時掌握網路的所有節點信息,維護網路信息庫(PIB,PAN Information Base)。

3.3 路由設計與實現
    在傳輸數據時,不同類型的的節點有不同的處理方法,協調器的處理機制與RN+相同。網路層路由設計分為RN+,RN-和RFD三個模塊。圖5至圖7分別是三種類型節點接收到上層或者其他節點發送的數據包時,網路層處理程序的流程圖。

圖5 RN+網路層處理程序的流程圖                                 圖6 RN-網路層處理程序的流程圖

圖7 RFD網路層處理程序的流程圖
     因為實際點對點通信是通過MAC地址進行數據傳輸的,所以每個節點在接收到信息包時,都要維護鄰居表,鄰居表主要起地址解析(Address Resolution)的作用:將鄰居節點的網路地址轉換成MAC地址。另外,類型是RN+的節點在接收到信息包或者啟動AODVjr查找路由時,還必須維護路由表。鄰居表和路由表的記錄都有生存期,超過生存期的記錄將被刪除。

3.4測試方法
    無線通信有其特殊性質,每個節點發送的數據包既是信號源,同時又可能是干擾源,因此無線網路的測試是一大難題。為了能在室內方便測試網路性能,引入黑名單機制,強制讓一些節點對黑名單節點發送的數據包“視而不見”,以測試十幾點甚至幾十點的特殊網路。在實際應用時,去掉黑名單並不影響網路的工作性能。測試時,還可以採用符合IEEE 802.15.4的包探測器(Sniffer),記錄測試過程中空氣中所傳輸的無線數據。每個模塊還可以通過I/O輸出自己的收髮狀態等信息。通過多種手段對測試過程進行分析,才能提高開發測試效率。
    表2是某個節點的黑名單列表,該節點接收到的數據包發送方MAC地址如果符合下列n個公式中的一個,則該節點認為沒有接收到數據包,對該數據包不作任何處理。

表2 黑名單列表

4典型應用
     ZDK 開發包,除了實現IEEE 802.15.4的MAC層及ZigBee的網路層功能外,目前還完成一些應用層功能,同時提供簡單易用的API介面,以便使用者根據實際需要進行二次開發。該技術已經成功地應用於組建家庭無線網路、無線感測器網路、無線門控系統和無線停車場計費系統等領域中。

4.1網路功能
    圖8是一個典型的ZigBee網路,該網路可取代有線電纜構成的拓撲。網路中端對端設備可以採用透明模式(Transparent Mode)交互信息,完成無線RS232和RS485的數據傳輸功能。只要接上模塊,多台設備的串口就能直接交互數據。這種應用尤其適合不易鋪設有線電纜、通信時須要考慮避雷等因素的場合。

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

圖9 ZigBee網路與其他網路連接圖

4.2實踐效果
     ZigBee 模塊載波頻率為2.4GHz,通信速率為250kbps,發射功率在0dbm至-24dbm,接收靈敏度為-94dm。點對點通信距離,室內為60米左右,室外為100米左右,誤包率小於0.5%。在不超過10跳的範圍內通信,傳輸延遲不超過2秒,誤包率小於1%;每包數據能傳輸的最大有效純負荷為 110位元組。
     目前,已經測試過50點的網路,實現跨多個房間、樓宇的數據傳輸。在節能模式下,模塊能在電池供電的條件中長時間(約3個月)工作。本網路除了包含通用ZigBee網路的特點外,還能跟其他有線或者無線網路互通互融,達到優勢互補,在實際應用中取得良好的效果。實踐證明,ZigBee 網路有其自己的鮮明特點,在眾多的無線網路中有其存在和發展的空間。

5. 總結和展望
    本文主要討論了該網路的理論基礎,同時給出了網路層實現辦法及解決方案。這種方案已被美國赫立訊科技公司用於設計IP-Link系列模塊、ZigBee開發套件以及海爾家庭無線網路,取得較好的市場價值。
     基於IEEE 802.15.4的ZigBee網路是擴充現有網路應用的一種良好手段,具有廣闊的應用場合和發展前景。ZigBee協議棧還在不斷升級,如何根據不同的需求設計高性能的ZigBee網路,如何將ZigBee網路與其他網路進行可靠連接,達到功能互補,是一項很有意義的課題。 


[admin via 研發互助社區 ] ZigBee協議棧網路層的研究與實現已經有3145次圍觀

http://cocdig.com/docs/show-post-44869.html