2023年11月30日发(作者:)

测量和标定系统中的一些标准协议

1 ASAM-MCD介绍

ASAM-MCD标准是自动测量系统标准化协会定义的一个标准体系,用于

ECU(Measurement)(Calibration)

(Diagnostic)AudiBMWMercedes-Benz

Volkswagen等欧洲汽车公司成立的标准化组织ASAP(Standardization of

Application Calibration Systems Task Force)发展而来,该组织在1996 6

月首次发布了实际应用2.0版,虽历史不是很久远,但由于该系统在电控系

统开发方面的强大优势,因此已逐渐为世界各大汽车公司所采用。这里要介

绍的几个标准都来自这个体系。

2 测量和标定系统架构

通常,一个测量与标定系统主要由以下几个标准支撑:

ASAM-MCD-1/ASAP1

它提供与ECU通信的直接接口。它又可以分为2层:ASAM-MCD-1a

ASAM-MCD-1b

ASAM-MCD-1a

这个是一个系列,包括CCPXCPKW2000等等。它是与ECU直接

的接口,在CAN线(或者其他物理层)的硬件层上通过CCP(或者其他标

定协议,如XCPKW2000等)协议与ECU进行通信。

ASAM-MCD-1b

PC机上的标定程序和标定设备硬件之间的软件驱动接口。

ASAM-MCD-2MC/ASAP2

这个是一个文件格式标准,即A2L文件格式。A2L文件描述ECU中的

标定变量,测量信号和用来参数化标定接口的一些附加信息(如变量地址,

转换规则等等)可以按照ASAM-MCD-2MC标准来导入解码A2L文件。A2L

文件仅包含地址信息和数据结构,而具体的标定数据值存储在hex文件(或

s19)中。

ASAM-MCD-3MC /ASAP3

这个是标定系统远程控制通信协议,它工作在以太网或者RS-232串口

通信之上,主要用于远程台架自动化测试与标定。

为了实现自动化测试与标定,台架计算机上的自动化测试系统作为客户

端,与ECU直接通讯的计算机上的标定系统作为服务器端,客户端计算机

通过接口发送命令消息。服务器接收命令并执行。当客户端请求一个测量信

号时,服务器段将进行数据获取,然后转发给客户端。

MDF文件

在测量与标定系统中,还有一个标准asam_common_mdf,它是MDF

measure data format)测量文件的格式,定义了测量信号数据在文件中存

储的数据结构,转换规则和一些附加信息。统一的测量文件格式能够方便不

同的数据分析软件系统之间进行数据交换。

3 ASAM-MCD-1/ASAP1

ECU的直接接口

测量和标定系统与ECU的连接可以使并行的也可以是串行的。我们常

用的ETK为并行连接,ETKECU之间通过数据总线,地址总线并行连

接,可想而知,其通信传输速度非常快。ECU也可通过通过标准串行接口来

与测量标定系统通信,由于处理器无法直接获取存储器的数据、地址信息,

所以这个通信需要按照一定的协议才能进行。比如,诊断接口K-Line 使用

KWP2000或者McMess作为通讯协议;CAN接口使用CCP作为通讯协议;

通过以太网或者USB通讯可使用XCP(扩展标定协议)

如图中所示,ASAM-MCD-1a仅仅是ECU串口通信协议之一,它包含

CCPXCP等等McMessKWP2000主要用于诊断,有相应的ISO标准)

这里,CCP为基于CAN的标定协议,XCP为扩展标定协议,它相对于

CCP而言,其巨大的优势就是它独立于物理传输层。

XCP可在不同的传输层实现相同的协议层,独立于所使用的网络类型而

工作。

4 ASAM-MCD-2MC/ASAP2

A2L文件包含描述ECU内部数据和通讯的信息。例如可调对象(标定

参数)、测量对象以及ECU通讯接口信息。这些描述信息可以分为2类,一

类是用来描述控制逻辑相关的,包括可标定参数和测量对象。另一部分用于

描述通讯信息。

对于通讯信息,由于ECU通讯方式可以有多种类型,这些通讯方式各

不一样,并且与硬件强相关,因此需要的信息也不一样。这样就可以把通讯

信息分成2部分,一部分为描述通讯信息的格式,或者叫做接口描述格式;

一部分为接口描述数据。其中接口描述格式用一种叫做AML的语言来定义。

AML的定义起到协调ECU的开发者和设备驱动程序的开发者的作用。

ECU的开发者考虑到以后ECU要与某些硬件通讯,各硬件需要的通讯信息各不

相同,所以先在A2LAML块中定义好所有的硬件通讯信息的格式,再把具体

的信息存在一块儿,这样便于驱动开发者去查找自己所需的信息

某个驱动程序的开发者需要与ECU通讯的信息,首先在A2L中的AML块中找

到自己需要的信息存储格式,根据此格式去A2L中具体的测量或标定块中找到

描述自己通讯所需的信息。

A2L文件例子

以一个A2L文件为例,我们的c60741al00.a2l,从中抽取一部分:

/begin CHARACTERISTIC /*这个是一个标定参数的开头*/

VSSCD_ImpPerDist_C /*名称,此参数为车速距离因子*/

"distance factor, VSS impulses per distance" /*详细描述*/

VALUE /*参数类型,值,曲线,脉谱等*/

0x1E7C5C /*ECU中的存储地址*/

Kw_Wu32 /*所属模块*/

17.000 /*精度*/

VSS_DistFac /*转换规则*/

3.0000 /*合理下限,超过会警告*/

20.000 /*合理上限,超过会警告*/

FORMAT "%20.17" /*显示格式*/

EXTENDED_LIMITS 2.3469328885774439 1.000000

/*浮点上下限,超过会溢出*/

/begin IF_DATA ASAP1B_CCP /*CCP通讯需要的信息*/

DP_BLOB

0x00 /*|这些信息的格式在AML |* /

0x1E7C5C /*|块中的CCP结够中已经|*/

0x4 /*|定义好 |*/

/end IF_DATA

/begin IF_DATA ETK /*ETK通讯需要的信息*/

DP_BLOB

0x1E7C5C

0x4

/end IF_DATA

/begin IF_DATA ASAP1B_KWP2000 /*KWP2000通讯需要的信息*/

DP_BLOB

0x1E7C5C

0x4

/end IF_DATA

/begin IF_DATA ASAP1B_MCMESS /* McMess通讯需要的信息*/

DP_BLOB

0x1E7C5C

0x4

/end IF_DATA

/end CHARACTERISTIC /*这个是此标定参数描述的结束*/

5 ASAM-MCD-3MC/ASAP3

这个标准主要是用来进行远程台架自动化测试与标定。在自动化测试系

AuSyAutomation SystemMCMeasurement

Calibration)之间的通信可以是以太网,也可以是串口通信。

AuSyMC之间消息的传递

AuSyMC之间的命令消息模式是建立在ASAM-3MCD协议上的,此

协议规定消息的一般格式为:

1 AuSy发给MC的消息格式:

Length Code Data Checksum

2 MC发给AuSy的消息格式:

Length Code Status Data Checksum

Length字段是本消息的长度,便于设计软件时网络数据的读取。

Code是命令代码,不同的代码对应着不同的命令操作要求。

比如: 下表节选自ASAM-MCD3支持的命令列表

命令名称 解释 code code/hex

Init 初始化 2 0002 h

Get Paramter 获取标定参数 14 000E h

Set Format 设置标定参数 15 000F h

Reset Device 设备复位 17 0011 h

43 002B h Activate Recorder 记录数据

47 002F h Save Recorder File 存储记录文件

Status字段是MC系统的状态,这个字段是MC发向AuSy的消息特有

的字段。MC系统在执行AuSy发过来的命令的时候,可能会出错(就像我

们手工操作软件也可能出错一样),这样它就需要通过Status字段来把当前

的状态发送给AuSy

Data字段是数据,就是相应的命令操作所需要附加的信息。比如,AuSy

发送命令给MC让它从新选择hex文件,那么这个文件名就是这个操作所需

的信息,它就会包含在data字段发送给MC

Checksum是校验和,用于校验,防止网络通讯出错。有的时候(尽管概

率很小)网络传输会发生错误,这时候,通过校验和就能够直到是否错误了,

如果出错了就能及时报告。

消息传递例子

首先,AuSyMC发送一个命令,比如INIT(代码为2

然后,MC接收到命令代码之后,发送一个收到确认给AuSy

随后MC进行一些初始化操作,完成以后再发送一个回应给AuSy

INCA系统中,也提供了ASAM-MCD3的接口。图中是自制的测试程

序和INCA ASAM-MCD3进行通讯的例子。

6 ASAM-COMMON-MDF

统一格式的测量数据文件MDF文件方便不同的软件系统进行数据交换。

比如在INCA系统中,可以用MDAMeasure Data Analyzer)来可视化显

MDF文件,当需要对数据进行计算的时候,可能有些时候MDA并不能胜

(尽管MDA自身的数据分析能力很强)这时候可以将它导入到支持MDF

文件格式的数据分析软件中去(如OriginMatlab等等),或者手工编程去

完成计算任务。

MDF文件格式

MDF文件是按照树形结构分块进行存储的。我们可以使用Vector公司

的一个免费工具MDF Validator来学习MDF格式(不过当前它仅支持到3.3

版的标准,而最新标准已是4.0

MDF Validator载入一个MDF文件(即我们采集的.dat数据),如图:

存储在文件首部的是一个ID块,它包含了文件的标识、版本信息、字节

顺序、浮点格式等等信息。ID块的每个域的大小都在标准中有定义。紧接着

ID块的是Header块,它里面存储了文件的注释,即文件创建者填写的时间、

地点、项目、公司等等信息。接下来就是Data Group块,它包含一组Channel

Group块,而每个Channel Group包含一组测量信号值。整个文件结构如图:

MDF文件

ID Header

Data group1Data group2

Channel group1Channel group2

Signal1Signal2