在对车渗透的时候,会查找车载系统的敏感文件。包括传统的密钥、密码、重要文件等。汽车数据库文件是我通常比较关注的一种,有时候车载系统里面会残留有汽车数据库文件,如DBC文件。拿到DBC文件之后,就能构造出CAN消息,控制车辆、伪造消息等。一起测试的同事对汽车用到的专有数据库文件不太熟悉,于是乎就有了这篇文章,汇总了常用的数据库文件与大家分享。
随着汽车电子技术的快速发展,汽车中的电子控制单元(ECU)和各种传感器系统已经形成了一个庞大的数据网络。这些系统不断产生、交换和存储大量的诊断、配置和测量数据。在汽车的研发、测试、诊断、维护等各个环节中,数据库文件格式扮演着至关重要的角色。本文总结了在汽车领域常用的数据库文件及其示例。
数据库文件格式在汽车通信和诊断中广泛应用,用于描述和存储车辆系统的通信协议、诊断信息及配置数据。常见的格式包括 DBC、ODX 和 ARXML等。如有遗漏欢迎补充。
数据格式统计表
数据库文件简介
汽车架构描述数据库文件
-
ARXML:ARXML 文件是 AUTOSAR(Automotive Open System Architecture)框架中的配置文件,描述了系统架构、软件组件、通信接口等信息。它在现代汽车的电子架构中起着至关重要的作用,尤其是在多ECU系统中,ARXML 文件帮助开发人员高效地管理和配置复杂的汽车电子系统。
测量数据库文件
随着汽车技术的进步,汽车在研发和测试过程中会产生大量的测量数据。这些数据通常需要以高精度和高频率的方式进行记录,并且能够进行高效的存储与分析。
-
A2L: A2L 文件主要用于汽车 ECU 的标定过程,记录了与 ECU 控制相关的各种参数(如测量值、标定值和轴变量等)。A2L 文件通常与 ECU 标定工具配合使用,用于调整发动机控制单元的各种参数,以优化车辆的性能、燃油效率和排放控制。
诊断数据库文件
为了有效地交换和处理车辆电子系统中的大量数据,汽车行业中还使用了专门的数据交换协议和文件格式。汽车的诊断功能是确保车辆正常运行和快速修复故障的关键。诊断文件用于存储和交换诊断相关的数据,如故障码、诊断服务和步骤等。
-
CDD: CDD(CANdelaStudio diagnostic description) 文件用于描述和配置各个 ECU 的诊断功能。它包含了ECU的诊断功能描述、故障码、诊断参数等信息。CDD 文件帮助汽车制造商和服务人员理解每个 ECU 的诊断能力和操作流程。cdd是CANoe/CANalyzer的专用文件。
-
ODX: ODX(Open Diagnostic Data Exchange)格式用于描述车辆的诊断服务信息。它包含了 ECU(电子控制单元)诊断相关的测试服务、故障码、诊断步骤等内容,支持自动化诊断流程,是车辆诊断和维修中不可或缺的工具。
-
PDX: PDX(Product Data eXchange)文件用于存储和交换汽车的诊断信息,特别是在跨供应商和制造商之间共享诊断数据时。PDX 文件通常包含故障码(DTC)、诊断服务、测试步骤等,用于诊断和修复车辆的电子系统问题。
-
DEXT: DEXT(AUTOSAR Diagnostic Extract Template)文件的主要作用是提供一种标准格式,方便不同的诊断工具、测试设备、车辆控制系统等之间进行数据交换。这可以帮助汽车制造商、供应商、维修商等共享有关车辆状态、故障诊断、测试结果等信息。
网络通信文件
随着汽车电子系统的复杂性增加,车辆内的多种总线通信协议得到了广泛应用。这些通信协议的配置和管理通常依赖于网络描述文件。
-
DBC: DBC 文件是最常用的 CAN(Controller Area Network)通信协议配置文件,用于描述 CAN 总线上各个消息、信号及其编码方式。通过 DBC 文件,开发人员可以清晰地了解 CAN 网络中各个信号的具体含义,如发动机转速、车速等,进而进行数据分析和故障诊断。
-
LDF: LDF(LIN Description File)用于描述LIN(Local Interconnect Network)总线的通信配置,包括消息的调度、信号的格式等。LIN 总线通常用于低速通信,广泛应用于车窗控制、座椅调节等非关键系统中。
-
FIBEX: FIBEX(Field Bus Exchange)是一种通用的文件格式,用于描述多种通信协议(如 CAN、FlexRay 和 Ethernet)的网络配置。FIBEX 文件通常用于复杂的汽车电子架构,特别是在支持多种总线通信的高端汽车中。
-
DBF: DBF(BUSMASTER Database File)是BUSMASTER使用的专用数据格式。BUSMASTER 是 BOSCH 开源软件工具,用于模拟、分析和测试数据总线系统,支持CAN和LIN协议。
其他常见文件
-
XML、dtd、JSON等。
数据库文件示例
A2L
ASAP2_VERSION 1 41
/begin PROJECT ACCTest_PC
"Generated by ETAS from Project ACCTest_PC"
/begin HEADER
""
VERSION "000" PROJECT_NO ASD
/end HEADER
/begin MODULE ACCTest_PC
"Generated by ETAS ASCET7 from Project: ACCTest_PC"
/begin A2ML
block "IF_DATA" taggedunion if_data {
"E_TARGET" taggedstruct {
(block "SOURCE" struct {
char[100];
int;
long;
taggedstruct {
"QP_BLOB" uint;
};
}
)*;
block "TP_BLOB" struct {
ulong;
int;
int;
long;
long;
};
"KP_BLOB" struct {
ulong;
ulong;
uint;
struct {
long;
uint;
}
[64];
};
"DP_BLOB" struct {
ulong;
ulong;
uint;
struct {
long;
uint;
}
[64];
};
};
};
/end A2ML
/begin IF_DATA E_TARGET
/begin SOURCE "Task0"
/* type */ 3
/* period */ 10
QP_BLOB 1
/end SOURCE
/begin TP_BLOB
/* programm id */ 881740918
/* target id */ 7
/* */ 0 2 0
/end TP_BLOB
/end IF_DATA
/begin MOD_PAR
""
VERSION "000"
ADDR_EPK 0x0
EPK ""
SUPPLIER "ETAS GmbH"
CUSTOMER "xxx"
CUSTOMER_NO "000"
USER "xxx"
PHONE_NO "000"
ECU "PC"
CPU_TYPE "PCx86"
NO_OF_INTERFACES 1
/end MOD_PAR
/begin MOD_COMMON
"Common definitions"
BYTE_ORDER MSB_LAST
ALIGNMENT_BYTE 1
ALIGNMENT_WORD 2
ALIGNMENT_LONG 4
ALIGNMENT_FLOAT32_IEEE 4
ALIGNMENT_FLOAT64_IEEE 8
/end MOD_COMMON
/begin MEASUREMENT VehicleModel.VehicelDynamicModel.Vehicle0.velocity
/* long identifier */ ""
/* datatype */ FLOAT32_IEEE
/* conversion */ esdl_ident
/* resolution */ 1
/* accuracy */ 100.0
/* lower limit */ -3.4028234663852886E+38
/* upper limit */ 3.4028234663852886E+38
ECU_ADDRESS 0x0
/begin IF_DATA E_TARGET
KP_BLOB 0xFFFFFFFF 0xFFFFFFFF 4 1001 0 1001 0 1001 0 1000 0
/end IF_DATA
/end MEASUREMENT<!-- ..省略.. -->
ARMXL
<?xml version="1.0" encoding="UTF-8"?><AUTOSAR xmlns="http://autosar.org/3.1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/3.1.5 autosar_3-1-5.xsd">
<TOP-LEVEL-PACKAGES>
<AR-PACKAGE>
<SHORT-NAME>board_mpc5668_gkit</SHORT-NAME>
<ELEMENTS>
<ECU-CONFIGURATION UUID="fdb8e39b-2097-4c78-9a47-8d7d9b00a251">
<SHORT-NAME>board_mpc5668_gkit</SHORT-NAME>
<ADMIN-DATA>
<DOC-REVISIONS>
<DOC-REVISION />
</DOC-REVISIONS>
<SDGS>
<SDG GID="Arccore::EcuOptions">
<SD GID="MCU">MPC5668</SD>
<SD GID="GENDIR">${RESOURCE_LOC}</SD>
</SDG>
</SDGS>
</ADMIN-DATA>
<ECU-SW-COMPOSITION-REF DEST="ECU-SW-COMPOSITION">/board_mpc5668_gkit/SwComposition_board_mpc5668_gkit</ECU-SW-COMPOSITION-REF>
<MODULE-REFS>
<MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5668_gkit/Port</MODULE-REF>
<MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5668_gkit/Mcu</MODULE-REF>
</MODULE-REFS>
</ECU-CONFIGURATION>
<ECU-SW-COMPOSITION UUID="29c41547-dc90-42d5-b7fb-980a709dd799">
<SHORT-NAME>SwComposition_board_mpc5668_gkit</SHORT-NAME>
</ECU-SW-COMPOSITION>
<MODULE-CONFIGURATION UUID="4254b159-0cf1-4761-8f2b-4f213deedef8">
<SHORT-NAME>Port</SHORT-NAME>
<ADMIN-DATA>
<SDGS>
<SDG />
<SDG GID="Arccore::ModuleOptions">
<SD GID="GENERATE_AND_VALIDATE">true</SD>
<SD GID="ARCCORE_EDITOR_VERSION">2.0.2</SD>
</SDG>
</SDGS>
</ADMIN-DATA>
<DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>
<CONTAINERS>
<CONTAINER UUID="d0730988-a63d-4398-a6ef-7fc90472c788">
<SHORT-NAME>PortConfigSet</SHORT-NAME>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>
<SUB-CONTAINERS>
<CONTAINER UUID="3dd5a2af-755c-45fb-a4e4-4a68b4751b94">
<SHORT-NAME>PortContainer_1</SHORT-NAME>
<ADMIN-DATA>
<SDGS>
<SDG GID="Arccore::IdentifiableOptions" />
</SDGS>
</ADMIN-DATA>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>
</CONTAINER>
</SUB-CONTAINERS>
</CONTAINER>
<CONTAINER UUID="eb1bffc7-d006-438f-8ebc-bc9f7a48805e">
<SHORT-NAME>PortGeneral</SHORT-NAME>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortGeneral</DEFINITION-REF>
<PARAMETER-VALUES>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortDevErrorDetect</DEFINITION-REF>
<VALUE>false</VALUE>
</BOOLEAN-VALUE>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinDirectionApi</DEFINITION-REF>
<VALUE>false</VALUE>
</BOOLEAN-VALUE>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinModeApi</DEFINITION-REF>
<VALUE>false</VALUE>
</BOOLEAN-VALUE>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortVersionInfoApi</DEFINITION-REF>
<VALUE>true</VALUE>
</BOOLEAN-VALUE>
</PARAMETER-VALUES>
</CONTAINER>
</CONTAINERS>
</MODULE-CONFIGURATION>
<MODULE-CONFIGURATION UUID="7d4d4f2f-5fe6-491c-9178-7c012333d4f4">
<SHORT-NAME>Mcu</SHORT-NAME>
<ADMIN-DATA>
<SDGS>
<SDG />
<SDG GID="Arccore::ModuleOptions">
<SD GID="GENERATE_AND_VALIDATE">true</SD>
<SD GID="ARCCORE_EDITOR_VERSION">2.0.3</SD>
</SDG>
</SDGS>
</ADMIN-DATA>
<DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Mcu</DEFINITION-REF>
<CONTAINERS>
<CONTAINER UUID="6a518624-905b-4cd3-9eeb-019352d2bd6b">
<SHORT-NAME>McuGeneralConfiguration</SHORT-NAME>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuGeneralConfiguration</DEFINITION-REF>
<PARAMETER-VALUES>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuDevErrorDetect</DEFINITION-REF>
<VALUE>false</VALUE>
</BOOLEAN-VALUE>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuPerformResetApi</DEFINITION-REF>
<VALUE>true</VALUE>
</BOOLEAN-VALUE>
<BOOLEAN-VALUE>
<DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuVersionInfoApi</DEFINITION-REF>
<VALUE>true</VALUE>
</BOOLEAN-VALUE>
</PARAMETER-VALUES>
</CONTAINER>
<CONTAINER UUID="dad41306-3c7b-4d89-8e01-ea2b31169c22">
<SHORT-NAME>McuModuleConfiguration</SHORT-NAME>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration</DEFINITION-REF>
<PARAMETER-VALUES>
<ENUMERATION-VALUE>
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSrcFailureNotification</DEFINITION-REF>
<VALUE>DISABLED</VALUE>
</ENUMERATION-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuNumberOfMcuModes</DEFINITION-REF>
<VALUE>0</VALUE>
</INTEGER-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuRamSectors</DEFINITION-REF>
<VALUE>1</VALUE>
</INTEGER-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuResetSetting</DEFINITION-REF>
<VALUE>0</VALUE>
</INTEGER-VALUE>
</PARAMETER-VALUES>
<SUB-CONTAINERS>
<CONTAINER UUID="84472191-b207-48c4-943a-8d5f3b3fd5ba">
<SHORT-NAME>McuClockSettingConfig</SHORT-NAME>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig</DEFINITION-REF>
<REFERENCE-VALUES>
<REFERENCE-VALUE>
<DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuDefaultClockReference</DEFINITION-REF>
<VALUE-REF DEST="CONTAINER">/board_mpc5668_gkit/Mcu/McuModuleConfiguration/McuClockSettingConfig/EXT_REF_112MHZ</VALUE-REF>
</REFERENCE-VALUE>
</REFERENCE-VALUES>
<SUB-CONTAINERS>
<CONTAINER UUID="f8fe5e22-4e8e-4c0e-9534-665bb66ae538">
<SHORT-NAME>EXT_REF_112MHZ</SHORT-NAME>
<ADMIN-DATA>
<SDGS>
<SDG GID="Arccore::IdentifiableOptions">
<SD GID="@ARCCORE_COMMENT">(extal * (emfd+16)) / ((prediv+1)*(erfd+1))</SD>
</SDG>
</SDGS>
</ADMIN-DATA>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint</DEFINITION-REF>
<PARAMETER-VALUES>
<FLOAT-VALUE>
<DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointFrequency</DEFINITION-REF>
<VALUE>4.0E7</VALUE>
</FLOAT-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEprediv</DEFINITION-REF>
<VALUE>9</VALUE>
</INTEGER-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEmfd</DEFINITION-REF>
<VALUE>40</VALUE>
</INTEGER-VALUE>
<INTEGER-VALUE>
<DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllErfd</DEFINITION-REF>
<VALUE>1</VALUE>
</INTEGER-VALUE>
</PARAMETER-VALUES>
</CONTAINER>
</SUB-CONTAINERS>
</CONTAINER>
<CONTAINER UUID="981c619f-8c0e-448e-8ec9-c269a1cad94f">
<SHORT-NAME>McuModeSettingConf</SHORT-NAME>
<ADMIN-DATA>
<SDGS>
<SDG GID="Arccore::IdentifiableOptions" />
</SDGS>
</ADMIN-DATA>
<DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf</DEFINITION-REF>
<PARAMETER-VALUES>
<INTEGER-VALUE>
<DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf/McuMode</DEFINITION-REF>
<VALUE>0</VALUE>
</INTEGER-VALUE>
</PARAMETER-VALUES>
</CONTAINER>
</SUB-CONTAINERS>
</CONTAINER>
</CONTAINERS>
</MODULE-CONFIGURATION>
</ELEMENTS>
</AR-PACKAGE>
</TOP-LEVEL-PACKAGES></AUTOSAR>
CDD
<?xml version='1.0' encoding='utf-8' standalone='no'?><!DOCTYPE CANDELA SYSTEM 'candela.dtd'><CANDELA dtdvers='18.0.6'><ECUDOC oid='BBAE831319844f059968800BAE058B3F' temploid='4DF8DD6796074370B6F0C0C7D8E463CE' doctype='inst' manufacturer='daimler' mid='MMxwMfmFxC5n54xJpPYJDg==' saveno='2' languages='(en-US)' uptodateLanguages='(en-US)' supportsTextIds='1' supportsRevAtVars='1' xdtauth='288' dtNesting='all' allowDynamicLengthBeforeEnd='1' supportsEvents='1' syncDtcToEvent='1'><DESC><TUV xml:lang='en-US' struct='1'><PARA><FC tcol='0' fs='200'>This CANdela template is valid for MBDS 2023</FC></PARA></TUV></DESC><PROTOCOLSTANDARD>UDS</PROTOCOLSTANDARD><SPECOWNER>Daimler</SPECOWNER><DTID>ZENWVFBcUllPHgVgBQEQGxACFGRpGSo6KAAgcGtyYWR5dhs5Oz83fGd+bk5RUk1TVUpHLDk4OA==</DTID><QUALGENOPTIONS case='ignore' minLen='1' maxLen='128'/><LABELFORMAT>[0-9][0-9].[0-9][0-9].[0-9][0-9]</LABELFORMAT><LABELFORMATDESC>Three two-digit numbers separated by dots
Example: 00.23.21</LABELFORMATDESC><JOBFILES><JOBFILE id='_1' version='1.1.0' syntax='jar'><EXTDOC usage='src' creationdt='2021-10-13 17:13:35+02:00' changedt='2021-10-13 17:13:36+02:00'><FILENAME>C:TempTemplate zum bearbeitenJobs21.42.00SarUploadJob.jar</FILENAME><FILECONTENTS len='136772'>UEsDBBQACAgIAHiK/FIAAAAAAAAAAAAAAAAUAAQATUVUQS1JTkYvTUFOSUZFU1QuTUb+ygAAVY9B
i8IwEEbvhf6H4j2DenCXLh5c7EVQFst6nzZTydLMaJIW/fcWI8E9v/ke8/bIpiMf1ImcN8JlsYB5
nn0PrHtS9d020pv2gJbKohULGo3tycGfNODRpct4UW+Oxe+lF9QJvHmf5iNdB+NIRRylXrpg+Aw6
+K8mzsY4W88+YQmrj1ny7V8PJ+8yoZdaVzdqhzDBikfjhC1xKIsdjlhXagGrPNtJoyoO7q5+xHDw
/9umLhieFVCj22LA2DSt8izPHlBLBwhOdROMwQAAADMBAABQSwMEFAAICAgA8E3mUgAAAAAAAAAA
AAAAADEAAABjb20vZGFpbWxlci9vZHhqb2JzL2NvbW1vbi9BYnN0cmFjdE11bHRpSm9iLmNsYXNz<!-- ..省略.. -->"<NEGRESCODEPROXIES></NEGRESCODEPROXIES></SPECDATAOBJ></SIMPLECOMPCONT><SIMPLECOMPCONT oid='3E54B311C4434396866841D7449E6D1F' temploid='A3945AC39B2F4863A828E85F34B5912C' shproxyref='_2243'><SPECDATAOBJ oid='376CC80A2B54460eA6A87CD4FD22C5CE' temploid='DEE47B4B073C4da3AD55BCEB57BDDE81'><NAME><TUV xml:lang='en-US'>transitionMode</TUV></NAME><QUAL>transitionMode</QUAL><NEGRESCODEPROXIES></NEGRESCODEPROXIES></SPECDATAOBJ></SIMPLECOMPCONT></DIAGINST></VAR></ECU><REQDOC idPrefix='CDD_Neues_Steuergeraet_1_' defaultDatyType='Undefined'></REQDOC></ECUDOC></CANDELA>
DBF
//******************************BUSMASTER Messages and signals Database ******************************//
[DATABASE_VERSION] 1.3
[PROTOCOL] CAN
[BUSMASTER_VERSION] [3.2.2]
[NUMBER_OF_MESSAGES] 10
[START_MSG] Brake,36,8,3,1,S
[START_SIGNALS] Value,12,2,0,U,4095,0,0,0.000000,0.024420,%,
[START_SIGNALS] Counter,16,4,0,U,65535,0,0,0.000000,1.000000,,
[START_SIGNALS] Checksum,32,8,0,U,4294967295,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] Accelerator,57,8,3,1,S
[START_SIGNALS] Value,12,2,0,U,4095,0,0,0.000000,0.024420,%,
[START_SIGNALS] Counter,16,4,0,U,65535,0,0,0.000000,1.000000,,
[START_SIGNALS] Checksum,32,8,0,U,4294967295,0,0,0.000000,1.000000,,
[END_MSG]
DBC
VERSION ""
NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
BS_:
BU_:
NEO
MCU
VAL_TABLE_ StW_AnglHP_Spd 16383 "SNA" ;
BO_ 1160 DAS_steeringControl: 4 NEO
SG_ DAS_steeringControlType : 23|2@0+ (1,0) [0|0] "" EPAS
SG_ DAS_steeringControlChecksum : 31|8@0+ (1,0) [0|0] "" EPAS
SG_ DAS_steeringControlCounter : 19|4@0+ (1,0) [0|0] "" EPAS
SG_ DAS_steeringAngleRequest : 6|15@0+ (0.1,-1638.35) [-1638.35|1638.35] "deg" EPAS
SG_ DAS_steeringHapticRequest : 7|1@0+ (1,0) [0|0] "" EPAS
DEXT
<?xml version="1.0" encoding="utf-8"?><!--This AUTOSAR Diagnostic Extract was created by a tool from Vector Informatik GmbH.--><AUTOSAR xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_00046.xsd" xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FILE-INFO-COMMENT>
<SDGS>
<SDG GID="Generation-Info">
<SD GID="Tool-Name">CANdelaStudio 18.0.1104</SD>
<SD GID="Source-File">NEWCDD.cdd</SD>
<SD GID="Template-Name">DSUDS MB.OS 2.0 Template 23.42.01</SD>
<SD GID="Ecu-Name">New_CDD</SD>
<SD GID="Variant-Name">Common_Diagnostics</SD>
<SD GID="Change-Version">00.00.01</SD>
<SD GID="DDM-Version">25.2.0 (Release)</SD>
</SDG>
<SDG GID="DDM-Settings">
<SD GID="Autosar-Platform">classic</SD>
<SD GID="Autosar-Version">v4.4.0</SD>
<SD GID="Naming-Schema">v24.0</SD>
<SD GID="Cond-Group-Naming">SINGLE_ELEM</SD>
</SDG>
</SDGS>
</FILE-INFO-COMMENT>
<AR-PACKAGES>
<AR-PACKAGE>
<SHORT-NAME>Diagnostics</SHORT-NAME>
<AR-PACKAGES>
<AR-PACKAGE>
<SHORT-NAME>Common</SHORT-NAME>
<ELEMENTS>
<DIAGNOSTIC-CONTRIBUTION-SET>
<SHORT-NAME>CommonContributionSet</SHORT-NAME>
<CATEGORY>DIAGNOSTICS_ECU_EXTRACT</CATEGORY>
<COMMON-PROPERTIES>
<DIAGNOSTIC-COMMON-PROPS-VARIANTS>
<DIAGNOSTIC-COMMON-PROPS-CONDITIONAL>
<DEBOUNCE-ALGORITHM-PROPSS>
<DIAGNOSTIC-DEBOUNCE-ALGORITHM-PROPS>
<SHORT-NAME>Timer_10_10_001</SHORT-NAME>
<DEBOUNCE-ALGORITHM>
<DIAG-EVENT-DEBOUNCE-TIME-BASED>
<SHORT-NAME>Timer_10_10_001_TimeBasedAlgorithm</SHORT-NAME>
<TIME-FAILED-THRESHOLD>0.01</TIME-FAILED-THRESHOLD>
<TIME-PASSED-THRESHOLD>0.01</TIME-PASSED-THRESHOLD>
</DIAG-EVENT-DEBOUNCE-TIME-BASED>
</DEBOUNCE-ALGORITHM>
</DIAGNOSTIC-DEBOUNCE-ALGORITHM-PROPS>
<DIAGNOSTIC-DEBOUNCE-ALGORITHM-PROPS>
<SHORT-NAME>MBC_Default_Counter_Based_Debounce_Algorithm</SHORT-NAME>
<DEBOUNCE-ALGORITHM>
<DIAG-EVENT-DEBOUNCE-COUNTER-BASED>
<SHORT-NAME>MBC_Default_Counter_Based_Debounce_Algorithm_CounterBasedAlgorithm</SHORT-NAME>
<COUNTER-DECREMENT-STEP-SIZE>1</COUNTER-DECREMENT-STEP-SIZE>
<COUNTER-FAILED-THRESHOLD>127</COUNTER-FAILED-THRESHOLD>
<COUNTER-INCREMENT-STEP-SIZE>1</COUNTER-INCREMENT-STEP-SIZE>
<COUNTER-JUMP-DOWN>false</COUNTER-JUMP-DOWN>
<COUNTER-JUMP-DOWN-VALUE>1</COUNTER-JUMP-DOWN-VALUE>
<COUNTER-JUMP-UP>false</COUNTER-JUMP-UP>
<COUNTER-JUMP-UP-VALUE>1</COUNTER-JUMP-UP-VALUE>
<COUNTER-PASSED-THRESHOLD>-128</COUNTER-PASSED-THRESHOLD>
</DIAG-EVENT-DEBOUNCE-COUNTER-BASED>
</DEBOUNCE-ALGORITHM>
</DIAGNOSTIC-DEBOUNCE-ALGORITHM-PROPS>
<DIAGNOSTIC-DEBOUNCE-ALGORITHM-PROPS><!-- ..省略.. -->
Fibex
<?xml version="1.0" encoding="UTF-8"?><fx:FIBEX xmlns:ho="http://www.asam.net/xml" xmlns:fx="http://www.asam.net/xml/fbx">
<fx:PROJECT ID="projectEntry">
<ho:SHORT-NAME>projectEntry</ho:SHORT-NAME>
</fx:PROJECT>
<fx:ELEMENTS>
<fx:ECUS><fx:ECU ID="Entry">
<ho:SHORT-NAME>Entry</ho:SHORT-NAME>
<fx:MANUFACTURER-EXTENSION>
<SW_VERSION>unknown</SW_VERSION>
<APPLICATIONS><APPLICATION>
<APPLICATION_ID>EXA3</APPLICATION_ID>
<APPLICATION_DESCRIPTION>Third Example</APPLICATION_DESCRIPTION>
<CONTEXTS>
<CONTEXT><CONTEXT_ID>CON</CONTEXT_ID><CONTEXT_DESCRIPTION>First context</CONTEXT_DESCRIPTION>
</CONTEXT>
</CONTEXTS></APPLICATION>
</APPLICATIONS>
</fx:MANUFACTURER-EXTENSION></fx:ECU>
</fx:ECUS>
<fx:PDUS><fx:PDU ID="PDU_1000_0">
<ho:SHORT-NAME>PDU_1000_0</ho:SHORT-NAME>
<fx:BYTE-LENGTH>4</fx:BYTE-LENGTH>
<fx:PDU-TYPE>OTHER</fx:PDU-TYPE>
<fx:SIGNAL-INSTANCES>
<fx:SIGNAL-INSTANCE ID="S_1000_0"><fx:SEQUENCE-NUMBER>0</fx:SEQUENCE-NUMBER><fx:SIGNAL-REF ID-REF="S_SINT32"/>
</fx:SIGNAL-INSTANCE>
</fx:SIGNAL-INSTANCES></fx:PDU>
</fx:PDUS>
<fx:FRAMES><fx:FRAME ID="ID_1000">
<ho:SHORT-NAME>ID_1000</ho:SHORT-NAME>
<fx:BYTE-LENGTH>4</fx:BYTE-LENGTH>
<fx:FRAME-TYPE>OTHER</fx:FRAME-TYPE>
<fx:PDU-INSTANCES>
<fx:PDU-INSTANCE ID="P_1000_0"><fx:PDU-REF ID-REF="PDU_1000_0"/><fx:SEQUENCE-NUMBER>0</fx:SEQUENCE-NUMBER>
</fx:PDU-INSTANCE>
<fx:MANUFACTURER-EXTENSION>
<MESSAGE_TYPE>DLT_TYPE_LOG</MESSAGE_TYPE>
<MESSAGE_INFO>DLT_LOG_INFO</MESSAGE_INFO>
<APPLICATION_ID>EXA3</APPLICATION_ID>
<CONTEXT_ID>CON</CONTEXT_ID>
<MESSAGE_SOURCE_FILE>/home/alex/workspace/ascgit/dlt-daemon/examples/example3/example3.c</MESSAGE_SOURCE_FILE>
<MESSAGE_LINE_NUMBER>64</MESSAGE_LINE_NUMBER>
</fx:MANUFACTURER-EXTENSION></fx:FRAME>
</fx:FRAMES>
</fx:ELEMENTS></fx:FIBEX>
LDF
LIN_description_file;
LIN_protocol_version = "2.2";
LIN_language_version = "2.2";
LIN_speed = 19.2 kbps;
Channel_name = "DB";
Nodes {
Master: CEM, 5 ms, 0.1 ms;
Slaves: LSM, RSM;
}
Signals {
InternalLightsRequest: 2, 0, CEM, LSM, RSM;
RightIntLightsSwitch: 8, 0, RSM, CEM;
LeftIntLightsSwitch: 8, 0, LSM, CEM;
LSMerror: 1, 0, LSM, CEM;
RSMerror: 1, 0, RSM, CEM;
IntTest: 2, 0, LSM, CEM;
}
ODX
<?xml version="1.0" encoding="utf-8"?><ODX MODEL-VERSION="2.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="odx.xsd">
<!--created by CANdelaStudio::ODXExport220.dll 10.0.102 on 2019-03-25T10:31:08+01:00-->
<?CANdelaTemplateManufacturer 7?>
<?SpecificationOwner Unspecified?>
<?CANdelaTemplateName CANdelaStudio Training UDS on CAN?>
<?CANdelaTemplateVersion 1.0?>
<?CANdelaProtocolStandard UDS?>
<?ASAMOdxExport220.dll 10.0.102?>
<DIAG-LAYER-CONTAINER ID="DLC.Light">
<SHORT-NAME>Light</SHORT-NAME>
<LONG-NAME>Light</LONG-NAME>
<DESC>
<p />
<p>
<br/>
</p>
</DESC>
<ADMIN-DATA>
<LANGUAGE>en-US</LANGUAGE>
<DOC-REVISIONS>
<DOC-REVISION>
<TEAM-MEMBER-REF ID-REF="DLC.Light.CD.Vector.TM.DH" />
<REVISION-LABEL>1.0</REVISION-LABEL>
<STATE>draft</STATE>
<DATE>2018-02-01T14:27:20</DATE>
<TOOL>CANdelaStudio 9.1 Release Admin</TOOL>
<MODIFICATIONS>
<MODIFICATION>
<CHANGE>Created</CHANGE>
<REASON>Training</REASON>
</MODIFICATION>
</MODIFICATIONS>
</DOC-REVISION>
</DOC-REVISIONS>
</ADMIN-DATA>
<COMPANY-DATAS>
<COMPANY-DATA ID="DLC.Light.CD.Vector">
<SHORT-NAME>Vector</SHORT-NAME>
<LONG-NAME>Vector</LONG-NAME>
<TEAM-MEMBERS>
<TEAM-MEMBER ID="DLC.Light.CD.Vector.TM.DH">
<SHORT-NAME>DH</SHORT-NAME>
<LONG-NAME>Daniel Hirsch</LONG-NAME>
</TEAM-MEMBER>
</TEAM-MEMBERS>
</COMPANY-DATA>
</COMPANY-DATAS>
<PROTOCOLS>
<PROTOCOL ID="DLC.Light.PT.DoIP_ISO13400">
<SHORT-NAME>DoIP_ISO13400</SHORT-NAME>
<LONG-NAME>DoIP (ISO13400)</LONG-NAME>
<DESC>
<p>Communication interface for Diagnostics over IP (DoIP) protocol. Based on the specification: ISO13400-2:2012 "Road vehicles — Diagnostic communication over Internet Protocol(DoIP) — Part 2: Network and transport layer requirements and services" and the referenced ISO22900-2 (D-PDU API) for ComParam qualifiers.</p>
</DESC>
<COMPARAM-SPEC-REF ID-REF="ISO_14229_5_on_ISO_13400_2" DOCREF="ISO_14229_5_on_ISO_13400_2" DOCTYPE="COMPARAM-SPEC" />
<PROT-STACK-SNREF SHORT-NAME="ISO_14229_5_on_ISO_13400_2_DIS_2015_PROT_STACK" />
</PROTOCOL>
<PROTOCOL ID="DLC.Light.PT.SoAd">
<SHORT-NAME>SoAd</SHORT-NAME>
<LONG-NAME>SoAd</LONG-NAME>
<COMPARAM-SPEC-REF ID-REF="ISO_13400" DOCREF="ISO_13400" DOCTYPE="COMPARAM-SPEC" />
<PROT-STACK-SNREF SHORT-NAME="ISO_14229_5_on_ISO_13400_2_on_IEEE_802_3" />
</PROTOCOL>
<PROTOCOL ID="DLC.Light.PT.CAN">
<SHORT-NAME>CAN</SHORT-NAME>
<LONG-NAME>CAN</LONG-NAME>
<COMPARAM-SPEC-REF ID-REF="ISO_15765_3_on_ISO_15765_2" DOCREF="ISO_15765_3_on_ISO_15765_2" DOCTYPE="COMPARAM-SPEC" />
<PROT-STACK-SNREF SHORT-NAME="ISO_15765_3_on_ISO_15765_2_on_ISO_11898_2_DWCAN" />
</PROTOCOL>
</PROTOCOLS>
<ECU-SHARED-DATAS>
<ECU-SHARED-DATA ID="DLC.Light.ESD.ESD_Ecu_faultMemory">
<SHORT-NAME>ESD_Ecu_faultMemory</SHORT-NAME>
<DIAG-DATA-DICTIONARY-SPEC>
<DTC-DOPS>
<DTC-DOP ID="DLC.Light.ESD.ESD_Ecu_faultMemory.DOP.OBDRecordDataType">
<SHORT-NAME>OBDRecordDataType</SHORT-NAME>
<LONG-NAME>OBDRecordDataType</LONG-NAME>
<DIAG-CODED-TYPE BASE-TYPE-ENCODING="NONE" BASE-DATA-TYPE="A_UINT32" xsi:type="STANDARD-LENGTH-TYPE">
<BIT-LENGTH>24</BIT-LENGTH>
</DIAG-CODED-TYPE>
<PHYSICAL-TYPE BASE-DATA-TYPE="A_UINT32" DISPLAY-RADIX="HEX" />
<COMPU-METHOD>
<CATEGORY>IDENTICAL</CATEGORY>
</COMPU-METHOD>
<DTCS>
<DTC ID="DLC.Light.ESD.ESD_Ecu_faultMemory.DOP.OBDRecordDataType.DTC.DTC900016">
<SHORT-NAME>DTC900016</SHORT-NAME>
<TROUBLE-CODE>9437206</TROUBLE-CODE>
<DISPLAY-TROUBLE-CODE>B100016</DISPLAY-TROUBLE-CODE>
<TEXT>Battery voltage below threshold 9 [V] - circuit voltage below threshold</TEXT>
<SDGS>
<SDG>
<SDG-CAPTION ID="DLC.Light.ESD.ESD_Ecu_faultMemory.DOP.OBDRecordDataType.DTC.DTC900016.SDG.CorrectiveAction">
<SHORT-NAME>CorrectiveAction</SHORT-NAME>
<LONG-NAME>Corrective action</LONG-NAME>
</SDG-CAPTION>
<SD>No known corrective action</SD>
</SDG>
<SDG>
<SDG-CAPTION ID="DLC.Light.ESD.ESD_Ecu_faultMemory.DOP.OBDRecordDataType.DTC.DTC900016.SDG.DTC_OPERATION_CYCLE">
<SHORT-NAME>DTC_OPERATION_CYCLE</SHORT-NAME>
<LONG-NAME>Operation Cycle</LONG-NAME>
<DESC>
<p>Kind of operation cycle for the event storage(e.g. power cycle, driving cycle, ...)</p>
</DESC>
</SDG-CAPTION>
<SD>DEM_POWER</SD>
</SDG>
<SDG>
<SDG-CAPTION ID="DLC.Light.ESD.ESD_Ecu_faultMemory.DOP.OBDRecordDataType.DTC.DTC900016.SDG.NUMBER_OF_TRIPS_ACTIVE">
<SHORT-NAME>NUMBER_OF_TRIPS_ACTIVE</SHORT-NAME>
<LONG-NAME>Number of Trips - Active</LONG-NAME>
<DESC>
<p>Number of operation cycles needed to confirm the event
The value 0 is the standard UDS behavior of confirming the event (ConfirmedDTC status bit becomes set) with the first qualified FAILED result. A value of 1 means the event becomes confirmed if it fails again in the next operation cycle.
Larger values represent confirmation in the n-th cycle e.g. 2 is confirmation in cycle after the next cycle, etc.</p>
</DESC>
</SDG-CAPTION>
<SD>0</SD>
</SDG><!-- ..省略.. -->
PDX
注:Demo数据来自网络
系列文章
原文始发于微信公众号(桥的断想):车联网安全基础知识之数据库文件