【無線知識庫】全面解析Zigbee標準沿革及網(wǎng)絡(luò)創(chuàng)建技巧
什么是Zigbee?隨著物聯(lián)網(wǎng)(IoT)行業(yè)的發(fā)展,越來越多的無線技術(shù)應(yīng)運而生。眾所周知,在物聯(lián)網(wǎng)行業(yè)中,我們有兩種典型的網(wǎng)絡(luò)。一個是WAN(廣域網(wǎng)),另一個是PAN(個人區(qū)域網(wǎng))。
- 對于LoRa,NB-IoT,2G / 3G / 4G等無線技術(shù),通常傳輸距離超過1 km,因此它們主要用于廣域網(wǎng)(WAN)。
- 對于Wi-Fi,藍牙,BLE,Zigbee和Zwave等無線技術(shù),通常的傳輸距離小于1公里,因此它們主要用于個人局域網(wǎng)(PAN)。
- 短距離 – 無線覆蓋范圍在10到100米之間。
- 低數(shù)據(jù)速率 – 最大數(shù)據(jù)速率為250 Kbps。
- 低功耗 – 處于睡眠狀態(tài)的Endpoint設(shè)備在睡眠模式下可以使用低于5uA的電流;
- 這是一種網(wǎng)狀技術(shù) – 網(wǎng)絡(luò)可以輕松擴展到很大。理論上最大節(jié)點數(shù)為65535。
?
Zigbee是Zigbee聯(lián)盟發(fā)布和修訂的開放標準。歷史悠久。從很早開始,Silicon Labs(亦稱“芯科科技”)就致力于Zigbee技術(shù)。Silicon Labs的Zigbee技術(shù)來自Ember,Ember是一家自成立以來就開始研究Zigbee的公司。2012年,Silicon Labs收購了Ember,并繼續(xù)提供Zigbee產(chǎn)品和解決方案。?Zigbee協(xié)議概述
- 物理層和MAC層由IEEE-802.15.4定義。物理層負責(zé)無線電管理,包括諸如調(diào)制/解調(diào),信號強度檢測等功能。MAC層負責(zé)單跳通信。
- 網(wǎng)絡(luò)層負責(zé)消息的發(fā)送和接收,設(shè)備維護,路由等。
- 應(yīng)用程序支持層(APS)負責(zé)端到端消息的傳輸。
- 應(yīng)用層留給用戶設(shè)計。每個應(yīng)用程序?qū)嵗Q為一個Endpoint。為管理功能保留了一個特殊的Endpoint,即Endpoint 0。我們也將此管理功能模型稱為Zigbee設(shè)備對象(ZDO)。
- 在APS層和網(wǎng)絡(luò)層中,有一些安全功能可用于保護網(wǎng)絡(luò)免遭黑客攻擊。
下圖顯示了如何在網(wǎng)絡(luò)層中保護不安全的網(wǎng)絡(luò)幀。
首先,網(wǎng)絡(luò)有效負載將被加密。之后,將在加密的有效負載之前添加安全標頭。然后根據(jù)網(wǎng)絡(luò)標頭,安全標頭和加密的有效負載來計算哈希值。最后,將32位哈希值附加到幀的末尾。如果更改了網(wǎng)絡(luò)標頭,安全標頭和加密的有效負載中的任何字節(jié),則哈希值將不同。我們將此值稱為MIC,是消息完整性檢查的縮寫。?網(wǎng)絡(luò)加密使用對稱加密算法(AES128),這意味著使用相同的密鑰進行加密和解密。該密鑰稱為Network Key。由于它是一種對稱加密算法,因此同一Zigbee網(wǎng)絡(luò)中的所有設(shè)備都將使用相同的Network Key。?在網(wǎng)絡(luò)安全標頭中,添加了“幀計數(shù)器”的字段和加密信息節(jié)點的源Eui64,以防止重發(fā)攻擊。還添加了密鑰序列號以支持Network Key更新。?創(chuàng)建Zigbee網(wǎng)絡(luò)首先,由協(xié)調(diào)器創(chuàng)建一個網(wǎng)絡(luò),您必須準備4個參數(shù):
- PAN ID
- 擴展 PAN ID
- 工作頻道
- 發(fā)射功率
您需要指定這四個參數(shù)。如果您不這樣做,協(xié)調(diào)器將隨機選擇一個PAN ID和一個擴展的PAN ID。如果您未指定頻道,則協(xié)調(diào)器將掃描并選擇一個相對安靜的頻道進行工作。網(wǎng)絡(luò)創(chuàng)建后,新設(shè)備可以開始加入。
- 新設(shè)備將開始查找可連接的網(wǎng)絡(luò)。在此階段,新設(shè)備將在每個通道上發(fā)送信標請求。
- 路由器和協(xié)調(diào)器將使用信標幀中攜帶的網(wǎng)絡(luò)信息來響應(yīng)信標。這些信息包括PAN ID,擴展PAN ID以及路由器或協(xié)調(diào)器的其他一些屬性,例如設(shè)備是否允許連接,設(shè)備是否具有允許新設(shè)備連接的能力。
- 新設(shè)備可以從不同設(shè)備接收多個信標。它將選擇信號質(zhì)量最好的一個,并開始發(fā)送關(guān)聯(lián)請求。在該關(guān)聯(lián)請求中,將PAN ID設(shè)置為所選的PAN,并將目標節(jié)點ID設(shè)置為所選設(shè)備的節(jié)點ID。在此框架中,將繼續(xù)使用新設(shè)備的功能。
- 當路由器或協(xié)調(diào)器收到此關(guān)聯(lián)請求時,它將為新設(shè)備選擇一個節(jié)點ID,并以關(guān)聯(lián)響應(yīng)進行響應(yīng)。然后,新設(shè)備獲得了其節(jié)點ID,但由于未獲得安全密鑰而無法與其他節(jié)點通信。
- 協(xié)調(diào)器會將當前的NWK密鑰傳輸?shù)叫略O(shè)備。該傳輸消息在應(yīng)用程序?qū)又惺褂靡阎?/strong>Link key加密。
- 當新設(shè)備收到此消息時,它將使用已知的Link key對消息解密并獲取Network Key。之后,該設(shè)備實際上已加入網(wǎng)絡(luò),并能夠與網(wǎng)絡(luò)中的所有其他節(jié)點通信。
- 設(shè)備將發(fā)送一條通知消息,以通知網(wǎng)絡(luò)的其他節(jié)點,以通知他們我已加入。
使用Install Code派生的Link key加入
- 在出廠之前,應(yīng)該已經(jīng)使用Install Code碼對新設(shè)備進行了編程。
- 在加入之前,用戶需要獲取新設(shè)備的Install Code和Eui64,然后在協(xié)調(diào)器上對其進行配置。
- 然后,協(xié)調(diào)器從Install Code中獲取Link key,并將協(xié)調(diào)器設(shè)置為使用此Link key來加密此新設(shè)備的傳輸NWK密鑰消息。
掃描以下二維碼,關(guān)注Silicon Labs社交媒體平臺