文档

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

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

金宝app®编码器™产品允许您在代码生成过程中导出包含有关模型信息的ASAP2文件。

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

rtwdemo_asap2

请注意

金宝app仿真软件编码器金宝app对ASAP2文件生成的支持是与版本无关的。软件默认生成ASAP2 version 1.31格式,生成的型号信息一般与所有ASAP2版本兼容。ASAP2文件生成对于ASAP2测量和校准工具的具体需求也是中性的。该软件提供了定制api,您可以使用这些api定制ASAP2文件生成,以生成任何ASAP2版本,并满足您的ASAP2工具的特定需求。

你应该知道的事情

要使用ASAP2文件生成,您应该熟悉以下主题:

  • ASAM和ASAP2标准和术语。请参阅ASAM网站http://www.asam.net

  • 金宝app模型数据对象。数据对象用于提供模型中不包含的信息。有关概述,请参见数据对象(金宝app模型)。

  • 在生成的代码中存储和表示信号和参数。看到数据表示

  • 如果您是嵌入式编码器许可®,请参阅嵌入式编码器主题数据表示(嵌入式编码)。

目标支持ASAP金宝app2

所有人都可以使用ASAP2文件生成金宝app仿真软件编码器目标配置。您可以从系统目标文件浏览器中选择这些目标配置。例如,

  • 通用的实时目标grt.tlc)允许您生成ASAP2文件,作为代码生成和构建过程的一部分。

  • 嵌入式编码器ert.tlc)目标选择还允许您生成ASAP2文件,作为代码生成和构建过程的一部分。

  • ASAM-ASAP2数据定义目标asap2.tlc)允许您只生成ASAP2文件,而不构建可执行文件。

下面给出了使用这些目标配置生成ASAP2文件的过程生成ASAP2文件

定义ASAP2信息

为参数和信号定义ASAP2信息

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

您可以使用模型数据编辑器和内置的Simulink数据对象来提供信息。金宝app例如,你可以用金宝app仿真软件。信号对象提供测量信息和金宝app仿真软件。参数对象来提供特征信息。此外,还可以使用派生的数据类中的数据对象金宝app仿真软件。信号金宝app仿真软件。参数提供信息。有关数据对象的信息,请参见数据对象(金宝app模型)。有关模型数据编辑器的信息,请参见使用模型数据编辑器配置数据属性(金宝app模型)。

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

数据属性

中定义的

属性名

名称(标志)

模型和数据对象

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

描述

数据对象

描述

数据类型

模型或数据对象

数据类型

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

模型或数据对象

数据类型

最低允许值

模型或数据对象

最小值

最大许用值

模型或数据对象

马克斯

单位

模型或数据对象

单位

内存地址(可选)

模型或数据对象

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

内存地址属性

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

请注意

如果嵌入式编码器®,如果您正在为嵌入式目标生成ELF(可执行和可链接格式)文件,您可以使用rtw.asap2SetAddress功能,自动更换ECU地址。有关更多信息,请参见ASAP2文件的自动ECU地址替换(嵌入式编码器)

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

请注意

在以前的版本中,对于ASAP2文件生成,必须显式地将对象定义为ASAP2。信号ASAP2。参数.这不再是一种限制。如上所述,您可以使用内置的Simulink对象来生成ASAP2文件。金宝app如果您一直在使用较早的版本,则可以继续使用ASAP2对象。如果在上一个版本中创建了这些ASAP2对象中的一个,并且您在本版本中使用它,那么MATLAB命令窗口将在对象第一次加载时显示一个警告。

下表显示了替换了上一版本ASAP2对象属性的Simulink对象属性金宝app:

ASAP2与金宝app参数和信号对象属性

ASAP2对象属性(上)

金宝appSimulink对象属性(当前)

LONGIG_ASAP2

描述

PhysicalMin_ASAP2

最小值

PhysicalMax_ASAP2

马克斯

Units_ASAP2

单位

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

如果Embedded Coder是许可的并安装在您的系统上,并且您正在为您的嵌入式目标生成ELF(可执行和可链接格式)文件,您可以使用rtw.asap2SetAddress功能自动替换ECU的地址占位符内存地址值与生成的ASAP2文件中的实际地址。

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

/begin CHARACTERISTIC /* Name */ Ki /* Long Identifier */ "" /* Type */ VALUE /* ECU Address */0 x0/ * ECU_Address@Ki@ * /

将实际地址替换ECU的地址占位符,使用rtw.asap2SetAddress函数。一般语法如下:

rtw.asap2SetAddress (ASAP2FileInfoFile

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

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

定义查找表的ASAP2信息

金宝app仿真软件编码器软件为查询表数据及其断点生成ASAP2描述。该软件将一维表格数据表示为曲线信息,二维表数据为地图信息,断点为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),使用块参数对话框中指定的工作区变量或数组。断点应该作为整数存储在代码中,因此数据类型应该是内置整数类型(int8int16int32uint8uint16,或uint32)、定点数据类型或等效别名类型。

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

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

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

    3. 创建表和轴值。

    4. 可选地,指定单位最低,最大参数对象的属性。属性将只应用于表数据。

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

/begin character /* Name */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文件,方法如下:

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

  • 使用ASAM-ASAP2数据定义目标只生成ASAP2文件,而不构建可执行文件。

本节讨论如何使用内置ASAP2支持的目标生成ASAP2文件。金宝app例如,请参见ASAP2示例模型rtwdemo_asap2

使用GRT或ERT目标

使用Generic Real-Time Target或Embedded Coder目标为模型生成ASAP2数据定义的过程如下:

  1. 使用模型数据编辑器(视图>模型数据)将存储类应用于信号、块状态和块参数,如使用模型数据编辑器配置数据接口通过在生成的代码中创建全局变量来覆盖默认参数行为.使用信号和状态名称来引用相应的测量记录,使用参数对象名称来引用特征记录。

    使用任何存储类或自定义存储类汽车FileScope,或金宝appSimulinkGlobal.例如,使用ExportedGlobal在生成的代码中将数据项配置为非结构化全局变量。

    请注意

    如果ASAP2文件中存在以下任何一个条件,则该数据项不表示:

    • 应用其中一个存储类汽车FileScope,或金宝appSimulinkGlobal

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

  2. 使用模型数据编辑器为每个数据项配置所需的其余属性。

  3. 代码生成窗格中,单击浏览打开系统目标文件浏览器。在浏览器中,选择grt.tlc或基于ERT的目标文件,单击好吧

  4. 代码生成>接口窗格中,在数据交换接口子群,选择ASAP2接口

  5. 选择只生成代码复选框代码生成窗格。

  6. 点击应用

  7. 新闻Ctrl + B来建立模型。

    金宝app仿真软件编码器代码生成器将ASAP2文件写入构建文件夹。默认情况下,文件名为模型.a2l,在那里模型是模型的名称。ASAP2安装文件控制ASAP2文件名。有关详细信息,请参见定制生成的ASAP2文件

使用ASAM-ASAP2数据定义目标

使用ASAM-ASAP2数据定义目标为模型生成ASAP2数据定义的过程如下:

  1. 使用模型数据编辑器(视图>模型数据)将存储类应用于信号、块状态和块参数,如使用模型数据编辑器配置数据接口通过在生成的代码中创建全局变量来覆盖默认参数行为.使用信号和状态名称来引用相应的测量记录,使用参数对象名称来引用特征记录。

    使用任何存储类或自定义存储类汽车FileScope,或金宝appSimulinkGlobal.例如,使用ExportedGlobal在生成的代码中将数据项配置为非结构化全局变量。

    请注意

    如果ASAP2文件中存在以下任何一个条件,则该数据项不表示:

    • 应用其中一个存储类汽车FileScope,或金宝appSimulinkGlobal

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

  2. 使用模型数据编辑器为每个数据项配置所需的其余属性。

  3. 代码生成窗格中,单击浏览打开系统目标文件浏览器。在浏览器中,选择asap2.tlc并点击好吧

  4. 选择只生成代码复选框代码生成窗格。

  5. 点击应用

  6. 新闻Ctrl + B

    金宝app仿真软件编码器代码生成器将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 (Target Language Compiler)函数和文件:

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

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

文件部分

asap2main.tlc内容

TLC文件包含函数定义

文件头

% < ASAP2UserFcnWriteFileHead () >

asap2userlib.tlc

/开始项目”“

/开始项目“% < ASAP2ProjectName >”

asap2setup.tlc

/开始头”“
内容

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

asap2setup.tlc
asap2userlib.tlc

/结束头

/结束头

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

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

asap2setup.tlc
asap2userlib.tlc

——A2ML
——MOD_PAR
——MOD_COMMON
...

% < ASAP2UserFcnWriteHardwareInterface () >

依赖于模式的模块内容:

% < 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

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

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

打开示例模型

打开示例模型rtwdemo_asap2

open_system (“rtwdemo_asap2”);

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

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

可以通过选择配置ASAP2文件生成ASAP2接口代码生成>接口对话框中的。

相关的话题

这个话题有用吗?