什麼是Arduino? 課程文章程式語壇Download雜貨店關於我們AVR MEGA
Eagle PCB XBee 徹底理解 (進階模式
)
作者是 ken
週日, 06 六月 2010 00:59
了解基本的字串傳輸模式之後,xbee還提供一種封包傳輸方式-API模式。這種模式可以傳輸的封包內容更加豐富,
我們可以利用XBEE上面的adc輸入以及DIO輸入,達到不需Arduino也可以連接感測器的目的,首先打開datasheet
的page 32, Table 3-05,找到AP參數。
然後看到後面的Parameter Range,有 0-2的數值可以更改,0 = Disabled, 1 = API Enabled, 2 = API w/escaped
我們把AP設定1然後寫入,這時候....
你會發現你的另外一顆xbee傳過來的訊息不是正常的字串,這是因為XBee已經進入API傳輸模式
看到右邊的奇怪符號其實不用太害怕,打開
Show Hex按鈕顯示16
進制模式
View Comments
我們看到其實那些奇怪符號就是顯示不出來的ASCII碼,順序是7E 00 06 81 00 1F 31 00 61 CD
打開datasheet的page 58
這邊是說明API格式的說明,對照我們得到的是封包內容去解讀,可以知道7E 是開頭,然後接著的 00 06 代表後面會有 6個 bytes的封包內容,然後 81 是cmdID, 然後剩下 00 1F 31 00 61 CD這些我們要先去看 cmdID = 81的格式是什麼,找到page 63 下面的 RX packet 16-bit address。
然後繼續分析 00 1F 就是source Address,也就是說傳給我們那一顆Xbee的MY,MSB是高位元LSB是低位元,然後31是RSSI是傳輸信號強度,00是保留用0 = 沒作用, 1 = 廣播模式, 2 PAN廣播,最後的 61才是我們的字元 a (16bit)。那最後CD的意思是什麼呢??
也就是Checksum,Checksum的算法很簡單,就是扣除開頭的7E以及長度還有checksum全部加起來的總和取LSB 的byte去減掉0xFF看是否是等於CD,也就是說:
7E 00 06 81 00 1F 31 00 61CD取 81 00 1F 31 00 61 加起來 。
0xFF - (81+0+1F+31+0+61) = 0xFF - 0x132 = 0xFF - 0x32 = 0xCD
checksum的說明:
驗證方式:
把所有的byte加起來之後不包括7E跟長度應該LSB等於0xFF,也就是說:
7E 00 06 81 00 1F 31 00 61 CD = 81 + 1F + 31 + 61 + CD = 0x1FF
View the discussion thread.
blog comments powered by Disqus
back to top 最近更新在 週日, 06 六月 2010 01:58
ARDUINO.TW樂園HOME站長部落格所有文章索引無線BT RFID XBEE IR XBEE 徹底理解 (進階模式)