[CAN] 创建解析CAN报文DBC文件教程

2024-06-13 00:20
文章标签 教程 创建 解析 报文 dbc

本文主要是介绍[CAN] 创建解析CAN报文DBC文件教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

👉本教程需要先安装CANdb++软件,[CAN] DBC数据库编辑器的下载与安装

🙋前言

  DBC(全称为Database CAN),是用于描述单个CAN网络中各逻辑节点的信息。 DBC是汽车ECU(Electronic Control Unit,电子控制单元)间进行CAN通讯的报文内容。通过DBC文件,我们可以了解CAN网络中各个节点(Network node)会发送哪些报文(Message)和接收哪些报文,每个报文中包含哪些信号(Signal),以及每个信号位于报文的哪个位置等信息。
  作用:DBC文件的主要作用是“解析”。通过定义好的DBC文件,我们可以将CAN网络中的数据解析成具体的报文和信号,从而方便我们对其进行分析。
  组成:DBC文件是由一系列的Message和Signal组成,文件定义了Message和Signal的属性。
  查看与编辑:DBC是文本文件,可以用记事本打开,但一般使用专门的工具(如CANdb++)来更方便地查看和编辑。
  发布:DBC文件由德国Vector公司发布,用于依据该文件开发出来监视和分析CAN网络中所有逻辑节点的运行状态。

1 需求分析

为了直观的演示整个创建过程,这里以下表 1 报文内容为例,开始教程的演示。
在这里插入图片描述其中,在表中仅有1帧报文,报文由5条信号组成,编码格式为Intel。

2 创建模板

1.打开Vector CANdb++ Editor 软件界面如下所示。
在这里插入图片描述
2点击File,选择 " Create database "。
在这里插入图片描述
3.在弹出界面选择 " CANTemplate.dbc " ,点击 OK 。
在这里插入图片描述
4. 输入文件名称,保存文件。
在这里插入图片描述
5.创建好模板后显示如下图所示。
在这里插入图片描述

3 添加信号

  Signals是一帧CAN报文中的数据代表的含义,例如上表1中的这帧报文,报文共8个字节,共5个信号;Signals就是指这5个信号。所以要解析这帧报文就需要创建5个Signals。

1.点击Signals,右键选择New。
在这里插入图片描述
2.在信号框,填写待建Signal的相关信息,选择完上述属性后,点击Calculate minimum and maximum`计算信号的最大值与最小值,具体如下。
在这里插入图片描述
  其中,1.Name为信号名。2.Length[Bit]为该信号的位长度。3.Byte Order是选择信息的存储类型,分为因特尔和摩托罗拉。4.Unit为信号的物理单位。5.Value Type为数据类型,分为Signed(有符号整型)、Unsigned(无符号整型)、IEEE Float(浮点型)、IEEE Double(双浮点型)。6.Init.Value初始值。7.Factor为比重。8.Offset为偏置量。9.Minimum为最小值, Maximum为最大值, 这两个值可以点击 Calculate minimum and maximum 自行生成(这里的最大最小值是根据你选的字节长度和数值类型决定的)。

3.点击Commit,添加该信号的注释。
在这里插入图片描述
4.点击确定,完成Signal的创建。
在这里插入图片描述
5.继续创建其他四个信号。

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

6.创建完成,结果如下。
在这里插入图片描述

4 新建Message

1.右键Messages,选择NEW来创建报文信息。
在这里插入图片描述
2.设置Messages信息。
在这里插入图片描述
  其中,1.Name为信息帧名。2.Type为选择标准帧或拓展帧。3.ID为帧的ID。4.DLC为帧长度,即字节数。

5 关联

关联:设置好Messages信息后,需向Messages中添加Signals,来实现报文与信号的关联。

1.点击 " Signals ",然后点击 " Add "。
在这里插入图片描述
3.点击创建好的5个Signals,全部选中,然后点击 " OK " 。
在这里插入图片描述
4.点击 " 确定 " 。
在这里插入图片描述
5. 添加好信号后,查看Layout选项中信号对应的字节位置是否与规定协议一样。
在这里插入图片描述
6. 保存文件,最后效果如下图所示。
在这里插入图片描述

这篇关于[CAN] 创建解析CAN报文DBC文件教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055760

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H