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、范例模板
信号列表: