A2L文件解析
A2L文件说明
A2L文件是类XML语言的描述性语言。是一种方便XCP进行工作的描述性语言。
XCP是标定协议,主要是在汽车控制器等等在工作的时候,我们可以修改参数以及查看参数。控制器本身不适合实时修改和查看参数,因此引入PC,使用CAN、USB等等通信数据;PC查看和修改参数。而A2L则是告诉PC端上位机关于控制的通信、工作模式等等相关信息的,使PC端上位机可以和控制配合完成标定与观测任务。
因此A2L文件就是包含了通信接口、项目信息、控制器信息、标定变量信息、观测变量信息的一个文件。当然要完成标定与观测之前信息的传递也可以使用其他方案,例如定义协议使用CAN、USB等接口完成所有信息传递。各有优劣,ASAM小组选择了当前方案。
A2L文件总概
/begin PROJECT /* 表示一个项目 */
/begin HEADER /* 描述项目信息:项目编号、项目版本、厂家名称等 */
/end HEADER
/begin MODLUE /* 描述ECU信息:一个ECU一个MODULE块 */
/begin A2ML /*描述接口:包括传输命令、DAQ、传输层 */
/end A2ML
/begin MOD_PAR /* 内存的分段分页管理 */
/end MOD_PAR
/begin MOD_COMMON /* 一般性描述信息:数据的对齐方式等 */
/end MOD_COMMON
/begin IF_DATA /* 接口具体的参数 */
/end IF_DATA
/begin CHARACTERISTIC /* 标定变量:名称、地址、长度、计算公式、精度、最大最小值等 */
/end CHARACTERISTIC
/begin AXIS_PTS /* 标定变量:二维三维数据时使用 */
/end AXIS_PTS
/begin MEASUREMENT /* 观测变量:名称、地址、长度、计算公式、精度、最大最小值等 */
/end MEASUREMENT
/begin COMPU_METHOD /* 定义计算公式 */
/end COMPU_METHOD
/begin COMPU_TAB /* 定义原始值和物理值的映射关系 */
/end COMPU_TAB
/begin RECORD_LAYOUT /* 定义标定变量的物理存储结构 */
/end RECORD_LAYOUT
/end MODLUE
/end PROJECT
HEADER
这个部分主要包含项目编号、项目版本等信息。可以没有。
A2ML
这个部分主要是描述接口数据格式。例如将XCP协议支持的某种模式全部在该部分定义出来,会在后面的接口具体的参数部分直接使用。该部分在官方文档中会直接给出参考写法。
MOD_PAR
MOD_PAR部分管理控制器数据,最重要的信息是内存的分段分页管理会在标定时用到。
MOD_COMMON
MOD_COMMON部分主要是数据的对齐方式的描述信息。
IF_DATA
这块是A2L文件的主要内容。Timeout、支持的命令等等。OPTIONAL_CMD就是选择可选。指令,列出控制器支持的指令,必实现的指令不在此处。控制器是一定要实现的。
这块还有DAQ的配置,DAQ类型(动态/静态)、数量,用到的事件等等。
还有CAN的配置信息,ID、波特率、采样设置等等。
CHARACTERISTIC
标定量部分,包含了被标定的变量的名称、地址、长度、计算公式、精度,最大最小值等信息。
MEASUREMENT
定义观测量,包含了被观测量的名称、地址、长度、计算公式、精度,最大最小值等信息。
COMPU_METHOD
用于定义计算公式,即原始值和物理值之间的转换关系,将原始值通过相应的计算方法转换成便于用户阅读和使用的物理值。
RECORD_LAYOUT
用来定义标定变量的物理存储结构。