一.candb++
二.DBC文件解析
NS_ :
NS_DESC_:用于描述网络信号的描述信息。
CM_:用于定义信号的描述信息。
BA_DEF_:定义信号的属性。
BA_:为信号属性定义值。
VAL_:为信号的枚举值定义标签。
CAT_DEF_:定义信号类别的属性。
CAT_:为信号类别定义值。
FILTER:用于定义消息过滤器,以确定哪些消息将被接收。
BA_DEF_DEF_:为属性定义默认值。
EV_DATA_:定义事件数据。
ENVVAR_DATA_:定义环境变量数据。
SGTYPE_:定义信号类型。
SGTYPE_VAL_:为信号类型定义值。
BA_DEF_SGTYPE_:定义信号类型的属性。
BA_SGTYPE_:为信号类型属性定义值。
SIG_TYPE_REF_:引用信号类型。
VAL_TABLE_:为信号值表定义值。
SIG_GROUP_:定义信号分组。
SIG_VALTYPE_:定义信号值类型。
SIGTYPE_VALTYPE_:定义信号类型与值类型的关联。
BO_TX_BU_:定义消息与发送节点之间的关联。
BA_DEF_REL_:定义关联属性。
BA_REL_:为关联属性定义值。
BA_DEF_DEF_REL_:定义关联属性的默认值。
BU_SG_REL_:定义信号与发送节点之间的关联。
BU_EV_REL_:定义事件与发送节点之间的关联。
BU_BO_REL_:定义消息与发送节点之间的关联。
SG_MUL_VAL_:定义信号的多个值。
波特率定义:
格式如下:
BS_:[baudrate:BTR1,BTR2];
网络节点的定义
格式如下:
BU_:Nodename1 Nodename2 Nodename3 ……
报文帧的定义:
格式如下:
BO_ MessageId(10进制数表示) MessageName: MessageSize Transmitter
(1)BO_为关键字,表示报文;
(2)MessageId为定义的报文ID,是以10进制数表示的;如例子中的645,代表报文ID为0x285;
(3)MessageName表示该报文的名字,命名规则和C语言变量相同;
(4)MessageSize表示该报文数据域字节数,为无符号整型数据;
(5)Transmitter表示发送该报文的网络节点;如果该报文没有指定发送节点,则该值需设置为” Vector__XXX”。
信号的定义:
格式如下:
SG_ SignalName : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
(1)SG_为关键字,表示信号;
(2)SignalName、 StartBit、 SignalSize:分别表示该信号的名字、起始位、信号长度;
(3)ByteOrder:表示信号的字节顺序:0代表Motorola格式,1代表Inter格式;
(4) ValueType :表示该信号的数值类型:+表示无符号数,-表示有符号数;
(5)Factor表示因子,Offset表示偏移量;这两个值于该信号的原始值与物理值之间的转换。
转换如下:物理值=原始值*因子+偏移量;
(6)Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;这两个值为double类型;
(7)Unit表示该信号的单位,为字符串类型;
(8)Receiver表示该信号的接收节点;若该信号没有指定的接收节点,则必须设置为” Vector__XXX”。
注解部分:
格式如下:
CM_ Object MessageId/NodeName “Comment”
(1)CM_为关键字,表示注解信息;
(2)Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”;
(3)MessageId/NodeName 表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为报文的ID(10进制数表示);若前面的对象类型为节点,则这里的值应为节点的名字;
(4)Comment表示进行注解的文本信息;
属性定义部分:
格式如下:
BA_DEF_ "属性名称" 数据类型 ;
BA_DEF_ "SignalType" ENUM "Unsigned", "Signed" ;
BA_DEF_DEF_ "SignalType" "Unsigned" ;BA_DEF_DEF_ AttributeName DefaultValue;
(1) BA_DEF_为关键字,表示属性定义;
(2) Object表示属性定义的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”、网络节点” ”(用空格表示)等;
(3)AttributeName表示进行定义的属性名字;
(4)ValueType表示属性值的类型,可以是整型、字符串、浮点型、枚举类型等;
(5)Min/Max表示属性值的上下最值,即指定了取值范围(字符串类型没有此项)。
(6)BA_DEF_DEF_为关键字,表示定义属性的初始值;
(7)DefaultValue表示该属性的初始值。
属性的默认值有助于确保在未提供属性值的情况下,系统仍然能够正常工作,并且可以减少配置文件的冗余。
BA_DEF_
用于定义属性的结构和类型,而 BA_DEF_DEF_
用于为已定义的属性提供默认值。这两者一起用于描述和配置CAN网络中的节点、消息、信号等,以便更好地理解和解释通信数据,同时确保系统在未提供显式属性值的情况下能够正常工作。