一般DBC文件中包含了如下的8种信息:
1、版本与新符号 用VERSION表示版本 用NS_表示新符号
2、波特率定义 用BS_表示
3、网络节点的定义 用BU_表示
4、报文帧的定义 用BO_表示
5、信号的定义 用SG_表示
6、注解部分 用CM_表示
7、特征(属性)部分 对特征名称类型定义用BA_DEF_表示 对特征默认值的设置用BA_DEF_DEF_表示 对特征项目设置值定义用BA_表示
8、数值表部分 用VAL_表示
从第3点开始详细讲解:
3、网络节点的定义:
格式如下:BU_: Nodename1 Nodename2 Nodename3 ……
BU_为关键字,表示网络节点Nodename1、Nodename2网络节点名字,由用户自己定义;
注意:要保证节点命名的唯一性。
4、报文帧的定义:
格式如下:BO_ MessageId MessageName: MessageSize Transmitter
BO_为关键字,表示报文;
MessageId报文ID,是以10进制数表示的
MessageName报文的名字,命名规则和C语言变量相同
MessageSize报文数据域字节数,为无符号整型数据,CAN 2.0为最大8字节CAN FD 最大64字节
Transmitter该报文的网络节点;如果该报文没有指定发送节点,则该值需设置为”Vector__XXX”。
5、信号的定义:
格式如下:
SG_ SignalName (SigTypeDefinition) :
StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
SG_为关键字,表示信号;
SignalName(SigTypeDefinition): 表示该信号的名字 和 多路选择信号的定义;
SigTypeDefinition是可选项,有3种格式:
a)空,表示普通信号。
b)M,表示多路选择器信号。
c)m50,表示被多路选择器选择的信号,50,表示当M定义的信号的值等于50的时候,该报文使用此通路。
StartBit、SignalSize表示该信号起始位、信号长度;
ByteOrder表示信号的字节顺序:0代表Motorola格式,1代表Inter格式;
ValueType表示该信号的数值类型:+表示无符号数,-表示有符号数
Factor,Offset表示因子,偏移量;这两个值用于信号的原始值与物理值之间的转换。
转换如下:物理值=原始值*因子+偏移量;
Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;这两个值为double类型;
Unit表示该信号的物理单位,为字符串类型;
Receiver表示该信号的接收节点;若该信号没有指定的接收节点,则必须设置为” Vector__XXX”。
6、注解部分:
格式如下:
CM_ Object MessageId/NodeName “Comment”
CM_为关键字,表示注解信息;
Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”;
MessageId/NodeName表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为 报文的ID(10进制数表示);若前面的对象类型为节点,则这里的值应为节 点的名字;
Comment表示进行注解的文本信息;
注释以 “” 包围,注释内部不允许出现“号。
7、特征(属性)定义部分:
和特征相关的Tag一共有三条:
1)BA_DEF_特征名称类型定义。
格式如下:BA_DEF_ Object AttributeName ValueType Min Max;
Object特征类型,可以是BU_(节点特征定义)、BO_(报文特征定义)、SG_(信号特征定义)、空格(项 目特征定义);
AttributeName特征名称(C语言变量格式)
ValueType特征值类型(只能是十进制、十六进制、浮点数、枚举、字符5种类型)
Min Max数值类型这里出现范围,枚举类型这里是枚举值,字符类型,这里是空。
2)BA_DEF_DEF_特征默认值定义。
格式如下:
BA_DEF_DEF_ AttributeName DefaultValue;
BA_DEF_DEF_标签
AttributeName特征名称(C语言变量格式)
DefaultValue该特征的默认设置值
3)BA_项目中特征设置值定义。
格式如下:BA_ AttributeName Object MessageId projectValue;
BA_标签AttributeName特征名称(C语言变量格式)
Object特征类型,可以是BU_(节点特征定义)、BO_(报文特征定义)、SG_(信号特征定义) MessageId 这里的值应为报文的ID(10进制数表示)
projectValue该特征的设置值
8、数值表部分:
格式如下:VAL_ MessageId SignalName N “DefineN” …… 0 “Define0”;
VAL_为关键字,表示数值表定义
MessageId表示该信号所属的报文ID(10进制数表示);
SignalName表示信号名;
N “DefineN” …… 0 “Define0” 表示定义的数值表内容,即该信号的有效值分别用什么符号表示 。
例如:1 “Active” 0 “Not Active”;即1表示Active,0表示Active。
信号的值的表示方法有两种:1) 物理值=原始值*因子+偏移量;(常规表示,前面有提到) 2) 数字表,用来表示逻辑值。
审核编辑:黄飞
-
C语言
+关注
关注
180文章
7591浏览量
135770 -
DBC
+关注
关注
2文章
54浏览量
7739 -
网络节点
+关注
关注
0文章
53浏览量
15870
原文标题:DBC文本文件解析
文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论