工程监测多通道振弦模拟信号采集仪VTN的AABB 通讯协议
AABB 通讯协议是一种非标准自定义协议, 相较于 MODBUS 通讯协议,结构更简单,指令生成方法更容易,便于进行快速测试。 AABB 通讯协议支持单寄存器读写两种指令。
(1) 读取单个寄存器
指令头: 固定为 16 进制 AABB
地址码: 设备的地址(1~255, 其中地址 255 为通用地址)
寄存器地址:要访问的寄存器地址, 寄存器地址字节最高位是读写标志位,为 0 时表示读寄存器,为 1时表示写寄存器。
和校验: 之前所有数据之和, 0xAA+0xBB+地址码+寄存器地址, 校验和超过 255 时,仅使用低字节。 如下例中,校验和=0xAA+0xBB+0x01+0x08=0x016E,则只使用 0x6E 作为最终和校验码。
例:读取地址为 0x01 的设备寄存器值,寄存器地址为 8
主机发送指令: 0xAA 0xBB 0x01 0x08 0x6E
从机返回应答: 0xAA 0xBB 0x01 0x08 0x00 0x60 0xCE
(2) 修改单个寄存器
写寄存器指令中,寄存器地址字节的最高位应为 1, 即地址值与 0x80 做“或” 运算。
例: 修改地址为 0x01 的设备寄存器值,寄存器地址为 8,修改值为 100
主机发送指令: 0xAA 0xBB 0x01 0x88 0x00 0x64 0x52
从机返回应答: 0xAA 0xBB 0x01 0x08 0x00 0x64 0xD2
(3) 通用设备地址
AABB 通讯协议支持通用地址, 无论设备的当前地址为何值,使用 0xFF 作为地址对其发送读写指令,均可得到正确响应。
例:使用通用地址,读取任一设备的寄存器 8
主机发送指令: 0xAA 0xBB 0xFF 0x08 0x6C
从机返回应答: 0xAA 0xBB 0x01 0x08 0x00 0xC8 0x36
注: 当总线上连接有多个从机设备时(通常为 RS485 总线), 使用通用地址时总线上所有设备均会响应指令,导致指令无法正常使用。
注:严禁在连接有多个从设备的总线中使用通用地址修改设备地址。
(4)特殊设备地址
设备地址保存于寄存器 ADDR.[7:0], 取值范围为 1~255,这些地址中, 255 在 AABB 协议中作为通用地址使用。
|