Motorola和Intel格式报文解析的区别

结论:无论用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。

先看下Vector的CANoe中dbc编辑器是如何呈现报文的:

图1 CAN报文中byte与bit顺序

从图中可以看出,每行表示一个字节的8个位,从右到左依次是bit0, bit1...bit7. 一共有8行,从上到下依次是byte0, byte1...byte7.这也正是每帧CAN报文数据能容纳的最多数据——8个byte,共64个bit(bit位序从byte0到byte7依次递增排序)。

 

关于CAN报文,用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。

举例

(1)配置CAN报文信号为Motorola格式

图2 Motorola格式信号

 

图3 Motorola格式信号排布

 

 报文中相应信号用上述Motorola格式解析出来的结果如下:

图4 Motorola格式信号解析

 

 (2)配置CAN报文信号为Intel格式

图5 Intel格式信号

 

图6 Intel格式信号排布

 

报文中相应信号用上述Intel格式解析出来的结果如下:

图7 Intel格式信号解析 

 

对比

a)跨字节信号ins_p和Treserved:两种格式解析结果不同。按照byte0, byte1...的先后顺序,Motorola格式大字节在前,小字节在后,如ins_p解析为0x3884。而Intel格式小字节在前,大字节在后,如ins_p解析为0x438。(此处的大字节指的是高位bit所在的字节,小字节指的是低位bit所在的字节)

b)非跨字节信号VolAD:两种格式解析的结果相同,都是0xC0,也即192。

a)需要明确:8个byte的顺序不变,每个byte中8个bit的顺序不变,如图1所示。

b)从图3和图6的箭头方向可以看出每个信号不同格式下bit的排布顺序。其中红色箭头指向首尾bit,白色箭头指向跨字节的衔接bit。红色箭头的首为LSB(Least Significant Bit),尾为MSB(the Most Significant Bit)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值