参看:关于DBC文件的创建(DBC文件系列其一)
一、什么是DBC
DBC文件是DataBase Container文件的缩写。
CAN数据库文件也称为后缀为(.dbc)的文件。DBC文件是基本的文本文件,其中包括将原始CAN总线数据解码为物理值或人类可读形式的信息。它指定特定消息(即CAN id)中包含哪些信号(例如,RPM,车速等)。
信号(Signal):信息的最小单位(发动机转速)
属性包括:name, length, Byte order, Value type,注意Byte order属性,我们称之为“格式”
报文(Message):报文代表一条CAN报文,它就是在CAN总线上实际发送的内容,报文包含若干信号
属性包括:name, ID, DLC, Transmitters
网络节点(Network node):它几乎代表了一个设备(ECU)|网络节点(Node),它几乎代表了一个设备(ECU)之所以说几乎,首先是因为ECU还包含了环境变量,其次是因为有一种特殊的ECU模型,它叫做网关(Gateway)包含两个或更多节点
设备(ECU):ECU其实就是节点和环境变量的组合,代表真实世界的仪器设备。在CANdb++ Editor中,ECU的可设置的属性只有其包含哪些环境变量。ECU对象名字无法编辑的,它等于节点的名字。
CAN网络(Network):Network表示真实世界中的一条CAN总线,它包含若干ECU。
网关(Gateway):是一种特殊的ECU,它包含多个节点,以及环境变量。各个节点属于不同的网络,通过共用的环境变量交换数据。这样,各个网络就可以通过网关交换信息。这也是“网关”名字的由来。 需要注意的是,CANdb++ Editor非Admin版本中,dbc文件只能含有唯一一个Network,因此网关这种模型是建立不出来的…
二、创建一个DBC
1、新建一个CAN数据库文件
选择菜单栏File->Create Database
打开“Template”模板对话框
这里以CANTemplate.dbc 为例。
2、创建信号要用到的数值表 Value Tables
数值表的创建,其实是符号标识符来表示信号值或环境变量值,避免信号值意义不明确。具体操作如下:
点击工具栏 “View” 下的 “Value Tables”, 右键空白部分,选择 “New” 进行新建。此时界面如下图所示。
完成数值表名字及数值定义后,点击确定即完成信号数值表的创建。
3、创建信号Signals,关联该信号的数值表
右击 “Signals” 选择 “New” 进行信号的创建。根据通讯矩阵中对于该信号的定义进行设置,并在value table中关联上一步创建的该信号的数值表,点击确定即完成了信号的创建。
4、创建报文 Messages
右击 “Messgaes”, 选择 “New”,此时的设置界面如下图所示,按照通讯矩阵定义的报文信息进行设置,点击确定即完成当前报文的建立工作。在建立其他报文时,可以以这个为模版进行Copy操作再进行修改,也可以新 New 创建。
5、创建网络节点 Network nodes
右击 “Network nodes”, 选择 “New”, 设置界面如下图所示,这里我们只需要输入创建的网络节点名字进行新建操作即可。
6、将信号、报文及网络节点进行关联链接
6.1、信号与报文的关联工作
6.1.1 方法一: 鼠标直接拖放
(1)鼠标点击 “Message” 下要进行关联操作的报文;
(2)将要关联到该报文的信号直接拖拽到右侧的空白区,或者拖拽到该报文的位置;
6.1.2 方法二: 在该报文的 “Signals” 配置下进行添加关联
(1)右击“Message”下要进行关联工作的报文,选择Edit Message,在弹出的设置界面下切换到”Signals”设置项;
(2)点击”Add”,选择要关联到该报文的信号,点击OK即完成了关联工作(可以一次添加多个关联的信号)。如下图所示。
6.1.3 在完成报文与信号的关联后,此时还需要设置信号在报文的起始位;
(1)右击报文下的信号值,选择 “Edit mapped Signal”, 进入 “Definition” 设置界面;
(2)设置该信号的起始位,如下图:
可以查看一下该报文的 layout:
6.2 报文与网络节点的关联工作
6.2.1 报文与发送节点的关联
跟前面介绍的信号与报文的关联一样,有两种方法:
(1)方法一:直接将报文拖拽到要关联的节点(注意,直接拖拽到节点的操作,默认是当做该节点的发送报文的);
(2)方法二:双击要进行关联的节点,进入设置界面,在 “Tx Messgages” 界面下点击 “Add” 进行报文添加工作。
6.2.2 报文与接收节点的关联
若当前报文是想作为要关联节点的接收报文,操作如下:
双击要进行关联工作的节点,进入设置界面,在 “MappedRxSig” 界面下点击 “Add” 进行报文添加工作。(注意,作为节点接收报文不能通过直接拖拽进行关联)。
最终完成:
7、创建或导入自定义属性,并进行修改
7.1、创建自定义属性
在 “View” 下点击 “Attribute Definitions”,右击选择 “New”,按需要可以进行对报文、信号、节点、环境变量等属性的创建。如下图:
7.3、属性的导入操作
“Attribute Definitions” 中的属性也可以通过其他已有的dbc文件进行导入。
操作如下:在 “File” 中选择 “Import Attribute Definitions”,选择要导入的dbc文件,即可将该dbc中的属性定义导入到我们现在的dbc文件中来。
7.3、属性的修改操作
根据上面的步骤我们完成了属性的自定义或导入工作;此时再双击打开信号、报文、或者节点,在其”Attributes”项下可以看到我们前面定义/导入的属性及其值;此时可根据通讯矩阵的定义对其进行修改设置。
8、一致性检查
经过前面的几个步骤起始已经完成了对数据库文件的创建。但是我们还需要通过一致性检查确保数据库文件中的对象及内部关系的一致性。
操作如下:
在 “File” 中选择 “Consistency Check”,此时会在一致性检查窗口中输出检查结果。
查
经过前面的几个步骤起始已经完成了对数据库文件的创建。但是我们还需要通过一致性检查确保数据库文件中的对象及内部关系的一致性。
操作如下:
在 “File” 中选择 “Consistency Check”,此时会在一致性检查窗口中输出检查结果。
[外链图片转存中…(img-WcMABD1p-1689331888553)]