1.3 zigbee協(xié)議分析
1.3.1 zigbee協(xié)議
zigbee的協(xié)議棧結(jié)構(gòu)是由一系列稱為層的協(xié)議塊所組成的。每個(gè)層為上一層提供一系列特定的服務(wù)。數(shù)據(jù)入口提供數(shù)據(jù)傳輸?shù)姆?wù),管理入口提供其余的所有服務(wù)。每個(gè)服務(wù)接口都通過SAP(Service Access Point)接口與上一層進(jìn)行數(shù)據(jù)交換,每個(gè)SAP都支持一系列的服務(wù)原語。
zigbee協(xié)議棧是基于OSI(Open Systems Interconnection)標(biāo)準(zhǔn)的,但只定義了所需要的那些層。主要由物理層PHY,媒體接入層MAC,網(wǎng)絡(luò)層以及應(yīng)用框架層組成,框架圖如圖所示。其中,PHY層和MAC層采用了IEEE 802.15.4協(xié)議標(biāo)準(zhǔn)。
zigbee網(wǎng)絡(luò)層主要用于zigbee的無線個(gè)人區(qū)域網(wǎng)WPAN網(wǎng)的組網(wǎng)連接,數(shù)據(jù)管理以及網(wǎng)絡(luò)安全等。
zigbee應(yīng)用框架層主要為zigbee技術(shù)的實(shí)際應(yīng)用提供一些應(yīng)用框架模型等,以便對(duì)zigbee技術(shù)的開發(fā)應(yīng)用,在不同的應(yīng)用場合,其開發(fā)應(yīng)用框架不同,從目前來看,不同廠商提供的應(yīng)用框架是有差異的。
1.3.2 zigbee網(wǎng)絡(luò)層
網(wǎng)絡(luò)層需要在功能上保證與IEEE 802.15.4標(biāo)準(zhǔn)兼容,同時(shí)也需要上層提供合適的功能接口。
對(duì)于網(wǎng)絡(luò)層,其完成和提供的主要功能如下:
(1)產(chǎn)生網(wǎng)絡(luò)層的數(shù)據(jù)包:當(dāng)網(wǎng)絡(luò)層接受到來自應(yīng)用子層的數(shù)據(jù)包,網(wǎng)絡(luò)層對(duì)數(shù)據(jù)包進(jìn)行解析,然后加上適當(dāng)?shù)木W(wǎng)絡(luò)層包頭向MAC傳輸。
(2)網(wǎng)絡(luò)拓?fù)涞穆酚晒δ埽壕W(wǎng)絡(luò)層提供路由數(shù)據(jù)包的功能,如果包的目的節(jié)點(diǎn)是本節(jié)點(diǎn)的話,將該數(shù)據(jù)包向應(yīng)用子層發(fā)送。如果不是,則將該數(shù)據(jù)包轉(zhuǎn)發(fā)給路由表中下一結(jié)點(diǎn)。
(3)配置新的器件參數(shù):網(wǎng)絡(luò)層能夠配置合適的協(xié)議,比如建立新的協(xié)調(diào)器并發(fā)起建立網(wǎng)絡(luò)或者加入一個(gè)已有的網(wǎng)絡(luò)。
(4)建立PAN網(wǎng)絡(luò)
(5)連入或脫離PAN網(wǎng)絡(luò):網(wǎng)絡(luò)層能提供加入或脫離網(wǎng)絡(luò)的功能,如果節(jié)點(diǎn)是協(xié)調(diào)器或者是路由器,還可以要求子節(jié)點(diǎn)脫離網(wǎng)絡(luò)。
(6)分配網(wǎng)絡(luò)地址:如果本節(jié)點(diǎn)是協(xié)調(diào)器或者是路由器,則接入該節(jié)點(diǎn)的字節(jié)點(diǎn)的網(wǎng)絡(luò)地址由網(wǎng)絡(luò)層控制。
(7)鄰居節(jié)點(diǎn)的發(fā)現(xiàn):網(wǎng)絡(luò)層能發(fā)現(xiàn)維護(hù)網(wǎng)絡(luò)鄰居信息。
(8)建立路由:網(wǎng)絡(luò)層提供路由功能。
(9)控制接收:網(wǎng)絡(luò)層能控制接收器的接受時(shí)間和狀態(tài)。
zigbee網(wǎng)絡(luò)層的結(jié)構(gòu)
為了向應(yīng)用層提供接口,網(wǎng)絡(luò)層提供了兩個(gè)功能服務(wù)實(shí)體,分別為數(shù)據(jù)服務(wù)實(shí)體NLDE和管理服務(wù)實(shí)體NLME。NLDE通過NLDE-SAP為應(yīng)用層提供數(shù)據(jù)傳輸服務(wù),NLME通過NLME-SAP為應(yīng)用層提供網(wǎng)絡(luò)管理服務(wù),并且,NLME還完成對(duì)網(wǎng)絡(luò)信息庫NIB的維護(hù)和管理。
1.3.3 zigbee應(yīng)用層
zigbee應(yīng)用層包括應(yīng)用支持子層APS、應(yīng)用框架AF、zigbee設(shè)備對(duì)象ZDO。它們共同為各應(yīng)用開發(fā)者提供統(tǒng)一的接口。
1.3.3.1 應(yīng)用支持子層APS
APS層主要功能:
(1)APS層協(xié)議數(shù)據(jù)單元APDU的處理。
(2)APSDE提供在同一個(gè)網(wǎng)絡(luò)中的應(yīng)用實(shí)體之間的數(shù)據(jù)傳輸機(jī)制。
(3)APSME提供多種服務(wù)給應(yīng)用對(duì)象,這些服務(wù)包括安全服務(wù)何綁定設(shè)備,并維護(hù)管理對(duì)象的數(shù)據(jù)庫,也就是我們常說的AIB。
1.3.3.2 應(yīng)用框架AF
應(yīng)用框架(Application Framework)為各個(gè)用戶自定義的應(yīng)用對(duì)象提供了模板式的活動(dòng)空間,為每個(gè)應(yīng)用對(duì)象提供了鍵值對(duì)KVP服務(wù)和報(bào)文MSG服務(wù)兩種服務(wù)供數(shù)據(jù)傳輸使用。
每個(gè)節(jié)點(diǎn)除了64位的IEEE地址,16位的網(wǎng)絡(luò)地址,每個(gè)節(jié)點(diǎn)還提供了8位的應(yīng)用層入口地址,對(duì)應(yīng)于用戶應(yīng)用對(duì)象。端點(diǎn)0為ZDO接口,端點(diǎn)1至240供用戶自定義用于對(duì)象使用,端點(diǎn)255為廣播地址,端點(diǎn)241 -254保留將來使用。每一個(gè)應(yīng)用都對(duì)應(yīng)一個(gè)配置文件(Profile)。配置文件包括:設(shè)備ID(Device ID),事務(wù)集群ID(cluster ID),屬性ID(Attribute ID)等。AF可以通過這些信息來決定服務(wù)類型。
1.3.3.3 zigbee設(shè)備對(duì)象ZDO
ZDO是一個(gè)特殊的應(yīng)用層的端點(diǎn)(Endpoint)。它是應(yīng)用層其他端點(diǎn)與應(yīng)用子層管理實(shí)體交互的中間件。它主要提供的功能如下:
(1)初始化應(yīng)用支持子層,網(wǎng)絡(luò)層。
(2)發(fā)現(xiàn)節(jié)點(diǎn)和節(jié)點(diǎn)功能。在無信標(biāo)的網(wǎng)絡(luò)中,加入的節(jié)點(diǎn)只對(duì)其父節(jié)點(diǎn)可見。而其他節(jié)點(diǎn)可以通過ZDO的功能來確定網(wǎng)絡(luò)的整體拓?fù)浣Y(jié)構(gòu)已經(jīng)節(jié)點(diǎn)所能提供的功能。
(3)安全加密管理:主要包括安全key的建立和發(fā)送,已經(jīng)安全授權(quán)。
(4)網(wǎng)絡(luò)的維護(hù)功能。
(5)綁定管理:綁定的功能由應(yīng)用支持子層提供,但是綁定功能的管理卻是由ZDO提供,它確定了綁定表的大小,綁定的發(fā)起和綁定的解除等功能。
(6)節(jié)點(diǎn)管理:對(duì)于網(wǎng)絡(luò)協(xié)調(diào)器和路由器,ZDO提供網(wǎng)絡(luò)監(jiān)測、獲取路由和綁定信息、發(fā)起脫離網(wǎng)絡(luò)過程等一系列節(jié)點(diǎn)管理功能。
ZDO實(shí)際上是介于應(yīng)用層端點(diǎn)和應(yīng)用支持子層中間的端點(diǎn),其主要功能集中在網(wǎng)絡(luò)管理和維護(hù)上。應(yīng)用層的端點(diǎn)可以通過 ZDO提供的功能來獲取網(wǎng)絡(luò)或者是其他節(jié)點(diǎn)的信息,包括網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、其它幾點(diǎn)的網(wǎng)絡(luò)地址和狀態(tài)以及其他幾點(diǎn)的類型和提供的服務(wù)等信息。
1.4 zigbee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
zigbee網(wǎng)絡(luò)支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),最典型的網(wǎng)絡(luò)結(jié)構(gòu)是星型網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。對(duì)于星型網(wǎng)絡(luò),由一個(gè)協(xié)調(diào)器和多個(gè)終端節(jié)點(diǎn)組成。在星型網(wǎng)絡(luò)中,所有的通信都是通過協(xié)調(diào)器轉(zhuǎn)發(fā)。這樣的網(wǎng)絡(luò)結(jié)構(gòu)有三個(gè)缺點(diǎn):一是會(huì)增加協(xié)調(diào)器的負(fù)載,對(duì)協(xié)調(diào)器的性能要求很高;二是協(xié)調(diào)協(xié)作都通過協(xié)調(diào)器轉(zhuǎn)發(fā)的話,會(huì)極大的增加系統(tǒng)的延時(shí),使得系統(tǒng)的實(shí)時(shí)性受到影響;三是單一節(jié)點(diǎn)的破壞造成整個(gè)網(wǎng)絡(luò)的癱瘓,降低了網(wǎng)絡(luò)的魯棒性。
除了支持星型網(wǎng)絡(luò)以外,zigbee還支持樹狀(Tree)和網(wǎng)狀(Mesh)等對(duì)等網(wǎng)絡(luò),如圖2-11。在對(duì)等網(wǎng)絡(luò)中,也存在一個(gè)PAN協(xié)調(diào)器(Coordinator),但是它已經(jīng)不是網(wǎng)絡(luò)的主控制器,而是主要起到發(fā)起網(wǎng)絡(luò)和組網(wǎng)的作用。在對(duì)等網(wǎng)絡(luò)中,一個(gè)設(shè)備在另一設(shè)備的通信范圍之內(nèi),他們就可以互相通信。因此,對(duì)等網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)統(tǒng)一構(gòu)成較為復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。對(duì)等網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要在工業(yè)檢測和控制,無線傳感網(wǎng)絡(luò),供應(yīng)物資跟蹤,農(nóng)業(yè)智能化以及安全監(jiān)控方面都有廣泛的應(yīng)用。在網(wǎng)絡(luò)中,各個(gè)設(shè)備之間發(fā)送消息時(shí),使用了多跳傳輸,以增大網(wǎng)絡(luò)的覆蓋范圍。其中,組網(wǎng)的路由協(xié)議是采用了無線自組網(wǎng)按需平面距離矢量AODV路由協(xié)議(Ad Hoc On Demand Distance Vector Routing),無論是星型拓?fù)溥€是對(duì)等拓?fù)洌總€(gè)獨(dú)立的PAN都有一個(gè)唯一的標(biāo)志符PAN ID,用以同一個(gè)網(wǎng)絡(luò)之內(nèi)節(jié)點(diǎn)的互相識(shí)別和通信。
評(píng)論
查看更多