CAN 报文编码学习笔记一:Intel格式与Motorola格式

                                       Intel格式与Motorola格式的区别

      

       CAN开始学习已经两个月有余,以下是me的学习过程笔记:分享出来供初学者参考,也为自己作为日后资料的备忘录。——学习注重在过程,知识在于积累。不足处请指出!

        首先在编码优缺点上,Motorola 格式与Intel 格式并没有孰优孰劣之分,只不过根据设计者的习惯,由用 户自主选择罢了。当时,对于使用者来讲,在进行解析之前,就必须要知道编码的格式是哪一种,否则, 就不能保证正确地解析信号的含义。以下就以8 位字节编码方式的CAN 总线信号为例,详细分析一下 两者之间的区别。

       一般主机厂在定义整车 CAN 总线通信矩阵时,其每一个信号都从其最低位开始填写,这样也符合使用习惯。所以信号的起始位就是信号的最低位,直到最高位。按照从左至右,从上至下的顺序发送原则。CAN总线报文的编码方式

1、CAN 报文发送顺序为:首先发送低位字节LSB,最后发送高位字节MSB。(定义Byte0为 LSB,Byte1-7为MSB)

2、CAN数据段中每个字节传输规则是:首先传输一个字节的高位msb,最后传输该字节的低位lsb。(7-0,63-56)

     

下面简单说说 Intel格式与Motorola格式的区别:CAN报文 Intel 格式与Motorola 格式的区别

       当一个信号的数据长度不超过1个字节(8位)并且信号在一个字节内实现(即,该信号没有跨字节实现)时,该信号的高位(S_msb将被放在该字节的高位,信号的低位(S_lsb将被放在该字节的低位。这样,信号的起始位就是该字节的低位。

一、Intel(小端)低字节LSB在前,高字节MSB在后。

二、Motorola(大端)高字节MSB在前,低字节LSB在后。

         当一个信号的数据长度不超过1个字节(8位)时,Intel与Motorola两种格式的编码结果完全一样:信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节的低位。

         当信号的数据长度超过1个字节(8位)时,两者的编码结果出现了明显的不同。

1、Intel:该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位。这样,信号的起始位就是低字节的低位。

2、Motorola:该信号的高位(S_msb)将被放在低字节(LSB)的高位,信号的低位(S_lsb)将被放在高字节(MSB)的低位。这样,信号的起始位就是高字节的低位。

   

车联网CAN测试https://blog.csdn.net/MIC01234/article/details/87933658

猜你喜欢

转载自blog.csdn.net/MIC01234/article/details/80373118