ASAM MCD-2 MC标准,也称为ASAP2,是由自动化和测量系统标准化协会(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文件生成,您应该熟悉:
ASAM和ASAP2标准和术语。请参阅ASAM网站www.asam.net.
.
配置代码生成的模型数据元素。看代码映射编辑器.
在生成的代码中存储和表示信号和参数。请参阅用于原型设计和调试的数据访问.
如果你有嵌入式编码器®看见数据表示和访问(嵌入式编码器).
您可以在不同的系统目标文件配置中使用ASAP2文件生成。例如,基于GRT和ERT的配置使您能够在代码生成和构建过程中生成ASAP2文件。
有关使用系统目标文件配置生成ASAP2文件的过程,请参阅生成ASAP2文件.
ASAP2文件生成过程需要有关模型中参数和信号的信息。其中一些信息包含在模型本身中。使用工作区或数据字典中的Simulink数据对象完成ASAP2文件生成过程。在某些情况下,工作空间对象的使用是可选的。金宝app
使用模型数据编辑器和内置Simulink数据对象提供信息,例如使用金宝app金宝appsimulink.signal.
对象提供测量信息和金宝appSimulink.参数
对象来提供特征信息。可以从派生的数据类中使用数据对象金宝appsimulink.signal.
和金宝appSimulink.参数
要提供信息,请参阅数据对象和使用模型数据编辑器配置数据属性.
此表包含生成ASAP2文件所需的最小数据属性集。模型中定义了一些数据属性。其他属性在对象的属性中提供。对于在中定义的属性金宝appsimulink.signal.
或者金宝appSimulink.参数
对象,该表列出了关联的属性名称。
数据属性 |
定义于 |
属性名 |
---|---|---|
名称(符号) |
模型和数据对象 |
继承自参数或信号名称解析到的数据对象的句柄 |
描述 |
数据对象 |
|
数据类型 |
模型或数据对象 |
|
缩放比例 |
模型或数据对象 |
数据类型 |
最小允许值 |
模型或数据对象 |
|
最大允许值 |
模型或数据对象 |
|
单元 |
模型或数据对象 |
|
内存地址(可选) |
模型或数据对象 |
|
如果在代码生成之前内存地址属性未知,则代码生成器插入ECU地址
生成的ASAP2文件中的占位符文本。通过后处理生成的文件,您可以通过Postprocessing替换占位符的实际地址。有关示例,请参阅该文件
.matlabroot.
/工具箱/ RTW /目标/ ASAP2 / ASAP2 /asap2post.masap2post.m
解析您提供的链接器映射文件并替换ECU地址
ASAP2文件中的占位符与实际的内存地址。由于链接器映射文件从编译器变化到编译器,所以您可能需要修改正则表达式代码asap2post.m
以匹配您使用的链接器映射的格式。
如果系统上安装了嵌入式编码器,并且正在为嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,则可以使用rtw.asap2SetAddress
自动更换ECU地址的功能。有关更多信息,请参阅ASAP2文件的自动ECU地址替换(嵌入式编码器).
如果在代码生成之前内存地址属性已知,则可以在数据项或数据对象中定义它MemoryAddress_ASAP2
财产不存在金宝appsimulink.signal.
或者金宝appSimulink.参数
数据对象类。如果要添加属性,请添加名为MemoryAddress_ASAP2
的子类的自定义类金宝app
或者ASAP2
班有关Simulink数据类子类化的信息,请参阅金宝app定义数据类.
此表显示了取代先前版本的ASAP2对象属性的Sim金宝appulink对象属性。
ASAP2和ASAP2之间的差异金宝app参数和信号对象属性
ASAP2对象属性(上一个) |
金宝appSimulink对象属性(当前) |
---|---|
LONGID_ASAP2 |
描述 |
PhysicalMin_ASAP2 |
闵 |
PhysicalMax_ASAP2 |
最大限度 |
UNITS_ASAP2. |
单元 |
如果系统上安装了嵌入式编码器,并且正在为嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,则可以使用rtw.asap2SetAddress
自动更换的功能ECU地址
占位符内存地址值,具有生成的ASAP2文件中的实际地址。
如果在代码生成之前内存地址属性未知,则代码生成器插入ECU地址
生成的ASAP2文件中的占位符文本,如图所示
/ begin特征/ *名称* / ki / * long标识符* /“”/ *类型* /值/ * ECU地址* /0x0000/*@ECU_Address@Ki@ */
用实际地址代替ECU地址
占位符,使用rtw.asap2SetAddress
功能。语法是:
RTW.asap2setAddress(ASAP2文件,信息文件)
参数是字符向量,用于指定生成的ASAP2文件的名称以及生成的可执行ELF文件、来自Microsoft toolchain的PDB文件或模型的DWARF调试信息文件的名称。调用时,rtw.asap2SetAddress
从指定的ELF、PDB或DWARF文件中提取实际ECU地址,并用实际地址替换ASAP2文件中的占位符,例如:
/ begin特征/ *名称* / ki / * long标识符* /“”/ *类型* /值/ * ECU地址* /0 x40009e60
金宝appSimulink编码器软件为查找表数据及其断点生成ASAP2描述。软件将一维表数据表示为曲线
信息,二维表数据为地图
信息和断点AXIS_DESCR
和Axis_pts.
信息。您可以使用以下Simulink查找表块之一对查找表进行建模:金宝app
直接查找表(N-D) - 1和2尺寸
使用Prelookup的插值-1维和2维
1-D查找表
二维查找表
n-D查找表-1维和2维
该软件支持这些类型的查找表金宝app断点(轴点)。
断点类型 | 生成的信息 |
---|---|
可调且可在多个表轴(公共轴)之间共享 |
|
固定和不可移动(固定轴) | 这些变种之一
|
可调谐但不在多个表中共享(标准轴) |
|
为ASAP2代码生成配置块时:
对于表数据,使用金宝appSimulink.参数
具有非-汽车
存储类。
用于在多个表轴之间共享的可调断点数据(坐标轴
), 用一个金宝appSimulink.参数
具有非的数据对象汽车
存储类。
对于固定的,不可通行的断点数据(fix_axis.
),使用“块参数”对话框中指定的工作区变量或数组。断点必须作为整数存储在代码中。数据类型必须是内置整数类型(INT8.
,int16
,int32
,uint8
,uint16
, 或者uint32
),固定点数据类型或等效的别名类型。
对于多个表(STD_轴)之间未共享的可调断点数据:
创建一个金宝app模拟总线
对象定义结构
包装(字段的名称和顺序)。参数结构的字段必须对应于查找表数据和查找表块的每个轴。例如,在一个n-D查找表具有2个维度的块,结构必须仅包含三个字段。此总线对象描述了查找特性的记录布局。
创建一个金宝appSimulink.参数
对象来表示可调参数。
创建表格和轴值。
可选地,指定单位,最低限度, 和最大参数对象的属性。
这是一个例子n-D查找表以标准Axis格式生成ASAP2文件的记录:
/开始特征/*名称*/stdaxisparam.... /* 记录布局*/查找1d\u X\u单词\u Y\u浮动32\u IEEE…开始轴描述/*X轴点的描述*// *轴类型* / std_axis... /结束轴_descr / ext特征/ begin_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_轴)和固定(FIX_轴)查找表断点。
使用通用实时系统目标文件或嵌入式编码器系统目标文件生成ASAP2文件,作为代码生成和构建过程的一部分。
使用具有内置ASAP2支持的系统目标文件生成ASAP2文件。金宝app例如,请参阅ASAP2示例模型rtwdemo_asap2
.
要使用通用实时(GRT)系统目标文件或嵌入式编码器系统目标文件为模型生成ASAP2数据定义,请执行以下操作:
使用代码映射编辑器将存储类应用于信号、块状态和模型参数,如中所述模型接口元素的C代码生成配置.
如果存在以下一个或多个条件,ASAP2文件中的参数将不表示:
你申请了存储类汽车
,丝锥
,结构体
, 或者默认
(通过模型默认值
)。
您可以通过以下方式应用存储类:嵌入式编码器词典
.
应用一个使代码生成器生成宏或不可寻址变量的存储类。
使用属性检查器为每个数据元素配置其余的存储类属性。
设置模型配置参数系统目标文件到基于GRT或ERT的系统目标文件。
选择模型配置参数ASAP2接口.
选择参数仅生成代码.
点击申请.
生成代码。
代码生成器将ASAP2文件写入Build文件夹。默认情况下,该文件被命名
哪里模型
.a2l
是模型的名称。ASAP2安装文件控制ASAP2文件名。有关详细信息,请参阅定制生成的ASAP2文件.模型
构建过程可以为模型引用层次结构中的每个引用模型生成ASAP2文件。在生成的ASAP2文件中,MEASUREMENT记录表示引用模型中的信号和状态。
要为引用模型生成ASAP2文件,请为顶级模型和引用层次结构中的每个引用模型选择ASAP2文件生成。如果您使用的是通用实时目标或嵌入式编码器目标,请按照中描述的过程进行操作使用基于GRT或ERT的系统目标文件对于顶部模型和每个引用的模型。
使用函数rtw.asap2MergeMdlRefs
合并为顶级模型和引用模型生成的ASAP2文件。该函数具有以下语法:
[状态,信息]=rtw.asap2MergeMdlRefs(topModelName,ASAP2FILENAME.)
topModelName
是包含一个或多个引用模型的模型的名称。
ASAP2FILENAME.
为合并的ASAP2文件指定的名称。
可选择的:地位
如果合并已完成并返回true(逻辑1),则返回false(逻辑0)。
可选择的:信息
返回有关合并失败的其他信息,如果地位
否则,它返回一个空字符向量。
考虑下面的例子。
[状态,info] = rtw.asap2mergemdlrefs('mytopmdl','merged.a2l')
mytopmdl.
及其在文件中的引用模型merged.a2l
.
示例模型rtwdemo_asap2
包括合并ASAP2文件的示例。
此表概述了ASAP2文件的基本结构,并描述了用于创建文件每个部分的目标语言编译器(TLC)函数和文件:
ASAP2文件的静态部分如所示大胆的.
函数调用表示%
.
文件部分 |
ASAP2min.tlc的含量 |
包含函数定义的TLC文件 |
---|---|---|
文件头 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
模型相关 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
文件页脚/尾部 |
|
|
此模型显示ASAP2数据导出。ASAP2是自动化和测量系统(ASAM)标准化协会提出的数据定义标准。
打开示例模型
打开示例模型rtwdemo_asap2
.
open_system ('RTWDEMO_ASAP2');
ASAP2是用于测量、校准和诊断系统的数据的非面向对象描述。有关ASAM和ASAP2标准的更多信息,请参阅ASAM网站:https://www.asam.net.
ASAP2数据定义是通过Simulink®数据对象和测试点信号实现的。使用目标金宝app语言编译器(TLC),您可以为应用程序创建高度定制的解决方案。有关ASAP2文件生成的详细信息,请参阅Simulink Coder®文档。金宝搏官方网站
您可以通过选择来配置ASAP2文件生成ASAP2接口在这一点代码生成>接口“配置参数”对话框的窗格。