DBC标准格式说明
之前,看过一点vector公司的DBC File Format Documentation,觉得还不错。挑选了其中一些比较重要的概念,翻译了部分内容和大家分享下。

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 范例模板


信号列表:

▽ 点击文字查看更多文章 ▽BMS基本知识介绍 | 世界四大内燃机设计咨询机构! | A2L文件介绍 | CCP协议简介 | Autosar ECU中的基础软件 | 阿特金森和米勒循环 | 氧传感器与空燃比 | 48V时代要到来了吗? | 什么是Autosar? | 说一说ETK

公众号:QCECUSJ