下面采用Digi的XBee ZigBee mesh網絡開發套件來進行組網和通信操作,需要裝備好至少兩個模塊和對應的開發底板。
首先,確保您的電腦上已經安裝好Digi的開發工具XCTU,請下載對應您的電腦操作系統的最新版本。將兩個Digi的XBee ZigBee模塊通過開發底板和電腦連接起來,打開XCTU,用左上角的帶有放大鏡圖標的查找按鈕來查詢連接到電腦上的模塊,并把它添加到XCTU左側的無線模塊列表中。在XCTU軟件中,默認是位于配置窗口中,點擊左邊模塊,便會讀取模塊相關的參數,在配置窗口中展現出來。
XCTU的參數區域的上方,有一排常用的按鈕,分別是讀取(read),寫入(write)參數,加載默認參數(default),升級固件(update),配置導入導出(profile)。首次使用,建議用Update按鈕更新一下到最新固件,在firmware version中選擇最上方最新的固件,確定是ZigBee協議的固件,去掉“強制模塊保留當前配置”的選項,然后點update按鈕。這樣就恢復模塊到出廠的設置。如果您的模塊已經是最新固件,請用參數區上方的“Default”按鈕加載模塊的默認參數,并按“Write”寫入模塊,使模塊恢復出廠的配置,確保不會因為之前使用時的不恰當參數影響通信效果。寫入默認值后,再按“Read”按鈕重新加載一下參數到XCTU右側的參數欄上。
點擊左側另一個模塊,用同樣的方式恢復一下模塊的出廠設置。在配置模式下,如果僅對某個參數進行讀取和寫入,可以使用對應參數右方的刷新和寫入按鈕。
兩個ZigBee模塊要相互通信,必須在同一個網絡中,所以我們需要**將一個模塊配置成協調器,另一個模塊配置成路由器并加入到協調器的網絡中。**注意:模塊默認的NJ為254s,所以在5min內會關閉允許加入,為了避免加入窗口被關閉,可以把NJ改為FF,也就是永遠允許加入。
以下兩個模塊簡稱A和B。
A模塊:CE=1 配置為協調器,DL=FFFF,NJ=0xFF
B模塊:不改任何參數。
將A模塊的CE改為1,就把模塊配置成協調器了,這時模塊會生成一個網絡號為ID指定值的ZigBee網絡,默認ID=0,因此協調器會生成一個隨機64bit的網絡號的ZigBee網絡。如果刷新模塊參數,會發現OP和CH有一個值了,這里OP是指當前的網絡號,CH是指當前的信道號。DH和DL組成模塊的目標地址,我們把DL改為FFFF,是因為默認DH和DL都為0,這樣指代協調器本身,DH為0而DL=FFFF則是廣播地址。
B模塊是默認的路由器的出廠配置,ID=0表示可以加入任意網絡。如果周邊沒有其它ZigBee網絡,B模塊又是首次使用,那么它肯定會在10秒內加入A模塊的網絡,可以讀取一下B模塊的OP和CH,觀察它是否和A模塊相同,以此來判斷是否在同一個網絡中。默認地B模塊的DH和DL都是0,表示目標地址是協調器。入網后,模塊的入網指示燈會均勻地閃爍(每秒兩次),這樣我們已經配置好兩個對發的模塊了。如果B模塊的Assoc指示燈沒有閃爍而是常亮,那表示還沒有入網,這時可以手動在commissioning按鈕上連按四下,讓這個模塊離開原來網絡,以便加入A模塊的網絡,通常只要天線連著,就可以看到B模塊入網,然后我們就可以做透傳對發測試。
這時我們可以點擊右上角的圖標切換到終端窗口,來觀察串口數據透傳的效果。終端窗口實際上是個帶有ASCII和16進制顯示終端的串口調試工具,有個串口打開/關閉按鈕,以及一個視圖分離按鈕,方便查看兩個模塊各自的收發數據。
分別選中模塊,并在終端模式中打開串口,將其中一個模塊的串口終端視圖分離,我們在任意一個終端中輸入數據,另一個模塊的張端就能收到相同的數據。如下圖所示:
在透傳模式下,數據送入A模塊的串行UART接口,就會被發到目標地址指定的B模塊上,從B模塊的串行UART中輸出,所以稱之為透傳。平時模塊處于空閑或傳輸數據的狀態,當我們需要更改模塊參數時,就可以通過向串口發指定時序的特定字符串來進入命令模式,以便更改模塊配置。默認地,在空閑期間連續輸入三個“+”號可進入命令模式,這時可以通過向串口發AT命令來實現特定功能。比如,我們之前設置協調器的目標地址為0xFFFF,這樣網絡內所有的模塊都能收到該數據并轉發;如果我們只需向特定的模塊發送數據,就不應該用廣播模式,而需要把目標地址設置為特定的模塊的MAC地址。
下面AT命令演示了讀取B模塊的自身地址并將它設置為A模塊的目標地址的過程:
在B模塊上,用“+++“進入命令模式,發ATSH,ATSL分別讀出模塊64位MAC地址的高位和低位。切換到A模塊的終端窗口中,用ATDH和ATDL把剛才獲取得的參數設置目標地址,并用ATWR寫入flash,這樣斷電重啟后配置不會被清空。注意:**默認地在命令模式中如果10s內無任何輸入,就會退出命令模式,回到透傳模式的空閑狀態。**所以AT命令中的字符請連續輸入不要間停超過10s,否則需要重新用”+++“進入命令模式。
靜靜等待約10s后模塊退出命令模式(也可以發ATCN命令直接退出命令模式),這時在終端窗口中輸入數據,另一個模塊的終端也能收到數據。只不過,此時作為協調器的A模塊不再是廣播模式,而是只定向往B模塊發數據了。
通過AT命令可以設置很多參數,比如NI是設置模塊的ASCII名稱,NR是退網命令,ID是指定網絡名稱,還可以通過AT命令讀取或設置模塊的IO口狀態等。
下面我們將把A模塊的網絡ID更改,讓B模塊重新加入,以下是完整操作過程的相關AT命令:
A模塊:1)讀一下CE,以確定是要操作的協調器A模塊;2)讀一下當前ID值;寫入新的網絡ID;3)配置寫入flash;4)稍等片刻后查詢當前工作的網絡ID。
B模塊:1)讀一下CE,確定是路由器;2)讀一下當前網絡ID;3)讀一下當前信道;4)發退網命令,離開之前加入的網絡;5)稍等片刻查詢新加入的網絡ID;6)查詢當前信道。
由于透傳模式下,需要通過特定字符組合和時序進入命令模式,在一些需要頻繁使用AT命令的場景下就顯得很不方便,因此Digi的模塊除了支持透傳模式外,還可以通過API模式更靈活地使用模塊。
審核編輯:劉清
-
ZigBee
+關注
關注
158文章
2271瀏覽量
243349 -
路由器
+關注
關注
22文章
3744瀏覽量
114477 -
Mesh網絡
+關注
關注
0文章
44瀏覽量
14260 -
協調器
+關注
關注
0文章
29瀏覽量
16021 -
xctu
+關注
關注
0文章
3瀏覽量
3063
原文標題:Digi XBee3 ZigBee組網和通信測試
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論