主要内容

输出ASAP2文件用于数据测量和校准

也称为ASAP2的ASAM MCD-2 MC标准是通过自动化和测量系统(ASAM)标准化协会提出的数据定义标准。ASAP2是对用于测量,校准和诊断系统的数据的非对象化描述。有关ASAM和ASAM MCD-2 MC(ASAP2)标准的更多信息,请参阅ASAM网站www.asam.net

代码生成器使您能够在代码生成过程中导出包含模型信息的ASAP2文件。

您可以运行一个交互式ASAP2文件生成示例.在MATLAB中打开这个例子®命令提示符中,输入:

rtwdemo_asap

金宝app®编码器™金宝app对ASAP2文件生成的支持是版本无关的。软件默认生成ASAP2 version 1.31格式,但生成的模型信息一般与其他ASAP2版本兼容。ASAP2文件生成对于ASAP2测量和校准工具的特定需求也是中立的。该软件提供定制api,您可以使用这些api来定制ASAP2文件生成,以生成一个ASAP2版本,并满足您的ASAP2工具的特定需求。

你应该知道的

要使用ASAP2文件生成,您应该熟悉:

系统目标文件支持ASAP2金宝app

您可以使用具有不同系统目标文件配置的ASAP2文件生成。例如,基于GRT和ERT的配置使您能够生成ASAP2文件,作为代码生成和构建过程的一部分。

有关使用系统目标文件配置生成ASAP2文件的过程,请参阅生成ASAP2文件

定义ASAP2信息

为参数和信号定义ASAP2信息

ASAP2文件生成过程需要有关模型中的参数和信号的信息。其中一些信息包含在模型本身中。在工作区金宝app或数据字典中使用Simulink数据对象来完成ASAP2文件生成过程。在某些情况下,使用工作区对象是可选的。

使用模型数据编辑器和内置的Simulink数据对象来提供信息,例如使用金宝app金宝app仿真软件。信号对象提供测量信息和金宝app仿真软件。参数对象来提供特征信息。派生的数据类中可以使用数据对象金宝app仿真软件。信号金宝app仿真软件。参数提供信息。看到数据对象使用模型数据编辑器配置数据属性

该表包含生成ASAP2文件所需的最小数据属性集。模型中定义了一些数据属性。其他属性在对象的属性中提供。中定义的属性金宝app仿真软件。信号金宝app仿真软件。参数对象,该表列出了关联的属性名。

数据属性

中定义的

财产名称

名称(标志)

模型和数据对象

继承自参数或信号名称解析到的数据对象的句柄

描述

数据对象

描述

数据类型

模型或数据对象

数据类型

缩放
(如果定点数据类型)

模型或数据对象

数据类型

最低允许值

模型或数据对象

最小值

最大允许值

模型或数据对象

马克斯

单位

模型或数据对象

单位

内存地址(可选)

模型或数据对象

MemoryAddress_ASAP2(可选;看到内存地址属性.)

内存地址属性

如果内存地址属性在代码生成之前未知,则代码生成器插入ECU地址生成的ASAP2文件中的占位符文本。您可以通过后处理生成的文件来替换占位符的实际地址。有关示例,请参见该文件matlabroot/工具箱/ rtw /目标/ asap2 / asap2 /asap2post.masap2post.m解析您提供和替换的链接器映射文件ECU地址ASAP2文件中具有实际内存地址的占位符。由于链接器映射文件因编译器而异,您可能需要修改其中的正则表达式代码asap2post.m匹配您使用的链接器映射的格式。

如果您的系统上安装了嵌入式编码器,并且您正在为您的嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,那么您可以使用rtw.asap2SetAddress功能自动化ECU地址更换。有关更多信息,请参见ASAP2文件的自动ECU地址替换(嵌入式编码器)

如果内存地址属性在代码生成之前已知,则可以在数据项或数据对象中定义它。默认情况下,MemoryAddress_ASAP2属性中不存在金宝app仿真软件。信号金宝app仿真软件。参数数据对象类。如果要添加属性,请添加名为MemoryAddress_ASAP2类的子类的自定义类金宝appASAP2类。有关Simulink数据类的子类化的信息,请参见金宝app定义数据类

此表表示已替换先前版本的ASAP2对象属性的Sim金宝appulink对象属性。

ASAP2和ASAP2之间的差异金宝app参数和信号对象属性

ASAP2对象属性(之前)

金宝appSimulink对象属性(当前)

LONGID_ASAP2

描述

photicalmin_asap2.

最小值

PhysicalMax_ASAP2

马克斯

Units_ASAP2

单位

ASAP2文件的自动ECU地址替换(嵌入式编码器

如果您的系统上安装了嵌入式编码器,并且您正在为您的嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,那么您可以使用rtw.asap2SetAddress功能为自动更换ECU地址占位符内存地址值与生成的ASAP2文件中的实际地址。

如果内存地址属性在代码生成之前未知,则代码生成器插入ECU地址生成的ASAP2文件中的占位符文本,如下所示

/* Name */ Ki */ Long Identifier */ "" /* Type */ VALUE /* ECU Address */0x0000./ * @ECU_Address@Ki@ * /

替代实际地址ECU地址占位符,通过使用来处理生成的ASAP2文件rtw.asap2SetAddress函数。的语法是:

rtw.asap2SetAddress (ASAP2FileInfoFile

参数是字符向量,指定生成的ASAP2文件的名称和生成的可执行ELF文件的名称、来自Microsoft工具链的PDB文件或用于模型的DWARF调试信息文件的名称。当它被调用时,rtw.asap2SetAddress从指定的ELF、PDB或DWARF文件中提取实际的ECU地址,并用实际地址替换ASAP2文件中的占位符,例如:

/* Name */ Ki */ Long Identifier */ "" /* Type */ VALUE /* ECU Address */0 x40009e60

为查找表定义ASAP2信息

金宝appSimulink编码器软件为查找表数据及其断点生成ASAP2描述。该软件代表1-D表数据曲线2-D表数据为地图信息,而断点为AXIS_DESCRAXIS_PTS信息。您可以使用以下Simulink查找表块之一来建模查找表:金宝app

  • 直接查找表(n-D) - 1维和2维

  • 插值使用预查找- 1和2维

  • 一维查找表

  • 二维查找表

  • n-D查找表- 1和2维

该软件支持这些类型的查询表金宝app断点(轴点)。

断点的类型 信息生成
可调优并在多个表轴(公共轴)之间共享

COM_AXIS

固定和不可调(固定轴)

的这些变体之一FIX_AXIS

  • FIX_AXIS_PAR如果断点是具有等距间隔的整数,且等距间隔是2的幂

  • FIX_AXIS_PAR_DIST如果断点是间隔相等的整数

  • fix_axis_par_list.如果断点是间隔非等距的整数

可调优但不在多个表之间共享(标准轴)

std_axis.

配置ASAP2代码生成块时:

  • 对于表数据,使用金宝app仿真软件。参数使用非汽车存储类。

  • 对于在多个表轴之间共享的可调断点数据(COM_AXIS),用金宝app仿真软件。参数具有非汽车存储类。

  • 对于固定的、不可调的断点数据(FIX_AXIS),使用在块参数对话框中指定的工作区变量或数组。在代码中,断点必须以整数的形式存储。数据类型必须是内置整数类型(int8int16int32uint8.uint16,或UINT32.)、定点数据类型或等效的别名类型。

  • 对于在多个表中不共享的可调断点数据(STD_AXIS):

    1. 创建一个金宝app仿真软件。公共汽车对象来定义结构体打包(字段的名称和顺序)。参数结构的字段必须对应于查询表数据和查询表块的每个轴。例如n-d查找表块,该结构必须只包含三个字段。此总线对象描述查找特性的记录布局。

    2. 创建一个金宝app仿真软件。参数对象表示可调参数。

    3. 创建表和轴值。

    4. (可选)指定单位最低,最大参数对象的属性。

这里有一个例子n-d查找表以标准Axis格式生成ASAP2文件的记录:

/ begin特征/ *名称* /STDAxisParam...... / *记录布局* /lookup1d_x_word_y_float32_ieee....开始AXIS_DESCR /* x轴点的描述*//*轴类型*/ STD_AXIS.../end AXIS_DESCR /end CHARACTERISTIC /begin RECORD_LAYOUT Lookup1D_X_WORD_Y_FLOAT32_IEEE AXIS_PTS_X 1 WORD INDEX_INCR DIRECT FNC_VALUES 2 FLOAT32_IEEE COLUMN_DIR DIRECT /end RECORD_LAYOUT

请注意

示例模型rtwdemo_asap2显示查找表块的ASAP2文件生成,包括可调(COM_AXIS)和固定(FIX_AXIS)查找表断点。

生成ASAP2文件

生成ASAP2文件

使用通用实时系统目标文件或嵌入式编码器系统目标文件作为代码生成和构建过程的一部分生成ASAP2文件。

通过使用内置ASAP2支持的系统目标文件来生成ASAP2文件。金宝app例如,参见ASAP2示例模型rtwdemo_asap2

使用基于GRT或基于ERT的系统目标文件

通过使用通用实时(GRT)系统目标文件或嵌入式编码器系统目标文件来为模型生成ASAP2数据定义:

  1. 使用代码映射编辑器将存储类应用于信号、块状态和模型参数,如模型接口元素的C代码生成配置

    如果存在以下一个或多个条件,ASAP2文件中不表示参数:

    • 应用存储类汽车FileScope结构体,或默认的(通过模型默认值).

    • 您通过存储类嵌入式编码字典

    • 您可以应用一个存储类,导致代码生成器生成宏或不可寻址的变量。

  2. 使用属性检查器为每个数据元素配置剩余的存储类属​​性。

  3. 设置模型配置参数系统目标文件到基于GRT或基于RET的系统目标文件。

  4. 选择模型配置参数ASAP2接口

  5. 选择参数只生成代码

  6. 点击应用

  7. 生成代码。

    代码生成器将ASAP2文件写入构建文件夹。默认情况下,文件被命名模型.a2l, 在哪里模型是模型的名称。ASAP2设置文件控制ASAP2文件名。有关详细信息,请参见自定义生成ASAP2文件

为参考模型生成ASAP2文件

构建过程可以为模型引用层次结构中的每个引用模型生成ASAP2文件。在生成的ASAP2文件中,MEASUREMENT记录代表了引用模型中的信号和状态。

要为引用模型生成ASAP2文件,请为顶部模型选择ASAP2文件生成以及参考层次结构中的每个引用的模型。如果您使用的是通用实时目标或嵌入式编码器目标,请按照所描述的过程使用基于GRT或基于ERT的系统目标文件对于顶部模型和每个引用模型。

将ASAP2文件合并顶部和引用的模型

使用功能rtw.asap2MergeMdlRefs合并为顶部和引用的模型生成的ASAP2文件。该函数具有此语法:

(地位、信息)= rtw.asap2MergeMdlRefs (topModelNameasap2FileName

  • topModelName包含一个或多个引用模型的模型的名称。

  • asap2FileName是您为合并的ASAP2文件指定的名称。

  • 可选状态如果合并完成则返回false(逻辑0),否则返回true(逻辑1)。

  • 可选信息,返回合并失败的附加信息状态是真的。否则,它返回空字符向量。

考虑以下示例。

(地位、信息)= rtw.asap2MergeMdlRefs(“myTopMdl”、“merged.a2l”)
这个命令合并为top模型生成的ASAP2文件myTopMdl以及它在文件中引用的模型merged.a2l

示例模型rtwdemo_asap2包括一个合并ASAP2文件的例子。

ASAP2文件的结构

这个表格概述了ASAP2文件的基本结构,并描述了目标语言编译器(TLC)的函数和文件,用于创建文件的每个部分:

  • ASAP2文件的静态部分显示在大胆的

  • 函数调用由() % < FunctionName >

文件部分

ASAP2MAIN.TLC的内容

包含函数定义的TLC文件

文件头

% < ASAP2UserFcnWriteFileHead () >

asap2userlib.tlc

/开始项目”“

/开始项目“%

asap2setup.tlc

/开始头”“
内容

/开始头“% < ASAP2HeaderName >”
% < ASAP2UserFcnWriteHeader () >

asap2setup.tlc
asap2userlib.tlc

/结束头

/结束头

asap2userlib.tlc

/开始模块”“
模块内容:

/开始模块“% < ASAP2ModuleName > "}

asap2setup.tlc
asap2userlib.tlc

- a2ml
——MOD_PAR
——MOD_COMMON
...

% < ASAP2UserFcnWriteHardwareInterface () >

asap2userlib.tlc

依赖于模式的模块内容:

% < SLibASAP2WriteDynamicContents () >
调用用户定义函数:

Asap2lib.tlc.

- Record_Layout.
- - - - - -特点
——ParameterGroups
- ModelParameters.

... writerecordlayout_templatename()

…WriteCharacteristic_TemplateName ()
…WriteCharacteristic_Scalar ()

用户/模板/……

——测量
- ExtentSinputs.
——BlockOutputs

…WriteMeasurement ()

asap2userlib.tlc

——COMPU_METHOD

…WriteCompuMethod ()

asap2userlib.tlc

/终端模块

/终端模块

文件页脚/尾部

% < ASAP2UserFcnWriteFileTail () >

asap2userlib.tlc

创建基于主机的ASAM-ASAP2数据定义文件用于数据测量和校准

该模型显示ASAP2数据导出。ASAP2是由自动化和测量系统标准化协会(ASAM)提出的数据定义标准。

打开示例模型

打开示例模型rtwdemo_asap2

open_system (“rtwdemo_asap2”);

ASAP2是用于测量,校准和诊断系统的数据的非对象化描述。有关ASAM和ASAP2标准的更多信息,请参阅ASAM网站:https://www.asam.net.

ASAP2数据定义是通过Simulink®数据对象和测试点信号实现的。金宝app使用目标语言编译器(Target Language Compiler, TLC),您可以为您的应用程序创建高度定制的解决方案。金宝搏官方网站有关ASAP2文金宝app件生成的详细信息,请参阅Simulink Coder®文档。

您可以通过选择来配置ASAP2文件生成ASAP2接口Code Generation >接口窗格的“配置参数”对话框。

相关的话题