导出ASAP2文件进行数据测量和校准
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版本1.31的格式,但生成的型号信息一般与其他ASAP2版本兼容。对于ASAP2测量和校准工具的特定需求,ASAP2文件的生成也是中立的。该软件提供了自定义api,您可以使用这些api自定义ASAP2文件生成,以生成ASAP2版本,并满足ASAP2工具的特定需求。
你应该知道的
要使用ASAP2文件生成,您应该熟悉:
ASAM和ASAP2标准和术语。参见ASAM网站
www.asam.net
.为代码生成配置模型数据元素。看到代码映射编辑器.
在生成的代码中存储和表示信号和参数。看到用于原型和调试的数据访问.
如果你有嵌入式编码器®,请参阅数据表示和访问(嵌入式编码).
支持ASAP2的系统目标文件金宝app
您可以使用ASAP2文件生成和不同的系统目标文件配置。例如,基于GRT和ERT的配置使您能够生成ASAP2文件,作为代码生成和构建过程的一部分。
有关使用系统目标文件配置生成ASAP2文件的过程,请参见生成ASAP2文件.
定义ASAP2信息
为参数和信号定义ASAP2信息
ASAP2文件生成过程需要关于模型中的参数和信号的信息。其中一些信息包含在模型本身中。在工作空金宝app间或数据字典中使用Simulink数据对象来完成ASAP2文件生成过程。在某些情况下,使用工作区对象是可选的。
使用模型数据编辑器和内置的Simulink数据对象提供信息,如使用金宝app金宝app仿真软件。信号
对象提供测量信息和金宝app仿真软件。参数
对象来提供特征信息。可以从派生的数据类中使用数据对象金宝app仿真软件。信号
而且金宝app仿真软件。参数
提供信息。看到数据对象而且模型数据编辑器.
该表包含ASAP2文件生成所需的最小数据属性集。模型中定义了一些数据属性。其他属性在对象的属性中提供。中定义的属性金宝app仿真软件。信号
或金宝app仿真软件。参数
对象时,表中列出了关联的属性名。
数据属性 |
中定义的 |
属性名 |
---|---|---|
名称(标志) |
模型和数据对象 |
从参数或信号名称解析到的数据对象的句柄继承 |
描述 |
数据对象 |
|
数据类型 |
模型或数据对象 |
|
扩展 |
模型或数据对象 |
数据类型 |
最小允许值 |
模型或数据对象 |
|
最大允许值 |
模型或数据对象 |
|
单位 |
模型或数据对象 |
|
内存地址(可选) |
模型或数据对象 |
|
内存地址属性
如果在代码生成之前内存地址属性未知,代码生成器将插入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
类的子类的自定义类金宝app
或ASAP2
类。有关Simulink数据类子类化的信息,请参见金宝app定义数据类.
此表表示已取代上一个版本的ASAP2对象属性的Si金宝appmulink对象属性。
ASAP2和金宝app参数和信号对象属性
ASAP2对象属性(上例) |
金宝appSimulink对象属性(当前) |
---|---|
LONGID_ASAP2 |
描述 |
PhysicalMin_ASAP2 |
最小值 |
PhysicalMax_ASAP2 |
马克斯 |
Units_ASAP2 |
单位 |
自动替换ASAP2文件的ECU地址(嵌入式编码器)
如果您的系统上安装了嵌入式编码器,并且正在为嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,则可以使用rtw.asap2SetAddress
功能自动替换ECU的地址
占位符内存地址值与生成的ASAP2文件中的实际地址。
如果在代码生成之前内存地址属性未知,代码生成器将插入ECU的地址
生成的ASAP2文件中的占位符文本,如下所示
/开始特征/*名称*/ Ki /*长标识符*/ "" /*类型*/值/* ECU地址*/0 x0000/* @ECU_Address@Ki@ */
的实际地址替换ECU的地址
的占位符处理生成的ASAP2文件rtw.asap2SetAddress
函数。语法为:
rtw.asap2SetAddress (ASAP2File,InfoFile)
参数是字符向量,指定生成的ASAP2文件的名称和生成的可执行ELF文件、来自Microsoft工具链的PDB文件或模型的DWARF调试信息文件的名称。当它被调用时,rtw.asap2SetAddress
从指定的ELF、PDB或DWARF文件中提取实际的ECU地址,并将ASAP2文件中的占位符替换为实际地址,例如:
/开始特征/*名称*/ Ki /*长标识符*/ "" /*类型*/值/* ECU地址*/0 x40009e60
为查找表定义ASAP2信息
金宝app仿真软件编码器软件为查找表数据及其断点生成ASAP2描述。该软件表示1-D表数据为曲线
信息,二维表数据为地图
信息,断点为AXIS_DESCR
而且AXIS_PTS
信息。您可以通过使用以下Simulink查找表块之一来建模查找表:金宝app
直接查找表(n-D) - 1维和2维
使用预查找插补- 1和2维
一维查找表
二维查找表
n-D查找表- 1和2维
该软件支持这些类型的查找表金宝app断点(轴点)。
断点的类型 | 信息生成 |
---|---|
在多个表轴(公共轴)之间可调和共享 |
|
固定和不可调(固定轴) | 的变体之一
|
可调,但不能在多个表之间共享(标准轴) |
|
当您为ASAP2代码生成配置块时:
对于表数据,使用a
金宝app仿真软件。参数
非的数据对象汽车
存储类。对于在多个表轴之间共享的可调断点数据(
COM_AXIS
),使用金宝app仿真软件。参数
对象的数据对象汽车
存储类。对于固定的、不可调的断点数据(
FIX_AXIS
),使用块参数对话框中指定的工作区变量或数组。断点必须以整数形式存储在代码中。数据类型必须是内置整数类型(int8
,int16
,int32
,uint8
,uint16
,或uint32
)、定点数据类型或等效别名类型。对于不在多个表之间共享的可调断点数据(STD_AXIS):
创建一个
金宝app仿真软件。公共汽车
对象来定义结构体
打包(字段的名称和顺序)。参数结构的字段必须对应于查找表数据和查找表块的每个轴。例如,在一个n-D查找表块有2个维度,结构必须只包含三个字段。该总线对象描述查找特征的记录布局。创建一个
金宝app仿真软件。参数
对象来表示可调参数。创建表和轴值。
可选地,指定单位,最低,最大参数对象的属性。
下面是一个例子n-D查找表以标准Axis格式生成到ASAP2文件中的记录:
/begin characteristics /* Name */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
请注意
示例模型rtwdemo_asap2
显示了查找表块的ASAP2文件生成,包括可调(COM_AXIS)和固定(FIX_AXIS)查找表断点。
生成ASAP2文件
生成ASAP2文件
使用通用实时系统目标文件或嵌入式编码器系统目标文件生成ASAP2文件,作为代码生成和构建过程的一部分。
使用内置ASAP2支持的系统目标文件生成ASAP2文件。金宝app有关示例,请参见ASAP2示例模型rtwdemo_asap2
.
使用基于GRT或ERT的系统目标文件
使用通用实时(GRT)系统目标文件或嵌入式编码器系统目标文件为模型生成ASAP2数据定义:
使用代码映射编辑器将存储类应用于信号、块状态和模型参数,如中所述模型界面元素的C代码生成配置.
如果存在以下一个或多个条件,则ASAP2文件中不表示参数:
应用存储类
汽车
,FileScope
,结构体
,或默认的
(通过模型的默认
).通过应用存储类
嵌入式编码器词典
.应用存储类,使代码生成器生成宏或不可寻址变量。
使用属性检查器为每个数据元素配置剩余的存储类属性。
设置模型配置参数系统目标文件到基于GRT或ERT的系统目标文件。
选择型号配置参数ASAP2接口.
选择参数只生成代码.
点击应用.
生成的代码。
代码生成器将ASAP2文件写入构建文件夹。默认为文件名
,在那里模型
.a2l
是模型的名称。ASAP2设置文件控制ASAP2文件名。详细信息请参见自定义生成ASAP2文件.模型
为参考模型生成ASAP2文件
构建过程可以为模型引用层次结构中的每个引用模型生成ASAP2文件。在生成的ASAP2文件中,MEASUREMENT记录表示引用模型中的信号和状态。
要为引用模型生成ASAP2文件,请为顶层模型和引用层次结构中的每个引用模型选择ASAP2文件生成。如果您正在使用通用实时目标或嵌入式编码器目标,请遵循中描述的过程使用基于GRT或ERT的系统目标文件对于顶部模型和每个参考模型。
合并顶部和引用模型的ASAP2文件
使用功能rtw.asap2MergeMdlRefs
合并为顶级模型和引用模型生成的ASAP2文件。该函数的语法如下:
[status,info] = rtw.asap2MergeMdlRefs(topModelName,asap2FileName)
topModelName
包含一个或多个引用模型的模型的名称。asap2FileName
是您为合并的ASAP2文件指定的名称。可选:
状态
如果合并完成,则返回false(逻辑0),否则返回true(逻辑1)。可选:
信息
返回合并失败的附加信息状态
是真的。否则,它返回一个空的字符向量。
考虑下面的例子。
[status,info] = rtw.asap2MergeMdlRefs('myTopMdl','merged.a2l')
myTopMdl
及其在文件中的引用模型merged.a2l
.
示例模型rtwdemo_asap2
包括一个合并ASAP2文件的例子。
ASAP2文件的结构
下表概述了ASAP2文件的基本结构,并描述了用于创建文件每个部分的目标语言编译器(TLC)函数和文件:
ASAP2文件的静态部分显示在大胆的.
函数调用由
() % < FunctionName >
.
文件部分 |
asap2main.tlc的内容 |
包含函数定义的TLC文件 |
---|---|---|
文件头 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
依赖于模式的 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
文件脚注/尾 |
|
|
创建一个基于主机的ASAM-ASAP2数据定义文件用于数据测量和校准
该模型展示了ASAP2数据导出。ASAP2是由自动化与测量系统标准化协会(ASAM)提出的数据定义标准。