【無(wú)線知識(shí)庫(kù)】全面解析Zigbee標(biāo)準(zhǔn)沿革及網(wǎng)絡(luò)創(chuàng)建技巧

什么是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ù),通常傳輸距離超過1 km,因此它們主要用于廣域網(wǎng)(WAN)。
- 對(duì)于Wi-Fi,藍(lán)牙,BLE,Zigbee和Zwave等無(wú)線技術(shù),通常的傳輸距離小于1公里,因此它們主要用于個(gè)人局域網(wǎng)(PAN)。
- 短距離 – 無(wú)線覆蓋范圍在10到100米之間。
- 低數(shù)據(jù)速率 – 最大數(shù)據(jù)速率為250 Kbps。
- 低功耗 – 處于睡眠狀態(tài)的Endpoint設(shè)備在睡眠模式下可以使用低于5uA的電流;
- 這是一種網(wǎng)狀技術(shù) – 網(wǎng)絡(luò)可以輕松擴(kuò)展到很大。理論上最大節(jié)點(diǎn)數(shù)為65535。

Zigbee是Zigbee聯(lián)盟發(fā)布和修訂的開放標(biāo)準(zhǔn)。歷史悠久。從很早開始,Silicon Labs(亦稱“芯科科技”)就致力于Zigbee技術(shù)。Silicon Labs的Zigbee技術(shù)來(lái)自Ember,Ember是一家自成立以來(lái)就開始研究Zigbee的公司。2012年,Silicon Labs收購(gòu)了Ember,并繼續(xù)提供Zigbee產(chǎn)品和解決方案。?Zigbee協(xié)議概述
- 物理層和MAC層由IEEE-802.15.4定義。物理層負(fù)責(zé)無(wú)線電管理,包括諸如調(diào)制/解調(diào),信號(hào)強(qiáng)度檢測(cè)等功能。MAC層負(fù)責(zé)單跳通信。
- 網(wǎng)絡(luò)層負(fù)責(zé)消息的發(fā)送和接收,設(shè)備維護(hù),路由等。
- 應(yīng)用程序支持層(APS)負(fù)責(zé)端到端消息的傳輸。
- 應(yīng)用層留給用戶設(shè)計(jì)。每個(gè)應(yīng)用程序?qū)嵗Q為一個(gè)Endpoint。為管理功能保留了一個(gè)特殊的Endpoint,即Endpoint 0。我們也將此管理功能模型稱為Zigbee設(shè)備對(duì)象(ZDO)。
- 在APS層和網(wǎng)絡(luò)層中,有一些安全功能可用于保護(hù)網(wǎng)絡(luò)免遭黑客攻擊。
下圖顯示了如何在網(wǎng)絡(luò)層中保護(hù)不安全的網(wǎng)絡(luò)幀。

首先,網(wǎng)絡(luò)有效負(fù)載將被加密。之后,將在加密的有效負(fù)載之前添加安全標(biāo)頭。然后根據(jù)網(wǎng)絡(luò)標(biāo)頭,安全標(biāo)頭和加密的有效負(fù)載來(lái)計(jì)算哈希值。最后,將32位哈希值附加到幀的末尾。如果更改了網(wǎng)絡(luò)標(biāo)頭,安全標(biāo)頭和加密的有效負(fù)載中的任何字節(jié),則哈希值將不同。我們將此值稱為MIC,是消息完整性檢查的縮寫。?網(wǎng)絡(luò)加密使用對(duì)稱加密算法(AES128),這意味著使用相同的密鑰進(jìn)行加密和解密。該密鑰稱為Network Key。由于它是一種對(duì)稱加密算法,因此同一Zigbee網(wǎng)絡(luò)中的所有設(shè)備都將使用相同的Network Key。?在網(wǎng)絡(luò)安全標(biāo)頭中,添加了“幀計(jì)數(shù)器”的字段和加密信息節(jié)點(diǎn)的源Eui64,以防止重發(fā)攻擊。還添加了密鑰序列號(hào)以支持Network Key更新。?創(chuàng)建Zigbee網(wǎng)絡(luò)首先,由協(xié)調(diào)器創(chuàng)建一個(gè)網(wǎng)絡(luò),您必須準(zhǔn)備4個(gè)參數(shù):
- PAN ID
- 擴(kuò)展 PAN ID
- 工作頻道
- 發(fā)射功率

您需要指定這四個(gè)參數(shù)。如果您不這樣做,協(xié)調(diào)器將隨機(jī)選擇一個(gè)PAN ID和一個(gè)擴(kuò)展的PAN ID。如果您未指定頻道,則協(xié)調(diào)器將掃描并選擇一個(gè)相對(duì)安靜的頻道進(jìn)行工作。網(wǎng)絡(luò)創(chuàng)建后,新設(shè)備可以開始加入。
- 新設(shè)備將開始查找可連接的網(wǎng)絡(luò)。在此階段,新設(shè)備將在每個(gè)通道上發(fā)送信標(biāo)請(qǐng)求。
- 路由器和協(xié)調(diào)器將使用信標(biāo)幀中攜帶的網(wǎng)絡(luò)信息來(lái)響應(yīng)信標(biāo)。這些信息包括PAN ID,擴(kuò)展PAN ID以及路由器或協(xié)調(diào)器的其他一些屬性,例如設(shè)備是否允許連接,設(shè)備是否具有允許新設(shè)備連接的能力。
- 新設(shè)備可以從不同設(shè)備接收多個(gè)信標(biāo)。它將選擇信號(hào)質(zhì)量最好的一個(gè),并開始發(fā)送關(guān)聯(lián)請(qǐng)求。在該關(guān)聯(lián)請(qǐng)求中,將PAN ID設(shè)置為所選的PAN,并將目標(biāo)節(jié)點(diǎn)ID設(shè)置為所選設(shè)備的節(jié)點(diǎn)ID。在此框架中,將繼續(xù)使用新設(shè)備的功能。
- 當(dāng)路由器或協(xié)調(diào)器收到此關(guān)聯(lián)請(qǐng)求時(shí),它將為新設(shè)備選擇一個(gè)節(jié)點(diǎn)ID,并以關(guān)聯(lián)響應(yīng)進(jìn)行響應(yīng)。然后,新設(shè)備獲得了其節(jié)點(diǎn)ID,但由于未獲得安全密鑰而無(wú)法與其他節(jié)點(diǎn)通信。
- 協(xié)調(diào)器會(huì)將當(dāng)前的NWK密鑰傳輸?shù)叫略O(shè)備。該傳輸消息在應(yīng)用程序?qū)又惺褂靡阎?/strong>Link key加密。
- 當(dāng)新設(shè)備收到此消息時(shí),它將使用已知的Link key對(duì)消息解密并獲取Network Key。之后,該設(shè)備實(shí)際上已加入網(wǎng)絡(luò),并能夠與網(wǎng)絡(luò)中的所有其他節(jié)點(diǎn)通信。
- 設(shè)備將發(fā)送一條通知消息,以通知網(wǎng)絡(luò)的其他節(jié)點(diǎn),以通知他們我已加入。
使用Install Code派生的Link key加入

- 在出廠之前,應(yīng)該已經(jīng)使用Install Code碼對(duì)新設(shè)備進(jìn)行了編程。
- 在加入之前,用戶需要獲取新設(shè)備的Install Code和Eui64,然后在協(xié)調(diào)器上對(duì)其進(jìn)行配置。
- 然后,協(xié)調(diào)器從Install Code中獲取Link key,并將協(xié)調(diào)器設(shè)置為使用此Link key來(lái)加密此新設(shè)備的傳輸NWK密鑰消息。
掃描以下二維碼,關(guān)注Silicon Labs社交媒體平臺(tái)


