主要内容

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

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

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

动态仿真模块®编码器™ASAP2文件生成的支持是版本无关的。软件默认生成ASAP2版本1.31的格式,但生成的型号信息一般与其他ASAP2版本兼容。ASAP2文件生成也与ASAP2测量和校准工具的特定需求无关。该软件提供了定制api,您可以使用它来定制ASAP2文件生成,以生成ASAP2版本,并满足您的ASAP2工具的特定需求。

你应该知道的

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

支持ASAP2的系统目标文件

您可以使用ASAP2文件生成与不同的系统目标文件配置。例如,基于GRT和ERT的配置使您能够在代码生成和构建过程中生成ASAP2文件。

对于Adaptive AUTOSAR目标和Simulink Real-Time目标,可以为c++语言生成ASAP2文件。对于ERT和GRT目标,只能为C语言生成ASAP2文件,不支持c++语言。

有关使用系统目标文件配置生成ASAP2文件的步骤,请参见生成ASAP2文件

定义ASAP2信息

为参数和信号定义ASAP2信息

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

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

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

数据属性

中定义的

属性名

名称(标志)

模型和数据对象

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

描述

数据对象

描述

数据类型

模型或数据对象

数据类型

扩展
(如果是定点数据类型)

模型或数据对象

数据类型

最小允许值

模型或数据对象

最小值

最大允许值

模型或数据对象

马克斯

单位

模型或数据对象

单位

内存地址(可选)

模型或数据对象

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

内存地址属性

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

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

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

此表表示替换了上一个版本的ASAP2对象属性的Simulink对象属性。

ASAP2和动态仿真模块参数和信号对象属性

ASAP2对象属性(上一级)

Simulink对象属性(当前)

LONGID_ASAP2

描述

PhysicalMin_ASAP2

最小值

PhysicalMax_ASAP2

马克斯

Units_ASAP2

单位

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

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

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

/begin特征/*名称*/ Ki /*长标识*/ "" /*类型*/值/* ECU地址*/0 x0000/* @ECU_Address@Ki@ */

用实际地址代替ECU的地址方法来处理生成的ASAP2文件rtw.asap2SetAddress函数。语法是:

rtw.asap2SetAddress (ASAP2FileInfoFile

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

/begin特征/*名称*/ Ki /*长标识*/ "" /*类型*/值/* ECU地址*/0 x40009e60

为查找表定义ASAP2信息

仿真软件编码器软件为查找表数据及其断点生成ASAP2描述。该软件将一维表数据表示为曲线信息,二维表数据为地图信息,断点为AXIS_DESCR而且AXIS_PTS信息。您可以通过使用以下Simulink查找表块之一来建模查找表:

  • 直接查找表(n-D) -一维和二维

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

  • 一维查找表

  • 二维查找表

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

该软件支持这些类型的查找表断点(轴点)。

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

COM_AXIS

固定和不可调(固定轴)

的变体之一FIX_AXIS

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

  • FIX_AXIS_PAR_DIST如果断点是具有等距间距的整数

  • FIX_AXIS_PAR_LIST如果断点是具有非等距间距的整数

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

STD_AXIS

当你为ASAP2代码生成配置块时:

  • 对于表数据,使用仿真软件。参数具有非的数据对象汽车存储类。

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

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

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

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

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

    3. 创建表和轴值。

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

这里有一个例子n-D查找表记录生成到ASAP2文件中的标准轴格式:

/begin特征/*名称*/STDAxisParam.../*记录布局*/Lookup1D_X_WORD_Y_FLOAT32_IEEE...begin 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

生成ASAP2文件

生成ASAP2文件

使用Generic Real-Time系统目标文件或Embedded Coder系统目标文件生成ASAP2文件,作为代码生成和构建过程的一部分。

使用内置ASAP2支持的系统目标文件生成ASAP2文件。

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

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

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

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

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

    • 通过应用存储类嵌入式编码器词典

    • 应用存储类,使代码生成器生成宏或不可寻址变量。

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

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

  4. 启用配置参数ASAP2接口通过命令

    set_param(‘model_Name’,‘GenerateASAP2’,真正的);

    请注意

    您不能再从模型配置参数对话框中启用ASAP2文件的生成。作为生成ASAP2和CDF校准文件描述时,使用生成校准文件工具,或使用命令行模型配置参数GenerateASAP2

  5. 选择参数只生成代码

  6. 点击应用

  7. 生成的代码。

    代码生成器将ASAP2文件写入构建文件夹。缺省情况下,文件是命名的模型.a2l,在那里模型是模型的名称。ASAP2安装文件控制ASAP2文件名。详情请参见自定义生成ASAP2文件

为引用的模型生成ASAP2文件

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

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

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

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

[status,info] = rtw.asap2MergeMdlRefs(topModelNameasap2FileName

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

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

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

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

考虑下面的例子。

[status,info] = rtw.asap2MergeMdlRefs('myTopMdl','merged.a2l')
这个命令合并为顶级模型生成的ASAP2文件myTopMdl及其在文件中的引用模型merged.a2l

ASAP2文件的结构

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

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

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

文件部分

asap2main.tlc的内容

包含函数定义的TLC文件

文件头

% < ASAP2UserFcnWriteFileHead () >

asap2userlib.tlc

/开始项目""

/开始项目“% < ASAP2ProjectName >”

asap2setup.tlc

/begin HEADER ""
内容

/开始头“% < 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 ()

用户/模板/……

——测量
——ExternalInputs
——BlockOutputs

…WriteMeasurement ()

asap2userlib.tlc

——COMPU_METHOD

…WriteCompuMethod ()

asap2userlib.tlc

/终端模块

/终端模块

文件脚注/尾

% < ASAP2UserFcnWriteFileTail () >

asap2userlib.tlc

相关的话题

Baidu
map