CAN数据报文字节序

注意:本贴持续更新中,可能因本人理解有误

1.CAN数据有8个字节表示方法为BYTE0-BYTE7

2.BYTE0靠近DLC部分,首先发的数据时BYTE0的第7位

3. CAN2.0 的位图规范如下

CAN数据报文字节序_第1张图片

4.CAN报文的位序规定使用的是大端模式,作为总线设计者,不能更改设置。因此CAN数据的BYTE0为高字节,BYTE7为低字节

假如buffer 里面 BYTE0----BYTE1---BYTE2---BYTE3---BYTE4----BYTE5---BYTE6---BYTE7

是按照不断左移发送到CANH 和CANL 因此抓取的波形也需按照这个去翻译。

CAN数据报文字节序_第2张图片

 4.CAN数据格式分为 Motorola 和INTEL .

Motorola:高地址存低数据,低地址存高数据

即 BYTE0存高数据  BYTE7存低数据

根据描述起始位置又分为 Motorola LSB(低地址更有效果)  和Motorola MSB(高地址更有效)

INTEL:低地址存地数据,高地址存高数据

即 BYTE0存低数据  BYTE7存高数据

Motorola LSB

比如数据A起始位置12. 长度8.那么Motorola LSB对应如下

BYTE1.4 BYTE1.5 BYTE1.6 BYTE1.7 BYTE0.0 BYTE0.1 BYTE0.2 

CAN数据报文字节序_第3张图片

 Motorola MSB 

比如数据A起始位置12. 长度8.那么Motorola LSB对应如下

BYTE1.4 BYTE1.3 BYTE1.2 BYTE1.1 BYTE1.0 BYTE2.7 BYTE2.6  BYTE2.5 

CAN数据报文字节序_第4张图片

INTEL

比如数据A起始位置12. 长度8.那么

即 BYTE1.4 BYTE1.5 BYTE1.6 BYTE1.7 BYTE2.0 BYTE2.1 BYTE2.2  BYTE2.3

CAN数据报文字节序_第5张图片

你可能感兴趣的:(CAN通信,汽车)