一文读懂A2L文件和ASAP2 Studio的使用

简介: 一文读懂A2L文件和ASAP2 Studio的使用

1 A2L文件介绍

A2L文件被广泛应用于ECU标定系统中,它是基于ASAP2标准制定的用来描述ECU内存的数据库文件,属于ASAM组织定义的第二层接口规范。它保存了标定系统与ECU通信的配置参数和ECU内部数据单元的详细信息,例如:接口信息、变量信息, Conversion Rules、Record Layouts、Software structure等。A2L文件可导入到 CANape,用来和ECU建立CCP/XCP连接。

846c758e2c79ce810425759c0c6167cb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

Vector提供两种生成A2L文件的工具:

  1. 1.ASAP2 Studio,适用于ECU中变量较少且A2L文件变更不频繁的情况下,需手动编  
  2. 辑然后生成A2L文件
  3. 2.ASAP2 Tool Set适用于ECU中变量比较多且A2L文件变更频繁的情况,它通过批处理指令自动识别代码中的变量信息然后生成A2L文件

下面是A2L文件的overview:

/begin PROJECT   
ident Name  
string LongIdentifier  
[-> HEADER]  
{-> MODULE}*  
/end PROJECT

其中,PROJECT为关键字,指明当前变量的类型,/begin和/end是分界符, 表示PROJECT的作用范围,通常称为一个模块。Name表示PROJECT的名称, LongIdentifier表示当前变量注释。HEADER和MODULE当前变量的成员,通 常称为关键字,分别表示该PROJECT的头信息和PROJECT包含的设备信息。参照ASAP2标准,紧接在关键字后直接被定义的成员是必选项,即该项内 容必须存在,如Name和LongIdentifier。[-> ]表示的是可选项,即该项内容可以 出现一次或者不出现,如HEADER,{-> }表示的是任选项,即该项内容可以出 现多次或不出现,如MODULE. 一个A2L文件必须有且仅有一个PROJECT,通常视为一个工程。在该工程 中,至少要包含一个设备(对应一个ECU),设备信息由一个MODULE来描述。在一个设备中,比较重要的成员变量有:1)A2ML:描述接口数据格式。

2)MOD_PAR:设备参数描述。

3)MOD_COMMON:设备公共参数。

4)IF_DATA:接口数据具体参数。

5)CHARACTERISTIC:标定变量,其类型包括VALUE,CURVE,MAP。

6)MEASUREMENT:测量变量。

7)COMPU_METHOD:转换方法,具体有6种转换方法。

8)RECORD_LAYOUT:内存布局,描述数据的存放方式。

2 使用 ASAP2 Studio生成  A2L文件

Vector ASAP2软件是Vector公司的制作A2L文件的工具,而A2L文件则是存放标定和测量变量以及地址的文件,用于与HEX或s19文件配合,实现在线标定和测量的功能。

下面描述使用ASAP2软件制作A2L文件的操作过程。

导入elf文件

打开待更新的A2L文件,按下图选项导入elf文件;

1d58a5acd9513cb25ce65aa327b34a10_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

按照32bit elf配置导入软件编译后的elf文件,用于更新变量地址;MAP文件成功解析后可以看到相关信息,如:变量的名称,地址以及数据类型等,如果上述步骤中的格式选择不正确,看到的信息不完整或无法解析。

9e439848c520e7023739a297e5cd1d89_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

c0c93f98e1fecdd0eb4f04b08ae2171c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

通过 MAP 文件新建 A2L 文件中的变量

变量包含不同类型,比如观测变量,观测数组,标定变量,标定数组,标定MAP等,每个变量在A2L文件中的格式是不一样,需要根据每个变量的具体类型选择不同的导入选项;在解析的MAP文件中右键选择变量,即可直接创建测量量Measurement,标定量Parameter等变量至A2L文件中。

23525b8e7231a9fc71f3d6942932786d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

以观测量为例,会弹出下图对话框,点击Link,输入elf文件的某变量后,将寻找其地址输入对话框;

204f735572e0c08a43754fe59fad64e2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在General选项中,输入该变量名字;

在Physical Display选项中,修改Conversion rule为1:1,这是显示比例,从简为好;

a584a590b210513bb021d137b8373ebd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

输出A2L文件 选择所需的变量后,根据下图菜单栏描述,首先点击Updata address,确保地址均按其变量名得到更新;

选择save as,生成新的A2L文件。以上就是使用ASAP2软件,手动添加变量,更新A2L文件的方法。

相关文章
|
1月前
|
IDE 开发工具
一文解决Visual Studio 2022运行时系统找不到指定文件的错误(简单易懂 亲测有用)
一文解决Visual Studio 2022运行时系统找不到指定文件的错误(简单易懂 亲测有用)
802 0
|
8月前
|
安全 Linux C++
[笔记]c++Windows平台代码规范(上)
[笔记]c++Windows平台代码规范
129 0
|
8月前
|
存储 JavaScript Unix
[笔记]c++Windows平台代码规范(下)
[笔记]c++Windows平台代码规范(下)
120 0
|
10月前
|
Swift iOS开发
iOS 逆向编程(二十一)代码编译过程(以及什么阶段可反编译)
iOS 逆向编程(二十一)代码编译过程(以及什么阶段可反编译)
117 0
|
XML 存储 JSON
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
114 0
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
|
编译器 C语言 C++
如何利用VSCode进行C/C++的编译
神器在手,天下我有,VSCdoeyyds,来使用VSCode进行C/C++的编译
302 0
如何利用VSCode进行C/C++的编译
|
小程序 C语言
如何让朋友也能玩自己写的游戏(.exe文件如何附带静态链接库)C语言从入门到入土(入门特别篇)
第一步:项目 第二步:把MD(DLL)改为MTD​第三步:创建文件夹准备把文件放进去 第四步:找到你的游戏放在哪里的 第五步:把Debug里面的文件全部拖进你准备放的文件夹 第六步:压缩打包发送
如何让朋友也能玩自己写的游戏(.exe文件如何附带静态链接库)C语言从入门到入土(入门特别篇)
|
C#
使用VSCode如何调试C#控制台程序_2_加深总结
原文:使用VSCode如何调试C#控制台程序_2_加深总结 要想使用调试,必须创建项目 1-你要调式的类,控制台类等等,你需要放在一个项目下,这个项目最好是由使用.net core创建的,VSCode对应的命令为: dotnet new console(这里以控制台为例) 2-使用编译命令(dotnet restore)生成obj文件(包含project.
1367 0