通信矩阵
- 将信号、消息和网络节点的相互关系以表格形式展现,由OEM定义。
车辆网络中各节点ECU必须遵循该通讯矩阵才能完成信息的交互和共享。- 网络节点:一个汽车控制器作为一个网络节点
- 消息:一个控制器会发出多个帧报文,每帧报文称为消息
- 信号:一帧报文长度为1-8 byte,大多为8byte,即64bit,规定不同bit位代表不同信号,那么一帧报文可包含多个信号
- 通信矩阵基本内容包括:
- 基本信息 :
- 报文名称:每个报文消息的名字
- ID:唯一标识报文的ID号,规定ID范围0X000 - 0X7FF
- 报文类型:分为周期报文、事件报文、周期事件报文
- 报文周期:报文发送的周期
- 长度:报文字节长度,1-8 byte
- 信号定义:
- 信号名称`:以发送节点的名字开头,‘_’ 后面指具体内容
- 信号长度:该信号的长度,单位bit
- 信号类型:Boolean(true or false)or Unsigned
- 起始字节:起始位所在的字节序号
- 起始位:信号最低有效位(LSB,Least Significant bit)所在位置
- 结束位:信号最高有效位(MSB,Most Significant bit)所在位置
- 精度/偏移量:描述信号值如何转变成信号物理值
- 物理值公式:真实物理值 = 信号值 * 精度 + 偏移量
- 物理值范围经过物理值转换后的最大最小有效值
- 基本信息 :
DBC文件
- DBC(Databasse Can)用来描述CAN网络中节点间数据通讯的一种文件,即,根据CAN通讯协议制作的一份用于解析CAN报文数据的文件。
简单讲DBC文件描述了CAN网络上有哪些报文信息?这些报文携带了哪些信号信息?该报文是从哪个节点发出,哪个节点接收?
我们获得的每一帧报文都是一串8个字节、16进制的数据(共64bit),要想知道每一帧报文数据代表什么,就需要对着通讯协议去翻译出数据代表的含义。而DBC文件的作用就是帮助我们直接得到报文数据的代表含义,省去了查找通讯协议这个步骤,直接得到报文数据的具体含义。
- 每个信号去填充64位bit时,两种填充方式:
- Intel格式:以起始位为原点,自下而上填充
- Motorola格式:以起始位为原点,自上而下填充
- 信号的高位:能表达信号特性的因子,最左侧的位,数量级最大,即高位
- 信号的低位:最不能表达信号特性的因子,最右侧的位,即低位
- 信号的起始位:信号的最低位。主机厂在定义整车CAN总线通信矩阵时,每个信号都从其最低位开始填写。
DBC软件
- 可以通过
CANdb++
建立DBC文件,进行创建和修改网络总线系统中的信息及信息单元之间的相互关系。 - [CANdb++ 软件学习](CANdb++ 软件学习)