ZigBee技術
“ZigBee”是什么?從字面上猜像是一種蜜蜂。因為“ZigBee”這個詞由“Zig”和“Bee”兩部分組成,“Zig”取自英文單詞“zigzag”,意思是走“之”字形,“bee”英文是蜜蜂的意思,所以“ZigBee”就是跳著“之”字形舞的蜜蜂。不過,ZigBee并非是一種蜜蜂,事實上,它與藍牙類似是一種新興的短距離無線通信技術,國內(nèi)也有人翻譯成“紫蜂”。下面就讓我們一起進入這只蜜蜂的世界,與蜂共舞吧!
這只蜜蜂的來頭還是要從它的歷史開始說起,早在上世紀末,就已經(jīng)有人在考慮發(fā)展一種新的通信技術,用于傳感控制應用(sensorandcontrol),這個想法后來在IEEE802.15工作組當中提出來,于是就成立了TG4工作組,并且制定了規(guī)范IEEE802.15.4。但是IEEE802的規(guī)范只專注于底層,要達到產(chǎn)品的互操作和兼容,還需要定義高層的規(guī)范,于是2002年ZigBeeAlliance成立,正式有了“ZigBee”這個名詞。兩年之后,ZigBee的第一個規(guī)范ZigBeeV1.0誕生,但這個規(guī)范推出的比較倉促,存在一些錯誤,并不實用。此后ZigBeeAlliance又經(jīng)過兩年的努力,推出了新的規(guī)范ZigBee2006,這是一個比較完善的規(guī)范。據(jù)聯(lián)盟最新的消息,今年年底將會發(fā)布更新版本的規(guī)范ZigBee2007,這個版本增加了一些新的特性。
從ZigBee的發(fā)展歷史可以看到,它和IEEE802.15.4有著密切的關系,事實上ZigBee的底層技術就是基于IEEE802.15.4的,因此有一種說法認為ZigBee和IEEE802.15.4是同一個東西,或者說“ZigBee”只是IEEE802.15.4的名字而已,其實這是一種誤解。實際上ZigBee和IEEE802.15.4的關系,有點類似于WiMAX和IEEE802.16,Wi-Fi和IEEE802.11,Bluetooth和IEEE802.15.1?!癦igBee”可以看作是一個商標,也可以看作是一種技術,當把它看作一種技術的時候,它表示一種高層的技術,而物理層和MAC層直接引用IEEE802.15.4。事物是不斷的發(fā)展變化的,尤其是通信技術,可以想象將來的ZigBee可能不會使用IEEE802.15.4定義的底層,就跟藍牙(Bluetooth)宣布下一代底層采用UWB技術一樣,但是“ZigBee”這個商標以及高層的技術還會繼續(xù)保留。
ZigBee協(xié)議棧速讀
我們無法預料將來ZigBee會基于怎樣的底層技術,只好從它現(xiàn)在的底層――IEEE802.15.4開始了解,IEEE802.15.4包括物理層和MAC層兩部分。ZigBee工作在三種頻帶上,分別是用于歐洲的868MHz頻帶,用于美國的915MHz頻帶,以及全球通用的2.4GHz頻帶,但這三個頻帶的物理層并不相同,它們各自的信道帶寬分別是0.6MHz,2MHz和5MHz,分別有1個,10個和16個信道。不同頻帶的擴頻和調(diào)制方式也有所區(qū)別,雖然都使用了直接序列擴頻(DSSS)的方式,但從比特到碼片的變換方式有比較大的差別;調(diào)制方面都使用了調(diào)相技術,但868MHz和915MHz頻段采用的是BPSK,而2.4GHz頻段采用的是OQPSK。我們可以以2.4GHz頻段為例看看發(fā)射機基帶部分的框圖(如圖1),可以看到物理層部分非常簡單,而IEEE802.15.4芯片的低價格正是得益于底層的簡單性??赡芪覀儠乃男阅?,但我們可以再看看它和Bluetooth/IEEE802.15.1以及WiFi/IEEE802.11的性能比較(如圖2),在同樣比特信噪比的情況下,IEEE802.15.4要優(yōu)于其他兩者。直接序列擴頻技術具有一定的抗干擾效果,同時在其他條件相同情況下傳輸距離要大于跳頻技術。在發(fā)射功率為0dBm的情況下,Bluetooth通常能有10m作用范圍,而基于IEEE802.15.4的ZigBee在室內(nèi)通常能達到30~50m作用距離,在室外如果障礙物較少,甚至可以達到100m作用距離;同時調(diào)相技術的誤碼性能要優(yōu)于調(diào)頻和調(diào)幅技術。因此綜合起來,IEEE802.15.4具有性能比較好的物理層。另一方面,我們可以看到IEEE802.15.4的數(shù)據(jù)速率并不高,對于2.4GHz頻段只有250kb/s,而868MHz頻段只有20kb/s,915MHz頻段只有40kb/s。因此我們完全可以把它歸為低速率的短距離無線通信技術。
圖1IEEE802。15.4物理層2.4GHz頻段發(fā)射機基帶框圖
圖2幾種無線通信技術性能比較
物理層的上面是MAC層,它的核心是信道接入技術,包括時分復用GTS技術和隨機接入信道技術CSMA/CA。不過ZigBee實際上并沒有對時分復用GTS技術進行相關的支持,因此我們可以暫不考慮它,而專注于CSMA/CA。ZigBee/IEEE802.15.4的網(wǎng)絡所有節(jié)點都工作在同一個信道上,因此如果鄰近的節(jié)點同時發(fā)送數(shù)據(jù)就有可能發(fā)生沖突。為此MAC層采用了CSMA/CA的技術,簡單來說,就是節(jié)點在發(fā)送數(shù)據(jù)之前先監(jiān)聽信道,如果信道空閑則可以發(fā)送數(shù)據(jù),否則就要進行隨機的退避,即延遲一段隨機時間,然后再進行監(jiān)聽,這個退避的時間是指數(shù)增長的,但有一個最大值,即如果上一次退避之后再次監(jiān)聽信道忙,則退避時間要增倍,這樣做的原因是如果多次監(jiān)聽信道都忙,有可能表明信道上的數(shù)據(jù)量大,因此讓節(jié)點等待更多的時間,避免繁忙的監(jiān)聽。通過這種信道接入技術,所有節(jié)點競爭共享同一個信道。在MAC層當中還規(guī)定了兩種信道接入模式,一種是信標(beacon)模式,另一種是非信標模式。信標模式當中規(guī)定了一種“超幀”的格式,在超幀的開始發(fā)送信標幀,里面含有一些時序以及網(wǎng)絡的信息,緊接著是競爭接入時期,在這段時間內(nèi)各節(jié)點以競爭方式接入信道,再后面是非競爭接入時期,節(jié)點采用時分復用的方式接入信道,然后是非活躍時期,節(jié)點進入休眠狀態(tài),等待下一個超幀周期的開始又發(fā)送信標幀。而非信標模式則比較靈活,節(jié)點均以競爭方式接入信道,不需要周期性的發(fā)送信標幀。顯然,在信標模式當中由于有了周期性的信標,整個網(wǎng)絡的所有節(jié)點都能進行同步,但這種同步網(wǎng)絡的規(guī)模不會很大。實際上,在ZigBee當中用得更多的可能是非信標模式。
MAC層往上就屬于ZigBee真正定義的部分了,我們可以參看一下ZigBee的協(xié)議棧(圖3)。底層技術,包括物理層和MAC層由IEEE802.15.4制定,而高層的網(wǎng)絡層、應用支持子層(APS)、應用框架(AF)、ZigBee設備對象(ZDO)和安全組件(SSP),均由ZigBeeAlliance所制定。
圖3ZigBee協(xié)議棧
這些部分當中最下面的是網(wǎng)絡層。和其他技術一樣,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é)點,相當于樹的葉子。這種結構又好像蜂群的結構,協(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ī)定了信任中心(trustcenter)的角色―全網(wǎng)有一個信任中心,用于管理密鑰和管理設備,可以執(zhí)行設置的安全策略。
ZigBee性能分析
上面對ZigBee協(xié)議棧作了一些介紹,要知道ZigBee能勝任什么工作,還需要作進一步的分析,主要有幾個方面:數(shù)據(jù)速率、可靠性、時延、能耗特性、組網(wǎng)和路由。
ZigBee的數(shù)據(jù)速率比較低,在2.4GHz的頻段也只有250kb/s,而且這只是鏈路上的速率,除掉幀頭開銷、信道競爭、應答和重傳,真正能被應用所利用的速率可能不足100kb/s,并且這余下的速率也可能要被鄰近多個節(jié)點和同一個節(jié)點的多個應用所瓜分。所以我們不能奢望ZigBee去做一些如傳輸視頻之類的高難度的事情,起碼目前是這樣,而應該聚焦于一些低速率的應用,比如人們早就給它找好的一個應用領域―傳感和控制。
評論