测量和标定系统中的一些标准协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测量和标定系统中的一些标准协议
1 ASAM-MCD介绍
ASAM-MCD标准是自动测量系统标准化协会定义的一个标准体系,用于标准化汽车ECU和测量(Measurement)、标定(Calibration)、故障诊断(Diagnostic)等工具的接口。
最初由Audi、BMW、Mercedes-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
这个是一个系列,包括CCP,XCP,KW2000等等。
它是与ECU直接的接口,在CAN线(或者其他物理层)的硬件层上通过CCP(或者其他标定协议,如XCP,KW2000等)协议与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为并行连接,即ETK与ECU之间通过数据总线,地址总线并行连接,可想而知,其通信传输速度非常快。
ECU也可通过通过标准串行接口来与测量标定系统通信,由于处理器无法直接获取存储器的数据、地址信息,所以这个通信需要按照一定的协议才能进行。
比如,诊断接口K-Line 使用KWP2000或者McMess作为通讯协议;CAN接口使用CCP作为通讯协议;通过以太网或者USB通讯可使用XCP(扩展标定协议)。
如图中所示,ASAM-MCD-1a仅仅是ECU串口通信协议之一,它包含CCP,XCP等等(McMess,KWP2000主要用于诊断,有相应的ISO标准)。
这里,CCP为基于CAN的标定协议,XCP为扩展标定协议,它相对于CCP而言,其巨大的优势就是它独立于物理传输层。
XCP可在不同的传输层实现相同的协议层,独立于所使用的网络类型而工作。
4 ASAM-MCD-2MC/ASAP2
A2L文件包含描述ECU内部数据和通讯的信息。
例如可调对象(标定参数)、测量对象以及ECU通讯接口信息。
这些描述信息可以分为2类,一类是用来描述控制逻辑相关的,包括可标定参数和测量对象。
另一部分用于描述通讯信息。
对于通讯信息,由于ECU通讯方式可以有多种类型,这些通讯方式各不一样,并且与硬件强相关,因此需要的信息也不一样。
这样就可以把通讯信息分成2部分,一部分为描述通讯信息的格式,或者叫做接口描述格式;一部分为接口描述数据。
其中接口描述格式用一种叫做AML的语言来定义。
A2L文件例子
以一个A2L文件为例,我们的c60741al00.a2l,从中抽取一部分:
/begin CHARACTERISTIC /*这个是一个标定参数的开头*/
VSSCD_ImpPerDist_C /*名称,此参数为车速距离因子*/ "distance factor, VSS impulses per distance" /*详细描述*/
VALUE /*参数类型,值,曲线,脉谱等*/ 0x1E7C5C /*在ECU中的存储地址*/
Kw_Wu32 /*所属模块*/
17.000000000000000 /*精度*/
VSS_DistFac /*转换规则*/
3.0000000000000000 /*合理下限,超过会警告*/
20.000000000000000 /*合理上限,超过会警告*/
FORMAT "%20.17" /*显示格式*/
EXTENDED_LIMITS 2.3469328885774439 10080000000.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
这个标准主要是用来进行远程台架自动化测试与标定。
在自动化测试系统AuSy(Automation System)和测量标定系统MC(Measurement Calibration)之间的通信可以是以太网,也可以是串口通信。
AuSy和MC之间消息的传递
AuSy和MC之间的命令消息模式是建立在ASAM-3MCD协议上的,此协议规定消息的一般格式为:
1 AuSy发给MC的消息格式:
2 MC发给AuSy的消息格式:
Length字段是本消息的长度,便于设计软件时网络数据的读取。
Code是命令代码,不同的代码对应着不同的命令操作要求。
比如:下表节选自ASAM-MCD3支持的命令列表
Status字段是MC系统的状态,这个字段是MC发向AuSy的消息特有的字段。
MC系统在执行AuSy发过来的命令的时候,可能会出错(就像我们手工操作软件也可能出错一样),这样它就需要通过Status字段来把当前的状态发送给AuSy。
Data字段是数据,就是相应的命令操作所需要附加的信息。
比如,AuSy 发送命令给MC让它从新选择hex文件,那么这个文件名就是这个操作所需的信息,它就会包含在data字段发送给MC。
Checksum是校验和,用于校验,防止网络通讯出错。
有的时候(尽管概率很小)网络传输会发生错误,这时候,通过校验和就能够直到是否错误了,如果出错了就能及时报告。
消息传递例子
首先,AuSy向MC发送一个命令,比如INIT(代码为2)。
然后,MC接收到命令代码之后,发送一个收到确认给AuSy。
随后MC进行一些初始化操作,完成以后再发送一个回应给AuSy。
在INCA系统中,也提供了ASAM-MCD3的接口。
图中是自制的测试程序和INCA ASAM-MCD3进行通讯的例子。
6 ASAM-COMMON-MDF
统一格式的测量数据文件MDF文件方便不同的软件系统进行数据交换。
比如在INCA系统中,可以用MDA(Measure Data Analyzer)来可视化显示MDF文件,当需要对数据进行计算的时候,可能有些时候MDA并不能胜任(尽管MDA自身的数据分析能力很强),这时候可以将它导入到支持MDF 文件格式的数据分析软件中去(如Origin,Matlab等等),或者手工编程去完成计算任务。
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…………。