DBC文件格式解析
1. DBC文件结构
VERSION ""
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_:
BU_: IC BCM
VAL_TABLE_ EDR_CrashOutputSts 3 "Front and side(Reserved)" 2 "Side(Reserved)" 1 "Front" 0 "No crash" ;
VAL_TABLE_ FCW_Collision 7 "level 7" 6 "level 6" 5 "level 5" 4 "level 4" 3 "level 3" 2 "level 2" 1 "level 1" 0 "no warning" ;
VAL_TABLE_ LDW_Status 3 "Reserved" 2 "LDW Active(Speed >= 60km/h)" 1 "LDW Idle (Speed < 60km/h)" 0 "LDW Close" ;
VAL_TABLE_ IC_Fuel_Signal_Open 3 "Not available" 2 "Short Circuit" 1 "Open" 0 "No Fault" ;
VAL_TABLE_ BCM_DTC 3 "Not available" 2 "Error" 1 "Fault" 0 "No Fault" ;
VAL_TABLE_ TPMS_Battery_status 1 "low voltage" 0 "normal" ;
VAL_TABLE_ TPMS_Temperature 1 "high temperature" 0 "normal" ;
VAL_TABLE_ TPMS_high_Pressure 1 "high pressure" 0 "normal" ;
VAL_TABLE_ TPMS_low_Pressure 1 "low pressure" 0 "normal" ;
VAL_TABLE_ TPMS_Leak_status 1 "fast air leakage" 0 "normal" ;
VAL_TABLE_ TPMS_Battery_voltage_single 3 "reserved" 2 "reserved" 1 "ow voltage" 0 "normal" ;
VAL_TABLE_ TPMS_temperature_a_single 3 "reserved" 2 "high temperature" 1 "superhigh temperature" 0 "normal" ;
VAL_TABLE_ TPMS_Pressure_single 3 "reserved" 2 "low pressure" 1 "high pressure" 0 "normal" ;
VAL_TABLE_ TPMS_Leak_status_single 3 "reserved" 2 "slow air leakage(reserved)" 1 "fast air leakage" 0 "normal" ;
VAL_TABLE_ System_LED_status 3 "reserved" 2 "System error" 1 "System self-check" 0 "System normal" ;
VAL_TABLE_ TPMS_Signa_abnormal 1 "Signal abnormal" 0 "Signal normal" ;
VAL_TABLE_ TPMS_Tire_position 5 "RR" 4 "LR" 3 "RRO" 2 "LRO" 1 "RF" 0 "LF" ;
VAL_TABLE_ BCM_RKE 1 "unlock" 0 "lock" ;
VAL_TABLE_ BCM_Win 2 "falling" 1 "raising" 0 "inactive" ;
VAL_TABLE_ BCM_AntiThief 7 "Description for the value '0x7'" 6 "Description for the value '0x6'" 5 "partially_armed" 4 "alarm" 3 "remind" 2 "armed" 1 "pre-armed'" 0 "disarmed" ;
VAL_TABLE_ BCM_SW_2_Value 1 "active" 0 "inactive" ;
VAL_TABLE_ BCM_KeyStatus 4 "START" 3 "OFF" 2 "ACC" 1 "Reserved" 0 "ON" ;
VAL_TABLE_ BCM_SW_4_Value_ 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
BO_ 3221225472 VECTOR__INDEPENDENT_SIG_MSG: 0 Vector__XXX
SG_ BCM_SysSt_RKE : 0|2@1+ (1,0) [0|3] "" Vector__XXX
BO_ 2566840343 IC_SysSt1: 8 IC
SG_ IC_SysSt1_distance : 32|32@1+ (0.125,0) [0|0] "" Vector__XXX
BO_ 2566847511 IC_SysSt: 8 IC
SG_ IC_SysSt_Fuel_level : 8|8@1+ (0.4,0) [0|100] "" Vector__XXX
BO_ 2365484055 IC_TCO1: 8 IC
SG_ IC_TCO1_Speed : 48|16@1+ (0.00390625,0) [0|255.99609375] "km/h" Vector__XXX
BO_ 2432639009 BCM_STA: 8 BCM
SG_ BCM_STA_TGDoor : 32|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_Seat_Belt : 2|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_RRDoor : 30|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_Right_Turn : 12|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_RFDoor : 26|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_Parking_Brake : 0|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_LRDoor : 28|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_LFDoor : 24|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_Left_Turn : 14|2@1+ (1,0) [0|3] "" Vector__XXX
SG_ BCM_STA_IGN : 34|4@1+ (1,0) [0|15] "" Vector__XXX
CM_ BO_ 3221225472 "This is a message for not used signals, created by Vector CANdb++ DBC OLE DB Provider.";
BA_DEF_ SG_ "GenSigTimeoutTime" INT 0 65535;
BA_DEF_ SG_ "GenSigTimeoutValue" INT 0 65535;
BA_DEF_ SG_ "GenSigSendType" ENUM "Cyclic","OnWrite","OnWriteWithRepetition","OnChange","OnChangeWithRepetition","IfActive","IfActiveWithRepetition","NoSigSendType","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed";
BA_DEF_ SG_ "GenSigCycleTime" INT 0 0;
BA_DEF_ SG_ "GenSigCycleTimeActive" INT 0 0;
BA_DEF_ SG_ "GenSigInactiveValue" INT 0 0;
BA_DEF_ SG_ "GenSigStartValue" INT 0 0;
BA_DEF_ BO_ "DiagRequest" ENUM "no","yes";
BA_DEF_ BO_ "DiagResponse" ENUM "no","yes";
BA_DEF_ BO_ "DiagState" ENUM "no","yes";
BA_DEF_ BO_ "DiagUudResponse" ENUM "False","True";
BA_DEF_ BO_ "DiagUudtResponse" ENUM "false","true";
BA_DEF_ BO_ "GenMsgFastOnStart" INT 0 65535;
BA_DEF_ BO_ "GenMsgILSupport" ENUM "no","yes";
BA_DEF_ BO_ "NmAsrMessage" ENUM "no","yes";
BA_DEF_ BO_ "NmMessage" ENUM "no","yes";
BA_DEF_ BO_ "TpTxIndex" INT 0 255;
BA_DEF_ BO_ "GenMsgSendType" ENUM "Cyclic","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","IfActive","NoMsgSendType","NotUsed";
BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0;
BA_DEF_ BO_ "GenMsgCycleTimeFast" INT 0 0;
BA_DEF_ BO_ "GenMsgNrOfRepetition" INT 0 0;
BA_DEF_ BO_ "GenMsgDelayTime" INT 0 0;
BA_DEF_ BO_ "GenMsgStartDelayTime" INT 0 0;
BA_DEF_ BU_ "ILUsed" ENUM "no","yes";
BA_DEF_ BU_ "NmAsrCanMsgCycleOffset" INT 0 65535;
BA_DEF_ BU_ "NmAsrCanMsgReducedTime" INT 1 65535;
BA_DEF_ BU_ "NmAsrNode" ENUM "no","yes";
BA_DEF_ BU_ "NmAsrNodeIdentifier" HEX 0 255;
BA_DEF_ BU_ "NmNode" ENUM "no","yes";
BA_DEF_ BU_ "NmStationAddress" HEX 0 255;
BA_DEF_ "DBName" STRING ;
BA_DEF_ "ILTxTimeout" INT 0 65535;
BA_DEF_ "NmAsrBaseAddress" HEX 0 2047;
BA_DEF_ "NmAsrCanMsgCycleTime" INT 1 65535;
BA_DEF_ "NmAsrMessageCount" INT 1 256;
BA_DEF_ "NmAsrRepeatMessageTime" INT 0 65535;
BA_DEF_ "NmAsrTimeoutTime" INT 1 65535;
BA_DEF_ "NmAsrWaitBusSleepTime" INT 0 65535;
BA_DEF_ "Manufacturer" STRING ;
BA_DEF_ "NmType" STRING ;
BA_DEF_ "Baudrate" INT 0 1000000;
BA_DEF_ "BusType" STRING ;
BA_DEF_ BU_ "NodeLayerModules" STRING ;
BA_DEF_ BU_ "ECU" STRING ;
BA_DEF_ BU_ "CANoeJitterMax" INT 0 0;
BA_DEF_ BU_ "CANoeJitterMin" INT 0 0;
BA_DEF_ BU_ "CANoeDrift" INT 0 0;
BA_DEF_ BU_ "CANoeStartDelay" INT 0 0;
BA_DEF_DEF_ "GenSigTimeoutTime" 0;
BA_DEF_DEF_ "GenSigTimeoutValue" 0;
BA_DEF_DEF_ "GenSigSendType" "Cyclic";
BA_DEF_DEF_ "GenSigCycleTime" 0;
BA_DEF_DEF_ "GenSigCycleTimeActive" 0;
BA_DEF_DEF_ "GenSigInactiveValue" 0;
BA_DEF_DEF_ "GenSigStartValue" 0;
BA_DEF_DEF_ "DiagRequest" "no";
BA_DEF_DEF_ "DiagResponse" "no";
BA_DEF_DEF_ "DiagState" "no";
BA_DEF_DEF_ "DiagUudResponse" "False";
BA_DEF_DEF_ "DiagUudtResponse" "false";
BA_DEF_DEF_ "GenMsgFastOnStart" 0;
BA_DEF_DEF_ "GenMsgILSupport" "no";
BA_DEF_DEF_ "NmAsrMessage" "no";
BA_DEF_DEF_ "NmMessage" "no";
BA_DEF_DEF_ "TpTxIndex" 0;
BA_DEF_DEF_ "GenMsgSendType" "Cyclic";
BA_DEF_DEF_ "GenMsgCycleTime" 0;
BA_DEF_DEF_ "GenMsgCycleTimeFast" 0;
BA_DEF_DEF_ "GenMsgNrOfRepetition" 0;
BA_DEF_DEF_ "GenMsgDelayTime" 0;
BA_DEF_DEF_ "GenMsgStartDelayTime" 0;
BA_DEF_DEF_ "ILUsed" "no";
BA_DEF_DEF_ "NmAsrCanMsgCycleOffset" 0;
BA_DEF_DEF_ "NmAsrCanMsgReducedTime" 320;
BA_DEF_DEF_ "NmAsrNode" "no";
BA_DEF_DEF_ "NmAsrNodeIdentifier" 50;
BA_DEF_DEF_ "NmNode" "no";
BA_DEF_DEF_ "NmStationAddress" 0;
BA_DEF_DEF_ "DBName" "";
BA_DEF_DEF_ "ILTxTimeout" 0;
BA_DEF_DEF_ "NmAsrBaseAddress" 1280;
BA_DEF_DEF_ "NmAsrCanMsgCycleTime" 640;
BA_DEF_DEF_ "NmAsrMessageCount" 128;
BA_DEF_DEF_ "NmAsrRepeatMessageTime" 3200;
BA_DEF_DEF_ "NmAsrTimeoutTime" 2000;
BA_DEF_DEF_ "NmAsrWaitBusSleepTime" 1500;
BA_DEF_DEF_ "Manufacturer" "Vector";
BA_DEF_DEF_ "NmType" "";
BA_DEF_DEF_ "Baudrate" 500000;
BA_DEF_DEF_ "BusType" "";
BA_DEF_DEF_ "NodeLayerModules" "";
BA_DEF_DEF_ "ECU" "";
BA_DEF_DEF_ "CANoeJitterMax" 0;
BA_DEF_DEF_ "CANoeJitterMin" 0;
BA_DEF_DEF_ "CANoeDrift" 0;
BA_DEF_DEF_ "CANoeStartDelay" 0;
BA_ "BusType" "CAN";
BA_ "DBName" "KLTPMS201228";
BA_ "NmStationAddress" BU_ IC 23;
BA_ "NmStationAddress" BU_ BCM 33;
BA_ "GenMsgCycleTime" BO_ 2566840343 1000;
BA_ "GenMsgCycleTime" BO_ 2566847511 1000;
BA_ "GenMsgCycleTime" BO_ 2365484055 50;
BA_ "GenMsgCycleTime" BO_ 2432639009 35;
VAL_ 3221225472 BCM_SysSt_RKE 1 "unlock" 0 "lock" ;
VAL_ 2432639009 BCM_STA_TGDoor 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_Seat_Belt 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_RRDoor 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_Right_Turn 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_RFDoor 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_Parking_Brake 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_LRDoor 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_LFDoor 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_Left_Turn 3 "Not Available" 2 "Error" 1 "Activated" 0 " De-activated" ;
VAL_ 2432639009 BCM_STA_IGN 4 "START" 3 "OFF" 2 "ACC" 1 "Reserved" 0 "ON" ;
2. DBC文件中的关键字
-
基本关键字
DBC-Keyword Object Type Note BU_ Network Node 网络节点 BO_ Message 帧/消息 SG_ Signal 信号 EV_ Environment Variable 环境变量 SIG_GROUP_ Signal Group 信号组 VAL_ Signal Value Table 信号值列表 -
扩展关键字
DBC-Keyword Object Type Node VERSION VERSION DBC文件版本 NS_ NS_ 新符号定义段 NS_DESC_ NS_DESC_ - CM_ Node/Frame/Signal Comments 节点/帧/信号 注释 BA_DEF_ Attribute Definitions 属性定义 BA_DEF_DEF_ Attribute Default Value Definitions 扩展属性缺省值定义 BA_ Attribute Value Definitions 属性值定义 -
其他关键字
Expend-Keyword 描述 备注 网络节点/网段名称 Network 使用数据库名称 数据库名称 DBName BA_扩展属性定义 帧发送类型 GenMsgSendType BA_扩展属性定义 帧周期 GenMsgCycleTime BA_扩展属性定义 信号发送类型 GenSigSendType BA_扩展属性定义 信号初始值 GenSigStartValue BA_扩展属性定义 CAN FD帧属性 VFrameFormat BA_扩展属性定义
3. 基本关键字详解
3.1 网络节点: BU_
- 格式:
BU_ NetworkNodes
- 说明: BU_后面是网络节点列表
3.2 报文帧定义: BO_
- 格式:
BO_ MessageId MessageName: MessageSize Transmitter
BO_ | MessageId | MessageName | MessageSize | Transmitter |
---|---|---|---|---|
报文关键字 | 帧的ID(用十进制表示) | 帧名 | 帧长度(字节) | 发送节点 (无为Vector__XXX) |
3.3 信号定义: SG_
- 格式:
SG_ SignalName : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
- 说明:
① **SG_: ** 是关键字,表示信号
② **SignalName: ** 信号的名字
③ **StartBit: ** 信号起始位
④ **SignalSize: ** 是信号长度
⑤ ByteOrder: ** 1表示是Inter格式; 如果是 0, 表示是Motorrola格式
⑥ ValueType: ** + 表示无符号数; 如果是-,表示有符号数
⑦ **(Factor, Offset): **原始值与物理值之间的转换, 物理值 = 原始值*因子Factor + 偏移量Offset
⑧ **[Min,Max]: ** 表示【最小值,最大值】, double类型
⑨ **unit/引号: **之间的是单位,为字符串类型
⑩ **Receiver: ** 表示该信号的接收节点,如果没有接受节点,必须设置为Vector_xxx
3.4 对报文或者信号的注释: CM_
- 格式:
CM_ Object MessageId/NodeName “Comment”
- 说明:
① CM_: ** 是关键字,表示cmments
② Object: ** 注解对象可以为节点BU_ 报文BO_ 与 消息SG_
③ MessageId/NodeName: 报文ID或者节点名字
④ “Comment”: 注解信息
3.5 属性值: BA_
- 格式
BA_ Name ObjectType ObjectName AttributeValue;
- 说明
① CM_: ** 是关键字,表示cmments
② Object: ** 注解对象可以为节点BU_ 报文BO_ 与 消息SG_
③ MessageId/NodeName: 报文信号帧的ID或者节点名字
④ “Comment” 注释信息
3.6 属性定义: BA_DEF_
- 格式:
BA_DEF_ Object AttributeName ValueType Min Max;
- 说明:
① BA_DEF_: ** 是关键字,表示s属性定义
② Object: ** 对象类型,可以为节点BU_、消息SG_或者网络节点“ ”
③ AttributeName: 属性名字
④ ValueType: 是属性值类型:整型、字符串、浮点型、枚举类型等
⑤ Min Max: 属性值的上下值,字符串无
3.7 属性初始值定义: BA_DEF_DEF_
- 格式:
BA_DEF_DEF_ AttributeName DefaultValue;
- 说明:
① BA_DEF_DEF_: 是关键字,表示属性的初始值
② AttributeName: 属性名称
③ DefaultValue: 属性的初始值
3.8 数值表: VAL_
- 格式:
VAL_ MessageId SignalName N “DefineN” …… 0 “Define0”;
- 说明:
① VAL_: 是关键字,表示数值表
② MessageId: 信号所属于的报文ID
③ SignalName 信号名字
④ N “DefineN” …… 0 “Define0”: 信号数值表
未完待续…