dbc文件的value description 如何编辑_【DBC专题】-4-DBC文件格式解析

DBC文件用于描述CAN网络通信,包括符号字符串命名要求、文件头、波特率定义、节点、值表、消息和信号定义等。本文详细介绍了DBC文件的关键组成部分,如Node、Message和Signal的定义,以及Value Table、Comment和User Defined Attribute的使用,帮助读者深入理解DBC格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

239d225205eec1a529e367a941ae3fd1.png

目录

0 DBC文件中“符号字符串”命名要求

1 DBC文件的标头

2 Bit Timing波特率定义

3 Node节点定义

4 Value Table值表定义

5 Message消息定义

5.1 标准帧Message定义举例

5.2 扩展帧Message定义举例

6 Signal信号定义

7 Value Table指标的绑定Signal信号

8 Comment注释定义

8.1 Node节点的注释举例

8.2 Message消息的注释举例

8.3 Signal信号的注释举例

9 User Defined Attribute用户定义的属性定义

9.1 Attribute属性定义

9.2 Attribute属性值

10 本文使用的DBC文件内容附录

通过前面的两个【DBC专题】中,我们已经掌握了DBC的创建和制作。如果在一些高阶应用(如DBC转Excel,DBC转XML,DBC转ARXML等等)中,了解这些显然是不够的,需要熟知其文件格式,毕竟“CANdb++ Editor”是参照某个标准,生成DBC文件的一个工具而已。

DBC文件描述单个CAN网络的通信。完成“【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC”一文中的第2章节,我们会得到一个Classic CAN的数据库DBC文件空模板(见下图左侧);完成第9章节,我们会得到一个较为完成DBC文件(见下图右侧),二者的差异下图。

1005e7dc487fec1fd4f3d501b077fdd2.png

一眼看去感觉有点“蒙”,下面我们就逐一来介绍这些“关键字”。

0 DBC文件中“符号字符串”命名要求

DBC文件中除了固定格式的关键字外,还有一些用户自定义的“符号字符串”,像Node,Message,Signal…的命名,其要求为:

Ø 以字母字符或下划线开头,并且可能进一步由字母数字字符和下划线组成。

Ø 长度最多为128个字符。为了与较旧的工具兼容,长度不得超过32个字符。

1 DBC文件的标头

关键字:VERSION

关键字:NS_ ,全称:new symbols

描述:

DBC文件包含带有版本(关键字:VERSION)和新符号条目(关键字:NS_)的标头。关键字:VERSION后面的双引号中通常是空的,或者是CANdb++编辑器使用的字符串。

该部分基本是固定的。

2 Bit Timing波特率定义

关键字:BS_

Bit Timing定义了网络的波特率和BTR寄存器的设置。该部分已过时,不再使用。但是,关键字“BS_”必须出现在DBC文件中。

举例:

BS_:

3 Node节点定义

关键字:BU_

格式:

BU_: node_1_name node_2_name…

描述:

a)CAN网络汇中所有节点的名称在此处定义,且定义的名称必须唯一;

b)节点与节点之间以“空格”分隔;

c)节点的命名必须满足“符号字符串”要求。

举例:

在“【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC”一文的第3章节我们定义两个节点:VCU和OBD,其在DBC文件中的描述为:

BU_: VCU OBD

4 Value Table值表定义

关键字:VAL_TABLE_

格式:

VAL_TABLE_ value_table_name value_table_value “value_description” …0 “value_description”;

描述:

a)一个value table中以“空格”分隔;

b)value_table_name表示value table的名称, 命名必须满足“符号字符串”要求;

c) value_table_value表示value table的值,十进制表示;

d) value_description表示value table的值描述;

e)当一个value table存在多个值描述时,以(value_table_value “value_description”)的形式接着追加,value table内的两个值描述以“空格”分隔;

f)完成一个value table定义,需以“分号;”结尾;

g)多个value table需要换行。

举例:

在“【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC”一文的第7章节我们定义两个value table:Voltage_state和OBD_status_description,其在DBC文件中的描述为:

VAL_TABLE_ OBD_status_description 2 "Shutdown" 1 "Run" 0 "Initialization" ;

VAL_TABLE_ Voltage_state 65535 "Invalid voltage" ;

5 Message消息定义

关键字:BO_

格式

BO_ message_id message_name: message_size transmitter

描述:

a)message_id表示CAN_ID,以十进制表示。在DBC文件中,CAN-ID必须唯一。如果CAN_ID的类型是“CAN Extended”,则在DBC文件中表示是“0x8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值