一、CAN通信矩阵的定义

CAN通信矩阵通常由整车厂完成定义,定义了车辆网络中的各个ECU(电子控制单元)节点需要接收和发送的报文信息。每个ECU节点遵循该通信矩阵,完成信息的交互和共享。这些ID段和数据内容的分配通常由主机厂(OEM)自主进行,分配完成后通常会形成一个.xls格式的表格,这个表格就是CAN通信矩阵。

二、CAN通信矩阵的内容

CAN通信矩阵以表格形式显示了信号、消息和网络节点之间的相互关系,内容通常包括以下几个方面:

  1. 网络节点:每个汽车控制器作为一个网络节点,负责发送和接收信息。

  2. 消息:一个控制器会发出多个帧报文,每帧报文称为一个消息。这些消息在网络中传输,携带特定的数据。

  3. 信号描述:包括信号的中文名称、数据类型(如布尔类型Boolean、无符号Unsigned、有符号Signed)、信号长度(占多少个bit位)、字节次序(Motorola格式或Intel格式)、起始字节位置和起始位位置等。

  4. 精度/偏移量:描述信号值如何转变成信号物理值,通过公式“真实物理值 = 信号值 * 精度 + 偏移量”计算。

  5. 范围:信号数值的范围,以及信号值的单位(如m、km)。

  6. 信号值描述:信号数值的含义,包括初始值和无效值等。

三、报文发送类型

报文发送类型可分为周期、事件、周期事件和使能周期四种类型:

  • 周期:报文按照固定的周期发送,例如每隔100ms发送一帧报文。

  • 事件:当某个事件触发后,发送出数据报文,一般规定连续发送3帧,间隔20ms。

  • 周期事件:报文以周期时间发送,当某个事件信号触发后,按照事件的形式立即发送,之后恢复到固定周期发送。

  • 使能周期:报文以周期时间发送,当某个事件触发后并且达到下一个发送周期时,按照事件发送,一般规定连续发送3帧,间隔20ms。

四、特殊信号

有些报文规定了两个特殊的信号:RollingCounter信号和CheckSum信号。

  • RollingCounter信号:滚动计数值,每发送一帧报文,该信号值累加1。

  • CheckSum信号:检验值,基于某种校验算法(如CRC算法)对报文数据进行加密处理,保护CAN报文信号数据的安全。

五、字节序

在处理跨平台数据传输时,需要考虑字节序(Byte Order)的问题。字节序分为大端序(Big Endian)和小端序(Little Endian)两种:

  • 大端序(Motorola格式):最高有效字节(MSB)存储在内存的最低地址处,最低有效字节(LSB)存储在内存的最高地址处。

  • 小端序(Intel格式):最低有效字节(LSB)存储在内存的最低地址处,最高有效字节(MSB)存储在内存的最高地址处。

六、结论

CAN通信矩阵是CAN网络中不可或缺的组成部分,它定义了网络中各个节点之间的通信关系和数据传输规则。了解并掌握CAN通信矩阵对于开发、测试和维护CAN网络至关重要。通过合理定义和使用CAN通信矩阵,可以确保网络中各个节点之间的信息交互和共享高效、准确地进行。