CAN学习笔记一:DBC文件创建

1 综述

1.1 简介

DBC(Database CAN)文件是由德国维克多公司发布的,用来描述单一CAN网络中各逻辑节点信息数据通讯的一种文件,包含了CAN总线中协议数据及其所代表的具体意义。DBC文件格式比较固定,不会产生歧义和理解误差,同时便于交流,依据该文件可以开发出来监视和分析CAN网络中所有逻辑节点运行状态的软件,也可以开发有针对性的ECU通信应用软件。

1.2 开发环境

创建DBC文件需要使用Vector公司提供的CANdb++编辑器,此处提供V3.1版本的下载链接地址:https://www.vector.com/int/en/download/?tx_vecdownload_downloaddetail%5Bdownload%5D=65339。CANdb++是Vector公司提供的一款免费软件,如使用上述地址无法获取软件安装包,或页面提示找不到资源,可直接在官网搜索CANdb++查找下载页面。

2 CANdb++软件介绍

2.1 软件下载与安装

使用浏览器打开1.2 章节中提供的链接地址,按照界面提示下载CANdb++软件安装包,下载完成后,使用鼠标左键双击软件安装包,如下图所示:
Alt
鼠标双击后会打开软件安装向导界面,如下图所示:
Alt
鼠标左键点击“Next”按键,进入安装目录选择界面,可根据需要修改安装目录,注意选择的安装路径不要包含中文字符。
Alt
选择好安装目录后点击“Next”按键,进入自定义界面,即选择安装英文版本或者德文版本,可保持默认选项(英文版本)。
Alt
点击“Next”按键,进入准备安装界面。
Alt
点击“Install”按键开始安装软件,安装过程如下图所示。
Alt
安装完成后界面显示如下所示。
Alt
点击“Finish”按键完成安装,退出软件安装提示界面,此时会在桌面生成下图所示图标。
Alt
若桌面没有上图图标生成,可至电脑应用程序中查找新添加的程序。

2.2 软件使用说明

可按照Vector官方提供的指导手册熟悉软件的基本使用操作,可点击下面链接获取文档手册文档。
https://download.csdn.net/download/weixin_43986229/15176916

3 DBC文件创建

DBC文件主要包含Value Tables、Signals、Messages、Network nodes、ECUs等元素组成,并由下至上(从Value Tables到ECUs)层层递进组成整个CAN Networks的描述。

3.1 创建Value Tables

首先鼠标左键双击CANdb++应用图标打开软件,软件打开后的界面如下图所示。
Alt
由于未打开任何文件,此时软件显示的是空白界面,鼠标左键点击软件界面左上角菜单栏中的“File”按键,在下拉框中选中“Create Database…”选项,创建DBC文件。
Alt
此时软件界面会弹出DBC文件模板类型供选择,我们选中“CANoeTemplate.dbc”选项,然后点击“OK”按键。
Alt
在弹出的界面中设置所要创建的DBC文件的名称和保存位置,然后点击“保存”按键。
Alt
此时会显示DBC文件的“Overall View”界面,在界面左侧列举了文件的组成项和层级结构。
Alt
鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Value Tables”选项,进入到Value Tables编辑界面。
Alt
在界面中空白处点击鼠标右键,选中“New…”选项,添加自定义的Value Table。
Alt
Value Table是自定义的一些数字表格的解释,如“0”代表无效,“1”代表有效,用于给后续定义的Signals赋值。此处我们定义了一个Value Table,用于说明开关信号的打开与关闭状态,如下图所示。
Alt
数值和描述添加完成后点击“确定”按键,即完成了Value Table ‘SwitchStatus’的创建。

3.2 创建Signals

首先,鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Overview”选项,切回到“Overall View”界面。鼠标右键点击界面左侧“Signals”图标,选中下拉框中的“New…”选项。
Alt
此时软件会弹出信号编辑窗口,根据需要在“Definition”界面下设置信号名称、长度、字节序、单位、数值信息和使用的Value Table。如下图所示,创建了一个“AcSwitch”信号,设置信号信息并将Value Table选中为上一节中添加的“SwitchStatus”。注意,对于某一取值范围较大的信号(如取值范围为0~0xFFFF),直接将信号长度和数值类型等信息设置正确即可,Value Table选项默认为“none”即可。
Alt
点击“确定”按键完成信号创建,这时会在“Overall View”界面左侧“Signals”中显示刚刚添加的信号,以及信号使用的Value Table。
Alt

3.3 添加属性定义

常见的Attribute Definitions如下表所示,一般DBC文件不需要完全包含表中列举的属性,开发人员需根据项目需求选择添加属性。

Attribute NameAttribute TypeValue TypeValue RangeDefault
BusTypeNetworkStringJ1939-
ProtocolTypeNetworkStringCAN-
NmStationAddressNodeInteger0…254254
NmJ1939AACNodeInteger0…10
NmJ1939IndustryGroupNodeInteger0…70
NmJ1939SystemNodeInteger0…1270
NmJ1939SystemInstanceNodeInteger0…150
NmJ1939FunctionNodeInteger0…2550
NmJ1939FunctionInstanceNodeInteger0…70
NmJ1939ECUInstanceNodeInteger0…30
NmJ1939ManufacturerCodeNodeInteger0…20470
NmJ1939IdentityNumberNodeInteger0…20971510
ECUNodeString--
SigTypeSignalStringDefault
Range
RangeSigned
ASCII
Discrete
Control
ReferencePGN
DTC
StringDelimiter
StringLength
StringLengthCtrl
MessageCounter
MessageChecksum
-
SPNSignalInteger0…5242870
GenSigILSupportSignalEnumNo
Yes
Yes
GenSigSendTypeSignalEnumCyclic
OnWrite
OnWriteWithRepetition
OnChange
OnChangeWithRepetition
IfActive
IfActiveWithRepetition
NoSigSendType
NoSigSendType
GenSigInactiveValueSignalInteger0…10000000
GenSigStartValueSignalInteger0…100000
GenMsgILSupportMessageEnumNo
Yes
Yes
GenMsgSendTypeMessageEnumCyclic
NotUsed
IfActive
NoMsgSendType
NoMsgSendType
GenMsgCycleTimeMessageInteger0…60000 [ms]0
GenMsgCycleTimeFastMessageInteger0…1000000 [ms]0
GenMsgDelayTimeMessageInteger0…1000 [ms]0
GenMsgStartDelayTimeMessageInteger0…100000 [ms]0
GenMsgFastOnStartMessageInteger0…1000000 [ms]0
GenMsgNrOfRepetitionMessageInteger0…1000000 [ms]0
属性定义窗口需要通过菜单栏“View”目录下的“Attribute Definitions”选项打开。
Alt
打开后的“Attribute Definitions”窗口如下图所示,其中显示了一些软件默认添加的属性。
Alt
常用的属性有GenMsgSendType和GenMsgCycleTime,用于指定添加消息的类型和周期,下面将这两个属性添加至定义的DBC文件中。鼠标右键点击“Attribute Definitions”窗口空白处,在弹出选项框中选中“New…”选项,如下图所示。
Alt
使用鼠标左键点击“New…”选项后打开属性定义窗口,在其中设置属性的名称、对象类型、数值类型、默认值、最大值和最小值。
Alt
GenMsgSendType和GenMsgCycleTime的属性信息设置如下图所示。

AltAlt
信息设置完成后点击确定按键,完成属性的添加,此时会在“Attribute Definitions”窗口显示出刚刚添加的属性 ,表示已成功添加属性,如下图所示。
Alt
除了上述直接添加属性定义的方式外,也可通过从现有DBC文件中导入属性的方式添加属性。鼠标左键点击菜单栏中“File”按键,在下拉选项中选中“Import Attributes Definitions…”选项。
Alt
在弹出框中选中现有的DBC文件,然后鼠标左键点击“打开”按键即可完成属性的导入。

3.4 创建Messages

首先,鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Overview”选项,切回到“Overall View”界面。鼠标右键点击界面左侧“Messages”图标,选中下拉框中的“New…”选项。
Alt
此时软件会弹出消息编辑窗口,根据需要在“Definition”界面下设置消息名称、类型、ID、数据长度、发送器、发送模式和周期时间,需要注意的是此页面中的发送器、发送类型和周期时间填充了默认值,无法修改,创建者可根据需要在“Transmitters”和“Attributes”页面中修改。如下图所示,创建了一条“AirCondition”消息,设置消息基本信息(消息名称:AirCondition,类型:标准帧,ID:0x123,数据长度:8)。
Alt
鼠标左键点击“Signals”界面,添加消息信号,如将定义的“AcSwitch”信号添加进来。
Alt
“Transmitters”和“Receivers”暂时保持默认状态,鼠标左键点击“Layout”切换至信号布局界面,此界面显示了信号在CAN消息数据中的位置,可通过鼠标左键拖动信号来更改信号位置。
Alt
鼠标左键点击“Attributes”切换至消息属性界面,此界面会显示有关消息的所有属性,如果没进行之前的“添加属性”操作,此处将显示为空白。由于前面只添加了GenMsgSendType和GenMsgCycleTime两个消息属性,因此会发现此处也只显示了这两个属性,根据消息定义设置消息属性值。
Alt
“Comment”界面用于添加对消息的注释说明,可保持默认状态。然后鼠标左键点击“确定”按键,完成消息的添加,同时在“Overall View”界面左侧显示出添加的CAN 消息以及消息包含的信号,如下图所示。
Alt

3.5 创建Network nodes

鼠标右键点击界面左侧“Network nodes”图标,选中下拉框中的“New…”选项。
Alt
此时软件会弹出网络节点编辑窗口,根据需要在“Definition”页面中设置节点名称,在“Attributes”页面中设置节点属性(文件会默认添加一些属性,可根据节点具体信息进行修改,一般可保持默认值),在“TxMessages”页面中添加发送消息,Comment”界面用于添加对消息的注释说明,可保持默认状态,其他页面信息可保持默认值不做更改。如下图所示,创建了一个“AC”节点,并添加了前面定义的“AirCondition”消息。
Alt
Alt
Alt
然后鼠标左键点击“确定”按键,完成网络节点的添加,同时在“Overall View”界面左侧显示出添加的网络节点以及包含的消息和信号,如下图所示。
Alt
同时会在“Overall View”界面左侧显示出文件包含的ECU,以及每个ECU包含的网路节点,如下图所示。
Alt
至此,DBC文件的创建已经完成,在保存文件之前,可对文件进行一致性检测。鼠标左键点击菜单栏中“File”按键,在下拉选项中选中“Consistency Check”选项。
Alt
此时软件界面会弹出检测结果,显示当前的DBC文件存在的问题,如下图所示显示创建的DBC文件中的“AirCondition(0x123)”消息不存在接收节点。
Alt
根据上图中提示的错误和警告信息可对DBC文件内容进行审查和修改。注意在文件创建过程中保存文件。

  • 16
    点赞
  • 174
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*夏至未至*

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值