使用CANdb++ Editor创建并制作一个DBC(1)

写在前

在学会制作一个DBC文件之前,首先应该花一些时间去了解CAN(控制器局域网)总线,再学会看懂表格的CAN协议(DBC文件解析)。知道这些专业名词代表什么,比如关于一帧报文的信号描述是什么,排列的方式是intel还是motorola,起始字节,起始位,信号长度,精度,偏移量,物理值等等。

☑️参考博客
CAN总线通信详解 (超详细配34张高清图) - 艾格北峰的文章 - 知乎
DBC格式解析
关于DBC文件的格式解析


进入正题

☑️本文参考博客

从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件-CSDN博客
【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC - 汽车电子Autosar的文章 - 知乎

1 启动“CANdb++ Editor”

打开CANoe,点工具栏的Tools,选择第一个CANdb++ Editor。
在这里插入图片描述
打开CANdb++ Editor后的默认界面是灰色的:
在这里插入图片描述

2 创建一个新的DBC

  1. 点击File-Create Database创建一个CAN数据库文件:
    在这里插入图片描述

  2. 选择CANoeTemplate.dbc模板,点击OK后,在弹出的保存对话框中存为.dbc格式,自命名保存。
    在这里插入图片描述
    在这里插入图片描述
    然后就看到新建的dbc:
    在这里插入图片描述

3 添加报文:创建CAN网络当中的Message消息

这里Message(消息)可以称之为Frame(帧),也可称之为CAN
ID,其用来表示CAN的标识符。一个CAN网络当中往往存在多个Message,但CAN网络中Message的CAN
ID必须是唯一的,即每个CAN ID在一个CAN网络中只能使用一次。

这是我的动力CAN.xlsx文件,一共92行,13种不同报文ID。下面我要根据这个表格制作我的dbc文件。
在这里插入图片描述
本文以第一个报文VCU1为例,添加Messages。

3.1 在Messages下单击左键新建(New)一帧

在这里插入图片描述

3.2 修改Messages信息(右侧)

注意:目前只用管Definition选项,其他的先不管。

修改后

注意:由于添加的VCU1的ID是 0x180128D0,超出了标准范围报错,所以选择Type为CAN Extended.

在这里插入图片描述
还可以在Comment中添加详细描述:

在这里插入图片描述
修改完后应用-确认,就可以在Messages下和右侧看到我创建的第一帧VCU1:
在这里插入图片描述

4 添加信号:创建Message消息中Signals信号

我们知道一帧报文下可以带有好几个不同的signal信号,比如VCU1带了12个。我需要创建12个Signal信号。
在这里插入图片描述

4.1 同理,在Signal下单击左键新建(New)一个

在这里插入图片描述

4.2 修改Signal信息

在这里插入图片描述

同样可以添加详细描述:
在这里插入图片描述

修改完后应用-确认,就可以在Signals下和右侧看到我创建的第一个名为cod_tcu_u8GearSts的信号:
在这里插入图片描述
后续添加剩下11个信号(此处重复步骤,省略,哈哈哈)。可以看到创建好后Signals的如下:
在这里插入图片描述

5 关联报文和信号:Messages下添加对应的Signals

此时的Messages和Signals并没有关联起来,比如VCU1下面没有添加这12个信号。

5.1 关联方式1(手动添加)

双击VCU1,在Signals界面下选择Add
在这里插入图片描述
把所有的信号都添加上(特别注意,按顺序添加,会影响Layout
在这里插入图片描述

5.2 关联方式2(建议)

直接将对应的信号按住鼠标左键不放,拖拽到对应的Message下,即可关联成功。

6 ⭐遇到问题(已解决)

6.1 问题描述

原始表格的DBC中cod_tcu_u8TcuEnModeReq信号起始位从7开始,可是我制作的VCU1的信号发现起始位变成了8不是7开始。

在这里插入图片描述

在这里插入图片描述

6.2 解决方法

方法1:直接双击错误的地方8,弹框的Startbit[Bit]更改为7:
在这里插入图片描述

方法2:打开Message的Layout发现起始位从8开始,直接拖动它从7开始。
在这里插入图片描述
最后检查一下,和表格的起始位和长度是对应的,就可以了。
修改后的:
在这里插入图片描述

7 创建效果图

我这里仅仅创建了一帧VCU1的报文,并关联了它的信号。可以在Messages-VCU1中点开Layout看它的布局(8*8矩阵)。这是按intel排列方式,不同颜色代表不同的信号。
在这里插入图片描述

小结

本文完成了已知DBC报文表格情况下,学会在CANdb++ Editor中创建并制作一个DBC,创建好的test3demo_0304.dbc下次可以直接双击打开了。
后续还有一些节点,接收点没有实操,等我学了再说。
最后,用一句诗形容我的学习心态:纸上得来终觉浅,绝知此事要躬行。

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值