Zigbee 通訊協定,是設計用在 無線感測網路(Wireless Sensor Networks) 上的應用。它的特點是,低功耗,這是跟Bluetooth與Wifi 相比較。所以書上說她只要一顆三號電池就可以支撐半年一年的電力需要。我猜這可能要配合上合適的休眠機制才辦得到,因為設備在睡眠模式,只需要平均電流(Average Current) 1uA。因著這樣,這種協定很適合用在長時間架設的感測環境。至於耗電細節,往後分享電力消耗實再說。
天下也沒有白吃的午餐,能做到這件事,原因之一是它的傳輸距離不長,在標準的模組下,一般可以傳輸10m ~ 100m,這大概是一般住家的距離。第二個可以做到省電的原因,是它的傳輸速率極低,約只有20kbps ~ 250kbps。(Bluetooth最高約3Mbps,Wifi最高約11Mbps)。
關於Zigbee的協定層(protocol layers)則遵循OSI (Open System Interconnect)的基本模型。長的大概如下圖,這張圖是從ZigBee 2007文件內截出來的
可以看出來跟OSI的七層結構相比,是經過簡化的,從你的設備(Radio Transciver),往上連結到實體層(PHY, Pyhsical Layer),然後往上到媒體控制層(MAC, Medium Access Control Layer),網路層(NWK, Network Layer),最後達到應用層(APL, Application Layer)。
細節後面會慢慢介紹,先看一下顏色,粉紅色的最下面兩層,是由IEEE 802.15.4制定的。紫色的部分是ZigBee聯盟制定的,而黃色部分則是由設備廠商制定的。
這裡要特別說明的是,IEEE 802.15.4 與Zigbee的關係。我們常常會把這兩個詞混再一起,從塗上可以清楚的看出來,原來IEEE 802.15.4只有定義到實體層與媒體控制層。而往上的層則是ZigBee 標準定義出來的。所以正確的說法應該是,Zigbee的標準是建構在IEEE 802.15.4之上,但是IEEE 802.15.4 不是Zigbee。
在研究這種協定時,有兩派人馬,一派會去研究中間的protocol怎樣做,一派是專注於怎樣應用他。但是不管如何,不管你要不要有一天去寫protocol,最好都能夠知道一下各層的作用,職責,有開放哪些方法,與上下游的連結方式。然後就停在這理,除非你是要去開發新的協定,再往原始碼(Source Code)的範圍專研,不然的話應該要跳往如何應用這個技術去作出你想要的應用。
我們以下的分享,關於協定層方面,要採用目前最熱門的協定之一,德州儀器TI 的Z-Stack。值得一提的是,Z-Stack雖然有開放原始碼給你,但是不是全部,他在網路層是封起來的,只有其他層開放。所以說Z-Stack並不是一個完全開放原始碼的協議層。不過這不會影響我們的學習,接下來就要一層一層的介紹,然後之後搭配上Zigbee的網路監測器(Sniffer) 這樣我們就可以由實務上來驗證整個協議層的運作方式。
