《AUTOSAR_TPS_BSWModuleDescriptionTemplate》。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数据结构

       10.3 支持标定数据的软件仿真

       RTE 生成器提供了几种分配标定数据的方法,它们可以在在线标定过程中由 ECU 上的软件进行模拟,更详细的描述参见 [13]。 如果配置了此类仿真,则在线标定期间更改的标定数据将通过例如复杂驱动程序“仿真”。但功能软件对这些数据的访问仍由 RTE 处理。 为了生成或配置诸如复杂驱动的仿真代码,RTE 生成器必须发布标定数据的数据结构的详细描述以及直接对应于其 C 代码的支持元素。 该信息由 RTE 生成器作为其自己的 BSWMD 的 BswInternalBehavior 的一部分创建,即通过定义本地数据描述,如之前所示。

       (注意:这些本地数据描述不应与从使用数据的模块或组件的角度定义标定数据的输入混淆。例如,这些在使用中模块的 BSWMD 中作为 BswInternalBehavior.perInstanceMemory 给出,见图 6.15。)

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_生成器_02

       RTE生成的数据描述是使用“正常”元模型元素基于实现数据类型的 M1 数据原型模型。

但此外,RTE 生成器必须提供有关其实际使用的所谓标定方法的信息,以及它与生成的数据结构的关系(详见 [13])。

       这由元类 McSwEmulationMethodSupport 表示,为方便起见,它附加到 McSupportData,如图 10.3 和接下来的两个类表所示。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数组_03

       标定模拟方法的支持

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_autosar_04

       表示一组由 RTE 作为一个数据结构处理的标定参数。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数据结构_05

       模拟方法支持之分类

       McSwEmulationMethodSupport.category 的值可以对应于 RTE 配置参数 RteCalibrationSupport 的枚举值(即 DOUBLE_POINTERED、SINGLE_POINTERED 或 INITIALIZED_RAM,参见 [13]),也可以选择不同的值以表示特定于供应商的方法。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数据_06

       McSwEmulationMethodSupport 的内容

       以下约束适用于 McSwEmulationMethodSupport 的属性:

       • 如果 category 为 DOUBLE_POINTERED,则必须存在 baseReference。

       • 如果category 是SINGLE_POINTERED,则必须存在一个referenceTable。

       • 如果category 是INITIALIZED_RAM,则必须存在一个或多个elementGroup。

       小结:几种标定的方式在这里原来是有一个明确的定义的,这里也算是给标定的方法提出了一些提示。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_autosar_07

       仿真支持的上游参考

       为了全面支持软件仿真,我们还需要“上游”参数描述(由 ECU 平面图中的条目表示)与实际实现的代码元素之间的关系。如图 10.4 所示。所需的参考 ImplementationElementInParameterInstanceRef 附加到 McDataInstance。这样做主要是为了方便,因为 McDataInstance 是在同一步骤中生成的,并且已经引用了 Flat Map。 元模型的这部分假设 RTE 生成器使用 ImplementationDataType 来描述实现的数据结构,并且每个实现的参数元素都是一个组的一部分,从而导致一个 ImplementationDataTypeElement 作为引用的目标。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_autosar_08

       图 10.4:参考仿真所需的已实现数据

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_autosar_09

       描述在给定ParameterDataPrototype的上下文中对特定 ImplementationDataTypeElement 实例的引用。 因此,它指的是软件数据结构的实现描述中的特定元素。

       用例:RTE 生成器使用 ParameterDataPrototypes 的“constantMemory”角色在其 BSW 模块描述中发布其生成的标定参数结构。 每个 ParameterDataPrototype 描述了一组单个标定参数。 为了指向这些单个参数,需要这个“实例引用”。

       需要注意,该类遵循 InstanceRef 的模式,但不是基于抽象类实现的,因为 ImplementationDataType 也不是,特别是因为 ImplementationDataTypeElement 不是从 AtpPrototype 派生的。

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数据结构_10

       MC 仿真参考的目标和上下文

       在一个 ImplementationElementInParameterInstanceRef 中,目标必须引用被称为上下文的 ParameterDataPrototype 的子元素。

       如果要测量或标定的元素是数组或结构的一部分,重要的是为所有涉及的子元素以一致且完整的方式定义引用以避免歧义。 由于 ImplementationElementInParameterInstanceRef 只允许定义一个上下文元素,我们需要以下约束:

818_AUTOSAR_TPS_BSWModuleDescriptionTemplate14_标定数据软件仿真支持_数据_11

       MC仿真参考的完整性

       如果作为另一个 McDataInstance 的 subElement 角色的 McDataInstance 指定了 instanceInMemory,则包含的 McDataInstance 也必须指定 instanceInMemory。 后者(即上层)instanceInMemory 的目标必须与第一个(即下层)instanceInMemory 的上下文相同(包括数组索引,如果已定义)。

       如果没有这个约束,就可以定义对嵌套数组/结构的内部元素的引用,而不会识别相应的全局 C 变量。

       这部分主要是讲了标定数据的软件仿真,看这部分倒是看到了一些标定方法的设计。算是对之前一些想法的一点印证。