一、四个用途
(1)应用报文
例如: 汽车仪表会显示当前车内外的温度,那温度信息哪来的呢?就是空调ECU周期性地在总线发送报文。
如下图:
车身电子稳定系统(ESP)
负责管理汽车的各种车身电子系统,如灯光、车窗、门锁、电动窗、天窗等。它通过接收来自各种开关和传感器的信号,来控制这些系统的运行,提高驾驶的便利性和安全性。
空调控制模块(AC-ECU)
负责汽车内部空调系统控制,包括温度调节、风速控制等。它通过读取各种传感器(如室内温度传感器、室外温度传感器、蒸发器温度传感器等)的数据,来判断当前的空调需求。
防抱死制动系统(ABS)
防止车轮在紧急制动时抱死,从而提高制动效果和安全性。它通过读取车轮转速传感器等的数据,来判断车轮的制动状态,并据此调整制动压力。
下图是由CANoe工具捕获到的三帧连续的CAN报文。通过时间戳可以看出ESP ECU每100ms发出标识符(id)为187(十六进制,换算成二进制是 001 1000 0111)的报文。
至于车速信号为啥是90km/h,如何换算的呢?(看目录二)
(2)诊断报文
诊断报文就是设备之间传递诊断信息的数据包。它包含了发送方想要告诉接收方的具体信息,比如设备的某个部分是否工作正常、出现了什么故障、故障码是多少等。
(3)网络管理报文
网络管理报文用于监视和设置网络中节点运行状态,负责传递节点状态、网络配置、故障报警等关键信息。这些报文使得网络管理系统能够实时监控网络状态,并在必要时进行干预和调整。
(4)标定报文
标定报文专门用于ECU参数标定校准的数据通信单元。在车辆或设备的开发、测试和生产过程中,需要对ECU内部的参数进行调整和优化,以确保其性能满足设计要求。
二、CAN报文的信号
如下图:A、B、C是三个信号,同属一个报文。
比如信号B的bit是1011,那么到底代表什么数值呢?信号矩阵定义了这些。
下图其实就是64个0、1的二进制的数据域的bit变成了二维表。为每一个bit编号,也就有了信号矩阵中的起始位。
CAN报文数据域8字节的二维布局
比如起始位为40,长度为13的信号,如图标黄色的bit位。从40开始,从右往左、从下往上数13个bit(该车企用的信号矩阵表在整个数据域的布局方式用到了Motorola的字节序,跟另外一种Intel序相反)。
目录一提到的CANoe捕获到的一帧报文,数据域是上图整个二维表,而车速信号在二维矩阵表中就是黄色部分。
我们将数据域的值填入二维表:
起始位是最低数据有效位(lsb) ,终止位为最高数据有效位(msb)。
合成整个bit序列,再转换为十进制为1600(原始量)。
最后将原始量转换成物理量,得到车速值为90。