👉本教程需要先安装CANdb++软件,[CAN] DBC数据库编辑器的下载与安装
🙋前言
DBC(全称为Database CAN),是用于描述单个CAN网络中各逻辑节点的信息。 DBC是汽车ECU(Electronic Control Unit,电子控制单元)间进行CAN通讯的报文内容。通过DBC文件,我们可以了解CAN网络中各个节点(Network node)会发送哪些报文(Message)和接收哪些报文,每个报文中包含哪些信号(Signal),以及每个信号位于报文的哪个位置等信息。
作用:DBC文件的主要作用是“解析”。通过定义好的DBC文件,我们可以将CAN网络中的数据解析成具体的报文和信号,从而方便我们对其进行分析。
组成:DBC文件是由一系列的Message和Signal组成,文件定义了Message和Signal的属性。
查看与编辑:DBC是文本文件,可以用记事本打开,但一般使用专门的工具(如CANdb++)来更方便地查看和编辑。
发布:DBC文件由德国Vector公司发布,用于依据该文件开发出来监视和分析CAN网络中所有逻辑节点的运行状态。
1 需求分析
为了直观的演示整个创建过程,这里以下表 1 报文内容为例,开始教程的演示。
其中,在表中仅有1帧报文,报文由5条信号组成,编码格式为Intel。
2 创建模板
1.打开Vector CANdb++ Editor 软件界面如下所示。
2点击File,选择 " Create database "。
3.在弹出界面选择 " CANTemplate.dbc " ,点击 OK 。
4. 输入文件名称,保存文件。
5.创建好模板后显示如下图所示。
3 添加信号
Signals是一帧CAN报文中的数据代表的含义,例如上表1中的这帧报文,报文共8个字节,共5个信号;Signals就是指这5个信号。所以要解析这帧报文就需要创建5个Signals。
1.点击Signals,右键选择New。
2.在信号框,填写待建Signal的相关信息,选择完上述属性后,点击Calculate minimum and maximum`计算信号的最大值与最小值,具体如下。
其中,1.Name为信号名。2.Length[Bit]为该信号的位长度。3.Byte Order是选择信息的存储类型,分为因特尔和摩托罗拉。4.Unit为信号的物理单位。5.Value Type为数据类型,分为Signed(有符号整型)、Unsigned(无符号整型)、IEEE Float(浮点型)、IEEE Double(双浮点型)。6.Init.Value初始值。7.Factor为比重。8.Offset为偏置量。9.Minimum为最小值, Maximum为最大值, 这两个值可以点击 Calculate minimum and maximum 自行生成(这里的最大最小值是根据你选的字节长度和数值类型决定的)。
3.点击Commit,添加该信号的注释。
4.点击确定,完成Signal的创建。
5.继续创建其他四个信号。
6.创建完成,结果如下。
4 新建Message
1.右键Messages,选择NEW来创建报文信息。
2.设置Messages信息。
其中,1.Name为信息帧名。2.Type为选择标准帧或拓展帧。3.ID为帧的ID。4.DLC为帧长度,即字节数。
5 关联
关联:设置好Messages信息后,需向Messages中添加Signals,来实现报文与信号的关联。
1.点击 " Signals ",然后点击 " Add "。
3.点击创建好的5个Signals,全部选中,然后点击 " OK " 。
4.点击 " 确定 " 。
5. 添加好信号后,查看Layout选项中信号对应的字节位置是否与规定协议一样。
6. 保存文件,最后效果如下图所示。