简介
DBC(Database Can)文件是CAN的数据库文件,可以用来描述CAN数据的格式。针对不同ID的CAN数据定义不同的帧类型、长度、字节含义等内容,将冗长复杂的协议格式化,帮助使用者快速上手。
CANdb++则是一款用于编写dbc的软件,可以点击此处下载。
CANdb++的安装
执行 CANdb++.exe 后按指示安装。完成安装后,将动态库 Cdbstat.dll 放置在 C:\Windows\SysWOW64 目录下,执行命令 regsvr32 Cdbstat.dll 完成注册。
CANdb++的使用
-
新建database
-
选择dbc模版
-
设置存储路径
-
signal与message
dbc中需要定义(描述)的信息主要涉及到message与signal两种。两种属于包含与被包含的关系。其中,message由一个或多个signal组成,而signal则利用一个或多个连续的二进制位来表示承载的信息。
-
新建signal
-
signal定义
key word description Name 信号名 Length(Bit) 位长度 Factor 精度 Offset 偏移量 Minimum 最小值 Maximum 最大值 -
signal计算公式:
转换值 * Factor + Offset = 信号值
逆推:
转换值 = (信号值 - Offset) / Factor
以上图为例,假设TestSignal被设置为30,那经由dbc转换出的值应该为 (30 - (-10)) / 1 = 40(D) = 101000(B) -
新建message
-
message定义
key word description Name 消息名 Type 帧类型 ID 帧ID DLC 字节长度 -
为message分配signal(将刚刚建立的signal分配给该message)
-
修改signal所占位
-
其他设置
除上述设置外,还可以设置循环时间等描述,这里不做过多描述,请自行探索。
-
生成结果
-
message计算
message的结果是各比特位的值,衔接signal的例子,TestSignal设置为30,占用两个字节,转换结果为0000 0000 0010 1000(B),从第二个字节开始,其他字节位默认取0,最终message结果为00 00 28 00 00 00 00 00(注意:实际使用时还需留意大小端)。