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

一目了然

  • 1 综述
    • 1.1 简介
    • 1.2 开发环境
  • 2 CANdb++软件介绍
    • 2.1 软件下载与安装
    • 2.2 软件使用说明
  • 3 DBC文件创建
    • 3.1 创建Value Tables
    • 3.2 创建Signals
    • 3.3 添加属性定义
    • 3.4 创建Messages
    • 3.5 创建Network nodes

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
鼠标双击后会打开软件安装向导界面,如下图所示:
CAN学习笔记一:DBC文件创建_第1张图片
鼠标左键点击“Next”按键,进入安装目录选择界面,可根据需要修改安装目录,注意选择的安装路径不要包含中文字符。
CAN学习笔记一:DBC文件创建_第2张图片
选择好安装目录后点击“Next”按键,进入自定义界面,即选择安装英文版本或者德文版本,可保持默认选项(英文版本)。
CAN学习笔记一:DBC文件创建_第3张图片
点击“Next”按键,进入准备安装界面。
CAN学习笔记一:DBC文件创建_第4张图片
点击“Install”按键开始安装软件,安装过程如下图所示。
CAN学习笔记一:DBC文件创建_第5张图片
安装完成后界面显示如下所示。
CAN学习笔记一:DBC文件创建_第6张图片
点击“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++应用图标打开软件,软件打开后的界面如下图所示。
CAN学习笔记一:DBC文件创建_第7张图片
由于未打开任何文件,此时软件显示的是空白界面,鼠标左键点击软件界面左上角菜单栏中的“File”按键,在下拉框中选中“Create Database…”选项,创建DBC文件。
CAN学习笔记一:DBC文件创建_第8张图片
此时软件界面会弹出DBC文件模板类型供选择,我们选中“CANoeTemplate.dbc”选项,然后点击“OK”按键。
CAN学习笔记一:DBC文件创建_第9张图片
在弹出的界面中设置所要创建的DBC文件的名称和保存位置,然后点击“保存”按键。
CAN学习笔记一:DBC文件创建_第10张图片
此时会显示DBC文件的“Overall View”界面,在界面左侧列举了文件的组成项和层级结构。
CAN学习笔记一:DBC文件创建_第11张图片
鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Value Tables”选项,进入到Value Tables编辑界面。
CAN学习笔记一:DBC文件创建_第12张图片
在界面中空白处点击鼠标右键,选中“New…”选项,添加自定义的Value Table。
CAN学习笔记一:DBC文件创建_第13张图片
Value Table是自定义的一些数字表格的解释,如“0”代表无效,“1”代表有效,用于给后续定义的Signals赋值。此处我们定义了一个Value Table,用于说明开关信号的打开与关闭状态,如下图所示。
CAN学习笔记一:DBC文件创建_第14张图片
数值和描述添加完成后点击“确定”按键,即完成了Value Table ‘SwitchStatus’的创建。

3.2 创建Signals

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

3.3 添加属性定义

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

Attribute Name Attribute Type Value Type Value Range Default
BusType Network String J1939 -
ProtocolType Network String CAN -
NmStationAddress Node Integer 0…254 254
NmJ1939AAC Node Integer 0…1 0
NmJ1939IndustryGroup Node Integer 0…7 0
NmJ1939System Node Integer 0…127 0
NmJ1939SystemInstance Node Integer 0…15 0
NmJ1939Function Node Integer 0…255 0
NmJ1939FunctionInstance Node Integer 0…7 0
NmJ1939ECUInstance Node Integer 0…3 0
NmJ1939ManufacturerCode Node Integer 0…2047 0
NmJ1939IdentityNumber Node Integer 0…2097151 0
ECU Node String - -
SigType Signal String Default
Range
RangeSigned
ASCII
Discrete
Control
ReferencePGN
DTC
StringDelimiter
StringLength
StringLengthCtrl
MessageCounter
MessageChecksum
-
SPN Signal Integer 0…524287 0
GenSigILSupport Signal Enum No
Yes
Yes
GenSigSendType Signal Enum Cyclic
OnWrite
OnWriteWithRepetition
OnChange
OnChangeWithRepetition
IfActive
IfActiveWithRepetition
NoSigSendType
NoSigSendType
GenSigInactiveValue Signal Integer 0…1000000 0
GenSigStartValue Signal Integer 0…10000 0
GenMsgILSupport Message Enum No
Yes
Yes
GenMsgSendType Message Enum Cyclic
NotUsed
IfActive
NoMsgSendType
NoMsgSendType
GenMsgCycleTime Message Integer 0…60000 [ms] 0
GenMsgCycleTimeFast Message Integer 0…1000000 [ms] 0
GenMsgDelayTime Message Integer 0…1000 [ms] 0
GenMsgStartDelayTime Message Integer 0…100000 [ms] 0
GenMsgFastOnStart Message Integer 0…1000000 [ms] 0
GenMsgNrOfRepetition Message Integer 0…1000000 [ms] 0
属性定义窗口需要通过菜单栏“View”目录下的“Attribute Definitions”选项打开。
CAN学习笔记一:DBC文件创建_第18张图片
打开后的“Attribute Definitions”窗口如下图所示,其中显示了一些软件默认添加的属性。
CAN学习笔记一:DBC文件创建_第19张图片
常用的属性有GenMsgSendType和GenMsgCycleTime,用于指定添加消息的类型和周期,下面将这两个属性添加至定义的DBC文件中。鼠标右键点击“Attribute Definitions”窗口空白处,在弹出选项框中选中“New…”选项,如下图所示。
CAN学习笔记一:DBC文件创建_第20张图片
使用鼠标左键点击“New…”选项后打开属性定义窗口,在其中设置属性的名称、对象类型、数值类型、默认值、最大值和最小值。
CAN学习笔记一:DBC文件创建_第21张图片
GenMsgSendType和GenMsgCycleTime的属性信息设置如下图所示。

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

3.4 创建Messages

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

3.5 创建Network nodes

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

你可能感兴趣的:(CAN,嵌入式,dbc,can)