當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > ZigBee協(xié)議棧的基礎(chǔ)實驗
雖然對ZigBee 協(xié)議的基本內(nèi)容還不太了解,甚至ZigBee 協(xié)議棧是什么也不清楚。這個沒關(guān)系我們可以通過相應(yīng)的實驗來逐步了解ZigBee。通過協(xié)議棧的基礎(chǔ)實驗來對ZigBee 協(xié)議以及ZigBee 協(xié)議梳建立一個形象、直觀的認(rèn)識,這將有助于對ZigBee 協(xié)議的理解。
1.1ZIGBEE點燈實驗
數(shù)據(jù)傳輸實驗的基本功能:兩個ZigBee節(jié)點進行點對點通信,ZigBee終端節(jié)點2發(fā)送"LED"三個字符,ZigBee協(xié)調(diào)節(jié)點收到數(shù)據(jù)后,對接收到的數(shù)據(jù)進行判斷,如果收到的數(shù)據(jù)是"LED",則使開發(fā)板上的LED燈閃爍(1S閃爍一次)。數(shù)據(jù)傳輸實驗原理圖如圖下所示。無線控制終端節(jié)點燈,一秒鐘閃亮一次。
ZigBee無線傳感器網(wǎng)絡(luò)中有三種設(shè)備類型:協(xié)調(diào)器(Coordinator)、路由器(Router)和終端節(jié)點(EndDevice),設(shè)備類型是由ZigBee 協(xié)議錢不同的編譯選項來選擇的。
協(xié)調(diào)器主要負責(zé)網(wǎng)絡(luò)組建、維護、控制終端節(jié)點的加入等。路由器主要負責(zé)數(shù)據(jù)包的路由選擇。終端節(jié)點負責(zé)數(shù)據(jù)的采集,不具備路由功能。
工程路徑: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中是實現(xiàn)協(xié)調(diào)功能和對數(shù)據(jù)處理。
Coordinator.c中添加如下:(略)
在EndDevice.c文件中添加:(略)
這里用到timer定時發(fā)送信息,需要定義一個時間標(biāo)志LED_EVENT,需要在GenericApp.h中定義一下:
#define LED_EVENT 0x0002
編譯工程CoordinatorED:
彈出對話框,選擇Exclude from build:
同理在EndDeviceED工程中,把Coordinator.c的文件禁止編譯,具體操作同上。
安裝好SmartRF04B驅(qū)動后,通過USB先連接仿真器和PC機。仿真器的十針插頭線與ZigBee設(shè)備的十針接口相連。下載編譯后的程序:
下載完之后,從新上電等待連接。觀察實驗現(xiàn)象(協(xié)調(diào)節(jié)點的燈的閃亮情況)。
打開協(xié)調(diào)器電源開關(guān),然后打開終端節(jié)點電源開關(guān),兒秒鐘后,會發(fā)現(xiàn)協(xié)調(diào)器的LED 燈已經(jīng)閃爍起來了,這說明協(xié)調(diào)器已經(jīng)收到了終端節(jié)點發(fā)送的數(shù)據(jù)。