小白也能读懂的 ZigBee 3.0 简介
——作者簡介 Michael
- 前綠米(小米)資深嵌入式軟件工程師,7年以上開發經驗,曾開發過小米米家網關系統、小米全屋智能家庭中樞M1S等物聯網項目;
- 尤其擅長ZigBee、BLE Mesh、WiFi、NB-IoT、2G/4G/5G等主流IoT通信協議以及相關開源庫的裁剪;
——視頻講解:點擊觀看
——深入學習ZigBee技術:點擊學習
ZigBee 3.0 簡介 文章目錄
- 一. ZigBee 簡介
- 1.誕生原因
- 2.簡介
- 3.與藍牙Mesh、藍牙和WiFi的對比
- 二.物理層與MAC層
- 1.IEEE 802.15.4協議簡介
- 2.IEEE 802.15.4物理層
- 3.IEEE 802.15.4 MAC層
- 三.網絡層
- 1.網絡層的主要工作內容
- 2.網絡層的歷史
- 四.應用層
- 1.應用層簡介
- 2.應用協議的發展
- 五.技術方案商的簡介與發展
- 主流的ZigBee技術方案商簡介
- ——Texas Instruments
- ——NXP Semiconductors
- ——Silicon Laboratories
- 六.技術方案商的對比
- 主流的ZigBee技術方案商的對比
- 非主流的ZigBee技術方案商
- 七.TI的ZigBee技術方案的發展歷史
- 八.小結
一. ZigBee 簡介
1.誕生原因
在應用藍牙技術的過程中,人們發現盡管它有許多優點,但是對于自動化控制和遠程控制領域而言,它顯得復雜度太高、功耗太大、時延太高以及可靠性太低等,并且工業領域的無線通信對可靠性的要求更高,需要抵抗工業場景中的各種電磁干擾。
由于藍牙、WiFi等技術并不能很好地滿足這些要求,因此ZigBee協議應運而生。
2.簡介
ZigBee是由ZigBee聯盟設計的一種低功耗、低時延、高可靠性和短距離的無線通信網絡協議。
主要適用于自動化控制和遠程控制等領域,可嵌入到各種小型設備之中,目前已經被飛利浦、小米、谷歌、宜家和三星等各大公司所采用,廣泛應用于智能家居、工業自動化、智慧城市以及智慧農業等行業。
舉個在智能家居方面的例子,ZigBee無線通信技術被廣泛應用在智能門鎖、智能燈、智能開關、智能插座、智能傳感器和各種智能生活電器之中,使其具備無線通信能力,從而可以實現包括人走了自動關門關窗關家電、溫度高自動開空調和下雨自動收衣服等自動化控制功能。
接下來對ZigBee的各個特性展開介紹一下。
-
ZigBee協議由于通信速率低、復雜度低以及劃分工作狀態和睡眠狀態等,因此非常低功耗,例如市面上的一些ZigBee無線按鈕僅使用紐扣電池就可以正常使用2兩年,這是藍牙和WiFi所無法比擬的。
-
ZigBee的響應時延低,網絡節點從睡眠狀態切換到工作狀態只需要約15毫秒,并且加入到網絡中只需要約30毫秒。
-
ZigBee通過支持多種網絡拓撲結構、大規模組網、自組網以及靈活的數據安全策略等多種功能提供了高可靠性的網絡通信服務,確保了通信的穩定性。(下文會展開講解)
-
相鄰的兩個ZigBee節點之間的通信距離在10米到200米之間,也可以通過技術手段擴展到1千米左右,例如使用膠狀天線、棒狀天線,又或者使用功率放大芯片等。
如果讀者曾經了解過經典的TCP/IP協議,那么可以用類比的方式來理解ZigBee協議層次。與TCP/IP協議類似,ZigBee協議可以劃分為物理層、MAC層、網絡層和應用層4個邏輯層次,各個層次各司其職。
3.與藍牙Mesh、藍牙和WiFi的對比
本節正在更新中,可在評論區催更。
二.物理層與MAC層
1.IEEE 802.15.4協議簡介
要討論 ZigBee 技術,自然繞不開 IEEE 802.15.4協議,因為ZigBee的 物理層和MAC層就是 IEEE 802.15.4 協議(本書深入篇會詳細介紹此協議)。
IEEE 是一個組織,叫作“電氣和電子工程師協會”, 802.15 是這個協會里面的一個部門,部門里的第 4 工作組開發了一個協議,就叫 IEEE 802.15.4協議。這個協議是專門為低速無線個人區域網絡WPAN而設計的,具有超低復雜度、超低功耗、低數據傳輸率的特點。
2.IEEE 802.15.4物理層
IEEE 802.15.4的物理層作為Zigbee協議結構的最低層,提供了最基礎的服務,包括:
- 激活和休眠射頻收發器
- 信道能量檢測(Energy Detect)
- 檢測接收到的數據包的鏈路質量指示(Link Quality Indication)
- 空閑信道評估(Clear Channel Assessment)
- 收發數據
- ······
這里涉及到多個可能令人費解的專業名詞,甚至很多專業人士也不容易解釋清楚他們的具體含義,作為ZigBee技術的應用開發者,暫時無需弄清楚具體含義,只需通俗地理解物理層的主要作用是將一個設備的數據轉換為電磁波信號之后通過物理介質發送到另一個設備,再由另一個設備解讀電磁波信號獲取數據。
IEEE 802.15.4提供了基于2.4GHz、868MHz以及915MHz電磁波頻帶的3兩種物理層協議。在世界各地均能使用2.4GHz,但是868MHz和915MHz是有地域限制的。它們之間基本區別就是通頻帶不同,以及由此而帶來的通信速率不同:2.4GHz物理層支持240kb/s的數據率,而868MHz和915MHz物理層的數據率分別是20kb/s和40kb/s。
3.IEEE 802.15.4 MAC層
由于電磁波和物理介質的物理特性所限制,同一物理通信資源在同一時刻只能被一個網絡設備占用來發送數據,如果有多個網絡設備都要發送數據,那么需要怎么控制它們有序地占用物理通信資源來發送數據呢?
為了解決這個問題,媒體接入控制層(MAC,Media Access Control)應運而生。
IEEE 802.15.4的MAC層,即媒體接入控制層,是建立在物理層之上,它不關心數據是怎么轉換成電磁波信號、電磁波的頻率是多少等,它只關心自己負責那部分,也就是:
- 第1,將設備劃分為協調器和普通設備;
- 第2,協調器產生并發送信標幀,普通設備根據協調器的信標幀與協調器同步;
- 第3,個域網的關聯和取消關聯;
- 第4,確保無線信道的通信安全;
- 第5,支持帶有沖突避免的載波偵聽多路訪問(CSMA/CA);
- 第6,提供時槽保障(GTS,Guaranteed Time Slot)服務;
- 第7,提供不同設備之間的MAC層的可靠傳輸服務。
同樣地,我們暫時只需通俗地理解MAC層的主要作用是控制多個網絡設備有序地利用物理通信資源來進行可靠通信。
三.網絡層
1.網絡層的主要工作內容
ZigBee網絡層基于IEEE 802.15.4協議之上,是ZigBee協議的核心部分,所以人們也通俗地稱為“核心協議”,它主要負責3方面的工作:
第1方面,負責多個設備之間的組網,即星狀網絡、樹狀網絡和網狀網絡的構建與維護。
處于網絡中的設備我們們可以通俗地稱為“網絡節點”。ZigBee 網絡節點有以下3種類型:
- 協調器(Coordinator):充當ZigBee網絡的網關(中心節點)角色,通常負責ZigBee協議與NB-IoT、WiFi等其他協議的轉換、在特定的信道組建網絡等,同時具備路由器的功能。
- 路由器(Router):又稱為中繼器,負責數據路由。所有的終端設備都需要通過協調器或者路由器加入到網絡中。
- 終端設備(End Device):又稱為葉子節點,必須通過協調器或者路由器才能加入到ZigBee網絡中。例如在智能家居場景中,終端設備通常就是是溫濕度傳感器、無線開關按鈕或者各種生活電器等等。
ZigBee組網有3個主要特性;
-
第1,支持構建和維護超過10,000個網絡節點的網狀網絡,遠遠超過藍牙的8個和WiFi的32個。
它的好處在于:
一方面可以讓更多設備加入到自動化控制和遠程控制中,設備數量上的局限不復存在;
另一方面,在網狀網絡中,兩個網絡節點之間有1條或以上的通信鏈路,可以提供多通道通信服務。在復雜的工業場景下,往往不能保證每條無線網絡通信鏈路始終暢通,多通道通信能夠使得當某條鏈路堵塞后使用其他鏈路來通信,確保了通信的穩定性。 -
第2,支持動態路由,即根據各個網絡節點的實時狀態來動態計算網絡中任意兩個節點之間的最優通信路徑。舉個例子,例如在網狀網絡的場景下,任意兩個節點之間可能有多條通信路徑,通過計算各個路徑的實時質量從而動態選擇最優的通信路徑。
-
第3,支持自組網,即在網絡節點被拆散開,因為超出通信范圍而無法通信之后,當他們再次回到通信范圍內相聚的時候,彼此之間能夠自動重新構建網絡來實現數據通信。
第2方面,負責設備之間的控制指令和設備的狀態信息等數據的傳輸,舉個例子,以空調為例,這里所說的控制指令是指空調的開關、制冷溫度設定、工作模式設定等指令;狀態信息是指空調在某個時刻的狀態,例如設定的溫度是多少、室內溫度是多少、工作模式是什么等。
第3方面,負責數據的加密解密等網絡安全管理。
從核心協議的3個主要方面的工作可以看出ZigBee就是是專門為自動化控制和遠程控制而設計的一種網絡協議。
2.網絡層的歷史
到現在為止,ZigBee聯盟總共發布了多個核心協議版本,我們分別簡單了解一下。
-
ZigBee 2004這個版本也被稱為 ZigBee 1.0,主要是實現了一些基礎的網絡層功能。
-
值得注意的是,ZigBee 2006版本并不兼容 2004,也就是說 2004 版本直接成為歷史,2006 版本支持構建樹狀網絡和網狀網絡,并且引入集群(Cluster Library)的概念。集群的具體含義,我們在后面章節再展開描述。
-
ZigBee 2007版本其實也是在 2006 年發布的,設計的初衷是針對商業照明領域的。ZigBee 2007 與2006相比,主要是提升了抗干擾能力以及引入一些新的集群等。
-
ZigBee 2007 Pro在2007 年面世,目前已經被TI、Silicon Labs和NXP等多家技術方案商采用,是應用最為廣泛的版本。
-
ZigBee RF4CE版本在2009年推出,RF 指的是射頻,4 指”for”,CE是指消費電子,它的特點是主要使用 1 對 1通信以及1 對多通信。這是 ZigBee 核心協議的一個特殊分支。
四.應用層
1.應用層簡介
ZigBee應用層可以理解為一套標準規范,規定了對象的屬性和狀態等,因此我們又可以稱之為“應用協議”。舉個例子,可以規定燈這個對象具備開關這個屬性,這個屬性有“開”和“關”兩個狀態,可以用數字“1”來表示狀態開,數字“0”表示狀態關。
有了這套規范,或者說是約定,不同的ZigBee設備之間真正做到了相互理解、相互合作。應用協議是與ZigBee應用開發者最常打交道的層次。我們所說的ZigBee 技術開發,一般就是指基于ZigBee應用協議的技術開發。
2.應用協議的發展
ZigBee應用協議的發展可以大致歸納為 3 個階段。
在初始階段,由于ZigBee聯盟還沒有定義標準的應用協議,因此各大公司紛紛基于ZigBee 2007 Pro而開發各自的私有應用協議。這些私有協議之間互不兼容,這導致了一個公司的ZigBee產品不能和另一個公司的相互通信。這大大地限制ZigBee協議的發展,也與萬物互聯的理念相悖。
在第2個階段,為了解決這些兼容性問題,ZigBee聯盟根據不同的應用領域推出了不同的應用協議,比如有面向家居自動化領域的 ZHA 協議、面向智能照明領域的 ZLL 協議、面向智能能源領域的 ZSE 協議,以及面向健康、零售和消費電子等等領域的應用協議。“領域”一詞可以稱為“Profile”,比如家居自動化領域可稱為 ZHA Profile。然而同一領域中的ZigBee設備可以相互通信,但是不同領域的ZigBee設備仍然難以兼容。
在第3個階段,ZigBee聯盟在2016 年5月發布了ZigBee 3.0協議。它的發布可以說是ZigBee應用協議發展的一個里程碑:ZigBee 3.0協議整合了各個領域的應用協議,解決了不同領域的ZigBee設備之間的兼容性問題,使其能夠真正地互聯互通!同時,ZigBee 3.0協議也增加了更多的產品類型和屬性定義,并且提升了通信安全性和穩定性。
迄今為止,ZigBee 3.0已被包括小米、涂鴉、飛利浦等各大公司所采用,是應用最為廣泛的ZigBee應用協議。
五.技術方案商的簡介與發展
有了ZigBee協議,就會有對應的ZigBee技術方案,通俗地講就是ZigBee芯片和協議的代碼實現。接下來,我們聊一聊各個ZigBee技術方案商的發展。
ZigBee 初期階段,也就是2004 年左右,當時主流的技術方案商有4家,分別是Freescale、Chipcon、Ember、Jennic;
然而,隨著一系列并購和重組,江湖發生了翻天覆地的變化:
- 2005 年年底,美國德州儀器公司(TI)并購了Chipcon;
- 2010 年 7 月份,荷蘭恩智浦半導體公司NXP收購了 Jennic;
- 2012 年, 美國芯科實驗室Silicon Labs ,并購了 Ember;
- 在2015年3月2日,NXP又以118億美元的現金加股票的方式收購了Freescale。
主流的ZigBee技術方案商簡介
經過了一番愛恨情仇,現在主流的 ZigBee 技術方案商有3家,分別是:
- Texas Instruments - 美國德州儀器
- NXP Semiconductors - 荷蘭恩智浦半導體
- Silicon Laboratories - 美國芯科實驗室
——Texas Instruments
簡稱TI,公司簡介(來著TI官網):TI 是一家全球性半導體設計與制造公司
- 業務覆蓋超過 35 個國家
- 服務全球各地超過 10 萬家客戶
- 擁有 85 年 的創新歷史
- 超過 10 萬種模擬集成電路、嵌入式處理器 以及軟件和工具
- 業界最大的銷售和支持團隊
官網: http://www.ti.com.cn/
TI的ZigBee方案主控芯片有CC2530、CC2630、CC2538、MSP430+RF等。
——NXP Semiconductors
簡稱NXP,簡介(來自百度百科):NXP 是一家新近獨立的半導體公司,由飛利浦公司創立,已擁有五十年的悠久歷史,主要提供工程師與設計人員各種半導體產品與軟件,為移動通信、消費類電子、安全應用、非接觸式付費與連線,以及車內娛樂與網絡等產品帶來更優質的感知體驗。
官網: https://www.nxp.com/cn/
NXP的ZigBee方案主要是JN516(8)x+SDK。
——Silicon Laboratories
簡稱芯科,簡介(來自百度百科):Silicon Laboratories(芯科實驗室)成立于1996年,位于美國德州奧斯汀市,是一家專業研發設計類比電路及混合信號IC的公司(專門開發世界級的混合信號器件),為成長快速的通信產業設計等提供廣大應用;今天,公司已成為營運、銷售和設計活動遍及世界各地資本額約5億美元的上市跨國公司,并且在各種混合信號產品領域居于領先地位。
官網: https://www.silabs.com/
芯科的ZigBee技術解決方案和儲備其實是在收購Ember后才得到大大的提高,所以也有開發人員把這個方案稱為Ember方案。
芯科方案也是基于Ember的Em35x系列+SDK,當然后期芯科也自己推出了芯片方案EFRxx系列+SDK的解決方案。
六.技術方案商的對比
主流的ZigBee技術方案商的對比
我們對TI、NXP和Silicon Laboratories這3個主流的ZigBee技術方案提供商作一個對比。
在開發資料的開放程度,以及是否適合個人學習這兩方面來看,由于Silicon Labs和NXP主要以大客戶服務為主,因此開發資料開放程度低,個人不易獲取,所以對于個人學習來說有一定的門檻。而TI的軟件及開發資料較為開放,個人也比較容易獲取,因此更有利于個人學習,這也使得TI的ZigBee技術方案成為個人學習的首選。在今后的課程中我們也將采取TI的ZigBee技術方案來教學。
在ZigBee芯片價格上,TI的CC2530芯片的優勢明顯,NXP和Silicon Labs的ZigBee芯片差不多。
這里順帶說一下,在實際的開發過程中,到底選擇哪家的技術方案或者說ZigBee芯片,這是很多工程師關心的問題。在ZigBee芯片選型上,大家或多或少了解過TI的CC2530系列、Silicon Labs的EFR系列以及NXP的JN51系列。當然還有其它芯片,我們不一一列舉了。
如果對價格較為敏感,而且CC2530能夠滿足需求,那么可以選用CC2530;如果對性能要求比較高,那么建議采用Silicon Labs或者NXP的方案。
我們在開發難易程度和市場化角度再對比一下:
- 雖然TI方案具備一定的價格優勢,但其開發周期較長,而且從產品市場化角度還有嚴謹程度來說,TI方案的確不是最好的選擇。
- NXP方案在開發上相對簡單,市場化程度高(被大規模量產過)。
- 芯科方案也是重要的參考之一,畢竟穩定性保證還是有的,開發難度也不大。
需要說明的是,不同技術方案之間也是互相兼容的,因為大家都遵循了標準的ZigBee協議。
非主流的ZigBee技術方案商
其他非主流的ZigBee解決方案商我們只做簡單的了解,因為技術解決方案的穩定性和可持續性是受市場份額影響的。非主流的解決方案商有Atmel、STmicroelectronics、Integration、NEC、OkI、Renesas等幾家。采用非主流的解決方案除了會遇到方案本身不穩定的情況外,還可能面臨技術支持不到位,芯片停產,甚至該公司ZigBee方案的直接停掉的風險。
七.TI的ZigBee技術方案的發展歷史
接下來,我們談一談TI的ZigBee技術方案的發展歷史。
TI 的ZigBee協議棧,也稱為TI-ZStack,通俗地講它就是ZigBee協議的代碼實現。TI-ZStack主要由內核層和應用層兩個層次組成。我們從這兩個層次來了解一下TI-ZStack的發展歷史。注意一下,這里的內核層和應用層跟ZigBee協議的層次并沒有對應關系。
TI-ZStack的內核層,也稱為 TI-ZStack Core。從時間線來看,內核層有以下幾個發行版本:分別是年代久遠的0.1、2.2.0等等,再到2017年5月10日發行的2.7.1版本。大部分基于 TI-ZStack 的 ZigBee 產品使用的是 2.6.3 或者更新的版本。換句話說,2.6.3 和2.7.1版本用得最多。然而,隨著 2.7.1 的發布,預計各大廠商會逐漸地將自家的ZigBee設備遷移到這個版本上。因此,2.6.3以及之前的版本注定成為歷史!
TI-ZStack的應用層,是建立在內核層之上的。早期的TI-ZStack的應用層版本跟內核層版本有著明顯的一一對應關系。到了內核層2.6版本時期,應用層協議棧根據不用的應用領域被劃分成不同的版本,例如:
- 針對家居自動化的 Z-Stack HomeAutomation 1.2.2a、
- 針對智能照明的 Z-Stack Lighting 1.0.2、
- 針對能源照明的 Z-Stack Energy 1.0.1 等等,
以及不針對特定領域而是由用戶自行開發的Z-Stack Mesh 1.0.0,這與ZigBee協議應用層的領域劃分有著一定的對應關系。
后來,基于內核層2.7.1版本的應用層協議棧Z-Stack 3.0發布,這也就是我們常說的“ZigBee 3.0”。如前所述,它整合了各個領域的應用協議,解決了不同領域的ZigBee設備之間的兼容性問題,使其能夠真正的互聯互通!
八.小結
從上面的介紹,總結下來其實就一句話:用TI的Z-Stack 3.0.1這個版本來學習和開發,就對了!
后續我們會有一個專門的項目篇,會從項目經理的角度來學習如何管理項目,這里我們僅從項目管理的兩個基本概念:Bug和Feature來看待Z-Stack的版本發布的情況。每一個新的版本,都會涉及到兩個工作:
Z-Stack增加新的Feature很大一部分是根據ZigBee聯盟對ZigBee協議完善過程中增加新的東西或者優化某些功能而定的,比如ZigBee 2007 Pro中有了Mesh路由,那么這就會成為一個新的Feature被實現并且在下個版本進行發布。
不管是Z-Stack Core還是Z-Stack的版本更新換代,我們能做的是保證教學的資料和內容緊貼最新版本的Z-Stack,從而保證學者可以與最新的開發環境保持同步。而TI的最新版本開發環境又是和ZigBee聯盟高度同步,也就是和ZigBee這個技術及行業保持高度的同步。那么最終學者和行業的發展是一致的,不會落伍。學習一個技術不僅僅只是搞個小功能,例如實現一個簡單的原理比如點亮一個燈等等,更重要的是和行業、和最新的開發模式做同步,以及全面細致并且深入淺出的學習!
總結
以上是生活随笔為你收集整理的小白也能读懂的 ZigBee 3.0 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NeRF开篇
- 下一篇: OSChina 周日乱弹 —— 有鬼故事