报文 Intel 格式与Motorola 格式的区别

Intel与motorola格式没有什么优劣之分,只是设计者习惯不同。
CAN总线数据传输首先传送字节的高位(msb),最后传输字节的低位(Lsb),但是对于字节的传送顺序则根据主机厂定义为准,但是大部分还是先发送低字节再发送高字节。
当一个信号的数据长度不超过 1 个字节(8 位)时,Intel 与 Motorola 两种格式的编码结果没有什么不同,完全一样。当信号的数据长度超过 1 个字节(8 位)时,两者的编码结果出现 了明显的不同。

  1. 信号的高位,即最能表达信号特性的因子,比如:车速信号 500km/h 按照给定的公 式,转换成十六进制数为 0x6A5,因为 6 代表的数量级最大(162),那么其中 6 就 是其信号的高位。
  2. 信号的低位,即最不能表达信号特性的因子,比如:车速信号 500km/h 按照给定的公式,转换成十六进制数为 0x6A5,因为 5 代表的数量级最小(160),那么其中 5 就是其信号的低位。
  3. 信号的起始位,一般来讲,主机厂在定义整车 CAN 总线通信矩阵时,其每一个信 号都从其最低位开始填写,这样也符合使用习惯。所以信号的起始位就是信号的最低位。这也与 CANoe 中 CANdb++的定义 Startbit 含义一致。

Intel 格式

当一个信号的数据长度超过1 个字节(8 位)或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位。这样,信号的起始位就是低字节的低位。

报文 Intel 格式与Motorola 格式的区别_第1张图片
Motorola 格式

当一个信号的数据长度超过 1 个字节(8 位)或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在低字节(MSB)的高位,信号的低位(S_lsb)将被放在高字节(LSB)的低位。这样,信号的起始位就是高字节的低位.
报文 Intel 格式与Motorola 格式的区别_第2张图片

你可能感兴趣的:(CAN)