星期五, 13 05月 2022 15:58

利用CANdb++ Editor在DBC文件中进行报文解析

CANdb++是汽车CAN总线DBC文件的编辑软件。由于官网下载的文件存在bug,在这里我将官网和修复bug的文件一并进行上传(所有的文件都在这里了)。下面提供CANdb++软件的使用教程。

1、CANdb++软件安装

安装完成后会提示缺少Cdbstat.dll文件,这里我已经将该文件放到下载文件的主目录文件夹下。需要复制Cdbstat.dll文件,复制到C:\Windows\SysWOW64
在这里插入图片描述

2、DBC文件添加帧CAN_ID和信号CAN_Signal

DBC(Data Base CAN)文件用于描述单个CAN网络的通信,DBC文件格式比较固定、不会产生歧义和理解误差,便于交流。下面在已有的DBC中增加帧Frame ID和信号Signal。

软件示意图
在这里插入图片描述
在这里插入图片描述

2.1、打开“CANdb++ Editor”,在”Signals”中增加一个信号;

(1)新建项目
图片来源于网络
(2)右击“Signals”,在上下文中选择“New”,弹出如下对话框
在这里插入图片描述
在这里插入图片描述
(3)编辑“Signal‘New_Signal_6’”对话框中的信息;
?编辑信号基本信息:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

注:
“Name:”表示该信号的名称;
“Length[Bit]:”表示该信号的长度,以Bit度量;
“Byte Order:”表示数据格式,有“Motorola(大端模式)”,“Intel(小端模式)”可选,根据实际情况选择;
“Value Type:”表示数据是有/无符号类型(若偏移量为0,需要表示负数,则该项选择Signed; 若偏移量为负数,需要表示负数,则该项选择Unsigned。);
“Factor:”表示分辨率;
“Offset:”表示偏移量;
“Minimum:”和“Maximum”表示该信号实际范围;
“Init.Value:”表示该信号的初始值;
“Unit:”表示单位。
解析数据时:实际的信号物理值 = 分辨率 * CAN信号值 + 偏移量

?对该信号添加备注:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

2.2、在“CANdb++ Editor”右侧的”Message”中增加一个ID;

(1)右击“Message”,在上下文中选择“New”,弹出如下对话框;
在这里插入图片描述
在这里插入图片描述
(2)编辑“Message‘New_Message_4’”对话框中的信息;
?编辑ID基本信息:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

注:
“Name:”表示新增ID的名称;
“ID:”用十六进制表示,如果是标准帧,范围:0~0x7FF;
“DLC:”表示新增ID实际的长度,最大为8.

(3)添加该ID的信号:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)定义该ID发送节点:
修改前:
在这里插入图片描述
修改后:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)将信号拖动到合适的位置
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
(6)定义该ID的周期和发送类型
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
(7)给该ID添加备注:
在这里插入图片描述

2.3、对ID中的信号添加接收的节点;

(1)双击Message里ID中的信号(最底层文件):
在这里插入图片描述
修改前:
在这里插入图片描述
修改后:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4、对ID中的信号增加“值描述”;

(1)在菜单栏中选择“View”à“Value Tables”
在这里插入图片描述
(2)在空白的位置右击,并在上下文中选择“New”;
在这里插入图片描述
(3)在弹出的对话框中,编辑相关信息;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)对Message中的信号增加“值描述”。
?双击Message里ID中的信号:
在这里插入图片描述
?对该信号增加“值描述”
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
在这里插入图片描述
综上,新增CAN_ID和CAN_Signal已经完成。

查看 9098