Zigbee的基礎學習必須掌握一些工具和方法,包括:IAR for 8051編譯環境、C語言、Zigbee Soc芯片、IEEE 802.15.4 標準的數據包的收發、Zigbee協議棧(下文以TI的Z-Stack協議棧為例)、Packet Sniffer抓包軟件。
工具/原料
Zigbee無線通信
IEEE 802.15.4 標準
Zigbee協議棧
IAR for 8051編譯軟件
C語言
Zigbee Soc芯片
Zigbee開發套件
(一)熟悉IAR for 8051編譯環境
為什麼說是IAR而不是Keil?
是因為TI的官方協議棧是在IAR編譯環境下開發的,因此我們寫程序就必須用IAR。
還要特別注意IAR for 8051安裝的具體版本。
如果協議棧用的IAR版本比你的安裝的版本高,這時打開程序後左邊的WorkSpace窗口就是空白的,程序也無法編譯。如何安裝正確的IAR版本?
可以查看TI的官方說明文檔:Z-Stack Core Release Notes文件,該文件在協議棧的安裝文件夾下,具體路徑如下圖。文件說明Z-Stack Home 1.2.1協議棧支持的IAR最低版本是EW8051 8.30.3,因此你安裝的IAR for 8051的版本必須是這個版本或高於這個版本。
熟悉IAR for 8051的編譯、調試、排錯、程序下載和燒寫等基本操作。
(二)熟悉C語言
因為Zigbee Soc芯片都是內部帶有8051、Cortex-M0或者Cortex-M3的單片機,因此需要對C語言有一定基礎。能夠看懂協議棧程序,熟悉C語言的語法、數據結構和編程規範。
(三)熟悉Zigbee Soc芯片和IEEE 802.15.4 標準的數據包的收發
需要熟悉Zigbee Soc芯片的電氣特性、外設資源、各個外設寄存器的設置,這個在修改協議棧物理層的按鍵和LED燈等外設時會用得上。可以參照芯片的datasheet瞭解和熟悉。
可參照TI官方提供的點對點通信例程,瞭解IEEE 802.15.4 標準的數據包的收發。點對點通信例程不涉及完整的通訊協議,也不涉及協議棧和網絡相關的操作,僅適合對Zigbee設備數據傳輸的入門學習。
(四)熟悉TI的Z-Stack協議棧
首先要了解協議棧的分層結構和操作系統OSAL:
IEEE802.15.4標準定義的層對應協議棧的哪些文件目錄?這些目錄下的文件的主要作用是什麼?例如:
APP:應用層目錄,是用戶創建各種工程的區域,在這個目錄中包含了應用層的程序。
HAL:硬件層目錄,包含有與硬件相關的配置、驅動及函數。
熟悉協議棧的預編譯選項及設置:
ZStack的預編譯選項非常多,官方在Z-Stack Developer's Guide文檔中列出的就有46個,其餘未列出的實際應中也有用到,先必須瞭解編譯選項的含義,然後可以在學習過程中根據實際的例程逐步熟悉其用法。並不是每個預編譯選項都會用得上,真正用到的可能不超過1/3。
熟悉常用的API函數:
協議棧的各個層都有自己的API函數,用戶可以調用這些編寫好的API函數實現自己的功能,而不必自己去構造這些函數。API函數是半開源的,你不必深入瞭解每個API函數是怎麼寫的、怎麼實現的,但是必須知道常用的API函數該如何使用,函數的形參代表什麼含義,有哪些設置值。預編譯選項和API函數的說明文檔在協議棧的安裝文件夾下具體路徑如下圖:
協議棧的版本:
協議棧分很多版本,TI在Z-Stack 2.5.1a發佈以後,並沒有繼續以Z-Stack 2.6.x的形式直接發佈,而是按照應用場景的分類進行發佈,原因是TI希望開發者根據實際應用選擇更有針對的性的協議棧進行開發。例如Z-Stack Home 1.2.1協議棧是針對智能家居相關產品,其應用層和智能家居的實際應用相關,核心協議棧為Version 2.6.2。
初學者可以先學習開發套件中提供的協議棧版本,一般為ZStack-CC2530-2.3.0-1.4.0或者ZStack-CC2530-2.5.1a,等熟悉這些低版本的協議棧之後可以將自己的應用程序移植到新版本的協議棧,後續就用新版本的協議棧進行開發。
(五)學會使用Packet Sniffer軟件抓取數據包進行數據分析
Packet Sniffer軟件配合協議分析儀能夠從空中抓取Zigbee數據包。
通過分析數據包能夠更深入地瞭解網絡的建立過程,設備加入網絡的過程、各個設備的通信流程等等與Zigbee協議棧相關的內容,是理論聯繫實際的最直觀的表現。
另外,通過對數據包進行分析,可以驗證用戶應用程序的正確性,對調試分析和解決問題有很大幫助。
注意事項
請關注下一篇:Zigbee無線技術學習經驗總結:(三)提高實戰篇