DBC 标准格式说明

DBC文件

DBC文件是用来描述CAN网络通信信号的一种格式文件。它可以用来监测与分析CAN网络上的报文数据,也可以用来模拟某个CAN节点。

 

关键字对应对象:

BU_ 网络节点

BO_ 报文

SG_ 信号

EV_ 环境变量

 

本文出现的符号:

' | ' ——可选择

' ; '——结束定义

[...]——内容可选(0或1次)

{...}——内容重复(0或多次)

(*...*)——注释

unsigned_integer:无符号整型

signed_integer:有符号整型

double:双精度小数

char_string:字符串

C_identifier:C语言变量命名


1、DBC文件结构

非必须部分:

♦ signal_types

♦ sigtype_attr_list

♦ category_definitions

♦ categories

♦ filter

♦ signal_type_refs

♦ signal_extended_value_type_list

 

必须部分:

♣ bit_timing

此部分为必须的,但是通常为空。

♣ nodes

定义网络节点。

♣ message

定义消息帧与信号。

 

2、版本与新符号

DBC文件头部包含着‘version’与‘new symbol’的信息,‘version’或为空,或由用户自行定义。

3、波特率定义

bit timing 定义了CAN网络的波特率,[ ]内容表示为可选部分,可以被省略,但关键词 'BS_' 必须出现。

4、节点定义

节点定义名必须独一无二,命名规则与C语言变量相同。

5、报文帧定义

报文的CAN-ID必须是独一无二的,message_name命名规则与C语言变量相同。message_size为无符号整型,规定了报文数据域的字节数。

transmitter name表示报文发送节点,如果一个报文没有指定发送节点,则必须设置为‘Vector__XXX’。

6、信号定义

其中规定了信号名、起始位置、信号长度、字节顺序、数值类型、因子、偏移等关键信息。

multiplexer_indicator定义了该信号是否为一个正常信号,或一个复用信号,此项可以被省略。

byte_order为字节顺序,0为intel格式,1为motorola。

value_type, + 无符号数, - 有符号数。

facator与offset用来将原始值与物理值之间进行转化。minumum与maximum为double类型,表示信号的最值范围。

unit为字符串,用来表示信号单位,receiver为接收者。如果一个信号没有指定接收者,则必须设置为‘Vector__XXX’。

7、范例模板

 

信号列表: