汽车电子 -- 使用CANdb++ Editor创建并制作一个DBC

news2024/12/25 9:28:38

参看:关于DBC文件的创建(DBC文件系列其一)

一、什么是DBC

DBC文件是DataBase Container文件的缩写。
CAN数据库文件也称为后缀为(.dbc)的文件。DBC文件是基本的文本文件,其中包括将原始CAN总线数据解码为物理值或人类可读形式的信息。它指定特定消息(即CAN id)中包含哪些信号(例如,RPM,车速等)。

信号(Signal):信息的最小单位(发动机转速)
属性包括:name, length, Byte order, Value type,注意Byte order属性,我们称之为“格式”

报文(Message):报文代表一条CAN报文,它就是在CAN总线上实际发送的内容,报文包含若干信号
属性包括:name, ID, DLC, Transmitters

网络节点(Network node):它几乎代表了一个设备(ECU)|网络节点(Node),它几乎代表了一个设备(ECU)之所以说几乎,首先是因为ECU还包含了环境变量,其次是因为有一种特殊的ECU模型,它叫做网关(Gateway)包含两个或更多节点
设备(ECU):ECU其实就是节点和环境变量的组合,代表真实世界的仪器设备。在CANdb++ Editor中,ECU的可设置的属性只有其包含哪些环境变量。ECU对象名字无法编辑的,它等于节点的名字。

CAN网络(Network):Network表示真实世界中的一条CAN总线,它包含若干ECU。

网关(Gateway):是一种特殊的ECU,它包含多个节点,以及环境变量。各个节点属于不同的网络,通过共用的环境变量交换数据。这样,各个网络就可以通过网关交换信息。这也是“网关”名字的由来。 需要注意的是,CANdb++ Editor非Admin版本中,dbc文件只能含有唯一一个Network,因此网关这种模型是建立不出来的…

二、创建一个DBC

1、新建一个CAN数据库文件

选择菜单栏File->Create Database

image-20230714155518074

打开“Template”模板对话框

image-20230714155503571

这里以CANTemplate.dbc 为例。

image-20230714155943044

2、创建信号要用到的数值表 Value Tables

数值表的创建,其实是符号标识符来表示信号值或环境变量值,避免信号值意义不明确。具体操作如下:

点击工具栏 “View” 下的 “Value Tables”, 右键空白部分,选择 “New” 进行新建。此时界面如下图所示。

完成数值表名字及数值定义后,点击确定即完成信号数值表的创建。

image-20230714160915729

image-20230714161036737

image-20230714161550504

3、创建信号Signals,关联该信号的数值表

右击 “Signals” 选择 “New” 进行信号的创建。根据通讯矩阵中对于该信号的定义进行设置,并在value table中关联上一步创建的该信号的数值表,点击确定即完成了信号的创建。

image-20230714165910758

image-20230714172434605

image-20230714172610487

4、创建报文 Messages

右击 “Messgaes”, 选择 “New”,此时的设置界面如下图所示,按照通讯矩阵定义的报文信息进行设置,点击确定即完成当前报文的建立工作。在建立其他报文时,可以以这个为模版进行Copy操作再进行修改,也可以新 New 创建。

image-20230714172910474

image-20230714173029319

5、创建网络节点 Network nodes

右击 “Network nodes”, 选择 “New”, 设置界面如下图所示,这里我们只需要输入创建的网络节点名字进行新建操作即可。

image-20230714173412740

image-20230714173516170

image-20230714173550276

6、将信号、报文及网络节点进行关联链接

6.1、信号与报文的关联工作

6.1.1 方法一: 鼠标直接拖放

(1)鼠标点击 “Message” 下要进行关联操作的报文;

(2)将要关联到该报文的信号直接拖拽到右侧的空白区,或者拖拽到该报文的位置;

image-20230714174212308

6.1.2 方法二: 在该报文的 “Signals” 配置下进行添加关联

(1)右击“Message”下要进行关联工作的报文,选择Edit Message,在弹出的设置界面下切换到”Signals”设置项;
(2)点击”Add”,选择要关联到该报文的信号,点击OK即完成了关联工作(可以一次添加多个关联的信号)。如下图所示。

image-20230714174345515

image-20230714174727402

6.1.3 在完成报文与信号的关联后,此时还需要设置信号在报文的起始位;

(1)右击报文下的信号值,选择 “Edit mapped Signal”, 进入 “Definition” 设置界面;

(2)设置该信号的起始位,如下图:

image-20230714175644678

image-20230714175756553

可以查看一下该报文的 layout:

image-20230714175858906

6.2 报文与网络节点的关联工作

6.2.1 报文与发送节点的关联

跟前面介绍的信号与报文的关联一样,有两种方法:

(1)方法一:直接将报文拖拽到要关联的节点(注意,直接拖拽到节点的操作,默认是当做该节点的发送报文的);

(2)方法二:双击要进行关联的节点,进入设置界面,在 “Tx Messgages” 界面下点击 “Add” 进行报文添加工作。

image-20230714180948903

image-20230714181056067

6.2.2 报文与接收节点的关联

若当前报文是想作为要关联节点的接收报文,操作如下:

双击要进行关联工作的节点,进入设置界面,在 “MappedRxSig” 界面下点击 “Add” 进行报文添加工作。(注意,作为节点接收报文不能通过直接拖拽进行关联)。

image-20230714181344332

最终完成:

image-20230714181740484

7、创建或导入自定义属性,并进行修改

7.1、创建自定义属性

在 “View” 下点击 “Attribute Definitions”,右击选择 “New”,按需要可以进行对报文、信号、节点、环境变量等属性的创建。如下图:image-20230714182646968

image-20230714182655616

image-20230714182912904

image-20230714182959311

7.3、属性的导入操作

“Attribute Definitions” 中的属性也可以通过其他已有的dbc文件进行导入。

操作如下:在 “File” 中选择 “Import Attribute Definitions”,选择要导入的dbc文件,即可将该dbc中的属性定义导入到我们现在的dbc文件中来。

image-20230714184014895

image-20230714184220071

7.3、属性的修改操作

根据上面的步骤我们完成了属性的自定义或导入工作;此时再双击打开信号、报文、或者节点,在其”Attributes”项下可以看到我们前面定义/导入的属性及其值;此时可根据通讯矩阵的定义对其进行修改设置。

image-20230714184526583

8、一致性检查

经过前面的几个步骤起始已经完成了对数据库文件的创建。但是我们还需要通过一致性检查确保数据库文件中的对象及内部关系的一致性。

操作如下:

在 “File” 中选择 “Consistency Check”,此时会在一致性检查窗口中输出检查结果。

image-20230714184827495

经过前面的几个步骤起始已经完成了对数据库文件的创建。但是我们还需要通过一致性检查确保数据库文件中的对象及内部关系的一致性。

操作如下:

在 “File” 中选择 “Consistency Check”,此时会在一致性检查窗口中输出检查结果。

[外链图片转存中…(img-WcMABD1p-1689331888553)]

image-20230714185042942

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中,集群最终会选举出一个Leader节点,而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息,还会处理客户端的请求,并将客户端的更…

音频播放器Web页面代码实例(基于HTML5)

音频播放器Web页面代码实例&#xff08;基于HTML5&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><…

C/C++自定义类型(详解struct,enum,union)

目录 一&#xff0c;struct 1&#xff09;结构及一般使用方法 2&#xff09;无名结构体 3&#xff09;巧用typedef 4)struct小细节 5&#xff09;补充内存对齐&#xff08;提高程序可移植性&#xff0c;提高运行效率&#xff09; 二&#xff0c;enum 1)结构及一般使用方…

H3C-Cloud Lab实验-RIP实验

实验拓扑图&#xff1a; 实验需求&#xff1a; 1. 按照图示配置 IP 地址 2. 配置 RIP 实现全网路由互通 3. 路由器之间需要开启接口身份验证来保证协议安全性&#xff0c;密钥为 123456 实验步骤&#xff1a; 1. 配置R1的IP地址 2. 配置R2的IP地址 3. 配置R3的IP地址 4. 在…

【解决】Android Studio打包出现not found for signing config ‘externalOverride‘

问题出现场景 之前我的这个项目在另一台电脑上开发&#xff0c;现在迁移到这台计算机上&#xff0c;出现了key报错的问题&#xff0c;网络上有些说需要在XML中进行配置signature相关的内容&#xff0c;这个感觉比较复杂&#xff0c;本文主要介绍一个简单的解决方法&#xff0c;…

半同步半反应堆线程池(三)

本章讲解线程池所涉及的基础知识&#xff0c;包括服务器基本框架、I/O模型、事件处理模式等。 主要围绕服务器项目中涉及的知识进行介绍&#xff0c;若想了解更多相关知识&#xff0c;请参考《Linux下高性能服务器编程》。 1.服务器编程基本框架 主要由I/O单元&#xff0c;逻…

【分布式任务调度】XXL-JOB执行器配置及定时任务的创建(二)

文章目录 1. 前言2. 调度器配置2.1.依赖及配置2.2.任务实例2.3.调度中心管理配置 3. 总结 1. 前言 在上一篇《XXL-JOB调度中心集群部署配置》 中&#xff0c;我们已经得到了一个调度中心的集群&#xff0c;接下来需要了解如何配置调度器及创建定时任务。 本文的主要内容包括&a…

MySQL的登录与退出(图文详解)

目录 一、服务的启动 1、方式1&#xff1a;使用图形界面工具启动 方式2&#xff1a;使用命令行工具启动 二、服务的停止 方式1&#xff1a;使用图形界面工具停止 方式2&#xff1a;使用命令行工具停止 二、自带客户端的登录与退出 登录方式1&#xff1a;MySQL自带客户端 …

详解 ➾【FTP服务工作原理及连接模式】

详解 ➾【FTP服务工作原理及连接模式】 &#x1f53b; 前言&#x1f53b; 一、FTP服务简介&#x1f6a5; 1.1 FTP工作原理&#x1f6a5; 1.2 匿名用户访问的产生&#x1f6a5; 1.3 FTP服务的连接模式&#x1f6a5; 1.4 几种流行的FTP服务器软件 &#x1f53b; 总结—温故知新 &…

toastr js clear 不成功的一个原因和解决办法

在系统里使用了 toastr js 即时弹出后台通知。toastr 支持先后显示多个弹出消息,这点很好。然后我又加了自定义样式,使得消息通知更好看些。 我的想法是通知消息显示一段时间后关闭;也可点击关闭按钮,关闭通知并标记已读;或者点击通知消息中的链接查看通知相关的内容,同时…

Python面向对象学习整理(一)

一、面向对象中的几点概念 1.1 什么是类&#xff1f; 类&#xff1a;用户定义的对象原型&#xff08;prototype&#xff09;&#xff0c;该原型定义了一组可描述该类任何对象的属性&#xff0c;属性是数据成员&#xff08;类变量 和 实例变量&#xff09;和方法&#xff0c;可…

(简单)剑指Offer 21. 调整数组顺序使奇数位于偶数前面 Java

记数组nums的长度为n。从先nums左侧开始遍历&#xff0c;如果遇到的是奇数&#xff0c;就表示这个元素已经调整完成&#xff0c;继续从左往右遍历&#xff0c;直到遇到一个偶数。然后从nums右侧开始遍历&#xff0c;如果遇到的是偶数&#xff0c;就表示这个元素已经调整完成了&…

arcgis拓扑检查

不能有悬挂点 不能有伪结点***路网处理很重要&#xff0c;看研究吧。 一直默认到最后。 导入要素类&#xff0c;单个 toupu2右键新建拓扑&#xff08;T&#xff09; 一般选不能有悬挂点&#xff0c;不能重叠。 一路默认 是 拉进图层可视化 线要素的话记得添加字段length&#…

Redis数据结构 — Dict

目录 Dict结构设计 — rehash rehash触发机制 Dict扩容 Dict收缩 ​编辑渐进式 rehash 哈希表优点在于&#xff0c;它能以 O(1) 的复杂度快速查询数据。为解决哈希冲突&#xff0c;Redis 采用了「链式哈希」来解决哈希冲突&#xff0c;在不扩容哈希表的前提下&#xff0c;…

直播美颜SDK与智能美妆:技术融合的未来

对于许多直播主和观众来说&#xff0c;如何在直播中呈现最佳的外貌成为了一个重要问题。为了解决这个问题&#xff0c;直播美颜SDK与智能美妆技术的融合应运而生&#xff0c;为用户带来了前所未有的美妆体验。 简单来讲&#xff0c;直播美颜SDK可以理解为计算机视觉技术和人工…

WebDAV之π-Disk派盘 + Solid Explorer

Solid Explorer 支持WebDAV方式连接π-Disk派盘。 Solid Explorer 是一款非常优秀的 Android 文件管理器&#xff0c;Material Design 设计风格&#xff0c;双栏布局&#xff0c;可拖拽操作、支持 ROOT 权限、多媒体浏览器、压缩包支持&#xff0c;Chromecast 流支持等众多功…

AdsPower 的功能到底好不好用?一文详解,真实揭露

你一定听说过AdsPower、Multilogin、dolphin、vmlogin浏览器、紫鸟、悦互联等等这些常见的指纹浏览器软件吧&#xff01;其中&#xff0c;AdsPower浏览器作为一款跨境圈里的“明星指纹浏览器”&#xff0c;号称具备许多功能&#xff0c;这就让许多跨境人对这个浏览器充满好奇&a…

jdk11缺少jre的问题解决

问题&#xff1a;升级jdk的时候文件中缺少jre&#xff0c;导致项目启动报错 jdk11不在默认用户强制安装jre&#xff0c;所以jdk包中不在包含jre文件 解决步骤1&#xff1a;进入jdk安装包的根目录&#xff0c;输入cmd 解决步骤2&#xff1a;在cmd中输入以下命令 bin\jlink.e…

Jacoco代码覆盖率为0问题排查

目录 原因解决通过IDEA的TestMe重新生成测试类eclipse生成测试类JUnit Test Suite 其它查看覆盖率覆盖catch代码 我问GPT 整jacoco有意义嘛 前几天解决了无法生成jacoco.exec执行文件问题后&#xff0c;发现编写测试类好像无效&#xff0c;代码覆盖率全为0 原因 通过eclipse直…

谈一下开放电商数据接口的存在意义

随着互联网的迅速发展&#xff0c;电子商务&#xff08;E-commerce&#xff09;已经成为了现代社会中不可或缺的一部分。人们越来越喜欢在网上购物&#xff0c;电商平台也开始成为许多商家扩大销售渠道的利器。而为了更好地满足用户需求和提升整个电商行业的效率&#xff0c;开…