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