image.png

如何使用 CANdb++ 工具创建一个 DBC 文件?

a)新建一个 DBC 文件;
b)依据 CAN 协议文档添加对象,建议按照 Network nodes、Messages、Signals 的顺序创建;
c)创建对象间的连接关系;
d)依据 CAN 协议文档修改系统参数和自定义属性;
e)测试 DBC 文件,完成创建。

新建 DBC 文件

image.png
以“EmptyTemplate.dbc”模板为例,创建后要先配置一下默认值。
image.png

新建 Message 对象

image.png

自定义属性 user-defined attributes

image.png
Attribute 大概分为两种:system parameters 和 user-defined attributes。
自定义属性(user-defined attributes)的名称好像是固定的,CANDB++ 未提供下拉列表,需要在帮助文档中查询。使用指定的名称可以确保自定义属性在 Vector 工具链中可用。
image.png

attribute name object type value type default minimum maximum
Manufacturer Network String 空字符串 - -
VersionYear Network Int 0
VersionMonth Network Int 1
VersionWeek Network Int 1
VersionDay Network Int 1

value table
作用是给信号值赋予别称,提高可读性。比如 0 - OFF,1 - ON。

List 窗口可以使用快捷键 F2 进行重命名操作。

从编程角度理解 CANdb++,Overall 窗口左侧相当于可用“类”,比如 Messages 类,添加新的报文就是对 Messages 类的实例化,形成了 Message 对象。而系统参数和用户自定义属性是类中的必选项和可选项,只有类中包含了某种属性,实例化时才可以指定具体值,如发送周期。

信号命名规则/缩略语
驼峰命名法,前缀_名称,缩写原则(如单词超过10个字符强制缩写)
Value Table = VtSig
Signal = Sig
Data Length Code = DLC,一条报文包含的字节数 :::tips 开关信号,对应物理开关或按键的真实状态;前缀 SWT,activate,deactivate
状态信号,对应系统的有限状态,通常由内部逻辑计算得出;前缀 ST
传感器信号,对应传感器采集的物理量,或经过滤波等处理后的物理量;前缀 V
标识信号,即 flag,前缀 FLAG :::

CANDB++ 3.1 官方文档:
CANdb.chm