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





