1、协议格式
485modbusRTU:
这里以03功能码——读取寄存器数据为例。
主机发送命令格式:从设备地址(ID)+功能码+起始寄存器地址+寄存器个数+CRC校验
从机发送命令格式:从设备地址(ID)+功能码+数据长度+数据+CRC校验
其中发送都由主机控制,且命令中的地址只为从设备地址,那么主机本身不需要ID。
CAN:
CAN协议中所有设备都可以作为主机,都可以主动发送命令。
这里以数据帧为例。
命令格式:起始位+ID(命令ID)+...+数据+CRC+...+结束位
其中ID为命令发送中携带的ID,一般认为是目标设备的ID,因此要在多个设备之间通信时,每个设备都需要有自己的ID。
可以使用过滤器来确认每个设备的ID,配置过滤器为16位列表模式,并只接收自己的单个ID。