一般DBC文件中包含了如下的8種信息:
1、版本與新符號(hào) 用VERSION表示版本 用NS_表示新符號(hào)
2、波特率定義 用BS_表示
3、網(wǎng)絡(luò)節(jié)點(diǎn)的定義 用BU_表示
4、報(bào)文幀的定義 用BO_表示
5、信號(hào)的定義 用SG_表示
6、注解部分 用CM_表示
7、特征(屬性)部分 對(duì)特征名稱類型定義用BA_DEF_表示 對(duì)特征默認(rèn)值的設(shè)置用BA_DEF_DEF_表示 對(duì)特征項(xiàng)目設(shè)置值定義用BA_表示
8、數(shù)值表部分 用VAL_表示
從第3點(diǎn)開(kāi)始詳細(xì)講解:
3、網(wǎng)絡(luò)節(jié)點(diǎn)的定義:
格式如下:BU_: Nodename1 Nodename2 Nodename3 ……
BU_為關(guān)鍵字,表示網(wǎng)絡(luò)節(jié)點(diǎn)Nodename1、Nodename2網(wǎng)絡(luò)節(jié)點(diǎn)名字,由用戶自己定義;
注意:要保證節(jié)點(diǎn)命名的唯一性。
4、報(bào)文幀的定義:
格式如下:BO_ MessageId MessageName: MessageSize Transmitter
BO_為關(guān)鍵字,表示報(bào)文;
MessageId報(bào)文ID,是以10進(jìn)制數(shù)表示的
MessageName報(bào)文的名字,命名規(guī)則和C語(yǔ)言變量相同
MessageSize報(bào)文數(shù)據(jù)域字節(jié)數(shù),為無(wú)符號(hào)整型數(shù)據(jù),CAN 2.0為最大8字節(jié)CAN FD 最大64字節(jié)
Transmitter該報(bào)文的網(wǎng)絡(luò)節(jié)點(diǎn);如果該報(bào)文沒(méi)有指定發(fā)送節(jié)點(diǎn),則該值需設(shè)置為”Vector__XXX”。
5、信號(hào)的定義:
格式如下:
SG_ SignalName (SigTypeDefinition) :
StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
SG_為關(guān)鍵字,表示信號(hào);
SignalName(SigTypeDefinition): 表示該信號(hào)的名字 和 多路選擇信號(hào)的定義;
SigTypeDefinition是可選項(xiàng),有3種格式:
a)空,表示普通信號(hào)。
b)M,表示多路選擇器信號(hào)。
c)m50,表示被多路選擇器選擇的信號(hào),50,表示當(dāng)M定義的信號(hào)的值等于50的時(shí)候,該報(bào)文使用此通路。
StartBit、SignalSize表示該信號(hào)起始位、信號(hào)長(zhǎng)度;
ByteOrder表示信號(hào)的字節(jié)順序:0代表Motorola格式,1代表Inter格式;
ValueType表示該信號(hào)的數(shù)值類型:+表示無(wú)符號(hào)數(shù),-表示有符號(hào)數(shù)
Factor,Offset表示因子,偏移量;這兩個(gè)值用于信號(hào)的原始值與物理值之間的轉(zhuǎn)換。
轉(zhuǎn)換如下:物理值=原始值*因子+偏移量;
Min|Max表示該信號(hào)的最小值和最大值,即指定了該信號(hào)值的范圍;這兩個(gè)值為double類型;
Unit表示該信號(hào)的物理單位,為字符串類型;
Receiver表示該信號(hào)的接收節(jié)點(diǎn);若該信號(hào)沒(méi)有指定的接收節(jié)點(diǎn),則必須設(shè)置為” Vector__XXX”。
6、注解部分:
格式如下:
CM_ Object MessageId/NodeName “Comment”
CM_為關(guān)鍵字,表示注解信息;
Object表示進(jìn)行注解的對(duì)象類型,可以是節(jié)點(diǎn)“BU_”、報(bào)文“BO_”、消息”SG_”;
MessageId/NodeName表示進(jìn)行注解的對(duì)象,若前面的對(duì)象類型是信號(hào)或者報(bào)文,則這里的值應(yīng)為 報(bào)文的ID(10進(jìn)制數(shù)表示);若前面的對(duì)象類型為節(jié)點(diǎn),則這里的值應(yīng)為節(jié) 點(diǎn)的名字;
Comment表示進(jìn)行注解的文本信息;
注釋以 “” 包圍,注釋內(nèi)部不允許出現(xiàn)“號(hào)。
7、特征(屬性)定義部分:
和特征相關(guān)的Tag一共有三條:
1)BA_DEF_特征名稱類型定義。
格式如下:BA_DEF_ Object AttributeName ValueType Min Max;
Object特征類型,可以是BU_(節(jié)點(diǎn)特征定義)、BO_(報(bào)文特征定義)、SG_(信號(hào)特征定義)、空格(項(xiàng) 目特征定義);
AttributeName特征名稱(C語(yǔ)言變量格式)
ValueType特征值類型(只能是十進(jìn)制、十六進(jìn)制、浮點(diǎn)數(shù)、枚舉、字符5種類型)
Min Max數(shù)值類型這里出現(xiàn)范圍,枚舉類型這里是枚舉值,字符類型,這里是空。
2)BA_DEF_DEF_特征默認(rèn)值定義。
格式如下:
BA_DEF_DEF_ AttributeName DefaultValue;
BA_DEF_DEF_標(biāo)簽
AttributeName特征名稱(C語(yǔ)言變量格式)
DefaultValue該特征的默認(rèn)設(shè)置值
3)BA_項(xiàng)目中特征設(shè)置值定義。
格式如下:BA_ AttributeName Object MessageId projectValue;
BA_標(biāo)簽AttributeName特征名稱(C語(yǔ)言變量格式)
Object特征類型,可以是BU_(節(jié)點(diǎn)特征定義)、BO_(報(bào)文特征定義)、SG_(信號(hào)特征定義) MessageId 這里的值應(yīng)為報(bào)文的ID(10進(jìn)制數(shù)表示)
projectValue該特征的設(shè)置值
8、數(shù)值表部分:
格式如下:VAL_ MessageId SignalName N “DefineN” …… 0 “Define0”;
VAL_為關(guān)鍵字,表示數(shù)值表定義
MessageId表示該信號(hào)所屬的報(bào)文ID(10進(jìn)制數(shù)表示);
SignalName表示信號(hào)名;
N “DefineN” …… 0 “Define0” 表示定義的數(shù)值表內(nèi)容,即該信號(hào)的有效值分別用什么符號(hào)表示 。
例如:1 “Active” 0 “Not Active”;即1表示Active,0表示Active。
信號(hào)的值的表示方法有兩種:1) 物理值=原始值*因子+偏移量;(常規(guī)表示,前面有提到) 2) 數(shù)字表,用來(lái)表示邏輯值。
審核編輯:黃飛
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141800 -
DBC
+關(guān)注
關(guān)注
2文章
59瀏覽量
8104 -
網(wǎng)絡(luò)節(jié)點(diǎn)
+關(guān)注
關(guān)注
0文章
54瀏覽量
16376
原文標(biāo)題:DBC文本文件解析
文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
求助,為什么在CAN數(shù)據(jù)庫(kù)(.dbc文本文件)中找不到報(bào)文?
平面一般力系
PCB設(shè)計(jì)中為什么一般要選用50歐姆的阻抗

DBC編輯_文本形式編輯

使用candb++制作dbc文件筆記
【產(chǎn)品應(yīng)用】如何通過(guò)IoT云平臺(tái)對(duì)CAN數(shù)據(jù)進(jìn)行實(shí)時(shí)DBC解析?
為什么PCB設(shè)計(jì)一般為50歐姆阻抗?

CAN DBC文件解析

用Labview開(kāi)發(fā)的DBC文件轉(zhuǎn)Excel表格文件的VI
TSMaster如何同時(shí)記錄標(biāo)定變量和DBC信號(hào)至BLF文件

評(píng)論