INCA - A2L文件

  • 0 前言
  • 1 A2L文件简介
  • 2 A2L文件结构
  • 3 A2L文件预定义类型

0 前言

>>返回AUTOSAR系列文章目录<<

1 A2L文件简介

A2L文件是基于ASAP2标准,采用ASAP2指定的一套类XML语言的描述性语言(采用开标签和关标签来描述信息)书写,描述ECU的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等等的文本格式文件。它用来指导上位机和ECU的通讯交互过程,让他们对交互的信息有一致的认识,从而是上位机工具准确且友好的将ECU中的信息展现给用户。

ASAP2标准是ASAM组织制定的一套标准,该标准规定了上位机(Master)和ECU(Slave)之间的通讯所需要的所有信息(可以是XCPonCAN,XCPonUSB等,也可以是CCP,还可以是UDS),而A2L文件就是ASAP2标准的表现形式。

ASAP2标准是ASAM在1998年提出来的,现在它的名字叫做ASAM MCD-2MC/D,是ASAP标准中的第二部分。
整个ASAP有3部分内容:

  • ASAP1描述了上位机(Master)和ECU(Slave)之间的通讯协议,XCP以及它的前身CCP都是属于ASAP1标准
  • ASAP2规定了Master端如何去描述和解析Slave端的信息,A2L文件就属于这个标准
  • ASAP3规定了如何使用第三方工具和设备操作和控制上位机(Master),例如如何使用台架软件来控制标定测量工具去对ECU进行控制和测试。

2 A2L文件结构

/begin PROJECT/begin HEADER  /end HEADER/begin MODULE/begin MOD_PAR/end MOD_PAR/begin MOD_COMMON/end MOD_COMMON/begin RECORD_LAYOUT/* Name               */  Scalar_BOOLEANFNC_VALUES 1 UBYTE COLUMN_DIR DIRECT/end RECORD_LAYOUT/begin RECORD_LAYOUT/* Name               */  Scalar_FLOAT32_IEEEFNC_VALUES 1 FLOAT32_IEEE COLUMN_DIR DIRECT/end RECORD_LAYOUT/begin CHARACTERISTIC/* Name               */  K_CheckStatus_flag/* Long Identifier    */  "description"/* Type               */  VALUE/* Memory Address     */  0/* Record Layout      */  Scalar_BOOLEAN/* Maximum Difference */  0/* Conversion Method  */  COMPU_METHOD_0/* Lower Limit        */  0.0/* Upper Limit        */  1.0/end CHARACTERISTIC/begin CHARACTERISTIC/* Name               */  K_DisplayTime_s/* Long Identifier    */  "description"/* Type               */  VALUE/* Memory Address     */  0/* Record Layout      */  Scalar_FLOAT32_IEEE/* Maximum Difference */  0/* Conversion Method  */  COMPU_METHOD_1/* Lower Limit        */  0.0/* Upper Limit        */  1000.0/end CHARACTERISTIC/begin CHARACTERISTIC/* Name               */  K_DisplayMax_cnt/* Long Identifier    */  "description"/* Type               */  VALUE/* Memory Address     */  0/* Record Layout      */  Scalar_UWORD/* Maximum Difference */  0/* Conversion Method  */  COMPU_METHOD_2/* Lower Limit        */  0.0/* Upper Limit        */  65535.0/end CHARACTERISTIC/begin MEASUREMENT/* Name               */  V_DEMO2_flag/* Long Identifier    */  "description"/* Data Type          */  UBYTE/* Conversion Method  */  COMPU_METHOD_0/* Lower Limit        */  0.0/* Upper Limit        */  1.0ECU_ADDRESS               0/end MEASUREMENT/begin COMPU_METHOD/* Name               */  COMPU_METHOD_0/* Description        */  "Boolean flag"/* Conversion Type    */  TAB_VERB/* Format             */  "%0.2"/* Units              */  ""COMPU_TAB_REF  VTAB_FOR_COMPU_METHOD_20/end COMPU_METHOD/begin COMPU_VTAB/* Name               */  VTAB_FOR_COMPU_METHOD_0/* Description        */  "Boolean flag"/* Conversion Type    */  TAB_VERB/* Num of Elements    */  2/* Table Element      */  0 "false"/* Table Element      */  1 "true"/end COMPU_VTAB/begin COMPU_METHOD/* Name               */  COMPU_METHOD_1/* Description        */  "Q = V"/* Conversion Type    */  RAT_FUNC/* Format             */  "%6.4"/* Units              */  "s"COEFFS 0 1 0 0 0 1/end COMPU_METHOD/begin COMPU_METHOD/* Name               */  COMPU_METHOD_2/* Description        */  "Q = V"/* Conversion Type    */  RAT_FUNC/* Format             */  "%3.0"/* Units              */  ""COEFFS 0 1 0 0 0 1/end COMPU_METHOD/begin FUNCTION/end FUNCTION/begin GROUPS/end GROUPS/end MODULE
/end PROJECT
  1. PROJECT:一个A2L文件只能有一个PROJECT,而PROJECT中至少要有一个Module,A2L文件的注释和C语言的注释方式是一样的,支持 /* 和 // 两种方式。

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

  3. MODULE:该块里边包含了在标定测量层面来描述ECU需要的所有信息,一个ECU对应一个MODULE块,MODULE由许多子块来组成

  4. MOD_PAR:这个块里包含了用于管理ECU的数据,例如客户名,编号,CPU类型,ECU的内存分配等,其中最重要的就是ECU的内存分配,开发人员需要根据ECU内存分段情况定义MEMORY SEGMENT和SEGMENT里边的PAGE,这里的SEGMENT/PAGE的概念和在线标定中的概念是一致的,一个MODULE里边只能出现一次。

  5. MOD_COMMON:该块用来指定ECU的一些标准的一般性描述信息,比如大小端,数据的对齐方式,FLOAT变量的处理方式等,一个MODULE里也只能出现一次。

  6. RECORD_LAYOUT:内存布局,描述数据的存放方式(单个变量,二维表,三维表等)。

/begin RECORD_LAYOUT/* Name               */  Scalar_BOOLEANFNC_VALUES /*how the table values of CHARACTERISTIC are deposited in memory.*/
/end RECORD_LAYOUT

FNC_VALUES有4个参数:
Position:table values在structure中的位置
DataType:见A2L文件预定义类型[datatype类型]
IndexMode:见A2L文件预定义类型[IndexMode类型]
AddressType:见A2L文件预定义类型[addrtype类型]

  1. CHARACTERISTIC:该块用来定义标定变量,里边包含了可以被标定的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的标定变量。
/begin CHARACTERISTIC/* Name               */  unique identifier/* Long Identifier    */  "comment, description"/* Type               */  见A2L文件预定义类型[Type类型]/* Memory Address     */  内存地址/* Record Layout      */  见RECORD_LAYOUT/* Maximum Difference */  table value最大浮动/* Conversion Method  */  见COMPU_METHOD/* Lower Limit        */  table values范围/* Upper Limit        */  table values范围
/end CHARACTERISTIC
  1. MEASUREMENT:该块用来定义测量变量,里边包含了可以被测量的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的测量变量。
/begin MEASUREMENT/* Name               */  unique identifier/* Long Identifier    */  "comment, description"/* Data Type          */  见A2L文件预定义类型[datatype类型]/* Conversion Method  */  见COMPU_METHOD/* Resolution         */  smallest possible change in bits/* Accuracy           */  possible variation from exact value in %/* Lower Limit        */  table values范围/* Upper Limit        */  table values范围ECU_ADDRESS               Addess in the memory
/end MEASUREMENT
  1. COMPU_METHOD:该块用于定义计算公式,及原始值和物理值之前的转换关系,这些公式可以被标定变量和测量变量来引用,从而将原始值转换成便于用户阅读和使用的物理值。具体有6种转换方法。
/begin COMPU_METHOD/* Name               */  unique identifier/* Long Identifier    */  "comment, description"/* ConversionType     */  见A2L文件预定义类型[ConversionType类型]/* Format             */  "%[总长].[小数点位数]"/* Unit               */  "物理单位"/* Lower Limit        */  table values范围/* Upper Limit        */  table values范围COMPU_TAB_REF            见COMPU_VTAB /*ConversionType选择TAB_VERB时需要*/COEFFS                   a b c d e f /*ConversionType选择RAT_FUNC时需要*/
/end COMPU_METHOD
  1. COMPU_VTAB:该块用来定义原始值和物理值的映射关系,是一种特殊的转换关系,它一般应用于枚举变量。
/begin COMPU_VTAB/* Name               */  VTAB_FOR_COMPU_METHOD_0/* Long Identifier    */  "comment, description"/* Conversion Type    */  只能选择TAB_VERB/* Num of Elements    */  number of value pairs/* Table Element      */  float "string"
/end COMPU_VTAB
  1. FUNCTION:这个块不是必须。

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

3 A2L文件预定义类型

datatype类型 描述
UBYTE 1字节无符号整型
SBYTE 1字节有符号整型
UWORD 2字节无符号整型
SWORD 2字节有符号整型
ULONG 4字节无符号整型
SLONG 4字节有符号整型
A_UINT64 8字节无符号整型
A_INT64 8字节有符号整型
FLOAT32_IEEE 4字节浮点型
FLOAT64_IEEE 8字节浮点型
Type类型 描述
VALUE
CURVE
MAP
ConversionType类型 描述
RAT_FUNC 有理转换Rational,y=(axx+bx+c)/(dxx+ex+f)
TAB_VERB 字符表转换Verbal Table
IndexMode类型 描述
COLUMN_DIR deposited in columns
ROW_DIR deposited in rows
addrtype类型 描述
PBYTE 相关内存位置有一个指向该表值或轴点值的1字节指针
PWORD 相关内存位置有一个指向该表值或轴点值的2字节指针
PLONG 相关内存位置有一个指向该表值或轴点值的4字节指针
DIRECT 相关的内存位置具有第一个表值或轴点值,所有其他的都跟随递增地址

>>返回AUTOSAR系列文章目录<<

INCA - A2L文件相关推荐

  1. 基于can总线的A2L文件解析(1)

    文章目录 建议: 数据区 Record Layout FNC\_VALUES AXIS\_PTS\_X 数值型: 坐标轴: 标定量CHARACTERISTIC 数值型标定量 Simulink生成A2L ...

  2. XCP协议和A2L文件–A2L(ASAP2)解析

    转载自:http://blog.sina.com.cn/s/blog_4adc0d850102ywb2.html ASAP2标准是一个比较复杂的标准,详细的一条一条讲解标准内容并没有太大的价值,我们将 ...

  3. 汽车行业中XCP协议和A2L文件–XCP概述

    背景: 在当今的汽车系统中,电子控制单元(ECU)作为汽车系统中的中枢系统,主要的工作过程是采集输入信息包括驾驶员意图.工况等,并采用合理的算法计算输出,用公式OUT = f(IN) 来表示,为了达到 ...

  4. 如何快速生成A2L文件(ASAP2 Studio):基于“前一版本A2L文件+最新map文件”生成新map文件对应A2L文件

    目录 一.ASAP2 Studio概述: 二.如何在ASAP2 Studio中利用"前一版本A2L文件+最新map文件"生成新map文件对应A2L文件: 2.1 在ASAP2 St ...

  5. Matlab编程技巧:导入A2L文件

    本文研究如何通过Matlab脚本导入A2L文件,并将A2L文件的一些信息写入表格中. 文章目录 1 A2L文件 2 A2L文件的解析 3 将A2L信息导入表格 3.1 A2L中的变量信息 3.2 Ma ...

  6. 【simulink专题】matlab 2022a如何生成A2L文件设置

    前言 在我们使用的Simulink建模过程中,会使用标定量,最终在模型设置中勾选ASAP2 Interface设置后生成A2l文件达到查看标定量的目的,但是最近有小伙伴发现,在新版MATLAB 202 ...

  7. 汽车电子标定—A2L文件简介

    一.A2L文件简介 A2L文件是一个标定的描述文件,基于文本格式,描述ECU的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等等.A2L 文件中的信息允许 XCP 主站通过 XCP 连接 ...

  8. Matlab替换A2L文件中的地址生成完整A2L文件的方法小结

    引言 基于模型的开发(MBD)方式在汽车电子嵌入式软件行业中发展迅速.关于其N多好处不去瞎说了,自然有mathwork的工作人员去宣传.基于模型的开发在模型生成代码的过程中,如果软件工程师在matla ...

  9. INCA ProF文件解析

    图片来源:"菜鸟工程师"的博客 ,在此感谢原作者! 目录 1. 概述 2. 文件解析 2.1 需要解析哪些信息 2.2 刷写流程 1. 概述 ProF是用于嵌入式控制单元的Flas ...

最新文章

  1. 医院电脑瘫痪 病人排长队苦等5小时
  2. pxe linux自动安装系统,通过 PXE 自动安装操作系统(1):部署 PXE Server
  3. gbk utf-8 string java
  4. 一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题!...
  5. day1作业二:多级菜单操作
  6. Android App优化之ANR详解
  7. 小米12系列有望于双12当天发布:贴合命名 争取骁龙8G1首发
  8. 如何解析比特币中的交易原始数据rawData
  9. 深度学习大神Hinton推翻自己30年的学术成果另造新世界
  10. SpringBoot学习---Web开发(静态资源处理,首页和图标)
  11. SQL server 创建数据库代码,非常详细
  12. 华为 华三 思科常用命令
  13. 小米蓝牙耳机持续白灯_小米蓝牙耳机不能自动串联问题
  14. 那些年曹大写过的博客
  15. 某公司的雇员分为以下若干类
  16. android感应不了夜神模拟器,夜神模拟器使用(检测不到)
  17. 基于SSM学生学籍管理系统
  18. Travis CI 持续集成工具 教程
  19. gateway统一网关
  20. bitcscs计算机系统,深入理解计算机系统CSAPP-美-布莱恩特

热门文章

  1. 英文里面的反意疑问句的回答
  2. 2020东北大学NEU校赛热身赛:找猫猫
  3. 东北大学计算机考研分数查询,东北大学考研成绩查询
  4. linux文件夹文件颜色及命令
  5. 从0到1,小白的前端摸索之路
  6. 创建一个Rectangle输出一个矩形的周长和面积。
  7. 截屏篇:玩转电脑截屏技巧
  8. codevs 1851 越狱
  9. 移动APP毕业设计开发指南
  10. python--变量命名规则