一般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文章
7598瀏覽量
136195 -
DBC
+關注
關注
2文章
54瀏覽量
7758 -
網絡節點
+關注
關注
0文章
54瀏覽量
15888
原文標題:DBC文本文件解析
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論