CAN总线报文解析----信号矩阵

如下图是一个CAN总线上得ABS协议应用,我们都知道在CAN总线的标准协议里,一个数据域的最多字节是8byte,也就是8*8=64bit;每一个bit都包含了一个模块的不同的信息,如下图所示

ABS的工作状态的信号矩阵

该报文的ID是187,上述四条报文的信号是处于同一条信息报文中的64bit中。如下图

将64bit展开得到一张二维数据状态表(不管是UDS或者CAN标准来说一般来说一帧数据都会定为8 byte 不足的也会让你补齐为0xAA或者0x55)

这个表中包含了矩阵信息表的具体起始位信息

假设现在有一帧关于车速信息的报文如下图

00 00  00  00 06 40 00 00

0x06转为2进制是0110

                                                                                                              0x40转为2进制是00101000

因为车速信号的车速信息Motorola格式的起始位是40,找到上图中40的位置,往前推13个bit的长度。整个数据就是车速的数据。32-37是高5位bit,47-40是低8位bit。

将0x06和0x40的二进制组合得到下面的数据

011001000000 = 1600(10进制)

1600*0.05625 = 90km这就是根据协议得出来的数据值。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值