DBC(Database CAN)文件是由德国维克多公司发布的,用来描述单一CAN网络中各逻辑节点信息数据通讯的一种文件,包含了CAN总线中协议数据及其所代表的具体意义。DBC文件格式比较固定,不会产生歧义和理解误差,同时便于交流,依据该文件可以开发出来监视和分析CAN网络中所有逻辑节点运行状态的软件,也可以开发有针对性的ECU通信应用软件。
创建DBC文件需要使用Vector公司提供的CANdb++编辑器,此处提供V3.1版本的下载链接地址:https://www.vector.com/int/en/download/?tx_vecdownload_downloaddetail%5Bdownload%5D=65339。CANdb++是Vector公司提供的一款免费软件,如使用上述地址无法获取软件安装包,或页面提示找不到资源,可直接在官网搜索CANdb++查找下载页面。
使用浏览器打开1.2 章节中提供的链接地址,按照界面提示下载CANdb++软件安装包,下载完成后,使用鼠标左键双击软件安装包,如下图所示:
鼠标双击后会打开软件安装向导界面,如下图所示:
鼠标左键点击“Next”按键,进入安装目录选择界面,可根据需要修改安装目录,注意选择的安装路径不要包含中文字符。
选择好安装目录后点击“Next”按键,进入自定义界面,即选择安装英文版本或者德文版本,可保持默认选项(英文版本)。
点击“Next”按键,进入准备安装界面。
点击“Install”按键开始安装软件,安装过程如下图所示。
安装完成后界面显示如下所示。
点击“Finish”按键完成安装,退出软件安装提示界面,此时会在桌面生成下图所示图标。
若桌面没有上图图标生成,可至电脑应用程序中查找新添加的程序。
可按照Vector官方提供的指导手册熟悉软件的基本使用操作,可点击下面链接获取文档手册文档。
https://download.csdn.net/download/weixin_43986229/15176916
DBC文件主要包含Value Tables、Signals、Messages、Network nodes、ECUs等元素组成,并由下至上(从Value Tables到ECUs)层层递进组成整个CAN Networks的描述。
首先鼠标左键双击CANdb++应用图标打开软件,软件打开后的界面如下图所示。
由于未打开任何文件,此时软件显示的是空白界面,鼠标左键点击软件界面左上角菜单栏中的“File”按键,在下拉框中选中“Create Database…”选项,创建DBC文件。
此时软件界面会弹出DBC文件模板类型供选择,我们选中“CANoeTemplate.dbc”选项,然后点击“OK”按键。
在弹出的界面中设置所要创建的DBC文件的名称和保存位置,然后点击“保存”按键。
此时会显示DBC文件的“Overall View”界面,在界面左侧列举了文件的组成项和层级结构。
鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Value Tables”选项,进入到Value Tables编辑界面。
在界面中空白处点击鼠标右键,选中“New…”选项,添加自定义的Value Table。
Value Table是自定义的一些数字表格的解释,如“0”代表无效,“1”代表有效,用于给后续定义的Signals赋值。此处我们定义了一个Value Table,用于说明开关信号的打开与关闭状态,如下图所示。
数值和描述添加完成后点击“确定”按键,即完成了Value Table ‘SwitchStatus’的创建。
首先,鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Overview”选项,切回到“Overall View”界面。鼠标右键点击界面左侧“Signals”图标,选中下拉框中的“New…”选项。
此时软件会弹出信号编辑窗口,根据需要在“Definition”界面下设置信号名称、长度、字节序、单位、数值信息和使用的Value Table。如下图所示,创建了一个“AcSwitch”信号,设置信号信息并将Value Table选中为上一节中添加的“SwitchStatus”。注意,对于某一取值范围较大的信号(如取值范围为0~0xFFFF),直接将信号长度和数值类型等信息设置正确即可,Value Table选项默认为“none”即可。
点击“确定”按键完成信号创建,这时会在“Overall View”界面左侧“Signals”中显示刚刚添加的信号,以及信号使用的Value Table。
常见的Attribute Definitions如下表所示,一般DBC文件不需要完全包含表中列举的属性,开发人员需根据项目需求选择添加属性。
信息设置完成后点击确定按键,完成属性的添加,此时会在“Attribute Definitions”窗口显示出刚刚添加的属性 ,表示已成功添加属性,如下图所示。
除了上述直接添加属性定义的方式外,也可通过从现有DBC文件中导入属性的方式添加属性。鼠标左键点击菜单栏中“File”按键,在下拉选项中选中“Import Attributes Definitions…”选项。
在弹出框中选中现有的DBC文件,然后鼠标左键点击“打开”按键即可完成属性的导入。
首先,鼠标左键点击软件菜单栏中“View”按键,在下拉选项中选中“Overview”选项,切回到“Overall View”界面。鼠标右键点击界面左侧“Messages”图标,选中下拉框中的“New…”选项。
此时软件会弹出消息编辑窗口,根据需要在“Definition”界面下设置消息名称、类型、ID、数据长度、发送器、发送模式和周期时间,需要注意的是此页面中的发送器、发送类型和周期时间填充了默认值,无法修改,创建者可根据需要在“Transmitters”和“Attributes”页面中修改。如下图所示,创建了一条“AirCondition”消息,设置消息基本信息(消息名称:AirCondition,类型:标准帧,ID:0x123,数据长度:8)。
鼠标左键点击“Signals”界面,添加消息信号,如将定义的“AcSwitch”信号添加进来。
“Transmitters”和“Receivers”暂时保持默认状态,鼠标左键点击“Layout”切换至信号布局界面,此界面显示了信号在CAN消息数据中的位置,可通过鼠标左键拖动信号来更改信号位置。
鼠标左键点击“Attributes”切换至消息属性界面,此界面会显示有关消息的所有属性,如果没进行之前的“添加属性”操作,此处将显示为空白。由于前面只添加了GenMsgSendType和GenMsgCycleTime两个消息属性,因此会发现此处也只显示了这两个属性,根据消息定义设置消息属性值。
“Comment”界面用于添加对消息的注释说明,可保持默认状态。然后鼠标左键点击“确定”按键,完成消息的添加,同时在“Overall View”界面左侧显示出添加的CAN 消息以及消息包含的信号,如下图所示。
鼠标右键点击界面左侧“Network nodes”图标,选中下拉框中的“New…”选项。
此时软件会弹出网络节点编辑窗口,根据需要在“Definition”页面中设置节点名称,在“Attributes”页面中设置节点属性(文件会默认添加一些属性,可根据节点具体信息进行修改,一般可保持默认值),在“TxMessages”页面中添加发送消息,Comment”界面用于添加对消息的注释说明,可保持默认状态,其他页面信息可保持默认值不做更改。如下图所示,创建了一个“AC”节点,并添加了前面定义的“AirCondition”消息。
然后鼠标左键点击“确定”按键,完成网络节点的添加,同时在“Overall View”界面左侧显示出添加的网络节点以及包含的消息和信号,如下图所示。
同时会在“Overall View”界面左侧显示出文件包含的ECU,以及每个ECU包含的网路节点,如下图所示。
至此,DBC文件的创建已经完成,在保存文件之前,可对文件进行一致性检测。鼠标左键点击菜单栏中“File”按键,在下拉选项中选中“Consistency Check”选项。
此时软件界面会弹出检测结果,显示当前的DBC文件存在的问题,如下图所示显示创建的DBC文件中的“AirCondition(0x123)”消息不存在接收节点。
根据上图中提示的错误和警告信息可对DBC文件内容进行审查和修改。注意在文件创建过程中保存文件。