版权声明:本文为CSDN博主「第55号小白鸭」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44536482/article/details/88914753
关于DBC文件的创建
摘要
dbc数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。它可以用来监测与分析CAN网络上的报文数据,也可以用来模拟某个CAN节点。
dbc文件的创建过程一般可分为以下几个部分:
1、新建一个CAN数据库文件
2、创建信号要用到的数值表Value Tables
3、创建信号Signals,关联该信号的数值表
4、创建报文Messages
5、创建网络节点Network nodes
6、将信号、报文及网络节点进行关联链接
7、创建或导入自定义属性,并进行修改
8、一致性检查
Ps:关于上面提到的第2点到第5点的信息,一般车厂都会通过通讯矩阵更新给出。我们按照通讯矩阵中的信息进行信号、报文、网络节点等信息的创建关联。
- 1
创建步骤
接下来以如下的一条报文为例,介绍下在CANdb++ Editor工具下创建编辑dbc文件的详细步骤。
我们先对上图例子中的报文进行分析,其ID是0x3E4;报文中包含了3个信号值(还要注意每个信号值其数值的代表意义,用于做该信号的数值表),是由HUD这个网络节点发送的,然后由ACU、AVNT这两个网络节点接收。也就是说,在我们这个操作示例中,我们需要新建3个信号、1条报文、3个网络节点,并对其进行链接关联。好,那接下来我们分布进行详细介绍
1、新建一个CAN数据库文件
打开CANdb++ Editor软件,点击工具栏”File”下的”Create Database”,此时界面如图1所示。按需求选择模板,点击ok,即完成dbc数据库文件的创建了。
图1
2、创建信号要用到的数值表Value Tables
数值表的创建,其实是用符号标识符来表示信号值或环境变量值,避免信号值意义不明确。具体操作如下:
点击工具栏”View”下的”Value Tables”,此时界面如图2.1所示。右键空白部分,选择”New”进行新建。此时界面如图2.2所示,完成数值表名字及数值定义后,点击确定即完成该信号数值表的创建了,依次再将其他的两个信号的数值表完成创建。此时再看”Value Tables”的界面已经如图2.3所示了。
图2.1
图2.2
图2.3
3、创建信号Signals,关联该信号的数值表
如图3.1所示,右击”Signals”选择”New”进行信号的新建,此时界面如图3.2所示。根据通讯矩阵中对于该信号的定义进行设置,并关联上我们上一步创建的该信号的数值表,点击确定即完成了信号的创建(其他列的信息我们这里先不用进行设置),依次完成其他两个信号的创建工作(可以直接New新建,也可以以前面建好的信号为模板选择Copy/Paste,再双击进行修改完成创建)。完成三个信号创建后的界面如图3.3所示
图3.1
图3.2
图3.3
4、创建报文Messages
右击”Message”,选择”New”,此时的设置界面如图4所示,按通讯矩阵定义的报文信息进行设置,点击确定即完成当前报文的建立工作。在建立其他报文时,可以以这个为模板进行Copy操作再进行修改;也可以新New创建。
图4
5、创建网络节点Network nodes
右击”Network nodes”,选择”New”,此时的设置界面如图5.1所示,这里我们只需输入创建的网络节点名字进行新建操作就行;其他关联操作在下一小节再进行描述。依次完成另外两个接收节点的创建。完成后的界面如图5.2所示
图5.1
图5.2
6、将信号、报文及网络节点进行关联链接
在前面的小节里,我们已经完成了信号、报文、网络节点的创建工作。在这一小节,我们将介绍如何将他们进行链接关联。
6.1、信号与报文的关联工作
6.1.1 方法一:鼠标直接拖放
(1)、鼠标点击”Message”下要进行关联操作的报文;
(2)、将要关联到该报文的信号直接拖拽到右侧的空白区,或者拖拽到该报文位置(即下图6.1.1示例中的”HUD_1_B(0x3E4)的位置”)
图6.1.1
6.1.2 方法二:在该报文的”Signals”配置下进行添加关联
(1)、双击“Message”下要进行关联工作的报文,在弹出的设置界面下切换到”Signals”设置项;
(2)、点击”Add”,选择要关联到该报文的信号,点击OK即完成了关联工作(可以一次添加多个关联的信号)。如下图6.1.2所示
图6.1.2
Ps:在完成报文与信号的关联后,此时还需设置下信号在报文的起始位;
(1)、双击报文下的信号值,进入”Definition”设置界面;
(2)、设置该信号的起始位。 如下:
图6.1.3
6.2、报文与网络节点的关联工作
示例中的报文,其发送节点是HUD,接收节点是ACU和AVNT。其关联工作步骤如下:
6.2.1 报文与发送节点的关联
跟前面介绍的信号与报文的关联一样,有两种方法:
(1)、方法一:直接将报文拖拽到要关联的节点(注意直接拖拽到节点的操作,默认是当做该节点的发送报文的);
(2)、方法二:双击要进行关联工作的节点,进入设置界面,在”Tx Messages”界面下的点击”Add”进行报文添加工作。如下图6.2.1所示
图6.2.1
6.2.2 报文与接收节点的关联
若当前报文是想作为要关联节点的接收报文,操作如下:
双击要进行关联工作的节点,进入设置界面,在”MappedRxSig”界面下的点击”Add”进行报文添加工作;如下图6.2.2所示(注意作为节点接收报文的不能通过直接拖拽进行关联)。
图6.2.2
7、创建或导入自定义属性,并进行修改
7.1、创建自定义属性
在”View”下点击”Attribute Definitions”,右击选择New,按需要可以进行对报文、信号、节点、环境变量等进行属性创建。此时界面如下图7.1所示:
图7.1
7.2、属性的导入操作
”Attribute Definitions”中的属性也可以通过从其他已有的dbc文件中进行导入;操作如下:在”File”中选择”Import Attribute Definitions”,选择要导入的dbc文件,即可将该dbc中的属性定义导入到我们现在的dbc文件中来。
图7.2
7.3、属性的修改操作
根据上面的步骤我们完成了属性的自定义或导入工作;此时再双击打开信号、报文、或者节点,在其”Attributes”项下可以看到我们前面定义/导入的属性及其值;此时可根据通讯矩阵的定义对其进行修改设置。例如图7.3.1是对报文属性的修改;图7.3.2是对信号属性的修改操作;如下:
图7.3.1
图7.3.2
8、一致性检查
经过前面的几个步骤其实已经完成数据库文件的创建了。但我们还需要通过一致性检查来确保数据库文件中的对象及内部关系的一致性。操作方法如下:
在”File”中选择”Consistency Check”,此时会在一致性检查窗口中输出检查结果。如下:会有状态信息及对应的说明,以供我们检查出错/警告报警的原因。此时界面如下图8.1所示:
图8.1
小结
dbc数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。简单的讲,dbc文件描述了在CAN网络上有哪些报文信息;这些报文上又携带了哪些信号信息;该报文是从哪个节点发出,哪个节点进行接收的等信息。所以,我们在进行dbc文件的创建时,其实也是要抓住dbc文件的主体,即完成信号、报文、节点的创建;再对其进行关联链接。