CAN 报文的信号解析
1. 信号的本质
问题:CAN报文与信号之间的关系是什么样的?信号在哪里?ECU 发出一帧CAN报文中一般会含有多少个信号?
- 信号分布在CAN报文的 数据域 中
- 协议规定一帧 can报文的数据域 最多8个字节
- 企业在设计报文时,一般都固定设置8个字节
这么看来,可以知道,信号的本质就是一系列的二进制的0、1 bit
2. 信号矩阵Matrix
主机厂制定信号在数据域中的分布、信号值的换算是通过信号矩阵来的。信号矩阵一般是车企的保密资料。
1. 信号矩阵表一般包含哪些字段?
报文ID、报文的发送周期、信号起始位、信号位的长度、信号值的换算、单位等等。
如下是一个防抱死系统,msg 187的信号矩阵表的信息, 含有4个信号,每个信号的信号名、起始位,周期,长度、系数等都不一样。
2.1 CAN报文数据域8个字节的二维布局
一维数据实际按照二维布局,如下:
根据上面的信号的起始位置,就是按照上面这个二维布局来看。
车速信号起始位是40,长度为13, 按照Motorola编码方式,是往上数13个bit,如下
根据监听的报文 00 00 00 00 06 40 00 00 计算真实车速
如上将车速的13个bit 按照MSB, LSB排列:
0 0 1 1 0 0 1 0 0 0 0 0 0 ,=1600