1、大小端模式
大端模式:
在存储器中,高字节存放在低地址
小端模式:
在存储器中,低字节存放在低地址
2、数据在CAN报文中的存放顺序(CAN2.0标准格式)
CAN报文每个报文可包含8Byte的字节数据域,在报文内数据的字节序和位序如下:
字节序:Byte0、Byte1、Byte2、Byte3、Byte4、Byte5、Byte6、Byte7
位序:bit7、bit6、bit5、bit4、bit3、bit2、bit1、bit0
3、CAN报文数据域传输顺序
字节顺序:先传Byte0,最后传Byte7;
字节内位顺序:先传bit7,最后传bit0;
4、CAN信号映射
针对信号和CAN报文中数据域的映射方式:Intel(小端)、Motoral_MSB(大端)和Motorala_LSB(大端)。
Note:在candb++编辑器时发现,对于字节序的选择只有Intel和Motorola两种格式。这里采用的是Motorola_LSB的方式。
5、相关缩写:
LSB:least significant byte(最低字节)
MSB:most significant byte(最高字节)
lsb:least significant bit(最低有效位)
msb:most significant bit(最高有效位)
6、CAN信号映射举例
小端(Intel):
-
信号值:0x5A5,二进制:010110100101b
-
信号起始位:byte1的bit4,在报文中的索引是12
-
信号长度:12bit
-
Motorola_LSB(大端):(DBC文件中的Motorola模式指的就是这个)
-
信号值:0x5A5,二进制:010110100101b
-
信号起始位:byte1的bit4,在报文中的索引是12
-
信号长度:12bit