dbc文件的格式以及创建详解

原创 汽车ECU开发 2021-10-21 08:52

摘要:


dbc数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。它可以用来监测与分析CAN网络上的报文数据,也可以用来模拟某个CAN节点。


01


dbc文件格式

首先我们来看看dbc文件的格式,我们通过记事本打开在dbc文件,此时界面如下图所示:

如上图所示,一般dbc文件中包含了如下的8种信息:

1、版本与新符号

2、波特率定义

3、网络节点的定义

4、报文帧的定义

5、信号的定义

6、注解部分

7、属性定义部分

8、数值表部分
其中第2点、第3点是必须项,缺少这两项的dbc文件是不能用CANdb++ Editor软件打开的;接下来我们结合例子对dbc文件的这几项信息进行逐步解析介绍。
1、版本与新符号
如下图,Dbc文件头部包含着”version”与”new symbol”的信息;
(1)、 ”version”信息可以为空,也可以由用户自定定义;
(2)、 ”new symbol”信息在我们创建dbc文件时就已经自动生成;
所以这一部分的信息我们无需过多留意,一般默认即可。
2、波特率定义
格式如下:
BS_:[baudrate:BTR1,BTR2];
其中BS_为关键字,用于定义CAN网络的波特率;[ ]内容表示为可选部分,可以省略(如下图例子中即把该部分省略了);但关键字”BS_:”必须存在,省略则会出错。
3、网络节点的定义
格式如下:
BU_:Nodename1 Nodename2 Nodename3 ……
其中BU_为关键字,表示网络节点,格式中的Nodename1、Nodename2表示定义的网络节点名字,由用户自己定义;但需保证节点命名的唯一性。
如示例中的BU_: AVNT ACU HUD :表示定义了AVNT、ACU、HUD这三个网络节点。
4、报文帧的定义
格式如下:
BO_ MessageId(10进制数表示) MessageName: MessageSize Transmitter
(1)、BO_为关键字,表示报文;
(2)、MessageId为定义的报文ID,是以10进制数表示的;如例子中的996,代表报文ID为0x3E4;
(3)、MessageName表示该报文的名字,命名规则和C语言变量相同;
(4)、MessageSize表示该报文数据域字节数,为无符号整型数据;
(5)、Transmitter表示发送该报文的网络节点;如果该报文没有指定发送节点,则该值需设置为” Vector__XXX”。
 如示例中的BO_ 996 HUD_1_B: 8 HUD:表示定义了一条由HUD这个节点发送,数据域长度为8字节,ID为996(0x3E4),名字命名为HUD_1_B的报文。
5、信号的定义
格式如下:
SG_ SignalName : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
(1)、SG_为关键字,表示信号;
(2)、SignalName、 StartBit、 SignalSize分别表示该信号的名字、起始位、信号长度;
(3)、ByteOrder表示信号的字节顺序:0代表Motorola格式,1代表Inter格式;
(4)、 ValueType 表示该信号的数值类型:+表示无符号数,-表示有符号数;
(5)、Factor表示因子,Offset表示偏移量;这两个值于该信号的原始值与物理值之间的转换。
     转换如下:物理值=原始值*因子+偏移量;
(6)、Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;这两个值为double类型;
(7)、Unit表示该信号的单位,为字符串类型;
(8)、Receiver表示该信号的接收节点;若该信号没有指定的接收节点,则必须设置为” Vector__XXX”。
如示例中的 SG_ HUD_BrightnessLv : 15|4@0+ (1,0) [0|15] “lv” ACU,AVNT
表示定义了一个命名为HUD_BrightnessLv的信号,其起始位是第15位,信号长度4个位;信号是Motorola格式,数值类型为无符号类型数;因子为1,偏移量为0;信号取值范围为0到15;信号单位为字符串”lv”;该信号接收节点为ACU、AVNT这两个节点。
6、注解部分
格式如下:
 CM_ Object MessageId/NodeName “Comment”
(1)、 CM_为关键字,表示注解信息;
(2)、 Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”;
(3)、 MessageId/NodeName 表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为报文的ID(10进制数表示);若前面的对象类型为节点,则这里的值应为节点的名字;
(4)、 Comment表示进行注解的文本信息;
如示例中的 CM_ SG_ 996 HUD_HeightLv “Control hud height level”;
表示对ID为996(0x3E4)这条报文下的名为”HUD_HeightLv ”的信号进行注解说明,说明的内容为"Control hud height level"。
 又如 CM_ BU_ HUD “Head Up Display";表示对HUD这个节点进行注解说明,说明的内容为" Head Up Display "。
7、属性定义部分
格式如下:
BA_DEF_ Object AttributeName ValueType Min Max;
BA_DEF_DEF_ AttributeName DefaultValue;
(1)、 BA_DEF_为关键字,表示属性定义;
(2)、 Object表示属性定义的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”、网络节点” ”(用空格表示)等;
(3)、 AttributeName表示进行定义的属性名字;
(4)、 ValueType表示属性值的类型,可以是整型、字符串、浮点型、枚举类型等;
(5)、Min/Max表示属性值的上下最值,即指定了取值范围(字符串类型没有此项)。
(6)、 BA_DEF_DEF_为关键字,表示定义属性的初始值;
(7)、 DefaultValue表示该属性的初始值。
如示例中的 BA_DEF_ SG_ “MyTry” INT 0 11;
                    BA_DEF_DEF_ “MyTry” 0;
表示对定义了一个针对信号类型的属性,属性名为”MyTry”,属性值是整型数据,取值范围在0到11之间,初始值为0。
8、数值表部分
格式如下:
VAL_ MessageId SignalName N “DefineN” …… 0 “Define0”;
(1)、VAL_为关键字,表示数值表定义;
(2)、 MessageId表示该信号所属的报文ID(10进制数表示);
(3)、 SignalName表示信号名;
(4)、 N “DefineN” …… 0 “Define0”表示定义的数值表内容,即该信号的有效值分别用什么符号表示 。
如示例中的 VAL_ 996 HUD_OffSt 1 “Active” 0 “Not Active”;
表示对ID为996(0x3E4)的这条报文下的,一个命名为”HUD_OffSt”的信号,进行其数值表的定义;用”Active”取代1;用”Not Active”取代0。
小结
        以上通过示例将常见dbc文件的格式分成了以下八点进行了阐述介绍。
        1、版本与新符号
        2、波特率定义
        3、网络节点的定义
        4、报文帧的定义
        5、信号的定义
        6、注解部分
        7、属性定义部分
        8、数值表部分
其中第2点、第3点是必须项,其他项不一定都有。当我们对dbc文件的结构比较熟悉之后,可以在文本模式下直接对dbc文件进行修改编辑;例如直接拷贝数值表进行修改定义等操作,会比在"CANdb ++ Editor"界面下操作更方便。

02


dbc文件的创建

dbc文件的创建过程一般可分为以下几个部分:
1、新建一个CAN数据库文件
2、创建信号要用到的数值表Value Tables
3、创建信号Signals,关联该信号的数值表
4、创建报文Messages
5、创建网络节点Network nodes
6、将信号、报文及网络节点进行关联链接
7、创建或导入自定义属性,并进行修改
8、一致性检查
Ps:关于上面提到的第2点到第5点的信息,一般车厂都会通过通讯矩阵更新给出。我们按照通讯矩阵中的信息进行信号、报文、网络节点等信息的创建关联。
创建步骤
接下来以如下的一条报文为例,介绍下在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文件的主体,即完成信号、报文、节点的创建;再对其进行关联链接。
————————————————

阅读原文,关注作者博客

版权声明:本文为CSDN博主「第55号小白鸭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明,已获作者转载许可。
推荐阅读

关于cdd文件的配置

大众ID.4X的ECU接口梳理

浅析J1939协议 |附下载

大众ID.4 X网络架构详解

汽车芯片为什么会出现短缺?

学习笔记——NVM数据处理机制

学习笔记——AUTOSAR NVM基础知识

浅析特斯拉Model 3的热管理策略

基于UDS的Bootloder详解

关于整车上下电流程的理解

一文详解奥迪e-tron内部系统 |附下载

ID.3 和大众的电气化平台 |附下载

一文详解CAN总线错误帧|附下载

DoIP协议介绍,资料分享!

详解车载网络 OTA系统的开发|文末附下载

一文了解汽车嵌入式AUTOSAR架构|附下载

特斯拉Autopilot系统安全研究|附dbc下载

分享不易,恳请点个【在看】
汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 国产光耦合器正以其创新性和多样性引领行业发展。凭借强大的研发能力,国内制造商推出了适应汽车、电信等领域独特需求的专业化光耦合器,为各行业的技术进步提供了重要支持。本文将重点探讨国产光耦合器的技术创新与产品多样性,以及它们在推动产业升级中的重要作用。国产光耦合器创新的作用满足现代需求的创新模式新设计正在满足不断变化的市场需求。例如,高速光耦合器满足了电信和数据处理系统中快速信号传输的需求。同时,栅极驱动光耦合器支持电动汽车(EV)和工业电机驱动器等大功率应用中的精确高效控制。先进材料和设计将碳化硅
    克里雅半导体科技 2024-11-29 16:18 146浏览
  • 在电子技术快速发展的今天,KLV15002光耦固态继电器以高性能和强可靠性完美解决行业需求。该光继电器旨在提供无与伦比的电气隔离和无缝切换,是现代系统的终极选择。无论是在电信、工业自动化还是测试环境中,KLV15002光耦合器固态继电器都完美融合了效率和耐用性,可满足当今苛刻的应用需求。为什么选择KLV15002光耦合器固态继电器?不妥协的电压隔离从本质上讲,KLV15002优先考虑安全性。输入到输出隔离达到3750Vrms(后缀为V的型号为5000Vrms),确保即使在高压情况下,敏感的低功耗
    克里雅半导体科技 2024-11-29 16:15 111浏览
  • 国产光耦合器因其在电子系统中的重要作用而受到认可,可提供可靠的电气隔离并保护敏感电路免受高压干扰。然而,随着行业向5G和高频数据传输等高速应用迈进,对其性能和寿命的担忧已成为焦点。本文深入探讨了国产光耦合器在高频环境中面临的挑战,并探索了克服这些限制的创新方法。高频性能:一个持续关注的问题信号传输中的挑战国产光耦合器传统上利用LED和光电晶体管进行信号隔离。虽然这些组件对于标准应用有效,但在高频下面临挑战。随着工作频率的增加,信号延迟和数据保真度降低很常见,限制了它们在电信和高速计算等领域的有效
    腾恩科技-彭工 2024-11-29 16:11 103浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 50浏览
  • By Toradex胡珊逢简介嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 QNX Everywhere 项目,个人用户可以出于非商业目的免费使用 QNX 操作系统。得益于 Toradex 和 QNX 的良好合作伙伴关系,用户能够在 Apalis iMX8QM 和 Verdin iMX8MP 模块上轻松测试和评估 QNX 8 系统。下面将基于 Apalis iMX8QM 介
    hai.qin_651820742 2024-11-29 15:29 138浏览
  • 《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句:
    wuyu2009 2024-11-30 20:30 68浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 61浏览
  • 光耦合器作为关键技术组件,在确保安全性、可靠性和效率方面发挥着不可或缺的作用。无论是混合动力和电动汽车(HEV),还是军事和航空航天系统,它们都以卓越的性能支持高要求的应用环境,成为现代复杂系统中的隐形功臣。在迈向更环保技术和先进系统的过程中,光耦合器的重要性愈加凸显。1.混合动力和电动汽车中的光耦合器电池管理:保护动力源在电动汽车中,电池管理系统(BMS)是最佳充电、放电和性能监控背后的大脑。光耦合器在这里充当守门人,将高压电池组与敏感的低压电路隔离开来。这不仅可以防止潜在的损坏,还可以提高乘
    腾恩科技-彭工 2024-11-29 16:12 115浏览
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-30 14:30 49浏览
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-29 14:30 114浏览
  • 艾迈斯欧司朗全新“样片申请”小程序,逾160种LED、传感器、多芯片组合等产品样片一触即达。轻松3步完成申请,境内免费包邮到家!本期热荐性能显著提升的OSLON® Optimal,GF CSSRML.24ams OSRAM 基于最新芯片技术推出全新LED产品OSLON® Optimal系列,实现了显著的性能升级。该系列提供五种不同颜色的光源选项,包括Hyper Red(660 nm,PDN)、Red(640 nm)、Deep Blue(450 nm,PDN)、Far Red(730 nm)及Ho
    艾迈斯欧司朗 2024-11-29 16:55 140浏览
  • 在现代科技浪潮中,精准定位技术已成为推动众多关键领域前进的核心力量。虹科PCAN-GPS FD 作为一款多功能可编程传感器模块,专为精确捕捉位置和方向而设计。该模块集成了先进的卫星接收器、磁场传感器、加速计和陀螺仪,能够通过 CAN/CAN FD 总线实时传输采样数据,并具备内部存储卡记录功能。本篇文章带你深入虹科PCAN-GPS FD的技术亮点、多场景应用实例,并展示其如何与PCAN-Explorer6软件结合,实现数据解析与可视化。虹科PCAN-GPS FD虹科PCAN-GPS FD的数据处
    虹科汽车智能互联 2024-11-29 14:35 138浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦