雖然對ZigBee 協議的基本內容還不太了解,甚至ZigBee 協議棧是什么也不清楚。這個沒關系我們可以通過相應的實驗來逐步了解ZigBee。通過協議棧的基礎實驗來對ZigBee 協議以及ZigBee 協議梳建立一個形象、直觀的認識,這將有助于對ZigBee 協議的理解。
1.1ZIGBEE點燈實驗
數據傳輸實驗的基本功能:兩個ZigBee節點進行點對點通信,ZigBee終端節點2發送"LED"三個字符,ZigBee協調節點收到數據后,對接收到的數據進行判斷,如果收到的數據是"LED",則使開發板上的LED燈閃爍(1S閃爍一次)。數據傳輸實驗原理圖如圖下所示。無線控制終端節點燈,一秒鐘閃亮一次。
ZigBee無線傳感器網絡中有三種設備類型:協調器(Coordinator)、路由器(Router)和終端節點(EndDevice),設備類型是由ZigBee 協議錢不同的編譯選項來選擇的。
協調器主要負責網絡組建、維護、控制終端節點的加入等。路由器主要負責數據包的路由選擇。終端節點負責數據的采集,不具備路由功能。
工程路徑:C:\Texas Instruments\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\GenericApp\CC2530DB
雙擊GenericApp工程名打開工程,
從新編譯工程,
刪除工程中的GenericApp.C 文件,刪除方法是:先選擇要刪除的文件,右鍵在彈出的下拉菜單中選擇Remove 即可,如下
在工程工程中添加兩個文件Coordinator.c和EndDevice.c。添加如下:先在C:\Texas Instruments\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\GenericApp\Source文件夾中新建上面兩個.c文件。然后添加你剛才新建的文件(EndDevice.c和Coordinator.c)。
添加完之后
接下來就可以在CoordinatorEB工程中的Coordinator.c中是實現協調功能和對數據處理。
Coordinator.c中添加如下:(略)
在EndDevice.c文件中添加:(略)
這里用到timer定時發送信息,需要定義一個時間標志LED_EVENT,需要在GenericApp.h中定義一下:
#define LED_EVENT 0x0002
編譯工程CoordinatorED:
彈出對話框,選擇Exclude from build:
同理在EndDeviceED工程中,把Coordinator.c的文件禁止編譯,具體操作同上。
安裝好SmartRF04B驅動后,通過USB先連接仿真器和PC機。仿真器的十針插頭線與ZigBee設備的十針接口相連。下載編譯后的程序:
下載完之后,從新上電等待連接。觀察實驗現象(協調節點的燈的閃亮情況)。
打開協調器電源開關,然后打開終端節點電源開關,兒秒鐘后,會發現協調器的LED 燈已經閃爍起來了,這說明協調器已經收到了終端節點發送的數據。