dbf文件怎么创建_DBC文件到底是个啥
本文首发自公众号“汽车技术馆”
在之前的一篇文章中给大家分享了一些CAN的基本知识,比如CAN通讯是个啥,CAN通讯的机制以及CAN通讯的帧结构等等,相信读过这篇文章的朋友应该都有了一个初步的认识,如果还没有看过的朋友可以在读本文之前再看一下
https://zhuanlan.zhihu.com/p/137064965
今天小编打算给大家介绍一下CAN通讯中使用的DBC文件。
01什么是DBC
DBC是Database Can的缩写,其代表的是CAN的数据库文件,在这个文件中把CAN通讯的信息定义的非常完整清楚,而CAN网络的通讯就是依据这个文件的描述进行的,所以DBC文件的作用非常强大,正是因为有了它才可以使得整个CAN网路的节点控制器无差错的协同同步开发。
02如何创建一个DBC文件
若要创建一个DBC文件,那么首先就需要选择合适的工具,这里小编使用的工具是Vector公司的产品,配合CANoe一起使用的CANdb editor,是一款专门用来编辑DBC文件的软件,如果你还没有选到合适的工具小编推荐你使用这个,确实挺好用的,可以直接在Vector的官网进行下载,软件本身是免费的,包括CANoe软件本身也是免费的,只是如有你需要真正仿真使用的话则需要license,如果只是查看的话都是可以使用的。
比如我已经打开了一个CANoe的软件,但是没有license,只是这种情况下会提示 ”view only“ 而已,有很多编辑功能是禁用的。
好了,这是关于工具层面,小编就不多说了,我们言归正传,如何创建DBC文件。
1打开DBC编辑软件
这里小编是以自己的工具链说明的,实际操作中方法不尽相同,而且不止一种,大家可以多多探索。
在打开的CANoe工程中,选择菜单 Tool, 找到CANbd editor
点击CANdb editor后即可打开DBC编辑软件
2新建一个数据库文件
菜单中选择 ”file“ ,然后创建数据库文件,会出现如下的模板选择对话框
可以根据需要使用的环境选择相应的模板,比如在这里我们选择 ” CANoe template.bdc“,进入如下界面
为创建的数据库文件命名,这个自己定义,只要符合命名的规则即可。
创建好文件名称之后,则进入到了编辑界面
3创建数值表
创建数值表的意义是为了给后续创建的信号提供解释,怎么理解呢?举例来说,在信号的世界里,只有数值一说,信号可以有不同的数值,比如会有0、1、2、3等等,那么这些数值代表什么样的含义,就需要给它解释才能具有真正的物理意义,这就是数值表的意义,随着我们的讲解,大家会逐渐的明白。
创建数值表需要在数值表的视图中操作,通过主菜单的 "view"可以将视图切换到"value table"界面,打开value table界面之后,在空白处右键选择"new"即可新建。
比如这里我们定义名称为 "running_sts_coding",然后再value description中做一下定义,如下:
点击确定,数值表中就会出现我们刚刚定义的这个数值表
4创建signal,关联相应的数值表
前面提到的创建数值表只是一个准备,真正有意义的是信号,而数值表就是为信号服务的,因为数值表中对数值含义的解释可以完成对信号含义的解释。
通过菜单 ”view” 将视图切换为 "overview" ,如下图所示
然后在signals的位置点击右键,新建,打开如下界面
例如,我们做如下定义
关键一步,在value table 的位置选择我们在上一步建立的数值表,这样就将信号和数值表链接起来了,同时也完成了信号的创建。到此,点击确定即可。
可以看到,在视图中新增了一个刚刚建立的信号
当然在实际的应用中信号肯定不止一个,我们这里只是为大家举一个例子如何完成信号的创建,其它的信号创建方法都是类似的,需要多少按照需求创建即可。
5创建message
在之前介绍CAN通讯的文章中我们说到,CAN通讯的载体是帧,也就是消息,而不是单纯的一个一个的信号,是把很多的信号封装到消息帧里面以帧的格式进行传输的,所以在建立了signal之后还需要将信号封装到帧中,那么就需要首先创建message,方法很简单,还是在“overview”的视图中,message位置点击右键,新建
在message中则需要定义清除帧的ID是多少,帧的类型,帧的长度,由哪个节点发送,发送的周期是多少等等,这些概念我们在之前的关于CAN通讯的文章中有过介绍,如果不太清楚的朋友可以翻阅之前的文章查看。
然后,在第二个子选项卡中关联帧的信号
我们之前只建立了一个信号,所以只有一个信号可选,那我们就添加这一个信号。
同时把第一页的基本信息定义如下
然后就可以确定了,定义之后在message界面就会出现一帧新的消息
6创建网络节点
再往上一层,前面提到定义消息的时候需要有发送的节点,那么这个节点就是CAN通讯中的网络节点,这个节点也是需要进行定义的,方法同样很简单,在"overview"界面内的network处,点击右键,选择新建
这里可以定义节点名称和节点地址,这里的地址有别于前面message中涉及的ID,这是两个不同的概念。比如,我们命名如下
然后在Tx message选项卡中设置发送的消息,因为这是第一个节点还有可接收的消息,所以只能设置发送的消息,我们只有一帧消息,所以设置如下:
设置完成之后,将左侧的视图展开如下:
这就是一个基本的DBC文件的结构,不管文件有多大,主要的组成元素就是这些,只不过是网络节点多一些,节点对应的消息多一些,然后消息内的信号多一些。
另外一点需要注意,如果是创建DBC文件,再创建完成之后一定要做一致性检查,菜单内file下的consistency check,我这个文件测试的结果如下
因为这个消息只有发送节点没有接收节点,作为示例只是为大家展示一下如何使用,所以没有真正的创建出网络,才会出现这样的错误。
03小结
DBC数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。简单的讲,dbc文件描述了在CAN网络上有哪些报文信息;这些报文上又携带了哪些信号信息;该报文是从哪个节点发出,哪个节点进行接收的等信息。是通讯的核心文件,通过创建一个DBC文件可以使你非常深刻的理解文件所包含的含义,同时有助于你理解已经存在的DBC文件,本质上都是相通的。
希望通过本文可以使你对DBC文件有一个深刻的了解,并且应用于工作中!
dbf文件怎么创建_DBC文件到底是个啥相关推荐
- python读取nc文件转成img_使用python的netCDF4库读取.nc文件 和 创建.nc文件[转]
使用python netCDF4库读取.nc文件 和 创建.nc文件 1. 介绍 .nc(network Common Data Format)文件是气象上常用的数据格式,python上读取.nc使用 ...
- oracle 创建日志文件,oracle创建日志文件
一团网资讯 一团资讯 > oracle > oracle创建日志文件 oracle创建日志文件 2018-04-14 15:39:48 发布者:来源网络 创建日志文件的语法如下: ...
- hadoop HDFS的文件夹创建、文件上传、文件下载、文件夹删除,文件更名、文件详细信息、文件类型判断(文件夹或者文件)
摘要: 本篇文章主要介绍的是hadoop hdfs的基础api的使用.包括Windows端依赖配置,Maven依赖配置.最后就是进行实际的操作,包括:获取远程hadoop hdfs连接,并对其进行的一 ...
- Visual C# 资源文件编程--创建资源文件
资源文件顾名思义就是存放资源的文件.资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用.同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重要东西存放在 ...
- hdf5文件和csv的区别_使用HDF5文件并创建CSV文件
hdf5文件和csv的区别 In my last article, I discussed the steps to download NASA data from GES DISC. The dat ...
- ASP.NET——C#文件夹创建与文件存在判断
比较简单,但是很实用.网上找了找分享给大家. if(Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存 ...
- html中如何插入pdf文件,如何创建PDF文件
如何新建PDF格式文件大多数人所接触到的PDF格式文件,大多是其他格式转换而来的,转换成PDF是为了它的安全.兼容.打英传输方便.也因为大多数软件可转换成PDF,如办公软件或各类设计软件.为现时印刷的 ...
- python读xml文件生成.h头文件_Python创建xml文件示例
Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...
- java 创建新文件_Java创建新文件
创建文件是一种非常常见的IO操作,在这一小节中我们将学习如何在java中创建文件的几个方法. 在java中创建文件有三种流行的方法,下面将一个一个地来学习. 方法一:使用File.createNewF ...
最新文章
- 解决vue中绝对定位或固定定位在底部的按钮随键盘移动的问题
- 做女程序员是一种什么样的体验?
- python序列模式的关联算法_关联算法
- 淡定!不要因为纳入了高考和二级考试甚至极个别小学课程就盲目夸大Python!...
- tar:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出
- era5数据内容说明_mysql数据库自带主从配置
- 关于linux中文输入法
- 博弈论1(正则型博弈)
- linux模拟器使用教程,Ubuntu多机种游戏模拟器Mednafen教程
- 用什么软件来画软件的架构图?
- 计算机新建里没有word,电脑鼠标右键没有新建Word选项怎么办?
- jmeter上传文件踩坑指南
- 六年如逆旅,我亦是行人:一个顾问的六年安全从业经历
- idea 2019.2顶部菜单栏隐藏的恢复办法
- 如果要用运营的姿势,发支付宝红包
- 融跃教育登陆湖南卫视!揭秘融跃是个什么样机构!CFA/FRM/ACCA
- Alpha 测试与 Beta 测试:有什么区别?
- 人力资源后台管理系统之合同—— 电子签章功能
- openfoam变热物性参数的设置【转载】
- 数据结构 第2讲 算法复杂性