1.1 概述
1.1.1 什么是Zigbee
隨著物聯(lián)網(wǎng)(IoT)行業(yè)的發(fā)展,越來(lái)越多的無(wú)線技術(shù)應(yīng)運(yùn)而生,在物聯(lián)網(wǎng)行業(yè)中,我們有兩種典型的網(wǎng)絡(luò)。一個(gè)是WAN(廣域網(wǎng)),另一個(gè)是PAN(個(gè)人區(qū)域網(wǎng))。
對(duì)于LoRa,NB-IoT,2G / 3G / 4G等無(wú)線技術(shù),通常傳輸距離超過(guò)1 km,因此它們主要用于廣域網(wǎng)(WAN)。對(duì)于WiFi,藍(lán)牙,BLE,ZigBee和Zwave等無(wú)線技術(shù),通常的傳輸距離小于1公里,因此它們主要用于個(gè)人局域網(wǎng)(PAN)。
ZigBee是IoT網(wǎng)絡(luò)(尤其是家庭自動(dòng)化行業(yè))中最流行的無(wú)線技術(shù)之一。其主要特點(diǎn)包括:
(1) 短距離 :無(wú)線覆蓋范圍在10到100米之間
(2) 低速率 :最大數(shù)據(jù)速率為250 Kbps
(3) 低功耗 :處于睡眠狀態(tài)的Endpoint設(shè)備在睡眠模式下可以使用低于5uA的電流
(4) 網(wǎng)狀網(wǎng) :網(wǎng)絡(luò)可以輕松擴(kuò)展到很大。理論上最大節(jié)點(diǎn)數(shù)為65535
1.1.2 Zigbee的網(wǎng)絡(luò)拓?fù)?/strong>
常見(jiàn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要有星形(Star)網(wǎng)絡(luò)和網(wǎng)狀(Mesh)網(wǎng)絡(luò)兩種,如下圖所示。
傳統(tǒng)的星形網(wǎng)絡(luò)的結(jié)構(gòu)最典型的例子就是家庭WiFi場(chǎng)景。家里的WiFi無(wú)線路由器就是一個(gè)中心節(jié)點(diǎn),家里所有的WiFi設(shè)備都要通過(guò)這個(gè)中心節(jié)點(diǎn)才能夠上網(wǎng)。如果WiFi路由器壞了的話,整個(gè)網(wǎng)絡(luò)中的所有設(shè)備就都上不了網(wǎng)了。
網(wǎng)絡(luò)中如果有中心節(jié)點(diǎn)的話就很容易出現(xiàn)單點(diǎn)故障,然而Mesh網(wǎng)絡(luò)結(jié)構(gòu)中沒(méi)有一個(gè)明顯的所謂的中心節(jié)點(diǎn),因此Mesh網(wǎng)絡(luò)具有更高的網(wǎng)絡(luò)可靠性。比如在ZigBee Mesh網(wǎng)絡(luò)中,任意一個(gè)節(jié)點(diǎn)故障了,其余的節(jié)點(diǎn)仍然可以正常工作(就算是Coordinator發(fā)生故障,除了新設(shè)備不能加入之外,其余所有節(jié)點(diǎn)仍然可以正常工作)。
1.1.3 Zigbee的歷史
ZigBee誕生在2003年,是ZigBee聯(lián)盟發(fā)布和修訂的開(kāi)放標(biāo)準(zhǔn),歷史悠久,從一(很早)開(kāi)始,Silicon Labs就致力于ZigBee技術(shù)。Silicon Labs的ZigBee技術(shù)來(lái)自Ember,Ember是一家自成立以來(lái)就開(kāi)始研究ZigBee的公司。2012年,SiliconLabs收購(gòu)了Ember,并繼續(xù)提供ZigBee產(chǎn)品和解決方案。
1.1.4 Zigbee聯(lián)盟
ZigBee聯(lián)盟是推廣ZigBee技術(shù)的主要力量。這是一個(gè)開(kāi)放的組織。任何公司都可以加入ZigBee聯(lián)盟作為成員。其中我們這次用的Silicon Labs是ZigBee聯(lián)盟的董事會(huì)成員。
ZigBee聯(lián)盟的主要三個(gè)工作是:
(1)為IoT(物聯(lián)網(wǎng))的無(wú)線設(shè)備端到設(shè)備端的通信制定開(kāi)放的全球標(biāo)準(zhǔn)
(2)通過(guò)我們的認(rèn)證計(jì)劃對(duì)產(chǎn)品進(jìn)行認(rèn)證,以幫助確保互操作性
(3)在全球范圍內(nèi)推廣我們的標(biāo)準(zhǔn)
2016年,ZigBee聯(lián)盟發(fā)布了最新的ZigBee標(biāo)準(zhǔn),即ZigBee 3.0。之前使用的配置文件(如ZigBee Home Automation(ZHA),ZigBee Light Link(ZLL)等)已統(tǒng)一在一起
此外,隨著安全性變得越來(lái)越重要,安全性得到了增強(qiáng)。自2017年起,ZigBee 3.0規(guī)范就是強(qiáng)制的。所有不滿足ZigBee 3.0規(guī)范的新設(shè)備,將無(wú)法通過(guò)認(rèn)證。認(rèn)證主要分為兩種:
(1)ZigBee兼容性平臺(tái)的認(rèn)證,主要針對(duì)于芯片廠商的ZigBee芯片,以及對(duì)應(yīng)的ZigBee協(xié)議棧;
(2)ZigBee兼容性產(chǎn)品的認(rèn)證,主要針對(duì)于基于ZigBee兼容性平臺(tái)開(kāi)發(fā)的產(chǎn)品。
1.2 協(xié)議架構(gòu)
1.2.1 概述
物理層和MAC層由IEEE-802.15.4定義:
(1) 物理層 :這部分功能通常是由芯片或者硬件來(lái)實(shí)現(xiàn),負(fù)責(zé)無(wú)線電收發(fā)管理,包括諸如調(diào)制/解調(diào),信號(hào)強(qiáng)度檢測(cè)等功能
(2) MAC層 :一部分是由硬件來(lái)實(shí)現(xiàn),一部分是由軟件來(lái)實(shí)現(xiàn),負(fù)責(zé)數(shù)據(jù)收發(fā),重傳、掃描,單跳通信
網(wǎng)絡(luò)層、APS子層和應(yīng)用層這些功能,都是由ZigBee聯(lián)盟來(lái)定義的:
(1) 網(wǎng)絡(luò)層 :負(fù)責(zé)消息的路由,設(shè)備狀態(tài)的維護(hù),子節(jié)點(diǎn)管理等等
(2) 應(yīng)用程序支持層(APS) :在網(wǎng)絡(luò)層和應(yīng)用層之間,負(fù)責(zé)端到端的重傳和確認(rèn)
(3) 應(yīng)用層 :包括了一個(gè)ZDO(ZigBee設(shè)備管理對(duì)象(Endpoint 0),每個(gè)應(yīng)用程序?qū)嵗Q(chēng)為一個(gè)Endpoint)和用戶應(yīng)用(留給用戶設(shè)計(jì))
另外,在APS層和網(wǎng)絡(luò)層都有一些安全特性,包括數(shù)據(jù)的加密、校驗(yàn)等等,可用于保護(hù)網(wǎng)絡(luò)免遭黑客攻擊。整個(gè)協(xié)議棧中,除了用戶應(yīng)用以外,其余的部分都是由平臺(tái)供應(yīng)商來(lái)實(shí)現(xiàn),用戶只需要專(zhuān)注在應(yīng)用層的開(kāi)發(fā)即可。
1.2.2 物理層
ZigBee在ISM頻率上工作。通信信道定義如下圖所示。
ZigBee最常見(jiàn)的工作頻率是2.4GHz。
1、調(diào)制
物理層還處理數(shù)據(jù)原始數(shù)據(jù)的發(fā)送和接收。PHY層在868/915 MHz頻帶中使用二進(jìn)制相移鍵控(BPSK),并在2.4 GHz下使用偏移正交相移鍵控(O-QPSK)。信息通過(guò)直接序列擴(kuò)頻(DSSS)編碼到載波上,DSSS是一種固有的魯棒方法,可通過(guò)信號(hào)處理增益來(lái)提高多徑性能和接收機(jī)靈敏度。請(qǐng)注意,2.4GHz是全球ZigBee通信最常用的頻段。唯一官方SubGHz的支持是英國(guó)的Smart Energy。
2、輸出功率
802.15.4是專(zhuān)為低功耗,低數(shù)據(jù)速率,低成本的網(wǎng)絡(luò)設(shè)計(jì)的。這些通常稱(chēng)為PAN或個(gè)人局域網(wǎng)。它主要是為中小無(wú)線電范圍的應(yīng)用而設(shè)計(jì),但是外接功率放大器也是可以的。在大多數(shù)國(guó)家中,允許獲得大約+20 dBm的輸出功率。在歐洲,最大發(fā)射功率被限制到+10 dBm左右。但是,這足以使您到達(dá)大約一到三公里的距離,這取決于用戶的鏈路預(yù)算,所使用的功率放大系數(shù)和/或所擁有的天線的類(lèi)型。
3、數(shù)據(jù)速率
使用2.4 GHz直接序列擴(kuò)頻Phy或DSSS,原始比特率為250kb/s。在實(shí)際應(yīng)用中,通常只有理論速率的四分之一或五分之一。預(yù)期的吞吐率與56k波特調(diào)制解調(diào)器相當(dāng)。單跳鏈路上每秒約52700 kb。放入多跳效果后,傳播所需的時(shí)間會(huì)更長(zhǎng)一些。
4、開(kāi)闊場(chǎng)地的傳輸距離
對(duì)于2.4GHz的PHY,在視線可達(dá)的空間,傳輸距離大約可以達(dá)到2KM。這是在大部分地區(qū)的無(wú)線法規(guī)允許的范圍內(nèi),經(jīng)過(guò)放大發(fā)射功率來(lái)實(shí)現(xiàn)的。由于存在大量信道的緣故,你可以選擇一個(gè)相對(duì)安靜的信道來(lái)避免干擾,從而保證可靠的通信。如果你選擇了一個(gè)嘈雜的信道,ZigBee的網(wǎng)絡(luò)管理單元可以切換到一個(gè)新的信道,這就是被稱(chēng)為“frequencyagility”的特性。工作在2.4GHz頻段還有一個(gè)好處,因?yàn)檫@個(gè)頻段在全球范圍內(nèi)都是可用的,這樣可以讓你的產(chǎn)品具有更廣闊的應(yīng)用空間。
5、總結(jié)
物理層的功能包括:
物理無(wú)線和MAC層的接口
無(wú)線電開(kāi)/關(guān)控制(ZigBee硬件的收發(fā)是不能同時(shí)進(jìn)行的)
調(diào)制與解調(diào)
信道選擇
鏈接質(zhì)量估算,信號(hào)強(qiáng)度檢測(cè)
能量檢測(cè),功率調(diào)節(jié)
6、補(bǔ)充
ZigBee在2.4GHz的工作頻率范圍內(nèi),和2.4GHZ的WiFi的工作頻率是有重疊的,WiFi的信道帶寬通常是20MHz或者40MHz。
當(dāng)WiFi和ZigBee在同一個(gè)空間內(nèi)工作的時(shí)候,就可能會(huì)出現(xiàn)干擾。如何保證ZigBee和WiFi在狹小的空間內(nèi)的共存,這對(duì)于ZigBee網(wǎng)關(guān)的設(shè)計(jì)會(huì)是一個(gè)極大的挑戰(zhàn)。
1.2.3 媒體訪問(wèn)控制(MAC)層
MAC層的主要功能是確??煽康膯翁鬟f。以下是有關(guān)這些功能的更多詳細(xì)信息。
1、CSMA-CA
在同一個(gè)空間內(nèi),如果多個(gè)無(wú)線節(jié)點(diǎn)同時(shí)發(fā)送信號(hào),就會(huì)互相在空間中形成干擾,導(dǎo)致數(shù)據(jù)變形,CSMA-CA機(jī)制就是用于避免這種情況。簡(jiǎn)單來(lái)說(shuō)就是一個(gè)listen beforetalk的機(jī)制,發(fā)之前先聽(tīng)一下。聽(tīng)的目的,就是判斷一下當(dāng)前這個(gè)信道上有沒(méi)有別人在用這個(gè)信道。如果沒(méi)有,那么我就發(fā);如果有,那么我就等一等,等到信道空閑了,我再發(fā)。
假設(shè)有一個(gè)節(jié)點(diǎn)正在listen,他將根據(jù)接收到的信號(hào)的RSSI來(lái)做出判斷,如果在當(dāng)前環(huán)境里,我能接收到的信號(hào)強(qiáng)度小于一個(gè)門(mén)限,比如小于-75dBm,我就認(rèn)為這個(gè)信道上沒(méi)有人在發(fā)送,那我就可以開(kāi)始發(fā)送了,如果聽(tīng)到有一個(gè)節(jié)點(diǎn)正在發(fā)送,但是因?yàn)樗l(fā)的信號(hào)強(qiáng)度比較小,那么我仍然檢測(cè)不到他的信號(hào)。這個(gè)時(shí)候我能聽(tīng)到的信號(hào)強(qiáng)度還是小于這個(gè)門(mén)限的,所以我還是可以繼續(xù)發(fā)送。因?yàn)閮烧咧g隔得比較遠(yuǎn),兩個(gè)限號(hào)之間碰不到。假如有一個(gè)節(jié)點(diǎn)離我很近,他在發(fā)信號(hào)。我聽(tīng)的時(shí)候,我能夠檢測(cè)到他的信號(hào)強(qiáng)度大于這個(gè)門(mén)限,那這時(shí)候我就不能發(fā)送了。我就需要等一等,然后過(guò)一段時(shí)間我再來(lái)聽(tīng)一下,看看能不能發(fā)送了。
802.15.4允許多個(gè)網(wǎng)絡(luò)位于同一通道上。因此,需要采取某種方式來(lái)避免來(lái)自不同網(wǎng)絡(luò)的數(shù)據(jù)包在空中碰撞而造成通信錯(cuò)誤。MAC子層使用CSMA-CA(CarrierSense Multiple Access/Collision Avoidance)控制對(duì)無(wú)線電的訪問(wèn)。避免碰撞是通過(guò)CCA(Clear Channel Assessment)完成的。
在發(fā)送之前,每個(gè)節(jié)點(diǎn)必須檢查電波是否可以正常發(fā)送(RSSI低于CCA閾值)。如果是(RSSI低于CCA閾值),則節(jié)點(diǎn)應(yīng)繼續(xù)進(jìn)行并在進(jìn)行少量隨機(jī)退避后進(jìn)行傳輸。如果CCA沒(méi)有通過(guò)(RSSI高于CCA閾值),則該節(jié)點(diǎn)應(yīng)等待多個(gè)退避周期,然后才能再次嘗試該過(guò)程。隨機(jī)退避允許多個(gè)節(jié)點(diǎn)交錯(cuò)傳輸,因此它們總是可以在某個(gè)時(shí)間點(diǎn)找到干凈的無(wú)線空間來(lái)作數(shù)據(jù)傳輸。盡管比特率很低,因?yàn)閿?shù)據(jù)包比較?。?28 bytes),即使在非常嘈雜的信道上每一個(gè)節(jié)點(diǎn)也可以成功地完成數(shù)據(jù)傳輸。
2、確認(rèn)
MAC層還為節(jié)點(diǎn)提供了一種方法,該方法可通過(guò)確認(rèn)得知節(jié)點(diǎn)已成功接收到1跳單播傳輸,并且已通過(guò)驗(yàn)證CRC保留了所傳輸消息的完整性。
多跳傳輸應(yīng)在每個(gè)跳上進(jìn)行確認(rèn)。節(jié)點(diǎn)執(zhí)行CCA檢查并發(fā)送消息后,它會(huì)等待MAC確認(rèn)。如果未收到消息,則該節(jié)點(diǎn)應(yīng)嘗試多次重發(fā)該消息,直到其最終成功或最大的重試次數(shù)已用盡。
MAC層的每一幀都是需要確認(rèn)的,實(shí)際上是在中間的每一跳都要去做這樣的確認(rèn)的。比如網(wǎng)絡(luò)中的節(jié)點(diǎn)A,需要給節(jié)點(diǎn)D發(fā)送一個(gè)報(bào)文,這個(gè)通信通常是在應(yīng)用層進(jìn)行的,也就是A的應(yīng)用層要發(fā)一個(gè)包到D的應(yīng)用層,因?yàn)锳和D隔得比較遠(yuǎn),中間需要經(jīng)過(guò)幾個(gè)中間節(jié)點(diǎn),這種情況下數(shù)據(jù)報(bào)文的傳輸過(guò)程:
(1)應(yīng)用層發(fā)一個(gè)包交給網(wǎng)絡(luò)層,然后交給MAC層,最后通過(guò)物理層發(fā)出去
(2)中間節(jié)點(diǎn)B收到之后,會(huì)立馬發(fā)一個(gè)MAC層的Ack表示已經(jīng)收到了
(3)節(jié)點(diǎn)B的網(wǎng)絡(luò)層收到這個(gè)包之后發(fā)現(xiàn)目的地址不是自己,就把這個(gè)包轉(zhuǎn)給下一跳(節(jié)點(diǎn)C),后續(xù)節(jié)點(diǎn)都會(huì)執(zhí)行和B一樣的流程,直到轉(zhuǎn)到目的地
(4)當(dāng)這個(gè)包到達(dá)目的節(jié)點(diǎn)之后,在節(jié)點(diǎn)D的APS層收到之后,會(huì)最終給一個(gè)端到端的一個(gè)Ack給原始節(jié)點(diǎn)A
由此可見(jiàn),在MAC層是逐跳的確認(rèn),在APS層是端到端的確認(rèn)
如果說(shuō)節(jié)點(diǎn)A發(fā)給節(jié)點(diǎn)B的時(shí)候,MAC層發(fā)現(xiàn)沒(méi)有收到這個(gè)MAC層的確認(rèn),就需要在MAC去重傳。如果最終發(fā)現(xiàn)一段時(shí)間之后,沒(méi)有收到目的節(jié)點(diǎn)給它發(fā)APS Ack,最終在APS層也會(huì)有一個(gè)重傳。
3、MAC幀
下圖演示了MAC幀格式(ZigBee的幀格式)。
前面的Preamble、SPD和PHY header這些字段都是在物理層由硬件添加的。其中PHY header(物理層頭部)是一個(gè)字節(jié),這個(gè)字節(jié)的最高bit預(yù)留做其他的用途,剩余的7個(gè)bit用于表示這個(gè)MAC幀的長(zhǎng)度,最多能夠表示的長(zhǎng)度是127。也就是MAC層最大的幀長(zhǎng)度是127個(gè)字節(jié)。
在MAC header中有一個(gè)2個(gè)字節(jié)的Frame control字段,該字段的0~2位會(huì)標(biāo)識(shí)出這個(gè)幀的類(lèi)型,主要有4種類(lèi)型的幀:
(1) Beacon :信標(biāo),用于掃描網(wǎng)絡(luò)
(2) Data :數(shù)據(jù),用于從更高層傳輸數(shù)據(jù)
(3) ACK :確認(rèn)
(4) MAC Command :MAC層的命令,包括設(shè)備入網(wǎng)時(shí)使用的一些命令,比如MAC Association這些命令。
在每個(gè)MAC幀的末尾,有兩個(gè)字節(jié)的CRC用于驗(yàn)證數(shù)據(jù)包的完整性。無(wú)線信號(hào)在空中傳播容易受到干擾,導(dǎo)致某些比特變化了,這個(gè)時(shí)候CRC就會(huì)不對(duì)了,這個(gè)幀就會(huì)被丟棄掉了。
1.2.4 網(wǎng)絡(luò)層
在這里,我們將介紹ZigBee網(wǎng)絡(luò)的一些基本概念,包括:
設(shè)備類(lèi)型
網(wǎng)絡(luò)地址:包括PANID和擴(kuò)展PANID
設(shè)備地址:包括節(jié)點(diǎn)編號(hào)和Eui64
1、設(shè)備類(lèi)型
IEEE-802.15.4定義了兩種設(shè)備類(lèi)型:
(1)FFD, 全功能設(shè)備,能夠執(zhí)行IEEE 802.15.4標(biāo)準(zhǔn)中描述的所有職責(zé),并且可以在網(wǎng)絡(luò)中擔(dān)任任何角色。
(2)RFD, 剪裁功能設(shè)備,功能有限。
注意:RFD設(shè)備的處理能力和內(nèi)存大小通常小于FFD設(shè)備。
在ZigBee中,存在三種設(shè)備類(lèi)型:
(1)協(xié)調(diào)器(Coordinator):他是負(fù)責(zé)創(chuàng)建網(wǎng)路的,所以他是第一個(gè)成員,所以他的地址是0x0000
(2)路由設(shè)備(Router):可以路由消息,作為網(wǎng)絡(luò)的中間節(jié)點(diǎn)來(lái)轉(zhuǎn)發(fā)消息
(3)終端設(shè)備(End Device):包括睡眠終端設(shè)備和非睡眠終端設(shè)備。作為網(wǎng)絡(luò)的邊緣節(jié)點(diǎn),必須有一個(gè)parent,必須附著在一個(gè)router或者coordinator上面。不能轉(zhuǎn)發(fā)消息,不能做路由用,不能做中間節(jié)點(diǎn)
設(shè)備類(lèi)型 | 創(chuàng)建路由 | 路由 | 供電方式 | 作為父節(jié)點(diǎn) | 備注 |
---|---|---|---|---|---|
協(xié)調(diào)器 | 是 | 是 | 主電源 | 是 | 網(wǎng)絡(luò)中只有一個(gè),節(jié)點(diǎn)ID始終為0 |
路由器 | 否 | 是 | 主電源 | 是 | |
終端節(jié)點(diǎn) | 否 | 否 | 主電源或電池 | 否 | 必須有父節(jié)點(diǎn) |
Coordinator對(duì)比Router,除了可以創(chuàng)建網(wǎng)絡(luò)之外,其余功能是一樣的。每個(gè)設(shè)備入網(wǎng)后,都會(huì)廣播發(fā)出一個(gè)Announce報(bào)文,通知所有的設(shè)備,我加入這個(gè)網(wǎng)絡(luò)了。
2、網(wǎng)絡(luò)地址
ZigBee是一個(gè)低速率的通信技術(shù),本身最大的數(shù)據(jù)傳輸速率就只有250Kbps,并且在實(shí)際傳輸?shù)臅r(shí)候有MAC層頭部、網(wǎng)絡(luò)層頭部,還有各種安全控制的字段等等,導(dǎo)致的后果就是真正有效的數(shù)據(jù)載荷占比比較低。這種情況下,如果每次通信仍然使用這個(gè)64 bit的PAN ID,就會(huì)導(dǎo)致有效載荷占比進(jìn)一步降低。所以大部分時(shí)候的通信都是使用16 bit的PAN ID來(lái)標(biāo)識(shí)目的網(wǎng)絡(luò),可以改善這種情況。僅在回復(fù)節(jié)點(diǎn)掃描請(qǐng)求入網(wǎng)的Beacon Request的Beacon報(bào)文中,或是進(jìn)行PAN ID更新時(shí),才會(huì)在報(bào)文中使用擴(kuò)展的PAN ID。
PAN,又稱(chēng)個(gè)人區(qū)域網(wǎng)絡(luò),通過(guò)其PAN ID與其他網(wǎng)絡(luò)分開(kāi)。這是同一PAN中所有節(jié)點(diǎn)將共享的16位標(biāo)識(shí)符。因此,這與以太網(wǎng)世界中的子網(wǎng)掩碼類(lèi)似,因?yàn)槟ǔV慌c本地網(wǎng)絡(luò)內(nèi)的設(shè)備通信,在這種情況下為PAN。該標(biāo)識(shí)符放置在每個(gè)傳出數(shù)據(jù)包中的低層MAC層標(biāo)頭中,它使接收該數(shù)據(jù)包的設(shè)備可以過(guò)濾出與他們的網(wǎng)絡(luò)無(wú)關(guān)的消息。他們可以將其與自己的PAN ID進(jìn)行比較,并確定這是來(lái)自自己網(wǎng)絡(luò)中某人的消息,還是來(lái)自恰好在此信道上的其他網(wǎng)絡(luò)中的某人的消息,因此無(wú)需嘗試解碼或解密。0xFFFF這個(gè)PANID用于廣播,那么所有網(wǎng)絡(luò)都能收得到。
PAN ID由協(xié)調(diào)器在網(wǎng)絡(luò)創(chuàng)建時(shí)隨機(jī)生成,或者在創(chuàng)建網(wǎng)絡(luò)的時(shí)候由用戶指定。因?yàn)镻AN ID是一個(gè)網(wǎng)絡(luò)與另一個(gè)網(wǎng)絡(luò)之間的區(qū)別因素,所以它應(yīng)該是隨機(jī)的以確保其唯一性。建議您為PAN ID選擇一個(gè)隨機(jī)的16位值,以防止您的網(wǎng)絡(luò)與該區(qū)域中碰巧存在的任何其他網(wǎng)絡(luò)重合。
現(xiàn)在,如果您碰巧選擇了另一個(gè)網(wǎng)絡(luò)已經(jīng)使用的PAN ID,該怎么辦?或者,如果您確實(shí)選擇了一個(gè)與任何其他網(wǎng)絡(luò)都沒(méi)有沖突的隨機(jī)PANID,但后來(lái)又有另一個(gè)網(wǎng)絡(luò)與您的網(wǎng)絡(luò)重疊,該怎么辦?如果曾經(jīng)發(fā)生過(guò)PAN ID沖突,則協(xié)議棧實(shí)際上可以檢測(cè)到這種沖突并可以自動(dòng)更新其PAN ID,并通知其網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都移至新的PAN ID,以便每個(gè)節(jié)點(diǎn)可以繼續(xù)與原始網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行通信,并排除沖突網(wǎng)絡(luò)上的任何節(jié)點(diǎn)。如果PAN ID沖突,我們需要使用擴(kuò)展的PAN ID來(lái)區(qū)分網(wǎng)絡(luò)。
擴(kuò)展PAN ID是PAN中所有節(jié)點(diǎn)都知道的另一個(gè)網(wǎng)絡(luò)標(biāo)識(shí)符。正常的短16位PAN ID由于簡(jiǎn)短,在空中傳輸?shù)乃袛?shù)據(jù)包中都有包含,但64位擴(kuò)展PAN ID很少通過(guò)空中傳輸。擴(kuò)展的PAN ID對(duì)于每個(gè)PAN也是唯一的,當(dāng)16位PAN ID不足以始終將一個(gè)網(wǎng)絡(luò)與另一個(gè)網(wǎng)絡(luò)區(qū)分開(kāi)時(shí),它基本上用作備份標(biāo)準(zhǔn)。例如,當(dāng)發(fā)生PAN ID沖突并且您要通知網(wǎng)絡(luò)中的所有設(shè)備更新PAN ID時(shí),將網(wǎng)絡(luò)與沖突的網(wǎng)絡(luò)區(qū)分開(kāi)的方式是,網(wǎng)絡(luò)中的這些設(shè)備都共享相同的擴(kuò)展PAN ID。擴(kuò)展PAN ID極不可能發(fā)生沖突,因?yàn)榕c短PAN ID中的16位相比,它具有64位。
擴(kuò)展的PAN ID由協(xié)調(diào)器在網(wǎng)絡(luò)創(chuàng)建時(shí)隨機(jī)生成。這也是允許您選擇網(wǎng)絡(luò)的有用因素。如果您嘗試加入一個(gè)網(wǎng)絡(luò)而不是創(chuàng)建一個(gè)網(wǎng)絡(luò),那么您可能想知道如何判斷哪些網(wǎng)絡(luò)可用。網(wǎng)絡(luò)之間可區(qū)分的方式不僅在PAN ID中,而且在擴(kuò)展的PAN ID中。您可能想做一些特別的事情,決定只使用擴(kuò)展PAN ID的特定子集,以便您可以將網(wǎng)絡(luò)與其他網(wǎng)絡(luò)區(qū)分開(kāi)來(lái),但不要太限制自己,因?yàn)槟拗频迷蕉嗄l(fā)生沖突的可能性就越大,并且如果您的擴(kuò)展PAN ID曾經(jīng)發(fā)生沖突,您實(shí)際上無(wú)能為力。它有點(diǎn)像WiFi SSID,不同之處在于WiFi網(wǎng)絡(luò)之間的SSID可以相同,而ZigBee不同網(wǎng)絡(luò)間的擴(kuò)展PAN ID則不能相同。
3、節(jié)點(diǎn)地址
除了其網(wǎng)絡(luò)范圍的標(biāo)準(zhǔn)外,一個(gè)節(jié)點(diǎn)還通過(guò)其單獨(dú)的節(jié)點(diǎn)地址與另一個(gè)節(jié)點(diǎn)區(qū)分開(kāi)。節(jié)點(diǎn)具有短地址和長(zhǎng)地址。長(zhǎng)地址是IEEE分配的MAC地址或EUI-64,稱(chēng)為IEEE地址或MAC地址。它是一個(gè)全球唯一的64位地址,這意味著世界上沒(méi)有兩個(gè)基于IEEE的無(wú)線電設(shè)備具有相同的EUI-64。通常在制造時(shí)分配。芯片在出廠之前,它們會(huì)被分配(IEEE會(huì)給芯片廠商分配不同的地址范圍),并且它們永遠(yuǎn)不會(huì)改變。它用來(lái)區(qū)分不同的無(wú)線設(shè)備。但是因?yàn)?4位是相對(duì)比較大的數(shù)據(jù)量,所以這個(gè)長(zhǎng)地址不是經(jīng)常通過(guò)空中發(fā)送的。
在大多數(shù)情況下,為了提供通信的效率,更短的16位地址是通過(guò)無(wú)線方式使用的。這被稱(chēng)為Short ID或Node ID,在網(wǎng)絡(luò)中是唯一的,類(lèi)似于以太網(wǎng)世界中的IP地址。它是在節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)時(shí)由他的父節(jié)點(diǎn)分配的,并且在該網(wǎng)絡(luò)內(nèi)應(yīng)該是唯一的??赡苡袃蓚€(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)都有一個(gè)具有相同節(jié)點(diǎn)ID的節(jié)點(diǎn),但是因?yàn)樗鼈兾挥诓煌腜AN中,所以沒(méi)有關(guān)系。
請(qǐng)注意,短地址有可能會(huì)發(fā)生變化,因?yàn)橛锌赡軙?huì)產(chǎn)生沖突。兩個(gè)節(jié)點(diǎn)在進(jìn)入網(wǎng)絡(luò)時(shí)可能選擇了相同的隨機(jī)節(jié)點(diǎn)ID。如果發(fā)生這種情況,就像PAN ID方案一樣,有一種解決沖突的方法。當(dāng)節(jié)點(diǎn)注意到?jīng)_突時(shí),基于EUI-64信息作為后備,它們可以商定新地址。因此,如果需要,節(jié)點(diǎn)可以根據(jù)沖突在運(yùn)行時(shí)更改地址。
1.2.5 應(yīng)用層
在應(yīng)用層中,可以通過(guò)實(shí)現(xiàn)多個(gè)Endpoint將物理設(shè)備拆分為多個(gè)邏輯設(shè)備。每個(gè)Endpoint代表一個(gè)邏輯設(shè)備。例如,如果我們有一個(gè)帶有6個(gè)插座的智能插座適配器。我們可以使用6個(gè)Endpoint來(lái)實(shí)現(xiàn)它,以便我們可以分別打開(kāi)/關(guān)閉每個(gè)插座。
(1)Endpoint ID是一個(gè)8位的值,范圍從0到255。
(2)Endpoint 0保留給ZigBee設(shè)備對(duì)象,主要用于管理目的。
(3)用戶應(yīng)用程序可以使用Endpoint1至239。
(4)Endpoint 240到254保留用于特殊應(yīng)用。像ZigBee Green Power一樣,使用專(zhuān)用Endpoint 242。
(5)Endpoint 255用于廣播,所有的Endpoint都能收到
應(yīng)用層的通信模型實(shí)際上是通信雙方Endpoint之間的通信,一側(cè)的Endpoint作為Client,另一側(cè)的Endpoint作為Server。Client和Server之間通信的內(nèi)容和格式,是由Cluster來(lái)定義的。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46156瀏覽量
391169 -
無(wú)線技術(shù)
+關(guān)注
關(guān)注
13文章
904瀏覽量
55827 -
WAN
+關(guān)注
關(guān)注
1文章
153瀏覽量
19308
發(fā)布評(píng)論請(qǐng)先 登錄

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-01 開(kāi)發(fā)環(huán)境iar10.20的安裝和hex的下載-1

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-01 開(kāi)發(fā)環(huán)境iar10.20的安裝和hex的下載-2

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-01 開(kāi)發(fā)環(huán)境iar10.20的安裝和hex的下載-3

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-01 開(kāi)發(fā)環(huán)境iar10.20的安裝和hex的下載-4

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-09 基于AF單播發(fā)送數(shù)據(jù)-1

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-09 基于AF單播發(fā)送數(shù)據(jù)-4

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-09 基于AF單播發(fā)送數(shù)據(jù)-5

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-11 基于AF組播發(fā)送數(shù)據(jù)-2



#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-14 ZCL命令收發(fā)控制和獲取地址-3

#硬聲創(chuàng)作季 #ZigBee ZigBee3.0-14 ZCL命令收發(fā)控制和獲取地址-5
請(qǐng)問(wèn)新人該怎么學(xué)習(xí)zigbee ?直接上手zigbee3.0么?
ZigBee3.0數(shù)據(jù)包解析

評(píng)論