
圖3 ZigBee協(xié)議棧
這些部分當中最下面的是網(wǎng)絡層。和其他技術(shù)一樣,ZigBee網(wǎng)絡層的主要功能是路由,路由算法是它的核心。目前ZigBee網(wǎng)絡層主要支持兩種路由算法— 樹路由和網(wǎng)狀網(wǎng)路由。樹路由采用一種特殊的算法,具體可以參考ZigBee的協(xié)議棧規(guī)范。它把整個網(wǎng)絡看作是以協(xié)調(diào)器為根的一棵樹,因為整個網(wǎng)絡是由協(xié)調(diào)器所建立的,而協(xié)調(diào)器的子節(jié)點可以是路由器或者是末端節(jié)點,路由器的子節(jié)點也可以是路由器或者末端節(jié)點,而末端節(jié)點沒有子節(jié)點,相當于樹的葉子。這種結(jié)構(gòu)又好像蜂群的結(jié)構(gòu),協(xié)調(diào)器相當于蜂后,是唯一的,而路由器相當于雄蜂,數(shù)目不多,末端節(jié)點則相當于數(shù)量最多的工蜂。其實有很多地方仔細一想,就可以發(fā)現(xiàn) ZigBee和蜂群的許多暗合之處。樹路由利用了一種特殊的地址分配算法,使用四個參數(shù)—深度、最大深度、最大子節(jié)點數(shù)和最大子路由器數(shù)來計算新節(jié)點的地址,于是尋址的時候根據(jù)地址就能計算出路徑,而路由只有兩個方向—向子節(jié)點發(fā)送或者向父節(jié)點發(fā)送。樹狀路由不需要路由表,節(jié)省存儲資源,但缺點是很不靈活,浪費了大量的地址空間,并且路由效率低,因此常常作為最后的路由方法,或者干脆不用。ZigBee當中還有一種路由方法是網(wǎng)狀網(wǎng)路由,這種方法實際上是AODV路由算法的一個簡化版本,非常適合于低成本的無線自組織網(wǎng)絡的路由。它可以用于較大規(guī)模的網(wǎng)絡,需要節(jié)點維護一個路由表,耗費一定的存儲資源,但往往能達到最優(yōu)的路由效率,而且使用靈活。除了這兩種路由方法,ZigBee當中還可以進行鄰居表路由,其實鄰居表可以看作是特殊的路由表,只不過只需要一跳就可以發(fā)送到目的節(jié)點。
網(wǎng)絡層的上面是應用層,包括了APS、AF和ZDO幾部分,主要規(guī)定了一些和應用相關的功能,包括端點 (endpoint)的規(guī)定,還有綁定(binding)、服務發(fā)現(xiàn)和設備發(fā)現(xiàn)等等。其中端點是應用對象存在的地方,ZigBee允許多個應用同時位于一個節(jié)點上,例如一個節(jié)點具有控制燈光的功能,又具有感應溫度的功能,又具有收發(fā)文本消息的功能,這種設計有利于復雜ZigBee設備的出現(xiàn)。而綁定是用于把兩個“互補的”應用聯(lián)系在一起,如開關應用和燈的應用。更通俗的理解,“綁定”可以說是通信的一方了解另一方的通信信息的方法,比如開關需要控制 “燈”,但它一開始并不知道“燈”這個應用所在的設備地址,也不知道其端點號,于是它可以廣播一個消息,當“燈”接收到之后給出響應,于是開關就可以記錄下“燈”的通信信息,以后就可以根據(jù)記錄的通信信息去直接發(fā)送控制信息了。服務發(fā)現(xiàn)和設備發(fā)現(xiàn)是應用層需要提供的,ZigBee定義了幾種描述符,對設備以及提供的服務可以進行描述,于是可以通過這些描述符來尋找合適的服務或者設備。
ZigBee還提供了安全組件,采用了AES128的算法對網(wǎng)絡層和應用層的數(shù)據(jù)進行加密保護,另外還規(guī)定了信任中心(trust center)的角色—全網(wǎng)有一個信任中心,用于管理密鑰和管理設備,可以執(zhí)行設置的安全策略。
ZigBee性能分析
上面對ZigBee協(xié)議棧作了一些介紹,要知道ZigBee能勝任什么工作,還需要作進一步的分析,主要有幾個方面:數(shù)據(jù)速率、可靠性、時延、能耗特性、組網(wǎng)和路由。
ZigBee 的數(shù)據(jù)速率比較低,在2.4GHz的頻段也只有250kb/s,而且這只是鏈路上的速率,除掉幀頭開銷、信道競爭、應答和重傳,真正能被應用所利用的速率可能不足100kb/s,并且這余下的速率也可能要被鄰近多個節(jié)點和同一個節(jié)點的多個應用所瓜分。所以我們不能奢望ZigBee去做一些如傳輸視頻之類的高難度的事情,起碼目前是這樣,而應該聚焦于一些低速率的應用,比如人們早就給它找好的一個應用領域—傳感和控制。
至于可靠性, ZigBee有很多方面進行保證,首先是物理層采用了擴頻技術(shù),能夠在一定程度上抵抗干擾,而MAC層和應用層(APS部分)有應答重傳功能,另外MAC 層的CSMA機制使節(jié)點發(fā)送之前先監(jiān)聽信道,也可以起到避開干擾的作用,網(wǎng)絡層采用了網(wǎng)狀網(wǎng)的組網(wǎng)方式(圖4),從源節(jié)點到達目的節(jié)點可以有多條路徑,路徑的冗余加強了網(wǎng)絡的健壯性,如果原先的路徑出現(xiàn)了問題,比如受到干擾,或者其中一個中間節(jié)點出現(xiàn)故障,ZigBee可以進行路由修復,另選一條合適的路徑來保持通信(圖5、圖6)。據(jù)了解,在最新的ZigBee 2007協(xié)議棧規(guī)范當中,將會引入一個新的特性——頻率捷變 (frequency agility),這也是ZigBee加強其可靠性的一個重要特性。這個特性大致的意思是當ZigBee網(wǎng)絡受到外界干擾,比如 Wi-Fi的干擾,無法正常工作時,整個網(wǎng)絡可以動態(tài)的切換到另一個工作信道上。





