引言
有人將Zigbee翻譯成「紫蜂」,為無線個(gè)人局域網(wǎng)絡(luò)(Wireless Personal Area Networks, WPAN)的標(biāo)準(zhǔn)之一,已于 2005年6月27日公布。除了邏輯鏈路控制(Logic Link Control, LLC)層、媒介存取控制層(MAC),與物理層使用2003年10月公布的IEEE 802.15.4標(biāo)準(zhǔn)外,Zigbee標(biāo)準(zhǔn)協(xié)議制定了應(yīng)用層與網(wǎng)絡(luò)層,及MAC、應(yīng)用層與網(wǎng)絡(luò)層的安全加密服務(wù)標(biāo)準(zhǔn)。
以傳感器和自組織網(wǎng)絡(luò)為代表的無線應(yīng)用并不需要較高的傳輸帶寬,但卻需要較低的傳輸延時(shí)和極低的功率消耗,使用戶能擁有較長的電池壽命和較多的器件陣列。目前迫切需要一種符合傳感器和低端的、面向控制的、應(yīng)用簡單的專用標(biāo)準(zhǔn),而Zigbee的出現(xiàn)正好解決了這一問題。Zigbee有著高通信效率、低復(fù)雜度、低功耗、低速率、低成本、高安全性以及全數(shù)字化等諸多優(yōu)點(diǎn)。這些優(yōu)點(diǎn)使得Zigbee和無線傳感器網(wǎng)絡(luò)完美地結(jié)合在一起。目前,基于Zigbee技術(shù)的無線傳感器網(wǎng)絡(luò)的研究和開發(fā)已得到越來越多的關(guān)注。
1Zigbee協(xié)議術(shù)語
配置文件(profile):Zigbee協(xié)議的配置文件是對邏輯組件及其相關(guān)接口的描述,是面向某個(gè)應(yīng)用類別的公約、準(zhǔn)則.通常沒有程序代碼與配置文件相關(guān)聯(lián).
屬性(attribute):設(shè)備之間通信的每一種數(shù)據(jù)像開關(guān)的狀態(tài)或溫度計(jì)值等皆可稱為屬性.每個(gè)屬性可得到唯一的ID值.
簇(cluster):多個(gè)屬性的匯集形成了簇,每個(gè)簇也擁有一個(gè)唯一的ID。雖然個(gè)體之間傳輸?shù)耐ǔJ菍傩?a target="_blank">信息,但所謂的邏輯組件的接口指的卻是簇一級的操作,而非屬性一級.
終端(endpoint):每個(gè)支持一個(gè)或多個(gè)簇的代碼功能塊稱為終端。不同的設(shè)備通過它們的終端及所支持的簇來進(jìn)行通信。
配置文件定義了屬性ID與簇ID,使之看起來就像設(shè)備的某種特性.以家庭智能控制系統(tǒng)為例,燈配置文件設(shè)定了遠(yuǎn)程控制設(shè)備的簇OnOffDRC含有一種屬性OnOff,且該屬性為無符號(hào)8位值,值0XFF意味著"開",0X00為關(guān),0XF0則為無效。通常,配置文件也為設(shè)備定義了,哪些簇是強(qiáng)制托管的,哪些簇是可選擇的。另外,配置文件還定義了一些可選擇的Zigbee協(xié)議托管服務(wù).
基于簇及配置所定義的服務(wù),用戶可使用配置文件中定義的屬性編寫所需的函數(shù).改寫自己的程序代碼.因此,配置文件使得Zigbee 設(shè)備可以互操作。任何遵循某一標(biāo)準(zhǔn)配置文件的節(jié)點(diǎn)都可以與其他實(shí)現(xiàn)相同配置文件的節(jié)點(diǎn)進(jìn)行互操作。也就是說,在使用同一標(biāo)準(zhǔn)配置文件進(jìn)行設(shè)計(jì)的基礎(chǔ)上,即使生產(chǎn)開關(guān)的廠家與生產(chǎn)控制器的廠家不同,他們生產(chǎn)的產(chǎn)品仍可實(shí)現(xiàn)協(xié)同操作.
以家庭智能系統(tǒng)中的燈光控制為例,燈配置文件定義了6個(gè)設(shè)備,協(xié)議棧通過帶有以下信息的報(bào)頭文件對此配置提供支持:配置(profile)ID,設(shè)備ID及版本,簇ID,屬性ID,屬性數(shù)據(jù)類型.
下圖(1)顯示了不同術(shù)語之間的關(guān)系,對于家庭智能控制系統(tǒng)的燈光配置,圖中給出了兩種設(shè)備.每種設(shè)備各有一個(gè)終端.負(fù)荷切換控制器的終端中僅有一個(gè)輸入簇,而遠(yuǎn)程轉(zhuǎn)換控制終端則有兩個(gè)簇,且分別為一個(gè)輸入一個(gè)輸出.?dāng)?shù)據(jù)的傳輸基于簇而進(jìn)行.
圖(1)
2 Zigbee協(xié)議棧結(jié)構(gòu)
如圖(2)所示,Zigbee堆棧的不同層與802.15.4 MAC通過服務(wù)接入點(diǎn)(SAP)進(jìn)行通信。SAP是某一特定層提供的服務(wù)與上層之間的接口。 Zigbee堆棧的大多數(shù)層有兩個(gè)接口:數(shù)據(jù)實(shí)體接口和管理實(shí)體接口。數(shù)據(jù)實(shí)體接口的目標(biāo)是向上層提供所需的常規(guī)數(shù)據(jù)服務(wù)。管理實(shí)體接口的目標(biāo)是向上層提供訪問內(nèi)部層參數(shù)、配置和管理數(shù)據(jù)的服務(wù)。圖中的APSDE-SAP,NLDE-SAP即為數(shù)據(jù)實(shí)體接口,而APSME-SAP,NLME-SAP即為管理實(shí)體接口。
圖(2)
3 Zigbee協(xié)議的消息格式及幀格式
3.1 消息格式
一個(gè)Zigbee消息由127個(gè)字節(jié)組成,它主要包括以下幾個(gè)部分:
?。停粒脠?bào)頭:該報(bào)頭包含當(dāng)前被傳輸消息的源地址及目的地址.若消息被路由,則該地址有可能不是實(shí)際地址,產(chǎn)生及使用該報(bào)頭對于應(yīng)用代碼是透明的.
NWK報(bào)頭:該報(bào)頭包含了消息的實(shí)際源地址及最終的目的地址,該報(bào)頭的產(chǎn)生及使用對于應(yīng)用代碼是透明的.
APS報(bào)頭:該報(bào)頭包含了配置ID,簇ID及當(dāng)前消息的目的終端.同樣,報(bào)頭的產(chǎn)生及使用是透明的.
有效載荷:該域包含了待應(yīng)用層處理的Zigbee協(xié)議幀.
3.2 Zigbee協(xié)議幀格式
Zigbee協(xié)議定義了兩種幀格式:KVP關(guān)鍵值對及MSG消息幀.
KVP:是Zigbee 規(guī)范定義的特殊數(shù)據(jù)傳輸機(jī)制,通過一種規(guī)定來標(biāo)準(zhǔn)化數(shù)據(jù)傳輸格式和內(nèi)容,主要用于傳輸較簡單的變量值格式。
MSG:是Zigbee 規(guī)范定義的特殊數(shù)據(jù)傳輸機(jī)制,其在數(shù)據(jù)傳輸格式和內(nèi)容上并不作更多規(guī)定,主要用于專用的數(shù)據(jù)流或文件數(shù)據(jù)等數(shù)據(jù)量較大的傳輸機(jī)制。
KVP幀是專用的比較規(guī)范的信息格式,采用鍵值對的形式,按一種規(guī)定的格式進(jìn)行數(shù)據(jù)傳輸.通常用于傳輸一個(gè)簡單的屬性變量值;而MSG幀還沒有一個(gè)具體格式上的規(guī)定,通常用于多信息,復(fù)雜信息的傳輸。KVP、MSG是通訊中的兩種數(shù)據(jù)格式。如果將幀比作一封郵件,那么信封、郵票、地址人名等信息都是幀頭、幀尾,里面的信件內(nèi)容就是特定的數(shù)據(jù)格式KVP或MSG。根據(jù)具體應(yīng)用的配置文件(Profile),KVP一般用于簡單屬性數(shù)據(jù),MSG用于較復(fù)雜的,數(shù)據(jù)量較大信息。
4 尋址
4.1 Zigbee協(xié)議中的兩類地址
Zigbee網(wǎng)絡(luò)協(xié)議的每一個(gè)節(jié)點(diǎn)皆有兩個(gè)地址:64位的IEEE?。停粒玫刂芳埃保段痪W(wǎng)絡(luò)地址.
每一個(gè)使用Zigbee協(xié)議通信的設(shè)備都有一個(gè)全球唯一的64位MAC地址,該地址由24位OUI與40位廠家分配地址組成,OUI可通過購買由IEEE分配得到,由于所有的OUI皆由IEEE指定,因此64位IEEE MAC地址具有全球唯一性.
當(dāng)設(shè)備執(zhí)行加入網(wǎng)絡(luò)操作時(shí),他們會(huì)使用自己的擴(kuò)展地址進(jìn)行通信。成功加入Zigbee網(wǎng)絡(luò)后,網(wǎng)絡(luò)會(huì)為設(shè)備分配一個(gè)16位的網(wǎng)絡(luò)地址。由此,設(shè)備便可使用該地址與網(wǎng)絡(luò)中的其它設(shè)備進(jìn)行通信.
4.2 尋址方式
單播:當(dāng)單播一個(gè)消息時(shí),數(shù)據(jù)包的MAC報(bào)頭中應(yīng)含有目的節(jié)點(diǎn)的地址,只有知道了接收設(shè)備的地址,消息方可以單播方式進(jìn)行發(fā)送。
廣播:要想通過廣播來發(fā)送消息,應(yīng)將信息包MAC報(bào)頭中的目的地址域置為0XFF。此時(shí),所有射頻收發(fā)使能的終端皆可接收到該信息。
該尋址方式可用于加入一個(gè)網(wǎng)絡(luò)、查找路由及執(zhí)行Zigbee協(xié)議的其它查找功能。Zigbee協(xié)議對廣播信息包實(shí)現(xiàn)一種被動(dòng)應(yīng)答模式。即當(dāng)一個(gè)設(shè)備產(chǎn)生或轉(zhuǎn)發(fā)一個(gè)廣播信息包時(shí),它將偵聽所有鄰居的轉(zhuǎn)發(fā)情況。如果所有的鄰居都沒有在應(yīng)答時(shí)限內(nèi)復(fù)制數(shù)據(jù)包,設(shè)備將重復(fù)轉(zhuǎn)發(fā)信息包,直到它偵聽到該信息包已被所有鄰居轉(zhuǎn)發(fā),或廣播傳輸時(shí)間被耗盡為止。
5 數(shù)據(jù)傳輸機(jī)制
對于非信標(biāo)網(wǎng)絡(luò),當(dāng)一個(gè)設(shè)備想要發(fā)送一個(gè)數(shù)據(jù)幀時(shí),它會(huì)等待信道空閑,直到檢測到信道為空后設(shè)備會(huì)傳輸該幀。
若目的設(shè)備為FFD全功能設(shè)備,它的接收器應(yīng)始終保持開啟狀態(tài),以便其它的設(shè)備可隨時(shí)向它傳輸數(shù)據(jù)。但是若設(shè)備為RFD 精簡功能設(shè)備,無操作時(shí)設(shè)備將關(guān)閉收發(fā)器以節(jié)約能量。此時(shí)RFD設(shè)備無法接收到任何數(shù)據(jù)。因此,其它設(shè)備只能通過RFD的FFD雙親向RFD設(shè)備請求或發(fā)送數(shù)據(jù)。直到RFD上電RX 收發(fā)器后,它會(huì)向雙親請求自己的信息數(shù)據(jù),若雙親緩沖區(qū)中存有發(fā)給孩子的信息,則將該信息發(fā)給孩子設(shè)備。該操作模式可降低RFD的功耗,但相應(yīng)的雙親 FFD節(jié)點(diǎn)應(yīng)擁有足夠的RAM空間,以便為孩子設(shè)備緩沖信息。若孩子設(shè)備沒有在規(guī)定的時(shí)間內(nèi)請求信息,信息將被丟失。
6 Zigbee無線網(wǎng)絡(luò)的形成
首先,由Zigbee協(xié)調(diào)器建立一個(gè)新的Zigbee網(wǎng)絡(luò)。一開始,Zigbee協(xié)調(diào)器會(huì)在允許的通道內(nèi)搜索其它的Zigbee協(xié)調(diào)器。并基于每個(gè)允許通道中所檢測到的通道能量及網(wǎng)絡(luò)號(hào),選擇唯一的16位PAN ID,建立自己的網(wǎng)絡(luò)。一旦一個(gè)新網(wǎng)絡(luò)被建立,Zigbee路由器與終端設(shè)備就可以加入到網(wǎng)絡(luò)中了。
網(wǎng)絡(luò)形成后,可能會(huì)出現(xiàn)網(wǎng)絡(luò)重疊及PAN ID沖突的現(xiàn)象。協(xié)調(diào)器可以初始化PAN ID沖突解決程序,改變一個(gè)協(xié)調(diào)器的PAN ID 與信道,同時(shí)相應(yīng)修改其所有的孩子設(shè)備。通常,Zigbee設(shè)備會(huì)將網(wǎng)絡(luò)中其它節(jié)點(diǎn)信息存儲(chǔ)在一個(gè)非易失性的存儲(chǔ)空間-鄰居表中。加電后,若孩子設(shè)備曾加入過網(wǎng)絡(luò),則該設(shè)備會(huì)執(zhí)行孤兒通知程序來鎖定先前加入的網(wǎng)絡(luò)。接收到孤兒通知的設(shè)備檢查它的鄰居表,并確定設(shè)備是否是它的孩子,若是,設(shè)備會(huì)通知孩子設(shè)備它在網(wǎng)絡(luò)中的位置,否則孩子設(shè)備將作為一個(gè)新設(shè)備來加入網(wǎng)絡(luò)。而后,孩子設(shè)備將產(chǎn)生一個(gè)潛在雙親表,并盡量以合適的深度加入到現(xiàn)存的網(wǎng)絡(luò)中。
通常,設(shè)備檢測通道能量所花費(fèi)的時(shí)間與每個(gè)通道可利用的網(wǎng)絡(luò)可通過ScanDuration掃描持續(xù)參數(shù)來確定,一般設(shè)備要花費(fèi)1分鐘的時(shí)間來執(zhí)行一個(gè)掃描請求,對于Zigbee路由器與終端設(shè)備來說,只需要執(zhí)行一次掃描即可確定加入的網(wǎng)絡(luò)。而協(xié)調(diào)器則需要掃描兩次,一次采樣通道能量,另一次則用于確定
評論
查看更多