汽车电子—制作DBC文件

news2024/10/6 20:34:54

文章目录

  • 一、前期准备
  • 二、新建DBC文件
  • 三、添加报文(Msg)
  • 四、添加信号
    • 4.1 大小端模式
    • 4.2 创建数值表
    • 4.3 添加信号
  • 五、关联信号和报文
  • 六、设置报文发送类型和周期
  • 七、编辑通信矩阵

一、前期准备

首先需要安装制作DBC文件的软件,这里使用的是CANdb++。由于博主刚开始接触汽车电子相关知识,如果有其他常用的制作DBC文件的软件,欢迎大家在评论区留言。

制作DBC文件的软件

其次就是需要制作的报文,也就是通信协议。其中包括报文名称(Msg Name),报文ID(Msg ID),报文发送类型(Msg Send Type),报文周期时间(Msg Cycle Time(ms))报文长度(Msg Length Byte),信号名称(Signal Name),信号描述(Signal Description),排列格式(Byte Order),起始字节(Start Byte),起始位(Start Bit),信号发送类型(Signal Send Type),信号长度(Bit Length),数据类型(Data Type),精度(分辨率,Resolution),偏移量(offset),物理最大值(Singal Value Max(phys)),物理最小值(Signal Value Min(phys)),总线(十六进制)最小值(Signal Min Value(Hex)),总线最大值(Signal Value Max(Hex)),初始值(Initial Value(Hex)),单位(Unit),无效值(Invalid Value(Hex))信号描述(Singal Value Description)等。这里博主自己简单列一个报文。

Msg NameMsg IDMsg Send TypeMsg Cycle Time(ms)Msg Length ByteSignal NameSignal DescriptionStart ByteByte OrdeStart BitSignal Send TypeBit LengthData TypeResolutionoffsetSignal Value Min(phys)Singal Value Max(phys)Signal Min Value(Hex)Signal Value Max(Hex)Initial Value(Hex)UnitSingal Value Description
CAR0x0404Cycle108Enable发动机使能0Motorola LSB2Cycle1Unsigned10010x00x10x10:不使能;1:使能
CAR0x0404Cycle108Speed发动机转速2Motorola LSB16Cycle16Unsigned0.2500160000x00x3E800x0rpm

二、新建DBC文件

新建DBC文件
新建DBC文件

三、添加报文(Msg)

新建完成后,点击左侧的“Message”来新建报文。

添加报文

根据通信协议,填入报文的相关信息。

填入报文信息

其中“Type”有两种,一种是“CAN Standard”,标准的CAN。一种是“CAN Extended”,扩展的CAN。标准帧的ID取值范围是0x0~0x7FF,而扩展帧的ID可以更大。CAN标准帧和扩展帧只是在ID的长度上不一样,以能扩展更多的CAN节点,更好地支持上层协议而已。如果“Type”选择错误,ID超出范围会报错。

ID超出范围报错

其中DLC(Data Length Code)是发送报文的长度。

创建好的报文如下

创建好的报文

四、添加信号

在介绍如何添加信号之前,先介绍一下大小端模式和如何新建数值表。

4.1 大小端模式

简单来讲,Intel是小端模式(Little-Endian小端序),Motorola是大端模式(Big-Endian大端序)。

小端模式——低字节存放在低地址端,高字节存放在高地址端
大端模式——低字节存放在高地址端,高字节存放在低地址端

举一个简单的例子,比如需要存储0x12 34 56 78

大端模式存储时,低字节放在高地址,高字节放在低地址。
存储时为 0x12 | 0x34 | 0x56 | 0x78

小端模式存储时,低字节放在低地址,高字节放在高地址。
存储时为 0x78 | 0x56 | 0x34 | 0x12

4.2 创建数值表

数值表就是用来指示信号中值的含义。点击“View”,选择“Value Tables”。

创建数值表

创建好的数值表如下

创建好的数值表

4.3 添加信号

点击左侧的“Singal”,右键右侧空白处,选择“New”。

添加信号

按照通信协议要求,添加信号。在“Comment”窗口添加信号描述。

  • Byte Order
    这是排列格式,有两种。一种是小端模式,另一种是大端模式。关于小端模式和大端模式,下面会有相应的补充介绍。
  • Uint
    单位,没有可以不写
  • Factor
    对应通信协议中的精度,分辨率(Resolution)
  • Minimum和Maxmum
    物理最小值和物理最大值
  • Value Table
    数值表,用来指示每一个数值的含义。需要自己创建。

创建好的发动机使能信号如下

创建好的发动机使能信号

创建好的发动机转速信号如下

创建好的发动机转速信号

五、关联信号和报文

创建完信号和报文之后,需要将信号添加到报文中。再次点击左侧的“Message”。选择“Signal”,点击下方的“Add”添加信号,将上面创建的信号添加进来。

添加信号

六、设置报文发送类型和周期

双击打开新建的报文,选择“Attributes”窗口,根据通信协议来设定报文的发送类型和周期。

设置报文发送类型和周期

七、编辑通信矩阵

  1. 双击创建的Message(报文),选择“Layout”
  2. 点击“Add…”添加信号,根据通信协议规定的起始字节和起始位将信号添加进去

通信矩阵

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

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

相关文章

计算机网络概述(二)

计算机网络的定义 计算机网络并没有一个统一的定义,不同阶段是有不同的定义。 最简单的定义:计算机网络是一些互联的,自治的计算机集合。互联:指计算机之间可以通过有线或无线的方式进行数据通信;自治指的是独…

MySQL_01删除主键索引

文章目录 添加主键索引删除主键索引 添加主键索引 alter table 表名 add primary key(字段名)删除主键索引 -- 如果这个主键是自增的,先取消自增长 alter table 表名 modify 字段 int; alter table 表名 drop primary key;

消息队列 原理剖析

什么是消息队列? ​​消息队列是一种用来存储消息的队列。 消息队列能用来做什么? 1、消息或任务的延迟处理。 2、在复杂的业务场景下给系统减压。 3、提示用户体验感,增强用户体验。 4、敏感操作高安全环境处理。 场景举例1&#xff1a…

途乐证券|股票低开好还是高开好?股票低开高走再回落什么意思?

对于一向不涨的股票,出资者常常感到困惑和不安。那么一向不涨的股票要留吗?什么股票更简单上涨?为我们预备了相关内容,以供参阅。 一向不涨的股票要留吗? 一向不涨的股票要不要留没有一个绝对的答案,出资者…

Vue2.0-3.0 入门到实战 - 2 初始及插件安装

1 Vue 指令 v- 前缀的 特殊标签属性 1 v-html"表达式" 可以解析 文本html 类似 innerHtml 2 v-show 与 v-if v-show"表达式" true 表示 显示 false 标识隐藏 v-if"表达式" true 表示 显示 false 标识隐藏 区别 当v-show 的值…

青岛大学_王卓老师【数据结构与算法】Week04_05_双向链表的删除_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

【CMake】构建类型详细解读

1. CMAKE_BUILD_TYPE官方资料 CMake可以配置构建类型,例如:Debug、Release等,控制生成构建系统使用的配置变量 是 CMAKE_BUILD_TYPE 。该变量默认为空,CMake识别的值为:Debug:用于在没有优化的情况下,使用带…

音频格式怎么转换成WAV?分享这三个WAV转换器!

随着数字时代的进步与发展,音频格式也变得越来越多样化。人们为了满足自己的需求,开始使用各种音频格式来存储和播放音乐。然而,不同的音频格式和不同的播放器之间常常存在兼容性问题,这就需要我们进行音频格式转换,以…

Spark SQL、DataFrame、DataSet是什么

在很多情况下,开发人员并不了解Scala语言,也不了解Spark常用的API,但又非常想要使用Spark框架提供的强大的数据分析能力。Spark的开发工程师们考虑到了这个问题,于是利用SQL语言的语法简洁、学习门槛低以及在编程语言中普及程度和…

开放式耳机推荐,盘点几款好用的开放式耳机

一款好的开放式蓝牙耳机不仅可以让我们缓解疲劳,还能更有动力,特别是音质的表现,如果一款开放式耳机的音质表现不好,那这款耳机也就没有多大意义了,还有就是佩戴舒适性,所以选择一款好的开放式蓝牙耳机也很…

vs2015调试时无法显示QT变量值

问题描述: vs2015调试时无法显示 QT变量值,只能显示地址,导致想要查看变量值的时候,只能想办法打印出来,非常麻烦。如下图: 问题解决: 调试 - 选项 - 调试 - 常规 - 去掉 使用本机兼容性模式&am…

压测性能调优之gateway网关

1、 压测资源和场景 (1)14个接口同时压测5000并发; (2)服务资源:采用k8s部署,总共25台8核64G阿里云机器,node节点个数22个,master3个,15个网关实例&#xf…

综合评价算法 | Matlab实现基于CRITIC法的综合评价算法

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 综合评价算法 | Matlab实现基于CRITIC法的综合评价算法 研究内容 CRITIC法是一种比熵权法和标准离差法更好的客观赋权法。它是基于评价指标的对比强度和指标之间的冲突性来综合衡量指标的客观权重。考虑指…

【AttributeError: module ‘cv2‘ has no attribute ‘saliency‘】

AttributeError: module ‘cv2’ has no attribute ‘saliency’ 问题解析 已经成功安装cv2且import cv2成功的情况下(如下图黄色框所示),在运行时报如下所示错误: AttributeError: module cv2 has no attribute saliency 这个错…

Guitar Pro8.1最新版吉他练习好助手

Guitar Pro研发团队深知「简谱」之于中国用户的重要性,在经过几个月的测试和开发,最新的Guitar Pro软件已全面支持简谱功能!会带给您音乐学习和创作的极大便利。相信玩吉他的朋友多多少少都听说过Guitar Pro这款软件,那大家知道Gu…

stable diffusion 调试天坑 (setup.py)

第一次下载V1的stable diffusion (https://github.com/CompVis/stable-diffusion) 到本地调试,根据其要求创建了虚拟环境,自动运行了setup.py文件,长这样 from setuptools import setup, find_packagessetup(namelatent-diffusion,version0.…

张驰咨询:精益生产管理消除浪费,提高效率,降低成本!

精益生产管理是一种以消除浪费为主的生产管理方法。它起源于日本,此后被世界各地的企业所采用和实践。下面张驰咨询探讨精益生产管理的作用及其对企业。 1. 精益生产管理的作用 提高生产效率:通过消除浪费,精益生产管理可以使企业在相同的时…

动态规划——区间dp [石子合并]

动态规划——区间dp 什么是动态规划区间dp定义应用 例题引入题目描述输入格式输出格式样例样例输入样例输出 提示 贪心法区间dp优缺点:AC代码:代码详解三层for循环状态转移方程环形的处理 什么是动态规划 动态规划(dp)是一种通过…

高数基础10不定积分

目录 不定积分 原函数存在定理: 定理1 定理2: 例题1: 例题2: 例题3: 不定积分的性质: 不定积分的基本公式: 例题4: 例题5: ​编辑 例题6: 三种主要积分法…

喜讯!安全狗再次获得“纳税大户”称号

近日,厦门市思明区人民政府公布了《2022年度纳税大户名单》。安全狗入选名单并被授予“2022年度纳税大户”称号。 厦门服云信息科技有限公司(品牌名:安全狗)成立于2013年,致力于提供云安全、(云&#xff09…