A2L文件介绍

news/2025/2/11 15:29:00/

文章目录

  • 一、概述
  • 二、图2中不同块的意义如下:
  • 三、 A2L块示例
  • 补充知识
  • 参考文章

一、概述

A2L文件定义了标定过程中,上位机与ECU之间的通信所需的信息,可以是XCPonCAN,XCPonUSB、XCPonSPI等。
A2L标准分为三个部分,分别是:

1)ASAP-1 标准定义了标定系统与 ECU 之间的通信接口,其又可以分为两层:ASAP-1a 规定了标定系统与 ECU 通信的物理接口和逻辑接口规范;ASAP-1b 规定了标定系统与 ECU 之间的驱动代码规范。

2)ASAP-2 标准规定了 ECU 内部数据单元描述文件规范,包括标定系统与ECU 通信的配置参数和 ECU 内部数据单元的变量地址、转换方法等详细信息。

3)ASAP-3 标准规定了标定系统远程控制通信协议

三部分之间的关系如图1所示。

在这里插入图片描述

图1 A2L标准

A2L 文件包括(如图2所示):设备参数信息、接口数据信息和 ECU 参数信息。
1.设备参数信息: 描述了 ECU 的基本信息和 ECU 数据单元的一些公共属性;
2.接口数据信息: 描述了标定系统与 ECU 通信时所需配置的接口信息;
3.ECU 参数信息:描述了内部数据单元的详细内容。
在这里插入图片描述

图2 A2L格式

一个A2L文件只能有一个Project(项目),而项目中至少要有一个Module,A2L文件的注释和C语言的注释方式是一样的,支持/**/和//两种方式。

二、图2中不同块的意义如下:

HEADER
该块里边包含了项目信息,包括项目编号,项目版本等信息

MODULE
该块里边包含了在标定测量层面来描述ECU需要的所有信息,一个ECU对应一个MODULE块,MODULE由许多子块来组成。MOD_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该块为可选项,很少使用。

GROUP
该块是把标定变量和测量变量按照一定的逻辑(比如功能模块)组织起来,在上位机中形成一个下拉菜单,使得用于可以从中选择变量,这块是可选的。

RECORD_LAYOUT
该块用来定义标定变量的物理存储结构(单个变量,二维表,三维表等)。


上述的这些信息块可以分为两类:
一类是随着ECU和XCP实施完成以后就确定的,这类信息一经确定以后再后续的使用过程中是不需要修改的,例如大小端,MEMORY SEGMENT内存分配等,上述HEADER/MOD_PAR/MOD_COMMON属于这一类;

另外一类是当ECU软件有所调整的时候就会变化的,例如已有的标定变量和测量变量的地址,甚至变量名,或者可能会新增变量,上述CHARACTERISTIC/AXIS_PTS/MEASUREMENT/COMPU_METHOD/COMPU_TAB/FUNCTION /GROUPS/RECORD_LAYOUT属于这一类。

第二类中改动最多的尤其是CHARACTERISTIC和MEASUREMENT快中的变量地址信息,因为每次软件变化重新编译都会造成这部分信息的更新地址更新导致的块信息更新需要手动的更改A2L文件才能使得A2L和当前的软件配置起来,只有两者相匹配才能实现正确的标定和测量

三、 A2L块示例

  1. 测量变量vechicle_speed可以进行如下定义,该变量处于RAM中,对应的地址是0xD0001234,它的范围是[0-230] ,它在ECU中以一个UWORD类型来表示,原始值和物理值的转换关系为:Phy = 0.003 X Raw ,即Ax+B中A=0.003,B=0;
  2. 测量变量xcp_state代表XCP的状态,可以进行如下定义,它处于RAM中,在ECU中的地址是0xD0005678,它是一个枚举量,0对应DISCONNECTED,1对应CONNECTED,2对应RESUME;
  3. 标定变量Current_threshold可以进行如下定义,它处在FLASH标定区域,在ECU中的地址是0x00012345,它的范围是[-20,20],是一个有符号量,精度为0.125,即Phy = 0.125 X Raw

我们前边提到的,在每次软件有更新重新编译以后,会导致这些变量在ECU中的地址有变化,那么上边这些变量对应的ECU ADDRESS条目的内容就需要随着改变,变量的地址信息可以从【编译生成的MAP文件】中获得,然后手动更新到A2L中


补充知识

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

参考文章

https://zhuanlan.zhihu.com/p/94601470
https://blog.csdn.net/sj063658/article/details/88299577

未引用:
各位知乎大神对学习CAN CCP有什么建议?【知乎高赞】
https://www.zhihu.com/question/54660034

A2L文件介绍
https://mp.weixin.qq.com/s?__biz=MzIxMzI3MzUwOA==&mid=2247483903&idx=1&sn=ff75d2ce697f296640d75b949d6655ab&chksm=97b81f34a0cf9622ca1b056fea23722cbb647c59b1b568dd39c8a6ae49edbe39cbfca4c3fdbc#rd

VCU/BMS基于模型开发—A2L文件生成法则
https://zhuanlan.zhihu.com/p/156868448


http://www.ppmy.cn/news/880866.html

相关文章

漫画讲解Advantage-Actor-Critic(A2C)

编者按:强化学习并不是什么新鲜的内容,时至今日,关于RL的优秀教程很多,尽管大家都在尽力把内容说得浅显易懂一些,但复杂的数学公式和大量图表仍让初学者望而却步。近日,数据科学家Rudy Gilman受此启发&…

深度强化学习8——Actor-Critic(AC、A2C、A3C)

上篇文章我们讲到Policy Gradient可能给出的action分布是比较极端的,导致很多状态无法进行探索,陷入局部最优,本篇我们将讨论策略(Policy Based)和价值(Value Based)相结合的方法:Actor-Critic算法。 在讨论Actor-Critic算法前&a…

深度学习(四十一)——深度强化学习(4)A2C A3C, DDPG

A2C & A3C Actor-Critic一般简称AC算法。针对它的一般用法参见《机器学习(三十五)》。 AC算法也可用于DRL领域,具体的做法和DQN类似: 一个Actor网络,用来近似V值。 一个Critic网络,用来近似Q值。 …

RL policy gradient 之 A2C, A3C,PPO小总结

Policy gradient Parameterize policy directlyNo value functionOn policy 训练: Because samples can not be re-used只能等到回合结束才能更新 A2C, A3C, PPO 都不是纯 policy based 的 RL 方法,准确地说是 Actor-Critic 方法,即,同时用…

基于Pytorch的强化学习(DQN)之REINFORCE VS A2C

目录 1. 引言 2. 比较 3. 本质联系 1. 引言 我们前面两次学习了与baseline有关的两种算法:REINFORCE 和 A2C,仔细阅读的同学会发现两者的神经网络的结构是一致的,那么这两者究竟有什么关系呢? 2. 比较 我们先来看看两者的算法…

基于Pytorch的强化学习(DQN)之 A2C with baseline

目录 1. 引言 2. 数学推导 3. 算法 1. 引言 我们上次介绍了利用到了baseline的一种算法:REINFORCE。现在我们来学习一下另一种利用到baseline的算法:Advantage Actor-Critic(A2C) 2. 数学推导 我们在Sarsa算法中推导出了这个公式 ,我们分…

算法学习(十七)——A2C和PPO

个人理解: ACadvantage A2C A2C重要性采样TD(n) PPO A2C: 所谓A2C就是在AC的基础上加了一个Advantage,公式有如下改进: 但是Q可以由V计算而来,因此转变位: 目的在于:给Q值增加一个基线&am…

强化学习之policy-based方法A2C实现(PyTorch)

A2C:Advantage Actor Critic算法 policy gradient结合MC的思想就是REFORCEMENT算法,采用回合更新策略网络。如果对这个感兴趣的,可以看我的另一篇https://blog.csdn.net/MR_kdcon/article/details/111767945。 REFORCEMENT缺陷就是&#xff…