工程監(jiān)測多通道振弦模擬信號采集儀VTN的AABB 通訊協(xié)議
掃描二維碼
隨時隨地手機看文章
工程監(jiān)測多通道振弦模擬信號采集儀VTN的AABB 通訊協(xié)議
AABB 通訊協(xié)議是一種非標準自定義協(xié)議, 相較于 MODBUS 通訊協(xié)議,結(jié)構(gòu)更簡單,指令生成方法更容易,便于進行快速測試。 AABB 通訊協(xié)議支持單寄存器讀寫兩種指令。
(1) 讀取單個寄存器
指令頭: 固定為 16 進制 AABB
地址碼: 設(shè)備的地址(1~255, 其中地址 255 為通用地址)
寄存器地址:要訪問的寄存器地址, 寄存器地址字節(jié)最高位是讀寫標志位,為 0 時表示讀寄存器,為 1時表示寫寄存器。
和校驗: 之前所有數(shù)據(jù)之和, 0xAA+0xBB+地址碼+寄存器地址, 校驗和超過 255 時,僅使用低字節(jié)。 如下例中,校驗和=0xAA+0xBB+0x01+0x08=0x016E,則只使用 0x6E 作為最終和校驗碼。
例:讀取地址為 0x01 的設(shè)備寄存器值,寄存器地址為 8
主機發(fā)送指令: 0xAA 0xBB 0x01 0x08 0x6E
從機返回應答: 0xAA 0xBB 0x01 0x08 0x00 0x60 0xCE
(2) 修改單個寄存器
寫寄存器指令中,寄存器地址字節(jié)的最高位應為 1, 即地址值與 0x80 做“或” 運算。
例: 修改地址為 0x01 的設(shè)備寄存器值,寄存器地址為 8,修改值為 100
主機發(fā)送指令: 0xAA 0xBB 0x01 0x88 0x00 0x64 0x52
從機返回應答: 0xAA 0xBB 0x01 0x08 0x00 0x64 0xD2
(3) 通用設(shè)備地址
AABB 通訊協(xié)議支持通用地址, 無論設(shè)備的當前地址為何值,使用 0xFF 作為地址對其發(fā)送讀寫指令,均可得到正確響應。
例:使用通用地址,讀取任一設(shè)備的寄存器 8
主機發(fā)送指令: 0xAA 0xBB 0xFF 0x08 0x6C
從機返回應答: 0xAA 0xBB 0x01 0x08 0x00 0xC8 0x36
注: 當總線上連接有多個從機設(shè)備時(通常為 RS485 總線), 使用通用地址時總線上所有設(shè)備均會響應指令,導致指令無法正常使用。
注:嚴禁在連接有多個從設(shè)備的總線中使用通用地址修改設(shè)備地址。
(4)特殊設(shè)備地址
設(shè)備地址保存于寄存器 ADDR.[7:0], 取值范圍為 1~255,這些地址中, 255 在 AABB 協(xié)議中作為通用地址使用。