[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. 保存文件,最后效果如下图所示。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/348050.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ事务性消息

RocketMQ事务性消息是一定能保证消息发送成功的 事务消息发送步骤: (1)发送方将半事务消息发送至RocketMQ服务端。 (2)RocketMQ服务端将消息持久化之后,向发送方返回ack确认消息已经发送成功。由于消息为…

STM32项目分享:智能家居语音系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB打板焊接图: 五、程序设计 六、实验效果 七、包含内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.com…

Python算法于强化学习库之rlax使用详解

概要 在强化学习领域,开发和测试各种算法需要使用高效的工具和库。rlax 是 Google 开发的一个专注于强化学习的库,旨在提供一组用于构建和测试强化学习算法的基础构件。rlax 基于 JAX,利用 JAX 的自动微分和加速计算功能,使得强化学习算法的实现更加高效和简洁。本文将详细…

CPT204 Advanced OO Programming(2)

W5 Lists_stacks_queues_priority queues  To explore the relationship between interfaces and classes in the Java Collections Framework hierarchy.  To use the common methods defined in the Collectioninterface for operating collections.  To use…

⌈ 传知代码 ⌋ ERA-CoT: 实体关系推理

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

Xmind导入纯文本TXT方法

最近有很多同事咨询我如何在xmind直接导入纯文本txt笔记或者思维导图呢? 解决办法如下: 1.先打开xmind随便打开一个思维导图-文件-导出-marldown 2.选中导出的markdown文件。右键-打开方式-苹果系统选择文本编辑,Win系统选择记事本 3.按照图示…

Unity动画录制工具在运行时录制和保存模型骨骼运动的方法录制动画给其他角色模型使用支持JSON、FBX等格式

如果您正在寻找一种在运行时录制和保存模型骨骼运动的方法,那么此插件是满足您需求的完美解决方案。 实时录制角色运动 将录制到的角色动作转为动画文件 将录制好的动作给新的角色模型使用,完美复制 支持导出FBX格式 操作简单,有按钮界面…

SpringCache 缓存 - @Cacheable、@CacheEvict、@CachePut、@Caching、CacheConfig 以及优劣分析

目录 SpringCache 缓存 环境配置 1)依赖如下 2)配置文件 3)设置缓存的 value 序列化为 JSON 格式 4)EnableCaching 实战开发 Cacheable CacheEvict CachePut Caching CacheConfig SpringCache 的优势和劣势 读操作…

ADS基础教程19 - 电磁仿真(EM)基本概念和实操

EM介绍 一、引言二、基本概念1.EM介绍2.Momentum介绍3.FEM介绍4.Substrate介绍 三、创建Layout并进行Momentum仿真1.创建Layout2.添加Microtrip(微带线)3.添加Substrate4.Momentum仿真 四、总结 一、引言 本章节开始介绍EM的基本概念、内容以及实现具体…

反向传播算法

在深度学习和神经网络中,反向传播算法是一种至关重要的技术,它使得网络能够通过学习不断调整自身的参数以优化性能。作为训练神经网络的核心机制,反向传播通过计算损失函数对模型参数的梯度,并据此更新网络权重,从而逐…

this关键字,构造函数(构造器)

文章目录 thisthis是什么应用场景 构造器注意事项代码演示 this this是什么 this就是一个变量,可以在方法中,拿到当前对象 应用场景 解决变量名称 冲突问题 构造器 注意事项 必须和类名相同没有返回值只要参数不同(个数不同&#xff0…

ISO 26262《道路车辆功能安全》

ISO 26262是关于道路车辆功能安全的国际标准,专门针对总重不超过3.5吨的八座乘用车及其安全相关电子电气系统(E/E系统)的功能安全而制定。以下是关于ISO 26262的详细解释: 一、背景与目的 ISO 26262是在2011年11月15日正式发布的…

Java基础面试重点-2

21. JVM是如何处理异常(大概流程)? 如果发生异常,方法会创建一个异常对象(包括:异常名称、异常描述以及异常发生时应用程序的状态),并转交给JVM。创建异常对象,并转交给…

UML相关1

汽车租赁系统中的用例图简述(10分) 本系统根据功能可以分为三个用例图: 客户用例图:主要描述客户注册、登录、找回密码、查询车辆信息(包括所有车辆信息、已借车辆信息、租赁历史信息)、修改个人信息、网上预订车辆、电话预定车…

LabVIEW结构体内部缺陷振动检测

结构体内部缺陷会改变其振动特性,通过振动分析可以检测并定位这些缺陷。本文详细分析内部缺陷对振动的影响,从频谱分析、时域分析和模态分析等多角度探讨基于LabVIEW的检测方法,提供实施步骤和注意事项,帮助工程师有效利用LabVIEW…

Windows下Qt5.14.2连接华为IoTDA平台

一、华为IoTDA简介 华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助您快速构筑物…

JAVA:在IDEA引入本地jar包的方法并解决打包scope为system时发布无法打包进lib的方案

一.引入本地Jar包的步骤 有时maven依耐的包是本地的jar包,此时需要进行以下步骤设置。 步骤1.在pom.xml中添加插件设置,将system范围包含进来,此设置是为了在打包时,本地jar包自动生成到部署包里。(若无法打进包,请参考下文的方…

面向对象三大特征之:封装

文章目录 什么是封装?封装的设计规范 什么是封装? 就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些书记的方法设计到一个对象中去。 封装的设计规范 合理隐藏,合理暴露 public就是都能访问…

【Python】解决Python报错:ValueError: not enough values to unpack (expected 2, got 1)

​​​​ 文章目录 引言1. 错误详解2. 常见的出错场景2.1 函数返回值解包2.2 遍历含有不同长度元组的列表 3. 解决方案3.1 检查和调整返回值3.2 安全的解包操作 4. 预防措施4.1 使用异常处理4.2 单元测试 结语 引言 在Python编程中,ValueError 是一个常见的异常类…

服务器配置(初始化)

一:什么是云服务器及用途: 云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。 我个人感觉就…