CANoe工程中dbc文件的制作

使用CANdb++创建DBC文件

1 创建DBC文件的意义

1.1 什么是DBC

1.2 为什么要创建DBC

2 如何创建DBC

2.1 安装DBC工具

2.2 新建DBC文件

2.3 协议转换为DBC


  1. 创建DBC文件的意义
    1. 什么是DBC

DBC全称Database CAN,是描述网络上所有电子节点(ECU)之间CAN通信信息的数据库文件。 其内容与HTML语言相似,是标签语言的一种,DBC文件部分内容如图1-1所示。

CANoe工程中dbc文件的制作_第1张图片

1-1 DBC文件部分内容图

    1. 为什么要创建DBC

例如在调试汽车发动机时,需要一个仪表和油门来控制发动机转速和查看发动机转速,为能快速实现控制转速和查看时实转速,可以使用计算机来接收发动机转速数据和控制发动机转速。

此时计算机收到的数据需要按照协议进行解析,如“2B C1 3C 00 00 00 00 00”里面包含了转速、状态、温度等信息,无法直观看到,需要解析:前12位代表发动机转速,转换为十进制为750,乘以精度信息,实际转速为7500,第13位到第16位代表了状态信息,转换为十进制为1,代表启动状态。17到24位代表了温度信息,转换为十进制为60,减去偏移量为实际温度20度。

以上解析过程为手动解析,在实际使用过程中,需要计算机根据协议自动解析。此时就需要将协议写入DBC文件,让计算机根据DBC文件中的协议,自动将数据中的信息解析出来。

  1. 如何创建DBC
    1. 安装DBC工具

获取到CANdb++ 3.1安装包后,双击进行安装。持续点击下一步,即可安装完成。

CANoe工程中dbc文件的制作_第2张图片

2-1 CANdb++ 3.1 安装包属性图

    1. 新建DBC文件

安装完成后,打开CANdb++3.1,界面如图2-2所示。

CANoe工程中dbc文件的制作_第3张图片

2-2 CANdb++ 3.1工作界面图

在工作界面左上角,依次点击“File”、“Create Database”,选择“CANTemplate.dbc”后,点击“OK”。此时需要选择文件保存路径,选择合适的路径保存即可。保存完成后,DBC文件将自动打开,进入编辑界面,如图2-3所示。

CANoe工程中dbc文件的制作_第4张图片

2-3 DBC文件打开图

    1. 协议转换为DBC

本文将使用图2-4所示的协议内容,作为示例,转换为DBC文件。

CANoe工程中dbc文件的制作_第5张图片

2-4 某控制器部分协议内容

首先创建的内容是报文信息,如图2-4所示,包含两帧报文信息,分别是“FCSHCPCmd”和“FCSHCPStatus1”。其中每帧报文又包含若干个信号,如“FCSHCPCmd”报文包含了“FCSHSpdSet”“FCSHCPMode”“TempAmb”“RollingCounter_0x331”“Checksum_0x331”五条信号。

如图2-5所示,右击“Massages”标签,点击“New...”标签,创建报文信息,填入相应的信息:

Name:信息帧名;

Type:为帧类型,可选内容为“CAN Standard”和“CAN Extended”。分别表示该帧为标准帧和拓展帧;

ID:表示该帧的ID号;

DLC:表示该帧的长度。

如图2-6所示。以同样的方式,创建第二帧报文。

CANoe工程中dbc文件的制作_第6张图片

2-5 新建报文信息图

CANoe工程中dbc文件的制作_第7张图片

2-6 报文信息编辑图

报文信息创建完成后,创建信号信息。右击“Signals”标签,然后点击“New...”标签,创建信号信息,填入相应的信息:

Name:信号名称;

Length[bit]:该信号位长度;

Byte Order:信息储存类型,可选内容为“Intel”和“Motorola”类型;

Value Type:数据类型;

Factor:精度;

Offset:偏移量;

Unit:信号单位;

Calculate minimun and maximum:计算信号的最大值和最小值;

Commit:添加注释;

CANoe工程中dbc文件的制作_第8张图片

2-7 新建信号信息图

CANoe工程中dbc文件的制作_第9张图片

2-8 信号信息编辑图

如图2-8所示,填入相关参数。依次点击“Messages”标签,“Add...”标签,点击所属报文,点击“OK”添加。如图2-9所示。其他信号添加方式与此相同。

CANoe工程中dbc文件的制作_第10张图片

2-9 信号信息添加所属帧信息图

图2-3中,部分信号为枚举型,此时需要添加枚举表赋予该信号。如图2-10所示,依次点击“View”标签,“Value Tables”标签,进入编辑界面。

CANoe工程中dbc文件的制作_第11张图片

2-10 添加枚举信号图

进入枚举编辑界面后,右击空白处,点击“New”标签,添加枚举变量,进入变量设置界面,如图2-11所示。输入名称后,依次点击左上角标签“Value Descriptions”,右下角标签“Add”,编辑新建的枚举,以“FCSHCPMode”信号为例,编辑好的枚举变量,如图2-12所示。

CANoe工程中dbc文件的制作_第12张图片

2-11 枚举信号添加界面图

CANoe工程中dbc文件的制作_第13张图片

2-12 枚举信号编辑界面图

点击确定后,双击枚举对应的信号,将枚举匹配至该信号。如图2-13所示,依次点击“Value Table”标签,点击枚举变量名称,点击确定。

CANoe工程中dbc文件的制作_第14张图片

2-13 枚举添加界面图

信号编辑完成后,需要创建发送方和接收方节点。如图2-14,依次右击“Network nodes”,点击“New..”标签,进入节点编辑界面。

CANoe工程中dbc文件的制作_第15张图片

2-14 节点添加界面图

编辑节点名称后,点击“Mapped Rx Sig”标签,点击“Add:all form one message”标签,选择该节点接收类型的数据帧,如图2-15所示。点击“ok”标签后,再点击“Tx Massage”,再点击“Add...”标签,选择该节点要发送的数据帧,再点击“OK”标签、“确定”标签,如图2-16所示。

CANoe工程中dbc文件的制作_第16张图片

2-15 接收节点编辑界面图

CANoe工程中dbc文件的制作_第17张图片

2-16 发送节点编辑界面图

一个完整的CAN通讯需要至少两个节点才能实现,一帧报文需要一个接收节点和一个发送节点,故至少需要创建两个以上的节点。

以上功能设置完成后,进行一致性检查,如图2-17所示,点击左上角“File”标签,

点击“Consistency check”标签,若无内容,则表示一致性检查通过。

你可能感兴趣的:(青少年编程,python,java)