快速读懂CAN报文 DBC文件 解析文件

CAN DBC 指的是CAN 报文的数据库。简单地说,通过CAN 总线通信的数据类型可以用DBC 文件来读取和理解。DBC 是一种基于ASCII 的翻译,是在20世纪90年代发展起来的标准文件,现在正在被全世界的汽车工业所使用。这些文件可以通过描述CAN 帧内的数据来帮助识别它。作为这些CAN 数据库,文本文件包含了将原始CAN 总线解码为物理值的信息。因此,它也在作为一个信号库发挥作用。

快速读懂CAN报文 DBC文件 解析文件_第1张图片

对于DBC 文件来说,信号不是一个电气输入或输出,而是一个物理参数,如温度、发动机转速、电压等。DBC 是处理8字节十六进制CAN 报文和原始CAN 数据的识别和转换的最常用方法。一个CAN 帧中的数据可以分成8个单byte的值、64个单bit值、一个64-bit 值或这些值的任何组合。数据字段最多可以包含8个字节的数据。一个CAN 帧可以包含0到64个单独的信号(对于64个通道,它们都将是二进制的)。

DBC文件包含以下信息:

● 当前信号报文的CAN ID

● 信号在CAN 报文中出现的位置

● 信号的字节顺序

● 信号的转换细节

● 信号的单位

快速读懂CAN报文 DBC文件 解析文件_第2张图片

现在让我们借助使用 Influx Dialog 软件的例子来详细了解一下。

DBC 中定义的名为ECU 的报文中的RPM(发动机转速)信号

★ 报文的定义:

快速读懂CAN报文 DBC文件 解析文件_第3张图片

该报文定义包含以下信息:

● CAN ID:传输报文时使用的CAN ID

● 报文的名称

● CAN 报文的类型(CAN 标准帧/扩展帧或CAN FD 标准帧/扩展帧)

● 数据长度代码(DLC)--CAN 报文中数据的长度

● 发送器:传输报文的CAN 节点/控制单元

★ 信号的定义:

快速读懂CAN报文 DBC文件 解析文件_第4张图片

该信号定义包含以下信息:

● 信号名称:消息中存在的信号的名称

● 单位:信号中存在的物理数据的单位

● 起始位:信号的起始位

● 位计数:信号的位计数

● Byte Order:信号的字节顺序,摩托罗拉(Big Endian)/英特尔(Little Endian)

● 类型:数据类型

● Factor(系数):信号的转换系数

● Offset(偏移):信号的转换偏移

● 最小和最大的信号值


★ 界定信号出现的位置

快速读懂CAN报文 DBC文件 解析文件_第5张图片

● bit 的位置是由起始位、位数和字节序定义的。

● 对于案例中的这个信号,起始位是48,位数是16,摩托罗拉的字节顺序是48。

● 因此,从收到的原始CAN 报文中,64位的CAN 数据,在摩托罗拉字节顺序中,从48到63的16位数据是发动机的转速数据。

快速读懂CAN报文 DBC文件 解析文件_第6张图片

★ 使用来自DBC的信息在接收到的原始数据中应用转换公式

举例来说:

从DBC中,我们得到的信息是:转换系数是0.25,偏移量是0。

因此,当我们将其应用于转换公式((A*raw)+B)时

因子A=0.25,偏移量B=0。

十六进制的0xFFFF是十进制的65535

(0.25*65535+0) =16383.75

我们知道这个DBC 信号的单位是RPM,所以物理值是16383.75 RPM。

由此可见,DBC 文件有助于了解哪些数据是通过CAN 总线进行通信的。手动完成这些翻译看起来可能是一项不可能完成的任务,但通过软件将使其变得快速而简单。

许多Windows 应用程序可以在PC 上读取DBC 文件,包括 Influx Dialog Plus、Influx Module Analyser、Influx ReXdesk,Mathworks 的MATLAB Vehicle Network Toolbox、Vector 的CAN db++等等。

另外,用Windows Notepad 也可以读取和编辑DBC 文件,但相比之下有些复杂。

Influx Dialog 软件是一个创建/编辑DBC 的有效工具。

快速读懂CAN报文 DBC文件 解析文件_第7张图片

你可能感兴趣的:(DBC相关知识,CAN,相关知识,数据,大数据,汽车,交通物流,数据分析,数据挖掘)