提到ECU的测量标定工具,很多小伙伴第一个想到的就是CANape。但其实,除了强大的测量标定功能之外,CANape还有很多其他功能。例如,CANape中集成的小工具——ASAP2 Studio,其支持对A2L文件(由ASAM组织所定义)进行编辑、修改、更新等操作。接下来就请各位跟着小编一起去了解一下CANape是如何实现这部分功能的吧。
在此之前,让我们先来了解一下什么是ASAM组织及A2L文件。
ASAM全称为Association for Standardization of Automation and Measuring Systems,即自动化及测量系统标准协会。其目的是提供通用软、硬件接口标准,以解决由于不同制造商提供的控制器存在的接口不匹配问题。目前ASAM组织在全球范围内已有200余家会员。
在标定领域里,ASAM组织定义了标定的三重架构,分别为ECU(电子控制单元)、测量标定系统(如CANape)、自动化系统。如下图所示:
其中,我们所熟知的XCP协议,就是ECU与测量标定系统的通讯协议。
而A2L文件(ASAM MCD-2 MC文件)则是用于描述ECU标定和测量数据的标准文件格式。在A2L文件中主要定义了ECU与测量标定系统的通信参数、变量名称、数据类型、地址、转换规则等信息。下图为A2L文件的基本架构:
言归正传,本文将向大家介绍一些ASAP2 Studio的主要功能。包括如何加载并更新A2L文件,如何生成变量并为变量设置详细信息(例如备注与单位、精度与数据范围、转换规则、DAQ测量通道等属性)。
一、如何加载并更新A2L文件
在ASAP2 Studio中导入A2L文件主要有两种方法。一种是选择Open选项,打开一个新的A2L文件,另一种是选择Recent Files选项,打开最近所使用的A2L文件。
在ASAP2 Studio中最常用的一个功能就是加载MAP文件并根据MAP文件中的信息去更新A2L文件的信息。
首先,我们需要在Tools菜单栏下选择Load MAP File选项,加载MAP文件。在这一步我们需要注意的是选择对应自己MAP文件的Reader格式,否则ASAP2 Studio将无法解析MAP文件。
成功解析MAP文件后,可以在Display菜单下选择MAP File Window查看MAP文件中的变量信息。
最后,回到Tools菜单栏下,选择Update选项更新A2L文件。我们可以根据自己要更新的内容去对应选择需要激活的选项。
需要注意的是,在工作中一定要保证A2L与MAP文件的版本对应。例如,A2L文件中的数据类型或变量地址与MAP文件不符,可能会导致CANape中解析出来的变量值发生偏移或报错。
另外,关于MAP Reader的设置也有值得我们注意的地方。
例一,在默认情况下,为了提高MAP文件的解析速度,MAP文件中数组变量的默认解析长度为16。如需解析更大长度的数组,可进入ASAP2 Studio Options界面配置。
例二,在默认情况下,ELF格式的MAP文件不解析结构体信息,如果想要解析结构体信息,首先需要将MAP Reader选择为可以解析ELF文件的“ELF/DWARF 32/64 Bit”,然后将ELF_USE_CPP_EXTENSION_DWARF2的值更改为yes。
二、如何生成变量并为变量设置详细信息
在A2L文件中为了实现变量的分级管理,可以创建不同的Groups,并且同一变量可以分配在不同的Group下。
1. 生成变量
ASAP2 Studio支持直接通过MAP文件生成变量,变量的类型主要包括测量量(Measurement)、标定量(Parameter),数组类型的变量需要创建成Map或Curve。
基于MAP文件创建的变量,其变量名称、数据类型、地址等信息均会与MAP文件保持一致。
2.变量属性
除了上述提到过的变量名称、数据类型、地址等属性,变量的属性还包括备注、单位、转换规则、数据范围等。
关于备注和单位:
关于变量的精度和数据范围:
在实际工作中我们的变量都是有范围的。例如,下图所示的标定量ampl,其初始范围的设置为0到200。当工程师想要将ampl的值修改为255时,CANape就会报错。因为这已经超出了A2L文件中设置的变量范围,此时我们只需要在ASAP2 Studio中更改变量的取值范围并保存即可:
关于转换规则:
其中用得较多的是线性关系Linear:f(x) = Factor*x + 0ffset以及枚举Identical。
转换规则的创建有两种操作方式。一种是在Navigation窗口中右键Conversion Methods,另一种是在Start菜单下选择Conversion选项。
这里是对CANape Demo工程中所设置的转换规则的示例:
注意同一转换规则可以应用于不同的变量,只需要通过Conversion Method为变量选择合适的转换规则即可。
关于DAQ测量通道:
在ASAP2 Studio中,可以提前配置信号的测量通道(即上传的周期或触发上传的事件)。在CANape的Measurement Configuration窗口添加信号后,会默认为预先在ASAP2 Studio配置好的测量通道。测量通道的配置如下所示。
其中,None/Fixed/Variable的含义如下:
补充小知识:
在XCP协议中定义了两种测量方式。一种是Polling(轮询),另一种是DAQ(同步数据采集),两种方式各有特点。
关于Polling,是由主机(测量标定系统)向从机(ECU)下发SHORT_UPLOAD命令,从机接收到命令后,进行回复并上传数据即可。它的配置很简单,只需要ECU支持测量就可以,同时它也不占用ECU内存。但通过Polling获取数据,每次获取都需要两条报文来完成,这使得总线上的负载变高。当轮询多个信号时,需要按顺序发送命令/响应,每个请求之间留有延迟,这个延迟客观存在,所以Polling是异步的且无法保证信号的关联性。
关于DAQ,DAQ是一种同步数据采集方式,这很好的弥补了Polling无法保证时间同步、信号关联性以及总线负载高的问题。但DAQ的配置较为复杂,需要配置DAQ列表下发给从机,这将占用ECU的内存资源。在DAQ列表中会指定从机需要上传的信号的地址等信息,然后将不同的DAQ列表与不同的事件通道关联,之后ECU就会按照所关联的事件通道周期性或触发上传数据。
以上就是关于ASAP2 Studio的相关介绍,如有其他相关问题,欢迎直接留言或者联系邮箱support@dotrustech.com。