一般地,Digi XBee模塊有空閑模式、接收模式、發(fā)送模式、睡眠模式和命令模式5種操作模式。下面以XBee3 Zigbee模塊來說明。
1、空閑模式
不接收或發(fā)送數(shù)據(jù)時,設(shè)備處于空閑模式。在空閑模式下,設(shè)備會在RF和串行端口上偵聽有效數(shù)據(jù)。
在以下情況下,設(shè)備將切換到其他操作模式:
(1)串行接收緩沖區(qū)中的串行數(shù)據(jù)已準(zhǔn)備好打包,切換到發(fā)送模式。
(2)通過天線接收到的有效RF數(shù)據(jù),切換到接收模式。
(3)命令模式序列(“+++”)發(fā)布,切換到命令模式。
(4)睡眠條件滿足,切換到睡眠模式。
2、接收模式
通過無線接收數(shù)據(jù)時,設(shè)備會將數(shù)據(jù)發(fā)送到串行端口。
您可以使用AP和AO參數(shù)來調(diào)整從串行端口發(fā)出的消息的格式和類型。根據(jù)需要,您可以調(diào)整收到的信息量。缺省情況下,設(shè)備工作在透明模式,在該模式下設(shè)備將僅輸出接收到的數(shù)據(jù)包的有效負(fù)載。在API模式下,將發(fā)射整個數(shù)據(jù)包,并且AO調(diào)整是否應(yīng)發(fā)射原始ZDO消息。
2、發(fā)送模式
在傳輸數(shù)據(jù)之前,模塊確保已建立16位網(wǎng)絡(luò)地址和到目的節(jié)點的路由。
若未提供16位網(wǎng)絡(luò)地址,則會進(jìn)行網(wǎng)絡(luò)地址發(fā)現(xiàn)。為了發(fā)送數(shù)據(jù),進(jìn)行路由發(fā)現(xiàn)以建立到目的節(jié)點的路由。若未找到具有匹配網(wǎng)絡(luò)地址的設(shè)備,它將丟棄該數(shù)據(jù)包。一旦建立路由,設(shè)備即會發(fā)送數(shù)據(jù)。若路由發(fā)現(xiàn)無法建立路由,則設(shè)備將丟棄該數(shù)據(jù)包。
當(dāng)Zigbee數(shù)據(jù)從一個節(jié)點傳輸?shù)搅硪粋€節(jié)點時,目標(biāo)節(jié)點將通過已建立的路由將網(wǎng)絡(luò)級確認(rèn)傳輸回源節(jié)點。該確認(rèn)分組向源節(jié)點指示目的地節(jié)點接收到數(shù)據(jù)分組。若源節(jié)點未收到網(wǎng)絡(luò)確認(rèn),它將重新傳輸數(shù)據(jù)。
在極少數(shù)情況下,目標(biāo)可能會收到數(shù)據(jù)包,而源可能不會收到網(wǎng)絡(luò)確認(rèn)。在這種情況下,源將重新傳輸數(shù)據(jù),這可能導(dǎo)致目的地多次接收相同的數(shù)據(jù)包。XBee模塊不會過濾掉重復(fù)的數(shù)據(jù)包。我們建議該應(yīng)用程序包含解決此問題的條款。
3、睡眠模式
睡眠模式允許設(shè)備在不使用時進(jìn)入低功耗狀態(tài)。該設(shè)備在睡眠期間幾乎完全處于關(guān)閉狀態(tài),并且在喚醒之前無法發(fā)送或接收數(shù)據(jù)。XBee3 ZB RF模塊支持引腳睡眠(引腳切換時進(jìn)入睡眠模式)和周期睡眠(設(shè)備休眠固定時間)。
4、命令模式
命令模式是固件將傳入字符解釋為命令的狀態(tài)。它允許您使用可以使用AT命令設(shè)置的參數(shù)來修改設(shè)備的配置。若要使用此模式讀取或設(shè)置XBee3 ZB RF模塊的任何參數(shù),則必須發(fā)送AT命令。每個AT命令以字母AT開頭,后跟標(biāo)識該命令的兩個字符,然后是一些可選的配置值。
(1)進(jìn)入命令模式
要使設(shè)備切換到命令模式,必須發(fā)出以下順序:一秒鐘內(nèi)+++。+++序列前后必須至少有一秒鐘。指令字符(CC)和序列之前和之后的靜音(GT)都是可配置的(即:您可以在設(shè)備的配置中自定義命令字符,保護(hù)時間和超時)。當(dāng)符合進(jìn)入標(biāo)準(zhǔn)時,設(shè)備在UART上以O(shè)K 響應(yīng),表明它已成功進(jìn)入命令模式并準(zhǔn)備開始處理AT命令。
若配置為在“透明”操作模式下運行,則在進(jìn)入“命令”模式時,XBee3 ZB RF模塊知道停止發(fā)送數(shù)據(jù)并開始本地接受命令。
注意:鍵入+++后請勿按回車鍵或Enter鍵,因為它會中斷保護(hù)時間靜音并阻止您進(jìn)入命令模式。
當(dāng)設(shè)備處于命令模式時,它會監(jiān)聽用戶輸入并能夠在UART上接收AT命令。若在沒有任何用戶輸入的情況下經(jīng)過了CT時間(默認(rèn)為10s),則設(shè)備將退出命令模式并返回到先前的操作模式。您可以通過發(fā)送CN來強(qiáng)制設(shè)備退出命令模式。
(2)故障排除
無法進(jìn)入命令模式通常是由于波特率不匹配。確保連接的波特率與設(shè)備的波特率匹配。默認(rèn)情況下,BD=3(9600b/s)。有兩種方法可以進(jìn)入命令模式:①連續(xù)6s的中斷進(jìn)入命令模式。您可以從串行控制臺發(fā)出“break”命令,它通常是按鈕或菜單項。②上電或復(fù)位時斷言DIN(串行中斷)進(jìn)入命令模式。XCTU會指導(dǎo)您進(jìn)行重置,并在需要時自動發(fā)出中斷。
注意:必須為這兩種方法都聲明RTS,否則設(shè)備將進(jìn)入引導(dǎo)加載程序。
這兩種方法都將設(shè)備的波特率臨時設(shè)置為9600,并在UART上返回OK,以指示命令模式處于活動狀態(tài)。退出命令模式后,設(shè)備將以BD設(shè)置的波特率返回正常操作。
(3)發(fā)送AT命令
設(shè)備進(jìn)入命令模式后,請使用下圖中的語法發(fā)送AT命令。每個AT命令都以字母AT開頭,AT代表“注意”。AT后跟兩個字符,指示要發(fā)出哪個命令,然后是一些可選的配置值。要讀取存儲在設(shè)備寄存器中的參數(shù)值,請省略參數(shù)字段。
前面的示例將NI(節(jié)點標(biāo)識符)更改為My XBee。
a.多個AT命令
在命令模式下,您可以一次發(fā)送多個AT命令(用逗號隔開)。例如ATNIMy XBee,AC
前面的示例將NI(節(jié)點標(biāo)識符)更改為My XBee,并通過AC(應(yīng)用更改)激活設(shè)置。
b.參數(shù)格式
有關(guān)單個AT命令參數(shù)的格式,請參閱AT命令列表。十六進(jìn)制值的有效格式包括帶或不帶前導(dǎo)0x的值,例如FFFF或0xFFFF。
c.對AT命令的響應(yīng)
使用AT命令設(shè)置參數(shù)時,若成功,XBee3 ZB RF模塊將以O(shè)K
d.應(yīng)用命令更改
在應(yīng)用更改之前,使用AT命令對配置命令寄存器進(jìn)行的任何更改都不會生效。例如,若您發(fā)送BD命令以更改波特率,則在應(yīng)用更改之前,實際波特率不會更改。①發(fā)送AC(應(yīng)用更改),退出命令模式。②發(fā)送WR(寫),退出命令模式。
e.使命令更改永久生效
發(fā)送WR(寫入)命令以保存更改。WR將參數(shù)值寫入非易失性存儲器,以便參數(shù)修改可通過后續(xù)的復(fù)位保持不變。
發(fā)送RE(恢復(fù)默認(rèn)值),將使用WR保存的設(shè)置抹回到其出廠默認(rèn)值,或者將自定義默認(rèn)值(若已設(shè)置)恢復(fù)為出廠默認(rèn)值。
注意:您仍然必須使用WR 保存使用RE進(jìn)行的更改。
(4)退出命令模式
兩種方法:
①發(fā)送CN(退出命令模式),然后回車。
②若設(shè)備在CT(命令模式超時)指定的時間內(nèi)未收到任何有效的AT命令,它將返回到透明或API模式。命令模式的默認(rèn)超時為10s。
審核編輯:湯梓紅
-
模塊
+關(guān)注
關(guān)注
7文章
2723瀏覽量
47603 -
Digi
+關(guān)注
關(guān)注
0文章
16瀏覽量
9508 -
無線
+關(guān)注
關(guān)注
31文章
5464瀏覽量
173560 -
命令
+關(guān)注
關(guān)注
5文章
691瀏覽量
22062 -
串行端口
+關(guān)注
關(guān)注
0文章
34瀏覽量
11690
原文標(biāo)題:淺談Digi XBee模塊的操作模式
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論