目录
什么是A2L文件?
使用simulink生成A2L文件
A2L文件组成
characteristic
measurement
compu_method
group
simulink生成的A2L与CANape生成的A2L
如何自动修改simulink生成A2L文件使其适用于CANape?
所需文件
什么是A2L文件?
A2L文件是一个标定的描述文件,基于文本格式,描述ECU的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等等。
A2L 文件中的信息允许 XCP 主站通过 XCP 连接与从站模块通信。格式化的文本文件包含事件和测量定义以及其他配置信息,用于采集和激励数据以及执行其他函数。
Vector提供两种生成A2L文件的工具:
ASAP2 Studio,适用于ECU中变量较少且A2L文件变更不频繁的情况下,需手动编辑然后生成A2L文件
ASAP2 Tool Set适用于ECU中变量比较多且A2L文件变更频繁的情况,它通过批处理指令自动识别代码中的变量信息然后生成A2L文件
使用simulink生成A2L文件
按照以下步骤,勾选ASAP2
生成代码,就可以看到
A2L文件组成
A2L文件头(项目配置信息等,一般不随软件编译变化,除非对应参数调整)
标定变量描述(包含的地址信息每次编译都有可能变化)
观测变量描述(包含的地址信息每次编译都有可能变化)
其他辅助信息,转换公式等 (一般不随软件编译变化,除非对应参数调整)
HEADER该块里边包含了项目信息,包括项目编号,项目版本等信息
MODULE该块里边包含了在标定测量层面来描述ECU需要的所有信息,一个ECU对应一个MODULE块,MODULE由许多子块来组成1MOD_PAR这个块里包含了用于管理ECU的数据,例如客户名,编号,CPU类型,ECU的内存分配等,其中最重要的就是ECU的内存分配,开发人员需要根据ECU内存分段情况定义MEMORY SEGMENT和SEGMENT里边的PAGE,这里的SEGMENT/PAGE的概念和在线标定中的概念是一致的,一个MODULE里边只能出现一次。
MOD_COMMON该块用来指定ECU的一些标准的一般性描述信息,比如大小端,数据的对齐方式,FLOAT变量的处理方式等,一个MODULE里也只能出现一次。
CHARACTERISTIC该块用来定义标定变量,里边包含了可以被标定的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的标定变量。
AXIS_PTS该块用来定义数组或查表变量对应的轴的类型,它将被RECORD_LAYOUT块来引用,一个ECU里边可以有很多种不同的轴类型,用于实现查表和插值,一般很少用到。MEASUREMENT该块用来定义测量变量,里边包含了可以被测量的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的测量变量。
COMPU_METHOD该块用于定义计算公式,及原始值和物理值之前的转换关系,这些公式可以被标定变量和测量变量来引用,从而将原始值转换成便于用户阅读和使用的物理值。COMPU_TAB该块用来定义原始值和物理值的映射关系,是一种特殊的转换关系,它一般应用于枚举变量,例如我们想采集一个代表XCP状态机的变量,分别为0对应DISCONNECTED,1对应CONNECTED,2对应RESUME,那么我们就可以把这样的映射关系定义成一个COMPU_TAB,然后关联到对应的变量上,这时候如果上位机采集到1这样的原始值,它就可以将当前的状态显示成“CONNECTED”字样,方便用于阅读和使用。FUNCTION该块为可选项,很少使用。
GROUPS该块是把标定变量和测量变量按照一定的逻辑(比如功能模块)组织起来,在上位机中形成一个下拉菜单,使得用于可以从中选择变量,这块是可选的。
RECORD_LAYOUT该块用来定义标定变量的物理存储结构(单个变量,二维表,三维表等)。
characteristic
measurement
compu_method
计算方法,也就是measurement类型数据中的Conversion method。
内部值Q,物理值V,两者的互相转换。
内部值可以理解为物理值放大转换之后的值或者物理值固定点化的值。
group
分类,模型分层的分类。
simulink生成的A2L与CANape生成的A2L
以上举得这个例子属于使用simulink生成的A2L文件,它不同于使用CANape生成的A2L文件,当然只是在格式表达上不同,但它们的参数类型、以及内核是一样的。
具体差别在哪呢?
因为我这边也没有具体的使用CANape生成的A2L文件,从网上截取了几张图,主要变换和区别是:Measurement, Characteristic, COMPU_METHOD这几个类型
在CANape生成的A2L文件描述如下:
对比这simulink生成的例子,好像省略掉了很多的东西,更简洁了。
如何自动修改simulink生成A2L文件使其适用于CANape?
流程如下:
1、把通过IDE编译生成的map文件中的ECU参数地址,放到a2l文件对应的参数中(前面提到的三种类型)
2、去掉多余的注释
所需文件
- IDE生成的map文件、
- Simulink生成的a2l文件、
- 模板文件a2l(不变的头和尾,变化的中间部分)、
- 用于从map文件和原a2l文件中提取参数放到模板文件a2l中的m执行文件、
- 最终生成的ECU.a2l文件。
主要是:找准不变的头和尾与变化的中间部分
具体的m执行文件可从这里获取
链接:百度网盘 请输入提取码
提取码:ua14
--来自百度网盘超级会员V5的分享