DBC文件的制作

一、CANdb++下载

官方下载地址:https://www.vector.com/cn/zh/download/candb-31-sp5/

Snipaste_2026-01-18_23-21-02

 

二、创建dbc文件

点击左上角File->Creat Datebase,选择CANTemplate.dbc

Snipaste_2026-01-18_23-25-01

Snipaste_2026-01-18_23-26-34

然后给DBC取一个名字,然后保存:

Snipaste_2026-01-18_23-27-56

三、dbc基本知识

这里主要是制作关于BMS的dbc文件,所以只用到MessagesSignals,这两个有什么含义呢?

Messages:

Messages:中文叫消息,在CAN里面的消息指一帧报文,一帧报文叫做一条消息。比如0x4200的报文,这一条报文叫做一个消息。

 

Signals:

Signals:中文叫信号,在CAN里面的一个叫做一个信号。比如电压可以叫做一个信号。

 

除了这两个还有一些CAN的基础知识:

MotorolaIntel

CAN协议的数据帧中,数据字段(Data Field)的字节排列方式有两种标准:

 

了解完这个,下面就可以开始制作dbc文件了。

 

四、dbc文件的制作

Pylon CAN bus protocol V2.0.6_220510.pdf协议为例:

1、添加信号

单击Signals选中右键 --> New

Snipaste_2026-01-18_23-43-17

名称填写PL_Charge_Volt_Lim_CVL,字节长度为16,单位V,intel类型,精度0.1,偏移0,最小值0.最大值65535。

那么这些数据怎么来的?

Snipaste_2026-01-18_23-49-39

Snipaste_2026-01-18_23-52-34

好,现在就得到一个信号:

Snipaste_2026-01-18_23-53-12

按照这个形式,将第一帧报文的四个变量全部写进去:

Snipaste_2026-01-19_00-10-17

2、添加消息

添加一帧0x351的帧ID,Messages右键->New

Snipaste_2026-01-19_00-11-08

填好Name、Type、ID和DLC,点击确定。

Snipaste_2026-01-19_00-13-27

点击Signals->Add,把刚刚写好的信号按照顺序添加进来,点击确定:

Snipaste_2026-01-19_00-16-37

然后恭喜你得到了第一帧报文:

Snipaste_2026-01-19_00-21-29

 

好,到这一步就会解析基本的电压电流了,但是还有其他量,比如告警保护故障位(即bit位)、AA(使能)、55(禁能)。那么怎么解析呢?往下看

 

3、bit位的解析

在解析告警保护故障时,需要用到。

在DBC解析中,按照下面来解析的:

byte0byte1byte2byte3byte4byte5byte6byte7
bit0-bit7bit8-bit15bit16-bit23bit24-bit31bit32-bit39bit40-bit47bit48-bit55bit56-bit63

按照表格里面就能进行故障位解析,以下是示例:

把所有告警保护位都添加到Signal中,比如过压告警,因为每一个告警占用一个bit,所以Length全部为1:

Snipaste_2026-01-21_18-37-06

然后把所有写好的告警保护位都添加到Message中,然后双击即可调整Startbit的位置,根据上面的byte和bit对应的表格和协议调整即可。

Snipaste_2026-01-21_18-39-10

最终解析的样子就为:

Snipaste_2026-01-21_18-42-52

可能有的小伙伴注意到了,派能协议0x359的最后两个值解析为P和N,那么这个怎么做到的呢?这就是下面要讲的。

 

4、Value Tables数值表

Value Tables更像一个对应关系,比如:

其实都是对应关系,创建这种对应关系就会用到Value Tables。

Value Tables的创建

在左上角点击View-->Value Tables即可打开。

Snipaste_2026-01-21_18-45-06

打开以后是空白的,什么都没有,这是只要点击右键-->New即可创建一个tables,可以创建很多个:

Snipaste_2026-01-21_18-51-50

比如说我创建一个存放ASCII码表来解析厂商名称:

Snipaste_2026-01-21_18-53-49

然后在Value Descriptions中,点击Add即可添加ValueDescription

下面这个添加参考ASCII码表:https://tool.hiofd.com/ascii-table/

Snipaste_2026-01-21_18-54-48

Note

有些特殊字符比如Ï,可能CANdb++显示不出来而显示问号。

或者使用AA55

Snipaste_2026-01-21_18-59-07

总之对应关系用Value Tables准没错。

 

Value Tables的使用

创建好了怎么使用呢?

点击总览即可返回。

Snipaste_2026-01-21_19-00-41

找到需要解析的ASCII码或者其他需要解析的数字,然后下面点击Value Tables,选择刚刚创建的表即可。

Snipaste_2026-01-21_19-02-56