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