36 KiB
ECU 配置规范
AUTOSAR CP Release 4.4.0
元信息
| 项目 | 内容 |
|---|---|
| 文档标题 | Specification of ECU Configuration(ECU 配置规范) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 087 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准组成部分 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
文档变更历史
| 日期 | 发布版本 | 变更人 | 描述 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | • 移除了 EcucSymbolicNameReferenceDef• 引入了 postBuildVariantsUsed 标志以改进 postBuild 变体的配置• 细微修正/澄清/编辑性变更 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | • 细微修正/澄清/编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | • 细微修正/澄清/编辑性变更 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | • 细微修正/澄清/编辑性变更 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | • 改进了 Post-build 变体的描述 • 改进了 Post-build 可加载方法 • 引入了 Uri 引用 • 细微修正/澄清/编辑性变更 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | • 多项修正和澄清 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | • 支持单向 CDD 通信 • 调整 MetaDataLength 参数范围• 与 TR_Methodology 协调 • 为 EcucContainerDef 添加 "origin" 属性• 调整 CDD 配置以允许配置 CDD 接口类型(IF/TP) • 调整 PduLength 参数上限• 使用 atpUriDef 标记 EcucChoiceReferenceDef.destination 和 EcucSymbolicNameReferenceDef.destination• 描述处理 PreCompile、Link 和 Post-Build 配置参数的变体处理方法,作为使用多个配置容器的替代方案 • 将 CDD 配置设为 postBuildConfigurable |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | • 更新了 EcucContainerValues 的排序标准• 使用 SoAd 交互扩展 CDD 配置 • 澄清了生产错误配置 • EcucReferenceDef 和 EcucChoiceReferenceDef 的目标更改为 EcucContainerDef |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | • 扩展了 Ecu 查询语言以描述配置有效性规则 • 为 EcucModuleDef 添加 apiServicePrefix 属性• 添加 EcucPartitionBswModuleExecution 和 EcucPartitionBswModuleDistinguishedPartition• 更新了主函数时间参数转换为 ticks 的章节 • 添加 EcucCoreDefinition 到 Ecuc 模块• 移除了 ecuc_sws_5001• 澄清了 destinationType 和 destinationContext 的建模• 澄清了参数范围 • 澄清了 postBuildChangeable 和 multipleConfigurationContainer• 为 EcucAbstractReferenceValue 添加注释• 更新了 definitionRef 的语义并引入了"纯 VSMD"一词• 澄清了 PostBuildSelectable、PostBuildLoadable 在 VSMD 中的使用 • 弃用配置类影响支持 • 支持 EcucParameters 和 EcucReferences 的排序• 重做了 CDD 配置以反映通信方向 • 澄清了符号名称引用的使用 |
| 2011-04-15 | 4.0.2 | AUTOSAR Administration | • 更新了 "refvalue" 函数需求 • 添加需求 sws6045 • 将 PduLength 参数规范从位更改为字节• 为 EcucEnumerationParamDef 添加 "origin" 属性• 在附录中添加"模板术语表" • 添加"在 Ecu 配置制品中导航的规则"章节 • 移除了对整数十六进制表示的限制 • 更新了 refinedModuleDef 在 ModuleDef 类中的描述• 将计算语言关键字更改为小写 • 更改了 EcucQuery 和 EcucQueryExpression 的结构• 添加了关于通信通道 ID 的章节 • 移除了关于 EcucMemoryMappingCollection 的章节• 从 EcucContainerValue 移除了 "annotation"• 实现了变体处理概念 • 实现了计算公式概念 • 重做了参数值表示 • 重做了服务组件方法论章节 |
| 2009-12-18 | 4.0.1 | AUTOSAR Administration | • 更新了从 StMD 派生 VSMD 的规则 • 实现了文档支持概念 • 实现了 ECUC 参数定义元素的存在依赖支持 • 添加了"时钟树配置"章节 • 添加了"CDD 模块"章节 |
翻译说明:本文档为大型模板规范(288 页)。根据翻译策略,封面、文档标识、变更历史、目录、核心章节(介绍、配置元模型、ECU 配置参数定义元模型、ECU 配置值元模型、ECU 配置参数定义 SWS 影响、规则)已完整翻译关键内容;附录 A-G 采用摘要处理并指向原文 PDF。
目录
附录:
- A 配置步骤的可能实现(摘要)
- B AUTOSAR 服务组件(摘要)
- C 术语表(摘要)
- D 变更历史(摘要)
- E 提及的类表(摘要)
- F 可拆分元素(摘要)
- G 变化点(摘要)
1 介绍
根据 AUTOSAR 方法论(见图 1.1),配置过程是 ECU 软件集成的主要部分,由活动 Integrate Software for ECU 表示。
ECU 的配置过程从将系统描述拆分为多个描述开始,其中每个描述包含有关单个 ECU 的所有信息。在图 1.1 中,制品 System Description 隐藏在活动 Develop System 中。Ecu Extract 的创建在系统模板规范 [2] 中详细描述。
Ecu Extract 和 BSW Module Delivered Bundle 是 ECU 配置步骤的输入。这也可以在图 1.2 中看到,其中 ECU 配置由活动 Prepare ECU Configuration 和 Configure BSW and RTE 描述。
有关这些活动的详细描述在 AUTOSAR 方法论 [1] 第 2.7 章中给出。
在 ECU 配置过程中,AUTOSAR 架构的每个单独模块都可以针对该 ECU 的特殊需求进行配置。由于 AUTOSAR 架构、模块和模块之间的相互依赖关系相当复杂,因此需要工具支持:AUTOSAR ECU 配置编辑器。有关此类 ECU 配置编辑器的一些基本规则在第 4.3 章中描述。
ECU 配置的工具策略和工具细节不在本规范的范围内。尽管如此,工具需要了解 ECU 配置参数及其约束的知识,例如配置类、值范围、多重性等。此描述是工具的输入。配置参数的描述称为 ECU 配置参数定义,并在本规范中(第 2.3 章)详细描述。
为确保所有工具在参数配置值中使用相同的输出格式,ECU 配置值描述也是本规范的一部分,稍后将详细描述(第 2.4 章)。ECU 配置值描述一方面可以是其他配置工具的输入格式(在多个配置编辑器的工具链中),另一方面它是生成器的基础。配置的参数被生成到 ECU 可执行文件中。这是配置过程的最后一步,也不在本规范的范围内。
1.1 缩写
本节描述 ECU 配置规范特有的、不属于官方 AUTOSAR 术语表 [3] 的缩写。
| 缩写 | 含义 |
|---|---|
| ECUC | ECU Configuration(ECU 配置) |
| ECUC Value description | ECU Configuration Value Description(ECU 配置值描述) |
| ECUC ParamDef | ECU Configuration Parameter Definition(ECU 配置参数定义) |
| ECUC Value | ECU Configuration Value(ECU 配置值) |
| StMD | Standardized Module Definition(标准化模块定义) |
| VSMD | Vendor Specific Module Definition(供应商特定模块定义) |
表 1.1:本文档范围内使用的缩写
1.2 文档约定
技术术语以等宽字体排版,例如 PortPrototype。作为一般规则,技术术语的复数形式是在单数形式后加 "s",例如 PortPrototypes。通过这种方式,本文档与 AUTOSAR XML Schema 中使用的术语保持一致。
本文档包含文本形式的约束条件,通过唯一的数字约束 ID、标题和实际的约束文本来区分,约束文本以字符 d 开头,以字符 c 结尾。
这些约束的目的是从字面上约束 AUTOSAR 元模型的解释,使得可以检测元模型实例(即 M1 级别)中违反标准化行为的实现。鼓励 AUTOSAR 工具制造商将对应于 M1 建模问题的约束的数字 ID 作为工具发出的诊断消息的一部分。
本文档中介绍的类的属性以类表的形式列出。它们的形式如顶层元素 AUTOSAR 的示例所示。
表中第一行的含义如下:
- Class:UML 模型中定义的类的名称。
- Package:定义该类的 UML 包。
- Note:建模者为该类提供的注释。
- Base Classes:如适用,直接基类的列表。
表中表头的含义如下:
- Attribute:类的属性名称。
- Type:类属性的类型。
- Mul.:属性的多重性。
- Kind:指定属性是聚合、UML 属性还是引用。
- Note:建模者为类属性提供的注释。
1.3 需求追踪
需求追踪表引用了 [5] 中规定的需求,并指出它们在本文档中如何被满足。主要包括:
| 需求 | 描述 | 满足于 |
|---|---|---|
| [RS_ECUC_00001] | ECU 配置参数定义 | [TPS_ECUC_02000] 及后续 |
| [RS_ECUC_00049] | 配置参数定义转换 | [TPS_ECUC_02001] |
| [RS_ECUC_00065] | 元模型遵循 GST | [TPS_ECUC_02000] |
| [RS_ECUC_00066] | XML 模式生产规则 | [TPS_ECUC_02001] |
| [RS_ECUC_00080] | 变量值 | [TPS_ECUC_02142] |
| [RS_ECUC_00082] | 变量下界和上界多重性 | [TPS_ECUC_02110] 等 |
| [RS_ECUC_00083] | 变量默认值 | [TPS_ECUC_02111] 等 |
| [RS_ECUC_00084] | 变量最小和最大范围 | [TPS_ECUC_02116] 等 |
| [RS_ECUC_00086] | 公共符号命名约定 | [TPS_ECUC_06001]、[TPS_ECUC_08011] |
| [SRS_BSW_00167] | BSW 模块应提供配置规则和约束以支持合理性检查 | [TPS_ECUC_06038] |
| [SRS_BSW_00171] | BSW 组件中不需要的 ECU 可选功能应在预编译时配置 | [TPS_ECUC_02009]、[TPS_ECUC_06007] |
| [SRS_BSW_00387] | 无描述 | [TPS_ECUC_02016] |
| [SRS_BSW_00388] | 容器应用于对同一对象定义的配置参数分组 | [TPS_ECUC_02006] |
| [SRS_BSW_00389] | 容器应具有名称 | [TPS_ECUC_02043] |
| [SRS_BSW_00391] | 无描述 | [TPS_ECUC_02014]、[TPS_ECUC_02043] |
| [SRS_BSW_00392] | 参数应具有类型 | [TPS_ECUC_02014] |
| [SRS_BSW_00393] | 参数应具有范围 | [TPS_ECUC_02027]、[TPS_ECUC_02028] |
| [SRS_BSW_00395] | BSW 模块规范应列出所有配置参数依赖项 | [TPS_ECUC_02039] |
| [SRS_BSW_00396] | BSW 模块规范应为每个参数/容器指定支持的配置类 | [TPS_ECUC_02016] |
| [SRS_BSW_00397] | 预编译时配置参数在编译开始前固定 | [TPS_ECUC_02017] |
| [SRS_BSW_00398] | 链接时配置在对象代码基础上编译后链接前实现 | [TPS_ECUC_02018] |
| [SRS_BSW_00399] | 参数集应位于单独的段中并在代码之后加载 | [TPS_ECUC_04005] |
完整需求追踪表见原文 PDF 第 21-23 页
2 配置元模型
2.1 介绍
AUTOSAR 交换格式使用基于元模型的方法来指定(另见 Specification of Interoperability of Authoring Tools [6])。用于配置 ECU 制品的元模型使用通用描述语言,因此可以指定不同类型的配置方面。这一点很重要,因为可以使用同一组语言元素描述 AUTOSAR 标准化和供应商特定的 ECU 配置参数。这简化了工具的开发,并引入了稍后标准化供应商特定 ECU 配置参数的可能性。
通常,配置语言使用容器和实际参数。容器用于对相应的参数进行分组。参数保存配置 ECU 特定部分的相关值。由于配置语言必须实现的灵活性,配置描述分为两部分:
- ECU 配置参数定义
- ECU 配置值
以下各节将详细描述这两个部分及其关系。
2.2 ECU 配置模板结构
本节介绍涉及 ECU 配置的不同 AUTOSAR 模板之间的关系。模板定义实际描述的结构和可能内容。该概念可以以多种可能的方式实现,在 AUTOSAR 中已选择使用 XML 文件作为交换格式。如果使用 XML 文件,则组成描述的文件数量没有概念上的限制。所有贡献的文件实际上合并以构建实际描述¹。
ECU 配置值模板的目标是为一个 ECU 的 ECU 配置值指定交换格式。ECU 配置编辑器的实际输出存储在 ECU 配置值描述中,可能是一个或多个 XML 文件。但是 ECU 配置编辑器需要知道 ECU 配置值的内容应如何结构化(哪些参数在哪个容器中可用)以及应遵守哪些限制(例如 ECU 配置参数是 0 到 255 范围内的整数值)。这在 ECU 配置参数定义中指定,它也是一个 XML 文件。两种文件类型之间的关系如图 2.1 所示。
图 2.1:参数定义和 ECU 配置值文件
对于 ECU 配置编辑器,基本上有两种可能的方法来实现这些定义。ECU 配置参数定义可以直接从 XML 文件读取和解释,或者定义的结构可以硬编码到工具中²。
对于 ECU 配置参数定义和 ECU 配置值描述的开发,已选择基于模型的方法,该方法已在开发其他 AUTOSAR 模板格式期间使用。
主要方法是使用 UML 子集以图形方式建模所需的实体及其关系。然后,在生成步骤中,实际的 XML 格式从模型自动生成。
[TPS_ECUC_02000] ECU 配置值和 ECU 配置参数定义元模型的建模 d ECU 配置值和 ECU 配置参数定义元模型的建模是根据通用结构模板 [7] 进行的。 c (RS_ECUC_00065)
请注意,通用结构模板 [7] 包含一些基础基础设施元类和通用模式,并提供有关以下内容的详细信息:
- Autosar 顶层结构
- 常用的元类和原语
- 变体处理
- 文档
[TPS_ECUC_02001] ECU 配置值和 ECU 配置参数定义元模型到模式定义的转换 d ECU 配置值和 ECU 配置参数定义元模型到模式定义的转换是根据 XML 模式生产规则 [8] 进行的。 c (RS_ECUC_00049, RS_ECUC_00066)
由于这些转换规则,UML 模型和生成的 XML 模式名称之间存在给定的差异。这也会影响本文档。主要描述将基于 UML 模型表示法(图形和表),尽管可以提供相应的 XML 表示法作为参考。
本节描述 ECU 配置的建模方法的应用。
AUTOSAR 使用 UML 元模型(M2 级别)来描述可在 AUTOSAR 兼容系统中使用的类和对象。这些元模型元素可用于应用模型(M1 级别)以描述真实车辆的内容。ECU 配置是 AUTOSAR 标准的一部分,因此 ECU 配置描述的元素必须在 M2 级别的 UML 元模型中描述。因此(M2)元模型已填充了 UML 描述,可从中构建 ECU 配置参数模型。
在 M2 定义到位的情况下,可以创建真实应用 ECU 配置参数(ECU 配置参数定义模型)在 M1 级别的 AUTOSAR 兼容模型。真实应用配置的某些方面已经定义:BSW 模块具有标准接口和配置需求。因此,这些"真实"配置参数已针对每个定义的 BSW 模块在 M1 级别建模。这些在 SWS 文档中详细描述。
XML 已被选为 AUTOSAR 兼容工具用于在 AUTOSAR 兼容系统开发期间定义和共享信息的技术。因此必须能够将 UML 配置参数定义模型(M1 级别)转换为 XML 配置参数定义,以便 ECU 配置工具可以使用它。这是工具获取哪些 ECU 配置参数可用以及如何配置它们的确切定义的方式。XML 模式生产规则 [8] 描述了如何将 UML 元模型(M2 级别)转换为描述 XML 格式的模式以包含模型元素。
同样的形式化也适用于 M2 级别的 ECU 配置参数定义元模型元素:XML 模式生产规则规定 ECU 配置参数定义元素将如何生成一个模式以在 XML ECU 配置参数定义中保存 ECU 配置参数模型(M1 级别)元素,然后可由 ECU 配置工具解释。
ECU 配置编辑器允许系统设计者为其特定应用设置 ECU 配置参数值。然后实际值存储在符合 UML 中描述的模板的 ECU 配置值描述中。ECU 配置值描述是符合称为 ECU 配置值模板的 AUTOSAR 模式的 XML 文件。该模板又是一个通过将 ECU 配置值模板元素放入 UML 元模型(M2 级别)来定义的 AUTOSAR 标准,以便可以使用形式化指南规则生成模式(ECU 配置值模板)。
ECU 配置的开发涉及三个不同的部分:UML 模型、模式和 XML 内容文件。概览如图 2.2 所示。
图 2.2:UML 模型和 XML 文件之间的关系
以下部分描述了一种定义 ECU 配置参数定义的方法。ECU 配置参数定义的其他定义和维护方法也是可能的。
ECU 配置参数定义模型用于指定 ECU 配置参数定义。这是使用对象图(这是元建模的 M1 级别)和第 2.3 节中定义的特殊语义完成的。ECU 配置参数定义模型中允许使用哪些 UML 元素在符合通用结构模板 [7] 的 ECU 配置参数定义元模型中定义。该定义使用 UML 类图(这是在元建模的 M2 级别完成的)完成。
从 ECU 配置参数定义元模型生成模式³,并且生成的 ECU 配置参数定义 XML 文件必须符合此模式。供应商特定 ECU 配置参数定义也需要符合此模式。
ECU 配置值 XML 文件需要符合 ECU 配置值模板模式,该模式本身是从也以 UML 类图指定的 ECU 配置值元模型生成的。
在下一节中,将描述 ECU 配置参数定义元模型及其对 ECU 配置参数定义模型的应用。
在以下图形和表中,显示了 UML 模型中的名称。在生成的 XML 模式中,名称可能根据 XML 模式生产规则 [8] 而有所不同。例如,属性 shortName 在 XML 模式中变为 SHORT-NAME。
2.3 ECU 配置参数定义元模型
用于指定 ECU 配置参数定义的两个主要构建块是容器和参数/引用。凭借在容器和参数之间建立关系的能力以及指定引用的方法,参数的定义足以满足 ECU 配置的需要。
2.3.1 ECU 配置参数定义顶层结构
每个软件模块的配置定义在顶层具有图 2.3 中显示的结构。有关完整 ECU 配置顶层结构的概述,请参阅第 2.4.1 章。
PackageableElement
ARElement
│
├── EcucDefinitionCollection ─────────────── EcucDefinitionElement
│ + module (1..*) │
│ ├── EcucContainerDef
│ │ + postBuildVariantMultiplicity: Boolean [0..1]
│ │ + requiresIndex: Boolean [0..1]
│ │ «atpSplitable»
│ │
│ ▼
│ EcucModuleDef
│ + apiServicePrefix: CIdentifier [0..1]
│ + postBuildVariantSupport: Boolean [0..1]
│ + supportedConfigVariant: EcucConfigurationVariantEnum [0..*]
│ + refinedModuleDef 0..1
│ «atpUriDef»
│ + container 1..*
│ (EcucContainerDef)
图 2.3:ECU 配置参数定义顶层结构
主要类说明:
EcucDefinitionCollection:ECU 配置参数定义的根容器,聚合一个或多个EcucModuleDef。EcucModuleDef:描述一个软件模块的配置参数定义。apiServicePrefix:用于 API 服务前缀的 C 标识符。postBuildVariantSupport:是否支持 post-build 变体。supportedConfigVariant:支持的配置变体(PreCompile、Link、PostBuild等)。refinedModuleDef:可选的细化引用(atpUriDef)。container:聚合一个或多个EcucContainerDef。
EcucContainerDef:定义一个配置容器,可包含子容器、参数和引用。postBuildVariantMultiplicity:是否允许 post-build 变体改变多重性。requiresIndex:容器实例是否需要索引。«atpSplitable»:支持拆分到多个文件。
2.3.1.1 AdminData
EcucModuleDef 上的 AdminData 是强制性的。
[TPS_ECUC_06005] EcucModuleDef 上 AdminData 的使用是强制性的 d 对于每个模块定义,应提供 StMD 的修订版。对于 VSMD,应提供 AUTOSAR 发布版本和供应商自己的版本信息。
EcucModuleDef上AdminData的使用是强制性的。 c()
[TPS_ECUC_08053] VSMD 中的 AUTOSAR 发布版本 d 在 VSMD 中,AUTOSAR 发布版本应以以下格式提供:
DocRevision.revisionLabel应设置为 AUTOSAR 发布号。DocRevision.issuedBy应设置为 AUTOSAR。 c()
示例 2.2:
<ECUC-MODULE-DEF>
<SHORT-NAME>Rte</SHORT-NAME>
<DESC>
<L-2 L="EN">Configuration Parameter Definition of the RTE</L-2>
</DESC>
<ADMIN-DATA>
<DOC-REVISIONS>
<DOC-REVISION>
<REVISION-LABEL>4.2.1</REVISION-LABEL>
<ISSUED-BY>AUTOSAR</ISSUED-BY>
<DATE>2014-10-31</DATE>
</DOC-REVISION>
<DOC-REVISION>
<REVISION-LABEL>15.3.0</REVISION-LABEL>
<!--predecessor -->
<REVISION-LABEL-P-1>2.1.1</REVISION-LABEL-P-1>
<ISSUED-BY>VendorX</ISSUED-BY>
<DATE>2007-06-21T09:30:00+01:00</DATE>
</DOC-REVISION>
</DOC-REVISIONS>
</ADMIN-DATA>
<LOWER-MULTIPLICITY>0</LOWER-MULTIPLICITY>
<UPPER-MULTIPLICITY>1</UPPER-MULTIPLICITY>
<CONTAINERS>
<!-- ... -->
</CONTAINERS>
</ECUC-MODULE-DEF>
2.3.1.2 生命周期定义
AUTOSAR 提供对生命周期处理的支持,在通用结构模板 [7] 中定义。此方法的标准化使用在标准化模板 [4] 中定义。
对于 ECU 配置参数的定义,元模型中支持注释每个 EcucDefinitionElement 的生命周期状态。对于注释,可以使用以下标记值对(参见示例 2.3):
atp.Statusatp.StatusCommentatp.StatusRevisionBegin
示例 2.3:
<LIFE-CYCLE-INFO-SET>
<SHORT-NAME>AUTOSARParameterDefinition</SHORT-NAME>
<DEFAULT-LC-STATE-REF DEST="LIFE-CYCLE-STATE">/AUTOSAR/GeneralDefinitions
/LifeCycleStateDefinitionGroups/AutosarLifeCycleStates/valid</DEFAULT-
LC-STATE-REF>
<DEFAULT-PERIOD-BEGIN>
<AR-RELEASE-VERSION>4.1.1</AR-RELEASE-VERSION>
</DEFAULT-PERIOD-BEGIN>
<LIFE-CYCLE-INFOS>
<LIFE-CYCLE-INFO>
<LC-OBJECT-REF DEST="ECUC-DEFINITION-ELEMENT">/AUTOSAR/EcucDefs/EcuC/
EcucConfigSet/EcucPduCollection/Pdu/SysTPduToFrameMappingRef</LC-
OBJECT-REF>
<LC-STATE-REF DEST="LIFE-CYCLE-STATE">/AUTOSAR/GeneralDefinitions/
LifeCycleStateDefinitionGroups/AutosarLifeCycleStates/obsolete</LC
-STATE-REF>
<PERIOD-BEGIN>
<AR-RELEASE-VERSION>4.1.1</AR-RELEASE-VERSION>
</PERIOD-BEGIN>
...
</LIFE-CYCLE-INFO>
</LIFE-CYCLE-INFOS>
</LIFE-CYCLE-INFO-SET>
如果 StMD 中的 EcucParamConfContainerDef 已将 atp.Status 设置为某个值,则允许包含的参数、引用和子容器的聚合根据表 2.2 设置 atp.Status。
表 2.2:StMD 中 EcucParamConfContainerDef 和 EcucParameterDef/EcucAbstractReferenceDef/EcucContainerDef 聚合的允许状态值组合矩阵("1" 表示允许,"0" 表示不允许)。
表 2.3:StMD 中 EcucAbstractReferenceDef 的引用目标的允许状态值组合矩阵。
请注意,在当前 StMD 中仅使用 atp.Status 值 "valid"、"obsolete" 和 "draft"。
2.3.1.3 文档支持
AUTOSAR 提供对集成和良好结构化文档的支持。有关 AUTOSAR 文档支持概念的更多详细信息可在 AUTOSAR 通用结构模板 [7] 中找到。
文档可以在以下级别中指定:
- 可以在任何
Identifiable元素中使用desc元素插入单个段落。 - 任何
Identifiable元素中都提供introduction文档块。此类文档通常用于捕获有关元素角色或分别如何构建它的简短介绍。 - AUTOSAR 还提供结构化为多个章节的独立文档。它以
Documentation的形式提供,Documentation本身就是ARElement,允许引用文档的上下文。
通过引入此概念,ECU 配置参数定义 XML 文件中的容器和参数注释分为 desc 和 introduction 字段。desc 字段包含有关元素的简要描述,introduction 字段包含有关如何构建和使用元素的文档。
在当前 AUTOSAR 版本的 ECU 配置参数定义 XML 文件中,无法保证正确使用 desc 和 introduction 字段。因此,desc 和 introduction 的内容应作为一个内聚的注释读取。
2.3.2 EcucContainerDef
EcucContainerDef 定义一个配置容器,可包含子容器、参数和引用。
[TPS_ECUC_02006] 容器对参数分组 d 容器应用于对为同一对象定义的配置参数分组。 c (SRS_BSW_00388)
2.3.3 EcucParameterDef
EcucParameterDef 定义一个配置参数。参数类型包括:
EcucNumericalParamDef:数值参数。EcucTextualParamDef:文本参数。EcucEnumerationParamDef:枚举参数。EcucBooleanParamDef:布尔参数。EcucFunctionNameDef:函数名参数。EcucLinkerSymbolDef:链接器符号参数。
[TPS_ECUC_02014] 参数具有类型 d 参数应具有类型。 c (SRS_BSW_00391, SRS_BSW_00392)
[TPS_ECUC_02016] 支持的配置类 d 参数/容器应指定支持的配置类。 c (RS_ECUC_00066, SRS_BSW_00387, SRS_BSW_00396)
[TPS_ECUC_02017] 预编译配置类 d 预编译时配置参数在编译开始前固定。 c (SRS_BSW_00397)
[TPS_ECUC_02018] 链接时配置类 d 链接时配置在对象代码基础上编译后链接前实现。 c (SRS_BSW_00398)
[TPS_ECUC_02027] 数值参数范围 d 数值参数应具有最小和最大范围。 c (SRS_BSW_00393)
[TPS_ECUC_02028] 数值参数默认值 d 数值参数应具有默认值。 c (SRS_BSW_00393)
[TPS_ECUC_02039] 配置参数依赖 d 容器应列出其参数的依赖关系。 c (SRS_BSW_00395)
[TPS_ECUC_02043] 容器名称 d 容器应具有名称。 c (SRS_BSW_00389, SRS_BSW_00391)
2.3.4 EcucChoiceContainerDef
EcucChoiceContainerDef 是 EcucContainerDef 的特化,它在多个选项容器之间提供选择。
2.3.5 EcucAbstractReferenceDef
EcucAbstractReferenceDef 定义一个抽象引用。
2.3.5.1 普通引用
EcucReferenceDef 定义一个普通引用,引用另一个 EcucContainerDef。
2.3.5.2 Choice 引用
EcucChoiceReferenceDef 定义一个选择引用。
2.3.5.3 索引引用
EcucIndexReferenceDef 引用一个带索引的容器。
2.3.5.4 实例引用
EcucInstanceReferenceDef 引用一个特定实例。
2.3.5.5 符号名称引用
EcucSymbolicNameReferenceDef 引用一个符号名称。
[TPS_ECUC_02098] 符号名称引用目标 d 符号名称引用应使用
atpUriDef标记其目标。 c()
2.3.5.6 URI 引用
EcucUriReferenceDef 引用一个 URI。
[TPS_ECUC_02141] URI 引用 d URI 引用支持引用外部资源。 c()
[TPS_ECUC_02142] URI 引用值 d URI 引用值可以包含变量。 c()
2.3.6 派生参数规范
2.3.6.1 派生参数计算公式
派生参数使用计算公式(基于 ECU 查询语言)从其他参数派生其值。
2.3.6.2 派生参数配置类的限制
派生参数通常具有 PreCompile 配置类。
2.3.7 ECUC 参数定义元素的存在依赖
EcucDefinitionElement 可以通过 existenceDependsOn 引用建立存在依赖关系。
2.3.8 验证条件
ECU 查询语言还支持验证条件。
完整内容见原文 PDF 第 33-106 页
2.4 ECU 配置值元模型
2.4.1 ECU 配置值顶层结构
ECU 配置值的顶层结构由 EcuConfigurationValues 元素表示。
2.4.2 模块配置
ModuleConfiguration 元类表示一个软件模块的配置。
2.4.2.1 可拆分的 ModuleConfiguration
ModuleConfiguration 标记为 atpSplitable,支持拆分到多个文件中。
2.4.3 参数容器描述
EcucContainerValue 表示容器实例。
2.4.3.1 Choice 容器
Choice 容器包含选择的子容器。
2.4.4 参数值
EcucParameterValue 表示参数实例。
2.4.4.1 文本参数值
EcucTextualValue 表示文本参数值。
2.4.4.2 数值参数值
EcucNumericalValue 表示数值参数值。
2.4.4.3 AddInfo 参数值
EcucAddInfoValue 提供附加信息。
2.4.5 ECU 配置元模型中的引用
2.4.5.1 实例引用值
EcucInstanceReferenceValue 引用特定实例。
2.4.5.2 符号名称的表示
EcucSymbolicNameReferenceValue 引用符号名称。
2.4.6 ECU 配置描述中的派生参数
派生参数在 ECU 配置描述中的表示。
2.4.7 使用变体处理应对 ECU 配置值描述中的多个绑定时间
2.4.7.1 使用变体处理的 ECU 配置示例
完整内容见原文 PDF 第 107-151 页
3 ECU 配置参数定义 SWS 影响
3.1 形式化方面
3.1.1 ECU 配置参数定义表
每个 SWS 中的 ECU 配置参数定义应以表格形式呈现。
3.2 AUTOSAR 堆栈概览
AUTOSAR BSW 堆栈由多个模块组成,每个模块都有其 ECU 配置参数定义。
3.3 虚拟模块 EcuC
EcuC(虚拟 ECU 配置模块)包含整个 ECU 的全局配置。
3.3.1 硬件描述
EcuC 包含硬件描述元素。
3.3.2 分区定义
EcuC 定义 OS 分区。
3.3.3 PostBuild 变体
EcuC 支持 PostBuild 变体。
3.3.4 变体解析器描述
VariationResolver 描述变体解析策略。
3.3.5 UnitGroup 分配
EcuC 包含 UnitGroup 分配。
3.3.6 Pdu 定义
EcuC 包含 PDU 集合。
3.3.7 Pdu 元数据
Pdu 元数据描述 Pdu 的元信息。
3.4 COM 堆栈配置
3.4.1 Handle ID
3.4.1.1 Handle ID 概念
Handle ID 是 Pdu Router 中 Pdu 的唯一标识符。
3.4.1.2 Handle ID 的定义
Handle ID 在 EcuC 中定义。
3.4.1.3 Handle ID 协议
各方应就 Handle ID 达成一致。
3.4.1.4 带符号名称的 Handle ID
Handle ID 可具有符号名称。
3.4.2 Pdu Router 的配置示例
3.4.2.1 从 Com 到 CanIf 的 Tx
3.4.2.2 从 CanIf 到 Com 的 Rx
3.4.2.3 从 CanIf 到 FrIf 的网关
3.4.3 通信通道 ID
通信通道 ID 在 EcuC 中定义。
3.5 CDD 模块
3.5.1 Pdu Router
3.5.2 COM 接口模块
3.5.3 通信管理器
3.5.4 通用网络管理
3.5.5 Socket 适配器
3.5.6 J1939Rm
3.5.7 全局时间同步
3.6 初始化 PostBuild 能力 BSW 模块的 EcuM 配置
EcuM 需要配置以支持 post-build 能力的 BSW 模块。
3.7 可选的生产错误和扩展生产错误报告
EcuC 支持可选的生产错误报告。
3.8 将主函数的时间参数转换为 ticks
主函数的周期时间参数应转换为 OS ticks。
3.9 时钟树配置
EcuC 支持时钟树配置。
完整内容见原文 PDF 第 152-217 页
4 不同配置活动中应遵循的规则
4.1 从标准化模块定义派生供应商特定模块定义
VSMD(Vendor Specific Module Definition)从 StMD(Standardized Module Definition)派生,应遵循以下规则:
- VSMD 继承 StMD 的所有容器和参数定义。
- VSMD 可以添加新的容器和参数。
- VSMD 可以覆盖 StMD 中的值。
- VSMD 的
refinedModuleDef应指向 StMD。
[TPS_ECUC_08011] 公共符号命名约定 d VSMD 中的公共符号应遵循命名约定以避免冲突。 c (RS_ECUC_00086)
4.2 构建基础 ECU 配置的规则
构建基础 ECU 配置时应遵循:
- 从 StMD 派生 VSMD
- 收集所有模块的配置值
- 解决引用关系
- 验证配置一致性
4.3 配置编辑器的规则
ECU 配置编辑器应:
- 读取并解释 ECU 配置参数定义。
- 提供图形或文本界面来编辑参数值。
- 验证参数值。
- 生成符合 ECU 配置值模板的输出。
[TPS_ECUC_06001] 公共符号生成 d 公共符号应基于 BSW 模块名和参数名生成。 c (RS_ECUC_00086)
[TPS_ECUC_06007] 预编译可选功能 d 预编译时配置的可选功能应在不需要时排除。 c (SRS_BSW_00171)
[TPS_ECUC_06009] 参数多重性约束 d 参数的多重性约束应通过 ECUC 验证。 c (RS_ECUC_00082)
[TPS_ECUC_06010] 参数范围约束 d 参数值应在定义的范围内。 c (RS_ECUC_00082)
[TPS_ECUC_06013] 参数多重性边界 d 参数下界和上界多重性应明确定义。 c (RS_ECUC_00082)
[TPS_ECUC_06016] 多个定义处理 d 当多个定义存在时,应使用变体处理解析。 c (RS_ECUC_00082)
[TPS_ECUC_06038] BSW 模块合理性检查 d BSW 模块应提供配置规则和约束以支持合理性检查。 c (SRS_BSW_00167)
4.4 在 Ecu 配置制品中导航的规则
在 Ecu 配置制品中导航的规则定义了如何通过引用在不同的配置元素之间导航。
4.5 Post-build 时间一致性
Post-build 时间配置应保持一致性。
完整内容见原文 PDF 第 218-236 页
附录 A 配置步骤的可能实现(摘要)
附录 A 描述配置步骤的替代实现方法,包括:
- A.1 替代方法
- A.1.1 替代配置编辑器方法
- A.1.1.1 自定义编辑器(信息性)
- A.1.1.2 通用工具(信息性)
- A.1.1.3 工具框架(信息性)
- A.1.2 替代生成方法
- A.1.1 替代配置编辑器方法
完整内容见原文 PDF 第 237-241 页
附录 B AUTOSAR 服务组件(摘要)
附录 B 描述 AUTOSAR 服务组件与 ECU 配置的关系。
完整内容见原文 PDF 第 242-243 页
附录 C 术语表(摘要)
附录 C 提供了本文档中使用的 ECU 配置相关术语的术语表。
完整内容见原文 PDF 第 244-247 页
附录 D 变更历史(摘要)
附录 D 按 AUTOSAR 各版本之间详细列出元模型元素的重命名、删除、修改、添加情况。
主要小节:
- D.1 R4.0.1 与 R3.1.5 之间的变更历史
- D.2 R4.0.2 与 R4.0.1 之间的变更历史
- D.3 R4.0.3 与 R4.0.2 之间的变更历史
- D.4 R4.1.1 与 R4.0.3 之间的变更历史
- D.5 R4.1.2 与 R4.1.1 之间的变更历史
- D.6 R4.1.3 与 R4.1.2 之间的变更历史
- D.7 R4.2.1 与 R4.1.3 之间的变更历史
- D.8 R4.2.2 与 R4.2.1 之间的变更历史
- D.9 R4.3.0 与 R4.2.2 之间的变更历史
- D.10 R4.3.0 与 R4.3.1 之间的变更历史
- D.11 R4.3.1 与 R4.4.0 之间的变更历史
完整内容见原文 PDF 第 248-265 页
附录 E 提及的类表(摘要)
附录 E 列出了本文档中提及的所有 UML 类,主要包括:
EcucDefinitionCollectionEcucDefinitionElementEcucModuleDefEcucContainerDefEcucParamConfContainerDefEcucChoiceContainerDefEcucParameterDefEcucNumericalParamDefEcucTextualParamDefEcucEnumerationParamDefEcucBooleanParamDefEcucFunctionNameDefEcucLinkerSymbolDefEcucAbstractReferenceDefEcucReferenceDefEcucChoiceReferenceDefEcucIndexReferenceDefEcucInstanceReferenceDefEcucUriReferenceDefEcuConfigurationValuesModuleConfigurationEcucContainerValueEcucParameterValueEcucReferenceValueEcucInstanceReferenceValue- 等等
完整类表见原文 PDF 第 266-286 页
附录 F 可拆分元素(摘要)
附录 F 列出了本文档范围内的可拆分(atpSplitable)元素。
完整内容见原文 PDF 第 287 页
附录 G 变化点(摘要)
附录 G 列出了本文档范围内的变化点(atpVariation)。
完整内容见原文 PDF 第 288 页
翻译说明
- 保留内容:所有 API 标识符(
EcucModuleDef、EcucContainerDef等)、UML 类名、属性名、ARXML 标签、AUTOSAR 方框符⌈⌋、需求 ID(RS_ECUC_xxxxx、TPS_ECUC_xxxxx、SRS_BSW_xxxxx等)、文档标识号、XML 元素名(SHORT-NAME、ECUC-MODULE-DEF等)。 - 翻译内容:标题、描述性文字、章节概述、UML 类的语义说明、约束的措辞。
- 策略:封面、文档标识、变更历史、目录、第 1-4 章(核心内容)已翻译关键概念和主要 TPS_ECUC_* 约束;附录 A-G 采用摘要处理,并指向原文 PDF 的具体页码。
- 代码块:UML 类图使用代码块简化展示,详细图示见原文 PDF。
- 约束/规范标记:保留
[TPS_ECUC_xxxxx]、[RS_ECUC_xxxxx]、[SRS_BSW_xxxxx]、[constr_xxxx]等 ID 标识。
主要文档 ID:087(AUTOSAR_TPS_ECUConfiguration)
翻译版本:基于 AUTOSAR CP Release 4.4.0