|
1. ZigBee簡介 ZigBee是基于IEEE802.15.4標準的低功耗局域網協議。根據國際標準規定,ZigBee技術是一種短距離、低功耗的無線通信技術。 ZigBee協議從下到上分別為物理層(PHY)、媒體訪問控制層(MAC)、傳輸層(TL)、網絡層(NWK)、應用層(APL)等。其中物理層(PHY)和媒體訪問控制層(MAC)遵循IEEE802.15.4標準的規定。 2. ZigBee設備類型
2.1 協調器 ZigBee網絡中協調器主要作用是建立和維護網絡。存儲網絡信息。是整個網絡的認證中心。 2.2 路由器 ZigBee網絡中路由器主要作用是網絡的擴展功能。在障礙周圍動態路由,為遠端節點與中心節點的提供信息通道。 2.3 終端設備 ZigBee網絡中終端設備是一個僅接收信息和發送信息的簡易功能的ZigBee設備。它只能處于ZigBee網絡的末端,并且只能與其父節點進行通信,可支持低功耗功能,沒有路由能力和網絡維護能力。 3. ZigBee網絡結構 ZigBee網絡可分為:星型網,樹狀網,網狀網(MESH網)。 (特別提示:星型和樹狀網絡適合點多多點、距離相對較近的應用) 3.1星型網ZigBee星型網絡拓撲如下圖所示。星形拓撲是最簡單的一種拓撲形式,他包含一個Coordinator(協調者) 節點和一系列的 End Device(終端)節點。每一個End Device 節點只能和 Coordinator 節點進行通訊。如果需要在兩個 End Device 節點之間進行通訊必須通過Coordinator 節點進行信息的轉發。 這種拓撲形式的缺點是節點之間的數據路由只有唯一的一個路徑。Coordinator(協調者)有可能成為整個網絡的瓶頸。實現星形網絡拓撲不需要使用 zigbee 的網絡層協議,因為本身IEEE 802.15.4的協議層就已經實現了星形拓撲形式,但是這需要開發者在應用層作更多的工作,包括自己處理信息的轉發。
ZigBee樹狀網絡拓撲如下圖所示。樹狀拓撲包括一個Coordinator(協調者)以及一系列的 Router(路由器) 和 End Device(終端)節點。Coordinator 連接一系列的 Router 和 End Device, 他的子節點的 Router也可以連接一系列的 Router 和End Device. 這樣可以重復多個層級。 需要注意的是:
如果需要從一個節點向另一個節點發送數據,那么信息將沿著樹的路徑向上傳遞到最近的祖先節點然后再向下傳遞到目標節點。 這種拓撲方式的缺點就是信息只有唯一的路由通道。另外信息的路由是由協議棧層處理的,整個的路由過程對于應用層是完全透明的
ZigBee網狀網拓撲如下圖所示。網狀拓撲包含一個Coordinator和一系列的Router 和End Device。這種網絡拓撲形式和樹狀拓撲相同;請參考上面所提到的樹狀網絡拓撲。但是,網狀網絡拓撲具有更加靈活的信息路由規則,在可能的情況下,路由節點之間可以直接的通訊。這種路由機制使得信息的通訊變得更有效率,而且意味這一旦一個路由路徑出現了問題,信息可以自動的沿著其他的路由路徑進行傳輸。 通常在支持網狀網絡的實現上,網絡層會提供相應的路由探索功能,這一特性使得網絡層可以找到信息傳輸的最優化的路徑。需要注意的是,以上所提到的特性都是由網絡層來實現,應用層不需要進行任何的參與。 網狀網絡拓撲結構的網絡具有強大的功能,網絡可以通過“多級跳”的方式來通信;該拓撲結構還可以組成極為復雜的網絡;網絡還具備自組織、自愈功能;
4. ZigBee地址分配機制 ZigBee 2007協議中,網絡地址分配機制為樹狀網絡分配機制,其主要實現為: 假設子設備數量的最大值nwkMaxChildren(Cm),網絡最大深度為nwkMaxDepth(Lm),父節點將路由設備作為它的子設備的最大數為nwkMaxRouters(Rm),自身網絡深度(d),則可計算函數Cskip(d)m,該函數為在給定網絡深度和路由子設備個數的條件下福設備所能分配子區段地址數: 如果一個設備Cskip(d)的值為0,則沒有路由能力,該設備為終端設備; 如果一個設備Cskip(d)的值大于0,則有路由能力,該設備為路由器設備。 網絡中分配地址為(n為當前分配節點個數) 終端:An=Ak+1+Cskip(d)*(n-1) 路由器:An=Ak+Cskip(d)*Rm*(n-1); 下一個路由器設備分配地址為前一個已分配路由器地址加Cskip偏移量 CurNodeInfo.NextRouterAddr+ = CurNodeInfo.Cskip; 下一個要分配的終端設備地址為前一個已知分配地址+1 CurNodeInfo.NextEndDevAddr++; 5. ZigBee樹狀路由機制 假設一個路由器要發送數據包到目標地址D。這個路由器的網絡地址個網絡深度為A和d。它首先會判斷目標地址設備是否是它的子設備,應當滿足: A < D < A+Cskip(d-1) 如果目標設備是它的子設備,下一跳地址就是 否則,路由器將此數據包發向它的父節點。 |