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