在汽车电子和CAN总线开发领域,DBC文件(Database Container)是定义CAN通信协议的核心文件,正确编辑和优化DBC文件,对于车辆网络通信的稳定性、数据解析的准确性至关重要。对于刚接触TSMaster的工程师来说,如何快速掌握DBC编辑技巧,并应用于实际项目开发,仍存在一定的学习门槛。本文将从基础功能解析到使用示例演示,系统介绍TSMaster DBC编辑器的核心操作。
本文关键词:TSMaster,DBC,数据库
1. 符号说明
本文中所用到的一些样式和符号,可以参考以下表格说明。


2. 功能概要
DBC编辑器可以用于CAN DBC数据库的创建、修改以及保存等,详细的功能如下:
- 创建CAN DBC数据库
- 打开CAN DBC文件,查看数据库中的节点、报文、信号、属性等信息
- 编辑CAN数据库内容
- 导出CAN数据库到DBC文件
- 检查数据库内容是否符合一致性要求
3. DBC 编辑器窗体
DBC编辑器主要包含以下五个功能区:
- 菜单栏(1)
- 数据库总览区(2)
- 属性配置区(3)
- 节点总览和报文布局区(4)
- 日志区(5)

3.1 菜单栏
菜单栏包括新建、打开、保存、另存为、一致性检查、撤销和重做7个按钮,各图标说明如下。

3.2 数据库总览区
数据库总览区包括数据库节点搜索区和数据库节点区。
3.2.1 数据库节点搜索区
在搜索框内输入节点名称,可以高亮显示,如下图:

窗体图标说明如下:

3.2.2 数据库节点分类
数据库节点包括以下8类:

区域名称 | 描述 |
Networks | 显示 DBC 数据库信息,第一个子节点为数据库的名称。 |
ECUs | 显示 DBC 数据库所有 ECU 节点,ECU 节点下面可能有 Networks 节点和环境变量。 |
Environment Variables | 显示环境变量。右击该节点或者其下的子节点可以创建或者删除环境变量。 |
Network Nodes | 显示网络节点,每个节点下面有对应的 Tx Messages, Rx Messages, Mapped Tx signals 和 Mapped Rx signals。右击该节点或者其下的下一级子节点可以创建或者删除 CAN 节点。 |
Messages | 显示所有的报文,节点名称为 Message_name [Message ID],每个报文的子节点为当前报文中所包含的 signal_name。右击该节点或者其下的子节点,可以创建、删除或者移除报文/信号。 ▶ 删除:当右击节点为【Messages】下的报文时,选择删除会删除数据库中的该报文以及报文下所有信号。当右击节点为【Messages】下报文的信号时,选择删除会删除该报文中的信号,且【Signals】下的该信号也会被删除。 ▶ 移除:当右击节点为【Messages】下的报文时,选择移除会删除数据库中的该报文,报文下的信号则会转移到【Signals】节点下。当右击节点为【Messages】下报文的信号时,选择删除会删除该报文中的信号,信号会转移到【Signals】节点下。 ▶ 新建:当右击节点为【Messages】,会新建报文。当右击节点为【Messages】下的报文,或者报文下的信号时,会新建信号,且信号绑定到该报文。 |
Signals | 显示所有的信号,如果信号绑定到了报文,则节点名称为 signal_name [Message_name],否则为信号名。当右击【Signals】节点或者该节点下的信号时,可以创建/删除信号。 |
Value Tables | 显示所有的数据包。当右击【Value Tables】节点或者该节点下的子节点时,可以创建/删除数值表。 |
Attributes | 显示所有的特性。当右击【Attributes】节点或者该节点下的子节点时,可以创建/删除特性。 |
3.2.3 数据库节点拖拽功能
数据库总览区的部分节点支持拖拽功能,支持拖拽功能的节点如下。
▲ 信号拖拽到报文,如下图所示,将信号New_Signal_0拖拽到New_Message_0时,会将信号New_Signal_0添加到New_Message_0下。

如果信号已经绑定了报文,这种情况下拖拽信号到新的报文上,则会复制一个同名的信号。

▲ 报文拖拽到节点,如下图所示,将信号New_Message_0拖拽到New_Network_0或者其下的【Tx Messages】时,会将信号New_Messages_0添加到【Tx Messages】下。

▲ 信号拖拽到节点,如下图所示,将信号New_Messages_0下的New_Signal_0信号拖拽到New_Network_0或者其下的【Mapped Rx Signals】时,会将信号New_Signal_0添加到【Mapped Rx Signals】下,New_Messages_0添加到【Rx Messages】下。

▲环境变量拖拽到ECU,如下图所示,将环境变量New_Envar_0拖拽到ECUs下的New_Network_0或其下的【Environment Variables】时,会将环境变量New_Envar_0添加到【Environment Variables】下。

3.3 属性配置区
属性配置区包括数据库文件信息展示区和属性配置区两个部分。
3.3.1 数据库文件信息展示区
未导入DBC数据库时,该区域会提示导入或创建DBC数据库的信息。当创建或导入DBC数据库后,该区域会显示DBC文件的路径。当DBC数据库发生修改时,则在DBC文件路径后面额外增加一个“*”。如果修改的内容被完全撤回时,或者文件被另存为时,“*”将消失。

3.3.2 数据库属性
可以配置数据库的名称,选择数据库类型,和配置属性的值。
属性 | 描述 |
数据库类型 | 可选择为CAN/CAN FD。 |
注释 | 数据库的说明文本。 |

3.3.3 节点属性
可以配置节点的名称,地址和配置属性的值。
属性 | 描述 |
地址 | 当前仅显示,地址需要在 NmStationAddress 属性中修改。 |
注释 | 节点的说明文本。 |

3.3.4 报文属性
配置报文的属性,具体属性字段及其说明如下。
属性 | 描述 |
名称 | 报文的名称,不允许出现重名的报文名称。 |
ID | 报文 ID,为 16 进制数,不允许出现重复的 ID。 |
DLC | 报文的字节数,J1939 协议的字节数为手动输入,其它为选择。 |
周期 | 报文发送周期,通过 GenMsgCycleTime 属性更改,如果没有定义该属性,则无法修改。 |
类型 | CAN 协议可选 CAN Standard 和 CAN Extended。 CAN FD 协议可选 CAN FD Standard 和 CAN FD Extended。 J1939 协议可选 CAN Standard, CAN Extended 和 J1939。 |
注释 | 报文注释。 |
发送节点 | 选择发送报文的节点。 |
属性表 | 配置属性的值。 |
附加信息 | 当协议为 J1939 会显示 PGN, Priority, Source, Destination 等信息。 |


3.3.5 信号属性
配置信号的属性,具体属性字段及其说明如下。
属性/按钮 | 描述 |
名称 | 信号名称,【Signals】/同一个报文下面不允许出现同名的信号。 |
单位 | 信号单位,为字符串。 |
放大因子 | 信号缩放因子,用于计算物理值。 物理值=放大因子*信号原始值+偏移量 |
偏移量 | 信号偏移,用于计算物理值。 |
长度 | 信号长度,不大于报文的字节数*8。 |
起始位 | 信号在报文中的起始位,不大于报文的字节数*8。 |
数值类型 | 可选无符号,有符号,浮点型,双精度浮点型。 |
注释 | 信号注释说明。 |
最小值 | 信号最小值。 |
最大值 | 信号最大值。 |
计算最大最小值按钮 | 计算信号的最大最小值。 最大值=放大因子*(2^长度-1)-偏移量 最小值=偏移量 |
数值表 | 选择用于对信号编码的数值表。 |
字节序 | Intel或者Motorola,切换时,起始位和长度会自动计算并改变。 |
复用类型 | 选择信号的复用类型。 ▶ 信号:不复用 ▶ 复用器:此时信号作为复用器开关 ▶ 复用信号:此时会显示信号的复用器开关对应的值或范围 |
复用值 | 信号的复用器开关对应的值或范围。 |
属性表 | 属性展示与编辑。 |
接收节点 | 编辑接收该信号的 ECU 节点,选中后会在对应的 ECU 节点的【Mapped Rx signals】下添加当前信号的树节点。如果该信号的报文没有被添加过,还会在【Rx Messages】下添加对应的报文节点。 |


3.3.6 数值表属性
数值表用于对信号或者环境变量进行编码。数值表的属性及其说明如下。
属性 | 描述 |
---|---|
名称 | 数值表名称,具有唯一性。同一个DBC数据库中不允许出现2个同名的数值表名称。 |
注释 | 备注使用当前数值表的信号及其对应的报文名称,不可修改。 |
数值编码表 | 信号编码,右击可增加和删除编码项,点击对应的单元格可修改内容。 |

3.3.7 特性属性
特性用于对信号,报文,节点,数据库以及环境变量等绑定额外的属性,其可编辑的属性字段和说明如下。
属性 | 描述 |
---|---|
名称 | 特性名称。不允许出现重名的特性名称。 |
目标类型 | – 数据库:用于数据库,选择该项,会将该属性绑定到数据库。 – 节点:用于ECU节点,选择该项,会将该属性绑定到节点。 – 报文:用于报文,选择该项,会将该属性绑定到报文。 – 信号:用于信号,选择该项,会将该属性绑定到信号。 – 环境变量:用于环境变量,选择该项,会将该属性绑定到环境变量。 – ECU-环境变量:用于绑定了ECU节点的环境变量。 – 节点-发送报文:用于绑定发送节点的报文。 – 节点-接收信号:用于绑定接收节点的信号。 |
数值类型 | 当选中整型、浮点型、16进制时,会激活最小值和最大值编辑框,选择枚举会激活枚举表编辑框。 |
最小值 | 属性的最小值。 |
最大值 | 属性的最大值。 |
默认值 | 属性的默认值,选择枚举时为选择框,其他为输入框。 |
枚举表 | 用于显示和编辑枚举项。 |



3.3.8 环境变量属性
配置环境变量的属性,可配置属性字段和说明如下。
属性 | 描述 |
---|---|
名称 | 环境变量名称,不允许出现重名的环境变量名称。 |
数值类型 | 可选整型、浮点型、字符串等数据类型。 |
访问类型 | 环境变量的读写权限: ▪ 不限 ▪ 只读 ▪ 只写 ▪ 读写 |
单位 | 环境变量单位。 |
数值表 | 和信号共用。 |
注释 | 环境变量的说明。 |
最小值 | 环境变量最小值。 |
最大值 | 环境变量最大值。 |
初始值 | 环境变量初始值。 |
属性表 | 属性展示与编辑。 |

3.4 节点总览和报文布局区
3.4.1 节点总览
点击不同节点,会在总览区域显示当前节点下的预览内容。

3.4.2 报文布局
报文布局区可以展示报文中信号在报文中的位置排列和长度,当所选节点为报文时,布局才能被选择,此时布局按钮为激活状态,否则为未激活状态。

▲ 复用器: 选择报文的复用器名称,
▲ 复用值: 选择复用器下的复用值,
通过选择不同的复用器和复用值,布局中会显示对应的信号排列。
3.5 日志区
显示当前操作的状态和数据库信息完整度的信息,包括以下3种类型。
▲ 常规信息:用于提示当前操作状态的信息。
▲ 警告信息:提示当前操作或者数据库有异常但又构成严重错误的信息。
▲ 错误信息:提示当前操作或数据库有严重错误的信息。

对于一致性检查的日志信息,点对应的行时,会跳转到该行信息所对应的数据库节点。
4. 使用示例
4.1 创建DBC数据库
该部分示例演示创建CAN数据库,包括创建CAN节点、报文、信号以及环境变量,将信号绑定到报文,为报文添加发送节点,为环境变量添加访问节点等。
步骤1:创建CAN DBC数据库,点击菜单栏的【新建】按钮。
步骤2:选择数据库模板。在弹出的DBC模板选择框中,选择需要创建的DBC数据类型,支持CAN,CANFD,J1939,然后点击【确认】。

步骤3:选择/输入DBC文件路径。在未保存DBC数据库之前不会创建新的DBC文件,或覆盖原来的DBC文件。
步骤4:右击【Network Nodes】,创建节点New_Network_0。

步骤5:右击【Messages】,创建报文New_Message_0。

步骤6:右击【Signals】,创建New_Signal_0。

步骤7:右击【Environment Variables】,创建New_Envar_0

步骤8:在左边的树结构中,将New_Signal_0拖拽到New_Message_0,然后将New_Message_0拖拽到New_Network_0。通过将New_Envar_0拖拽到ECUs下的New_Network_0节点或New_Network_0的【Environment Variables】节点,为环境变量New_Envar_0添加访问节点。

步骤9:点击【保存】按钮。
4.2 编辑DBC数据库
该部分示例演示导入CAN数据库并进行编辑,以及如何创建数值表和特性。
步骤1:导入DBC文件。点击菜单栏的【打开】按钮,导入4.1章节保存的DBC文件。
步骤2:修改CAN节点,报文、信号以及环境变量名称。
▲ 修改CAN节点名称。点击【ECUs】/【Network Nodes】下的New_Network_0,在右侧的属性编辑区中找到【名称】编辑框,输入ecu0并按下回车键。对于该界面其它的属性字段,也可以类似的方式修改。

▲ 修改CAN报文名称。点击【Messages】下的报文节点,在属性编辑区找到【名称】输入框,输入msg0并回车。对于该界面其它的属性字段,也可以类似的方式修改。

▲ 修改CAN信号名称。点击【Signals】下的信号节点/【Messages】下报文中的信号节点,在属性编辑区找到【名称】输入框,输入sig0并回车。对于该界面其它的属性字段,也可以类似的方式修改。

▲ 修改环境变量名称。点击【Environment Variables】下的环境变量节点,在属性编辑区找到【名称】输入框,输入env0并回车。对于该界面其它的属性字段,也可以类似的方式修改。

步骤3:创建数值表。右击【Value Table】点击【新建】,在属性编辑界面的值-描述表格中点击新建,创建2对值-描述字段。

步骤4:为信号/环境变量添加数值表。点击信号或者环境变量节点,在属性编辑区找到【数值表】下拉框,选择New_Vt_0。

步骤5:创建报文特性。右击【Attributes】点击【新建】,创建特性。在属性编辑区修改名称为msgAttr0,目标类型为报文,其它字段为默认。

此时点击【Messages】下的msg0节点,在属性编辑区可以查看到msgAttr0的值,也可以在该区域对msgAttr0进行编辑。

其它目标如信号、环境变量、以及绑定节点的信号、报文、环境变量等可以通过选择【目标类型】的下拉框进行绑定。特性也支持不同的数值类型,通过【数值类型】下拉框进行选择。
步骤6:编辑完成后,保存该DBC数据库到DBC文件。
您对TSMaster的哪个功能最感兴趣?或在实际应用中遇到过哪些问题?
欢迎在评论区分享你的经验或疑问,任何想法或建议也可以评论区留言互动,将有机会获得TOSUN神秘大礼包哦~
小贴士:
1、软件下载:
点击下方软件下载链接,直接下载安装,建议下载 beta 版本:
2、软件升级:
在电脑有互联网连接的前提下,可以在软件内检查升级至最新版本。
注:太阳集团6138技术支持邮箱:support@tosunai.cn,欢迎大家前来咨询!(须注明公司及联系方式)