卡塔尔世界杯_中国进过几次世界杯 - 210rc.com
首页世界杯波兰正文

【使用手册】CANdb++Editor:自制一个DBC文件

2025-08-26 05:38:11

本文作者链接见下,带有的附件都是免费供个人学习使用,如有需要付费私我发共享网盘发你; 资料收集创作不易,感兴趣小伙伴点赞给个关注谢谢!

协议层了解差不多,CAN实操学习步骤大致如下(个人见解,欢迎讨论,小白有问题可私信)

CANdb++Editor安装包及教程移步: 【安装手册】CANdb++ EditorDBC文件如何看懂,怎么使用?做一个就知道了: 【使用手册】CANdb++Editor:自制一个DBC文件雅特力AT32 CAN使用入门: 【雅特力AT32 CAN】 MCU CAN入门使用指南(超详细)can数据收发实战: 【CAN 数据收发实战】上位机ZCANPRO发送+USART打印DBC文件发送的报文信息——以雅特力AT32为例CAN报文解析: 【DBC报文矩阵分析】读懂.DBC文件报文矩阵,信号矩阵数据解析思路(源码见链接) 【数据存储】大/小端存储与字节顺序转换函数详解解析代码实现移步: 【CAN报文数据解析】矩阵信号Intel与Motorola格式(C语言)代码

目录

下文dbc制作过程只是抛砖引玉,入门制作,加强对dbc文件的理解,功能上还有很多,读者可自行探索。

Editor初探

主界面 架构认知 个人理解

dbc简介

属性 功能 定义

实操制作步骤

创建信号signals 添加报文Messages 添加节点Network nodes 信号映射关系 导入和属性设置 一致性检查 增加值描述 完成后总览

Editor初探

主界面

架构认知

网络(Networks)-> 电子控制单元(ECUs)-> 网络节点(Network Nodes)-> 报文(Message)-> 信号

个人理解

有一个CAN总线系统,里面有很多ECU也就是很多支持can通信的单片机或者其它电子器件;

每个电子器件也就是一个网络节点,然后environment variables是它们物理地址、通信速率、电压等设定;

最后他们可以发送信息到总线上,信息包含的也就是诸多信号;

dbc简介

定义

dbc即CAN Data Base Describes.其描述的是在一个网络下的所有ECU的CAN通信。

功能

将CAN网络中数据解析成具体的报文(Message)和信号(signal),以方便我们对其进行分析。 DBC文件的作用就是帮助我们直接得到报文数据代表的含义,省去了查通讯协议这步骤,直接得到报文数据表示的是什么数据。

属性

一个dbc只含一个Network,因此,Network下面属性配置(Environment)相当于全局的配置,只配置一次。

网络(Networks)-> 电子控制单元(ECUs)-> 网络节点(Network Nodes)-> 报文(Message)-> 信号

了解架构后,显然初学可以从信号入手;

实操制作步骤

制作dbc参考链接:http://t.csdnimg.cn/McjyF 下文只是抛砖引玉,入门制作,加强对dbc文件的理解,功能上还有很多,读者可自行探索。

**一切参数设置以协议表为标准(厂商一般都会给,或者给你提需求的人)**

**信号逐级向上,长按拖动即可完成逐级的添加;**

创建信号signals

右键signals->new

标签主要看第一个(Definition)和最后一个标签(Comment)

1》创建一个名字(Name):Max_CellVolt

2》字节长度(Lenght):16bit

3》字节顺序(Byte Order):Motorola(字节顺序有两种模式:一种为Intel,另外一种为Motorola;

区别为Intel 高字节(8bit)在后,低字节(8bit)在前;Motorola高字节(8bit)在前,低字节(8bit)在后;

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

4》数值类型(Value Type):Unsigned 无符号

(数值类型有4种格式:Signed ,Unsigned,IEEE Float,IEEE Double)

5》“Factor:” 表示分辨率;

6》“Offset:” 表示偏移量;

7》“Minimum:”和“Maximum”表示该信号实际范围;比如,截图中最大值是30

即信号值 3000*0.01(Factor) = 30,即信号的最大值是3000.

8》“Init.Value:” 表示该信号的初始值;

9》“Unit:”表示单位。 解析数据时:实际的信号物理值 = 分辨率 * CAN信号值 + 偏移量

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

根据给的CAN网络协议表格制作(数量多起来制作过程给人整的没脾气!一定要写一个就制作一个)

添加报文Messages

signals创建完成发现左边是x,不急,先创建Messages;

右键Messages->new

主要看第一个(Definition)、第二个(Signals)和最后一个标签(Comment)

1》Name:” 表示新增ID的名称;

2》Type:标准帧还是扩展帧;

3》“ID:” 用十六进制表示,如果是标准帧,范围:0~0x7FF;

4》“DLC:” 表示新增message的实际的长度,最大为8

5》然后添加该message的signals,点击Add,添加;

报文添加后layout可见报文格式:

添加节点Network nodes

右键Network nodes->new

新建完在节点中添加对应报文Messages,双击所建节点可见:

信号映射关系

报文的添加(另一种方式)

导入和属性设置

导入属性,我们选择一个vector自带的dbc文件作为导入文件;

导入后可以再修改,注意更改属性;

主要关注报文周期和发送类型这两个,比如报文周期,多久发一帧,总要定义吧,发送类型,是周期发送还是不发送,也要定义。

一致性检查

没错就行

增加值描述

完成后总览

参考链接

《CAN报文DBC解析的编程方法说明》https://www.vecll.com/news/10.html

DBC文件学习 - 程序员大本营 (pianshen.com)

从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件-CSDN博客

使用CANdb++制作dbc文件(小白笔记)-CSDN博客

优秀专栏推荐:http://t.csdnimg.cn/nzV7g

深入理解驱动模块编译:从基础到实践 怎么查看苹果手机账号余额记录
相关内容