ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。根據(jù)國(guó)際標(biāo)準(zhǔn)規(guī)定,ZigBee技術(shù)是一種短距離、低功耗的無(wú)線通信技術(shù)。
ZigBee協(xié)議從下到上分別為物理層(PHY)、媒體訪問控制層(MAC)、傳輸層(TL)、網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)等。其中物理層(PHY)和媒體訪問控制層(MAC)遵循IEEE802.15.4標(biāo)準(zhǔn)的規(guī)定。
成都億佰特電子科技有限公司生產(chǎn)設(shè)計(jì)的E18系列ZigBee組網(wǎng)模塊采用TI CC2530 ZigBee網(wǎng)絡(luò)協(xié)議棧Zstack 2.5.1a協(xié)議棧進(jìn)行ZigBee網(wǎng)絡(luò)開發(fā)。
E18系列產(chǎn)品如下圖所示:
(如需了解詳情,請(qǐng)進(jìn)入成都億佰特電子科技有限公司官網(wǎng)enlgzep.cn)
ZigBee網(wǎng)絡(luò)包含:
協(xié)調(diào)器(ZC)
路由器(ZR)
終端設(shè)備(ZED)
2.1 協(xié)調(diào)器
ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器主要作用是建立和維護(hù)網(wǎng)絡(luò)。存儲(chǔ)網(wǎng)絡(luò)信息。是整個(gè)網(wǎng)絡(luò)的認(rèn)證中心。
2.2 路由器
ZigBee網(wǎng)絡(luò)中路由器主要作用是網(wǎng)絡(luò)的擴(kuò)展功能。在障礙周圍動(dòng)態(tài)路由,為遠(yuǎn)端節(jié)點(diǎn)與中心節(jié)點(diǎn)的提供信息通道。
2.3 終端設(shè)備
ZigBee網(wǎng)絡(luò)中終端設(shè)備是一個(gè)僅接收信息和發(fā)送信息的簡(jiǎn)易功能的ZigBee設(shè)備。它只能處于ZigBee網(wǎng)絡(luò)的末端,并且只能與其父節(jié)點(diǎn)進(jìn)行通信,可支持低功耗功能,沒有路由能力和網(wǎng)絡(luò)維護(hù)能力。
3. ZigBee網(wǎng)絡(luò)結(jié)構(gòu)
ZigBee網(wǎng)絡(luò)可分為:星型網(wǎng),樹狀網(wǎng),網(wǎng)狀網(wǎng)(MESH網(wǎng))。
(特別提示:星型和樹狀網(wǎng)絡(luò)適合點(diǎn)多多點(diǎn)、距離相對(duì)較近的應(yīng)用)
ZigBee星型網(wǎng)絡(luò)拓?fù)淙缦聢D所示。星形拓?fù)涫亲詈?jiǎn)單的一種拓?fù)湫问剑粋€(gè)Coordinator(協(xié)調(diào)者) 節(jié)點(diǎn)和一系列的 End Device(終端)節(jié)點(diǎn)。每一個(gè)End Device 節(jié)點(diǎn)只能和 Coordinator 節(jié)點(diǎn)進(jìn)行通訊。如果需要在兩個(gè) End Device 節(jié)點(diǎn)之間進(jìn)行通訊必須通過Coordinator 節(jié)點(diǎn)進(jìn)行信息的轉(zhuǎn)發(fā)。
這種拓?fù)湫问降娜秉c(diǎn)是節(jié)點(diǎn)之間的數(shù)據(jù)路由只有唯一的一個(gè)路徑。Coordinator(協(xié)調(diào)者)有可能成為整個(gè)網(wǎng)絡(luò)的瓶頸。實(shí)現(xiàn)星形網(wǎng)絡(luò)拓?fù)洳恍枰褂?zigbee 的網(wǎng)絡(luò)層協(xié)議,因?yàn)楸旧鞩EEE 802.15.4的協(xié)議層就已經(jīng)實(shí)現(xiàn)了星形拓?fù)湫问?,但是這需要開發(fā)者在應(yīng)用層作更多的工作,包括自己處理信息的轉(zhuǎn)發(fā)。
ZigBee星型網(wǎng)絡(luò)拓?fù)?/span>
ZigBee樹狀網(wǎng)絡(luò)拓?fù)淙缦聢D所示。樹狀拓?fù)浒ㄒ粋€(gè)Coordinator(協(xié)調(diào)者)以及一系列的 Router(路由器) 和 End Device(終端)節(jié)點(diǎn)。Coordinator 連接一系列的 Router 和 End Device, 他的子節(jié)點(diǎn)的 Router也可以連接一系列的 Router 和End Device. 這樣可以重復(fù)多個(gè)層級(jí)。
需要注意的是:
Coordinator 和 Router節(jié)點(diǎn)可以包含自己的子節(jié)點(diǎn)。
End Device 不能有自己的子節(jié)點(diǎn)。
有同一個(gè)父節(jié)點(diǎn)的節(jié)點(diǎn)之間稱為兄弟節(jié)點(diǎn)
有同一個(gè)祖父節(jié)點(diǎn)的節(jié)點(diǎn)之間稱為堂兄弟節(jié)點(diǎn)
每一個(gè)節(jié)點(diǎn)都只能和他的父節(jié)點(diǎn)和子節(jié)點(diǎn)之間通訊。
如果需要從一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),那么信息將沿著樹的路徑向上傳遞到最近的祖先節(jié)點(diǎn)然后再向下傳遞到目標(biāo)節(jié)點(diǎn)。
這種拓?fù)浞绞降娜秉c(diǎn)就是信息只有唯一的路由通道。另外信息的路由是由協(xié)議棧層處理的,整個(gè)的路由過程對(duì)于應(yīng)用層是完全透明的
ZigBee樹狀網(wǎng)絡(luò)拓?fù)?/span>
ZigBee網(wǎng)狀網(wǎng)拓?fù)淙缦聢D所示。網(wǎng)狀拓?fù)浒粋€(gè)Coordinator和一系列的Router 和End Device。這種網(wǎng)絡(luò)拓?fù)湫问胶蜆錉钔負(fù)湎嗤徽?qǐng)參考上面所提到的樹狀網(wǎng)絡(luò)拓?fù)?。但是,網(wǎng)狀網(wǎng)絡(luò)拓?fù)渚哂懈屿`活的信息路由規(guī)則,在可能的情況下,路由節(jié)點(diǎn)之間可以直接的通訊。這種路由機(jī)制使得信息的通訊變得更有效率,而且意味這一旦一個(gè)路由路徑出現(xiàn)了問題,信息可以自動(dòng)的沿著其他的路由路徑進(jìn)行傳輸。
通常在支持網(wǎng)狀網(wǎng)絡(luò)的實(shí)現(xiàn)上,網(wǎng)絡(luò)層會(huì)提供相應(yīng)的路由探索功能,這一特性使得網(wǎng)絡(luò)層可以找到信息傳輸?shù)淖顑?yōu)化的路徑。需要注意的是,以上所提到的特性都是由網(wǎng)絡(luò)層來(lái)實(shí)現(xiàn),應(yīng)用層不需要進(jìn)行任何的參與。
網(wǎng)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)具有強(qiáng)大的功能,網(wǎng)絡(luò)可以通過“多級(jí)跳”的方式來(lái)通信;該拓?fù)浣Y(jié)構(gòu)還可以組成極為復(fù)雜的網(wǎng)絡(luò);網(wǎng)絡(luò)還具備自組織、自愈功能;
ZigBee網(wǎng)狀網(wǎng)絡(luò)拓?fù)?/span>
4. ZigBee地址分配機(jī)制
ZigBee 2007協(xié)議中,網(wǎng)絡(luò)地址分配機(jī)制為樹狀網(wǎng)絡(luò)分配機(jī)制,其主要實(shí)現(xiàn)為:
假設(shè)子設(shè)備數(shù)量的最大值nwkMaxChildren(Cm),網(wǎng)絡(luò)最大深度為nwkMaxDepth(Lm),父節(jié)點(diǎn)將路由設(shè)備作為它的子設(shè)備的最大數(shù)為nwkMaxRouters(Rm),自身網(wǎng)絡(luò)深度(d),則可計(jì)算函數(shù)Cskip(d)m,該函數(shù)為在給定網(wǎng)絡(luò)深度和路由子設(shè)備個(gè)數(shù)的條件下福設(shè)備所能分配子區(qū)段地址數(shù):
如果一個(gè)設(shè)備Cskip(d)的值為0,則沒有路由能力,該設(shè)備為終端設(shè)備;
如果一個(gè)設(shè)備Cskip(d)的值大于0,則有路由能力,該設(shè)備為路由器設(shè)備。
網(wǎng)絡(luò)中分配地址為(n為當(dāng)前分配節(jié)點(diǎn)個(gè)數(shù))
終端:An=Ak+1+Cskip(d)*(n-1)
路由器:An=Ak+Cskip(d)*Rm*(n-1);
下一個(gè)路由器設(shè)備分配地址為前一個(gè)已分配路由器地址加Cskip偏移量
CurNodeInfo.NextRouterAddr+ = CurNodeInfo.Cskip;
下一個(gè)要分配的終端設(shè)備地址為前一個(gè)已知分配地址+1
CurNodeInfo.NextEndDevAddr++;
5. ZigBee樹狀路由機(jī)制
假設(shè)一個(gè)路由器要發(fā)送數(shù)據(jù)包到目標(biāo)地址D。這個(gè)路由器的網(wǎng)絡(luò)地址個(gè)網(wǎng)絡(luò)深度為A和d。它首先會(huì)判斷目標(biāo)地址設(shè)備是否是它的子設(shè)備,應(yīng)當(dāng)滿足:
A < D < A+Cskip(d-1)
如果目標(biāo)設(shè)備是它的子設(shè)備,下一跳地址就是
否則,路由器將此數(shù)據(jù)包發(fā)向它的父節(jié)點(diǎn)。
今天的分享就到這里啦,EBYTE人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進(jìn)行了解,還有客服小姐姐在線答疑哦!