车载通信——CAN报文信号排列方式(报文/信号结构)

一、CAN报文信号排列方式

在定义CAN通信矩阵或制作dbc时,需确定报文的信号排列方式。字节的排列顺序有:Intel的排列顺序;Motorola的排列顺序。

注:

Motorola和Intel格式,只在信号数据跨字节解析时有区别,单个字节数据没有区别

二、 编码格式

(1)Intel格式——小端

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

小端 = Little-Endians = Intel Mode:高字节byte保存在高地址中,低字节byte保存在低地址中 。

(2)Motorola 格式

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

大端 = Big-Endians = Motorola Mode:高字节保存在低地址中,低字节保存在高地址中。

Motorola格式:

(1)Motorola_LSB:起始位是从低字节开始

(2)Motorola_MSB :起始位是从高字节开始

案例:

数字:46,换为二进制为:101110    起始位20,长度6bit        00 02 E0 00 00 00 00

Motorola_LSB排列格式:

数字:46,换为二进制为:101110    起始位20,长度6bit       00 00 17 00 00 00 00

Motorola_MSB排列格式:

 三、区别

案例:

十进制128,写成二进制数

1000 0000,就是大端字节序,而写成0000 0001就是小端字节序

四、排列规则

五、其他相关参数

(1)高低地址

Byte0为低字节,Byte7为高地址

 (2)高低字节

对于0xFF22来说,FF就叫做数据的高字节部分,22就是低字节部分

 (3)MSB和LSB

MSB(most significant bit)即最高有效位;

LSB(least significant bit)即最低有效位;

字节计算就是从LSB到MSB的计算过程

六、相关参数

(1)Unsigned和Signed

CAN信号数据类型分为Unsigned和Signed。Unsigned表示无符号,Signed表示有符号。

(2)精度/偏移量

用于描述信号值如何转变成信号物理值。

[Physical value] = ( [Raw value] * [Factor] ) + [Offset]

[Raw value] = [Physical value] - [Offset] / [Factor]

(3)CAN标识符

CAN 协议的2.0B版本规定,CAN控制器的标志符长度是11位或29位。

标准CAN长度是11位,扩展CAN长度是29位。

CAN标准帧ID:

  • 16
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车人——EEA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值