描述文件
dbc文件:Database CAN,CAN協(xié)議的描述文件。文件中關(guān)鍵字含義如下圖:
dbc文件結(jié)構(gòu)
dbc文件格式解析
1.版本與新符號
version: 版本信息可以為空,也可由用戶自定義
new symbol: 隨dbc文件自動生成
2.波特率定義 (必須項(xiàng))
BS_:[baudrate:BTR1, BTR2]
"BS_":CAN網(wǎng)絡(luò)的波特率,必須存在,[]內(nèi)容可以省略
3.網(wǎng)絡(luò)節(jié)點(diǎn)定義 (必須項(xiàng))
BU_:Nodename1 Nodename2 Nodename3...
"BU_":表示網(wǎng)絡(luò)節(jié)點(diǎn),由用戶自定義,需保證節(jié)點(diǎn)命名的唯一性
例:
BU_:AVNT ACU HUD ——> 定義了AVNT、ACU、HUD三個網(wǎng)絡(luò)節(jié)點(diǎn)
4.報文幀定義
BO_ MessageId(10進(jìn)制) MessageName: MessagSize Transmitter
"BO_":關(guān)鍵字,表示報文
"MessageId":報文ID,以十進(jìn)制表示
"MessageName": 報文名字
"MessagSize":報文數(shù)據(jù)域字節(jié)數(shù),為'無符號整型數(shù)據(jù)'
"Transmitter": 發(fā)送該報文的網(wǎng)絡(luò)節(jié)點(diǎn),無指定發(fā)送節(jié)點(diǎn),則設(shè)置為'Vector_XXX'
BO_ 1549 PosLocalD: 4 IFS2000: 表示由IFS2000節(jié)點(diǎn)發(fā)送,數(shù)據(jù)域長度為4字節(jié),ID為1549(0x60d),名字為PosLocalD的報文
5.信號定義
SG_SignalName: StartBit|SignalSize@ByteOrder ValueType (Factor, Offset) [Min|Max] Unit Receiver
"SG_":關(guān)鍵字,表示信號
"Signal Name": 信號名稱
"StartBit":起始位
"SignalSize":信號長度,單位為:bit
"ByteOrder":字節(jié)順序,0 ——> Motorola格式,1 ——> Inter格式
"valueType": 信號的數(shù)值類型,'+' ——> '無符號數(shù)', '-' ——> '有符號數(shù)'
"Factor":表示因子, "Offset":偏移量
物理值 = 原始值 * Factor + Offset
"Min|Max": 信號的最小值和最大值,為double類型
"Unit": 該信號的單位,為字符串類型
"Receiver": 信號的接收節(jié)點(diǎn),無指定節(jié)點(diǎn),則設(shè)置為'Vector_XXX'
例:
SG_ PosLocalDown : 0|32@1- (0.001,0) [-214748.3648|214748.3647] "m" Vector__XXX
表示名為'PosLocalDown'的信號起始位為第0位,信號長度為32位,Inter格式,數(shù)值類型為有符號類型數(shù)
因子為0.001,偏移量為0,信號取值范圍為-214748.3648到214748.3647,信號單位為:'m',無指定接收節(jié)點(diǎn)
6.注解部分
CM_Object MessageId/NodeName "Comment"
"cm_": 關(guān)鍵字,表示注解信息
"Object": 注解對象類型,可以是節(jié)點(diǎn)"BU_", 報文"BO_", 信號"SG_"
"MessageId/NodeName": 注解對象,若對象類型為信號或者報文,則為報文的ID(10進(jìn)制);若對象為節(jié)點(diǎn),則為節(jié)點(diǎn)的名稱
"Comment": 注解的文本
例:
"CM_ SG_ 996 HUD_HeightLv “Control hud height level":
表示對ID為996這條報文下的'HUD_HeightLv'信號進(jìn)行注解,內(nèi)容為'Control hud height level'
7.屬性定義
BA_DEF_Object AttributeName ValueType Min Max;
BA_DEF_DEF_ AttributeName DefaultValue
"BA_DEF_":關(guān)鍵字,表示屬性定義
"Object": 對象,可以是 節(jié)點(diǎn)'BU_',報文'BO_',信號'SG_'
"AttributeName":屬性名
"ValueType:":數(shù)據(jù)類型,有'整型'、'字符串'、'浮點(diǎn)型'、'枚舉型'
"Min/Max":屬性值的取值范圍
"BA_DEF_DEF_":關(guān)鍵字,表示定義屬性的初始值
"DefaultValue":屬性的初始值
例:
BA_DEF_ SG_ “MyTry” INT 0 11、 BA_DEF_DEF_ “MyTry” 0:
表示對信號的'MyTry'屬性進(jìn)行定義,屬性的數(shù)據(jù)類型為整型,取值范圍為0到11,初始值為0
8.數(shù)值表部分
VAL_ MessageId SignalName N "DefineN" ....0 "Define0"
"VAL_":關(guān)鍵字,數(shù)值表定義
"MessageId":報文ID(十進(jìn)制)
"SignalName":信號名
N "DefineN" ....0 "Define0":表示定義的數(shù)值表內(nèi)容
例:
VAL_ 996 HUD_OffSt 1 “Active” 0 “Not Active”:
表示ID為996的報文下名為"HUD_OffSt"信號進(jìn)行數(shù)值表定義,"Active"取代'1',"Not Active"取代'0'