您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
关于CANdb++软件创建解析CAN报文的DBC文件流程
 
 
   次浏览      
 2024-3-13
 
编辑推荐:
本文简要介绍了关于CANdb++软件创建用于解析CAN报文DBC文件流程相关内容。希望对你的学习有帮助。
本文来自于博客园,由火龙果软件Linda编辑,推荐。

今天写一篇关于CANdb++软件创建用于解析CAN报文DBC文件流程,最近的项目中需要用到DBC文件,由于一直没有使用过,不会搞就来百度百度探索一下,顺便记录一下调试过程。

1.首先了解一下什么是DBC文件?

DBC 全称为Data Base CAN,DBC文件用于描述单个CAN网络的通信中信息。其实就是根据CAN通讯协议制作一份用于解析CAN报文数据的文件,因为我们使用CAN设备抓取到的每一帧报文都是一串8个字节的十六进制数据(共64bit),

想要知道报文数据代表什么需要对着通讯协议去核对数据代表是什么。而DBC文件的作用就是帮助我们直接得到报文数据代表的含义,省去了查通讯协议这步骤,直接得到报文数据表示的是什么数据。

2.使用的软件

Vector公司的CANdb++ editor

软件下载链接:https://pan.baidu.com/s/1xdjvOiY2KTZNDf9rbeFIrA

提取码:3ecg

软件安装之后,若打不开时将Cdbstat.dll文件复制到一下路径中。

C:\Windows\SysWOW64

3.创建过程(创建一个简单解析CAN协议DBC)

3.1打开CANdb++ Editor 软件界面如下所示。

3.2点击File -> Create database ->选择J1939Template.dbc -> OK -> 输入文件名称,保存文件。

3.3创建好模板后显示如下图所示

重点关注两个点即可,Messages,Signals,这两个点即可入门了解DBC文件,若要深入探索DBC文件就需要了解全部Networks组件。

3.4创建Signals,右键Signals 选择NEW 创建信号,如下图所示。

解析一下下图中创建Signals:

创建一个名字(Name):Max_CellVolt

字节长度(Lenght):16bit

字节顺序(Byte Order):Motorola (字节顺序有两种模式:一种为Intel,另外一种为Motorola;区别为Intel 高字节(8bit)在后,低字节(8bit)在前;Motorola高字节(8bit)在前,低字节(8bit)在后。

例如:5330 数值用十六进制表示时,若用Motorola格式:14 D2;若用Intel格式:D2 14)

数值类型(Value Type):Unsigned 无符号 (数值类型有4种格式:Signed ,Unsigned,IEEE Float ,IEEE Double)

Unti,Factor,Int.val,Offset,Value Table这几项可以先不用管。

最小值与最大值可以点击 Calculate minimum and maximum 自行生成(这里的最大最小值是根据你选的字节长度和数值类型决定的)。

3.5什么是Signals?

Signals是一帧CAN报文中的数据代表的含义,例如下图一中国标充电协议中BSD这帧报文(帧ID:0x181C56F4),这帧报文共7个字节,分别用来表示荷电状态SOC,单体最低电压,单体最高电压,最低温度,

最高温度等5个信号;Signals就是指这5个信号。所以要解析这帧报文我们需要创建5个Signals,如下图二所示,创建对应字节长度的信号。

图一

图二

3.6创建Messages ,右键Messages,选择NEW,创建信息。如下图所示。

输入名字:BSD

类型为:扩展帧(CAN Extended)CAN报文帧类型分为两种:CAN Standard(标准帧),CAN Extended(扩展帧),主要区别为帧ID的范围。

ID:0x181C56F4

DLC:7 表示该帧报文字节数为7个字节(一帧报文最大字节数为8个)

3.7 创建好Messages后,需向Messages中添加

Signals?

Signals是一帧CAN报文中的数据代表的含义,例如下图一中国标充电协议中BSD这帧报文(帧ID:0x181C56F4),这帧报文共7个字节,分别用来表示荷电状态SOC,单体最低电压,单体最高电压,最低温度,

最高温度等5个信号;Signals就是指这5个信号。所以要解析这帧报文我们需要创建5个Signals,如下图二所示,创建对应字节长度的信号。

图一

图二

3.6创建Messages ,右键Messages,选择NEW,创建信息。如下图所示。

输入名字:BSD

类型为:扩展帧(CAN Extended)CAN报文帧类型分为两种:CAN Standard(标准帧),CAN Extended(扩展帧),主要区别为帧ID的范围。

ID:0x181C56F4

DLC:7 表示该帧报文字节数为7个字节(一帧报文最大字节数为8个)

3.7 创建好Messages后,需向Messages中添加Signals;在Messages "BSD"中选择Signals,然后点击Add.

3.8点击创建好的5个Signals,逐一添加,或者全选同时添加。

3.9添加好信号后,查看Layout选项中信号对应的字节位置是否与协议一样,此帧协议为国标充电协议中BSD这帧报文(帧ID:0x181C56F4),上面有图提示到,可查看上图。

4.0该帧报文共7个字节(0-6),第1字节:SOC;第2-3字节:Max_CellVolt;第4-5字节:Min_CellVolt;第6字节:Max_Temp;第7字节:Min_Temp;

与上面提示的国标充电协议BSD报文表示信号一致。

4.1保存文件,最后效果如下图所示。

4.2测试

使用CANPro软件,导入DBC文件,接收CAN报文,分析如下。

4.3总结

a.首先要明白DBC文件是有什么作用的,然后知道DBC文件可以由什么软件创建。

b.其次分析你使用的协议中那些报文是需要解析。

c.最后使用软件制作DBC。

d.关于此次使用的CANdb++这个软件网上有许多文章介绍,想要详细了解还得自己亲自去摸索摸索,俗话说“实践是检验真理的唯一标准”。

 
   
次浏览       
相关文章

中央计算的软件定义汽车架构设计
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
相关文档

汽车设计-汽车的整体结构及动力系统
自动驾驶汽车软件计算框架
SysML在汽车领域的应用实践
电子电气架构-大陆汽车系统架构平台
相关课程

AutoSAR原理与实践
功能安全管理体系(基于ISO26262)
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发

最新活动计划
C++高级编程 12-25 [线上]
白盒测试技术与工具实践 12-24[线上]
LLM大模型应用与项目构建 12-26[特惠]
需求分析最佳实践与沙盘演练 1-6[线上]
SysML建模专家 1-16[北京]
UAF架构体系与实践 1-22[北京]
 
 
最新文章
中央计算的软件定义汽车架构设计方案解析
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
智能汽车车用基础软件的内核和中间件
最新课程
Auto SAR原理与实践
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发(域控模式)
人工智能助力汽车行业升级
基于UML和EA进行系统分析设计
SysML和EA进行系统设计建模
更多...   
成功案例
奇瑞商用车 购买建模工具EA完全版
航空发动机研究院 购买建模工具EA完全版
联创汽车 购买建模工具EA完全版
江淮汽车 购买建模工具EA
更多...