XBee模組通訊實驗(四):廣播通信、AES 加密及AT命令模式

廣播通信

讓一個通訊節點對其餘所有節點發送訊息,稱為「一點對多點廣播」。

XBee模組廣播

假設ZigBee網路上包含5個XBee模組,協調器的DL參數(目標低位址)設定成FFFF(代表「廣播」),其餘4個模組的DL參數則設定成協調器的位址(此例為12)。

協調器的參數設置

參數 說明
CH (Channel) C 頻道要一致
ID (PAN ID) 3332 網路ID要一致
DH 0
DL FFFF FFFF代表「廣播」
MY (Source Address) 12 協調器的唯一位址值,可任意設置。
CE (Coordinator Enable) 1 設置成協調器

如此,每當協調器發送訊息時,所有連線的終端都會接收到。

啟用AES 加密

ZigBee支援128位元的AES加密(註:32個字元長度),可以保障通訊網路的安全。啟用方式很簡單,只要將所有通訊端點的EE參數(代表「啟用AES加密」)設定成1,並且輸入相同的32個字元長度的AES密鑰即可,例如:

123456789ABCDEF123456789ABCDEF12

啟用AES的參數設置:

參數 說明
EE (AES Encryption Enable) 1 全部連線模組都要開啟
KY (AES Encryption Key) 123456789ABCDEF123456789ABCDEF12 所有連線模組都要一致

在X-CTU軟體中設定完畢後,按下「鉛筆」圖示鈕寫入參數。日後連線,XBee模組將自動加密與解密通訊內容,Arduino程式不需要任何修改。

自行輸入AT命令

XBee模組的參數都是透過AT命令設定,只不過,X-CTU軟體把設定AT命令的動作以圖形化介面呈現;每當我們按下X-CTU介面上的「鉛筆」圖示,它就在背地裡執行一連串AT命令。

我們也可以用序列通訊軟體連結XBee模組,自行輸入AT命令來調整參數。以採用X-CTU內建的序列通訊程式為例,進入AT命令的方法:

  1. 切換到「終端機」視窗,再按下「連線」鈕。
  2. 在終端機中輸入+++ (三個連續加號),並且不要按Enter鍵!(註:輸入+++前後一秒鐘,不要輸入任何字元),XBee將回應OK,代表模組已進入AT命令模式。
  3. 輸入任何AT命令看看,例如:ATID,它將回應模組的頻道ID。

底下畫面中的藍色字體是我們輸入的命令,紅色字體則是XBee模組的回應。

進入XBee的AT命令模式

進入AT命令模式之後,若經過一段時間沒有輸入AT命令,XBee將自動跳出AT命令模式,變成「透傳模式」,也就是自動轉發序列埠的訊息。只要再次輸入+++即可進入AT命令模式。

XBee模組的AT命令都已經列舉在X-CTU軟體的參數設定介面上…只要在參數名稱(粗體字部份)加上AT前綴,就是完整的AT命令。例如,讀取與設定「目標低位址」的參數是DL,其AT命令是ATDL。

XBee模組的AT命令名稱

補充說明,進入AT命令模式的‘+’字元,由CC參數(Command Sequence Character)定義;進入AT命令前後的一秒鐘等待時間可透過GT參數(Guard Times)調整,預設為0x3E8(亦即,10進位的1000ms)。詳細的AT命令說明,請參閱XBee模組的技術文件(PDF格式)

未完待續…

4 thoughts on “XBee模組通訊實驗(四):廣播通信、AES 加密及AT命令模式

  1. 老師您好:請教您一個問題,我用Esp8266做了一個wifi控制家電的伺服器,但想在控制端和伺服端之間,做AES的加、解密動作,具體情形需要怎麼做,比方說:硬體方面,我該買什麼樣的單晶片,軟體方面要去下載什麼軟體,比如說做AES 128吧,或您有出什麼相關的書籍,我也可以去購買,對這方面完全陌生,不知如何下手,還請老師 指點一二, 不勝感激。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *