目录

车载网络测试-DBC文件解读创建修改DBC

车载网络测试-DBC文件解读【创建&修改DBC】

1 背景

上文介绍了DBC文件对工程师的意义、DBC文件结构以及DBC文件的相关属性。本文主要介绍如何根据需求新建或者修改DBC文件,以便完成项目的实际需求。上一专题链接如下:

2 需求

某车型的一路CAN总线通信矩阵(部分描述)需求:

  • 报文发送节点:CCU

  • 报文接收节点:ZCU_L

  • 网络类型:标准帧CANFD

  • 报文名:BMS_111

  • 报文ID:0x111

  • 报文周期:20ms

  • 信号:BMS_Checksum_111、BMS_Init_Sts等

    详细需求如下图:

    https://i-blog.csdnimg.cn/direct/fe384d7eccee46ad9aec113f6fa84479.png

3 创建DBC文件

3.1 新建DBC模板

1. 通过CANoe软件打开CANdb++Editor进行创建DBC空白模板

打开CANoe软件——>Tools——>CANdb++Editor。

https://i-blog.csdnimg.cn/direct/56304adac63b4561b710321b24b9099e.png

2. 点击File——>Create Database…

https://i-blog.csdnimg.cn/direct/0b31360711e4457bbf10cc7b868633b3.png

3. 选择CANoe Template.dbc模板

https://i-blog.csdnimg.cn/direct/fc3d3347ecaa44559092db589a48b722.png

4. 创建后的空白DBC如下图:

https://i-blog.csdnimg.cn/direct/54c736292b034fe6bb30eba236a1d381.png

5. 点击保存DBC,并按照需求命名

https://i-blog.csdnimg.cn/direct/7115f369605e44108132922ce5c92792.png

以上,完成了DBC空白模板的创建,主要有Networks、ECUs、Network Nodes、Messages、Signals组成;根据需求我们实际只需关注Network Nodes、Messages、Signals的添加即可。

3.2 创建网络节点

1. 点击Network Nodes——>右键新建

https://i-blog.csdnimg.cn/direct/6f966cc1bdfb4765bca112615ed4d31c.png

2. 根据需求将新建的Network Node命名为ZCU_L——>点击确认

CCU节点的创建同上述操作;

https://i-blog.csdnimg.cn/direct/565e61e010504cda8b265a7afa4c2bd7.png

3. 创建的CCU、ZCU_L网络节点如下:

https://i-blog.csdnimg.cn/direct/2ad4edf6db5e42bda6b7662bdd5b4cef.png

3.3 创建信号

个人习惯先创建信号,再把信号添加到报文里面,当然也可以先创建报文,顺序对DBC的创建无任何影响,大家根据个人习惯操作即可。

1. 点击Signal——>右键选择新建即可

https://i-blog.csdnimg.cn/direct/9126bbf6a57c4069976b41d726cc9554.png

2. 根据需求添加信号属性

  • 信号名:BMS_Init_Sts

  • Byte Order:Motorola

  • Value Type:Unsigned

  • Factor:1

  • Minimum:0

  • Maximum:1

  • Value Table:none 因为还没有可用的Value Table

    https://i-blog.csdnimg.cn/direct/87c01a559ee3467fbfb8b8057006c878.png

3. 新建Value Table

点击View——>选择Value Tables

https://i-blog.csdnimg.cn/direct/ede1598ce1264b3ebaa3334572b732b0.png

命名Value Tables,命名一定要方便后续识别

https://i-blog.csdnimg.cn/direct/d74025733e1f455fb83d86820abdedee.png

根据需求添加Value Description

https://i-blog.csdnimg.cn/direct/fa64aab4d0024af1973ef1e87c32a101.png

创建完成的Value Tables如下图:

https://i-blog.csdnimg.cn/direct/c921d7995ff444c480fb096bf20d800c.png

然后,再次回到该信号属性页去选择Value Tables即可;

以下是创建完成的BMS_Init_Sts信号

https://i-blog.csdnimg.cn/direct/fe229ddefeb74873b5af58d9f07dc28d.png

需求定义的所有信号创建方式同上方法,所有创建完成后如下图:

https://i-blog.csdnimg.cn/direct/f013b62dd6c84b0e8bc4b85006a96f79.png

3.4 创建报文

1. 点击Message——>右键选择新建

https://i-blog.csdnimg.cn/direct/f7cf0ef0289c46d58caf0c4917f6ab5a.png

2. 创建报文属性

  • 报文名:BMS_111

  • 报文类型:CAN标准帧

  • 报文ID:0x111

  • DLC:8

    如下图:

https://i-blog.csdnimg.cn/direct/9c80249c250b4d29adf5815b629192b6.png

3. 添加报文的信号

方法1

点击Signal——>选择Add——>选择该报文下的信号——>OK

https://i-blog.csdnimg.cn/direct/04b47190c0ee46a193b140f8777c2872.png

如下图:报文0x111下的信号已成功添加

https://i-blog.csdnimg.cn/direct/2b37e655135540848b2f56d199000f82.png

方法2

找到需要添加的信号——>长按信号拖动至对应报文下即可

https://i-blog.csdnimg.cn/direct/bd1f1444f8dd4bdc98e9fca0009c1818.png

4. 添加报文的发送节点

如下图,0x111报文的发送节点为CCU,接收节点为ZCU_L;

https://i-blog.csdnimg.cn/direct/a67a5e10e1b6473b8bce5b45dda7b0e5.png

点击Transmitter——>点击Add——>选择CCU——>OK

https://i-blog.csdnimg.cn/direct/755e46e3769246d69e38a09faa60586b.png

5. 添加报文的接收节点

如下图,无任何可选择的节点;需要去找到该报文的信号,在信号属性里面去添加;

https://i-blog.csdnimg.cn/direct/d5e314474f68491bb581f7bdf4b6b1ba.png

找到0x111报文——>选择所携带的信号BMS_Init_Sts——>点击Receivers——>选择Add——>选择ZCU_L——>OK

https://i-blog.csdnimg.cn/direct/3680bf571f5b4027aad2bf13aef23702.png

6. 对该报文下的信号进行排布

如下图,实际添加信号后,根据需求该信号在报文的位置有误;需求:Byte1 bit12;

https://i-blog.csdnimg.cn/direct/ef5079ab601f4f38b0f4d2dbb3f9914e.png

直接长按信号进行拖动

https://i-blog.csdnimg.cn/direct/dcbaa718d0904bd3833f7d186b7751b8.png

7. 添加报文Attribute属性

如下图,新建的DBC为空,需要导入Attribute属性;可以选择以往类似项目的DBC模板进行导入或者使用CANoe安装包中的模板;

https://i-blog.csdnimg.cn/direct/484eb735b78641468f0a782c83dcb492.png

导入Attribute属性的方法

选择File——>选择Import Attribute Definitions…

https://i-blog.csdnimg.cn/direct/47f9b006c4f04ec59d12ef007adc1cad.png

如下图,显示Import completed就成功了。

https://i-blog.csdnimg.cn/direct/2818fce6acc64bdbb108eb6b0b36ebbb.png

以下属性的定义在上一专题已经详细介绍,本文不进行阐述。

属性设置

根据需求进行报文发送类型和周期的设置即可;

https://i-blog.csdnimg.cn/direct/2ca4ab283fd14e6c9e4a0a20f43e07d0.png

3.5 一致性检测

如果进行一致性检测无报错,就没问题了!

https://i-blog.csdnimg.cn/direct/db7ca87761474d52bec923c41f7b1ba3.png

4 总结

以上是DBC文件的新建方法,修改的方法和新建基本上方法一致。希望能在项目中给大家带来些许帮助,如果存在描述问题的地方,欢迎找我一起交流、讨论!