AUTOSAR 自适应平台机器配置详解
目录
1. 概述
AUTOSAR(AUTomotive Open System ARchitecture)自适应平台(Adaptive Platform,简称AP)是为支持高度自动驾驶和网联功能而设计的车载软件架构。在AUTOSAR AP中,机器配置(Machine Configuration)是一项关键机制,它定义了如何配置AP系统中的各种功能集群和组件。
本文将深入探讨AUTOSAR AP机器配置(APMC)的架构、元模型关系、建模策略以及参数与引用类型,帮助读者全面理解AP系统的配置机制。与AUTOSAR经典平台(Classic Platform,简称CP)的ECU配置(EcuC)相比,AP机器配置采用了更为简化和灵活的方法,以适应现代汽车软件的复杂需求。
2. AUTOSAR AP机器配置架构
2.1 整体架构
AUTOSAR AP机器配置主要分为两大部分:定义侧(Definition Side)和值侧(Value Side)。定义侧描述了配置的结构和规则,而值侧则存储具体的配置值。这种分离使得配置结构与实际值可以独立管理,提高了灵活性。
图2.1:AUTOSAR AP机器配置概览架构
从上图可以看出,自适应平台机器配置主要包含以下关键元素:
-
定义侧(Definition Side)
- Parameter定义:定义各种参数类型,包括枚举参数、布尔参数、整数参数、浮点参数和字符串参数
- Reference定义:定义各种引用类型,包括容器引用、外部引用和实例引用
- 参数和引用都使用特定的类型系统,可以满足不同场景的配置需求
-
值侧(Value Side)
- Parameter值:存储具体参数值,分为数值参数值和文本参数值
- Reference值:存储具体引用值,指向定义侧中定义的元素
-
元模型关系
- M2元模型与M1模型之间的关系,遵循严格的结构定义
- 序列化关系,包括从元模型到XML Schema,从模型到XML文件
-
设计模型与配置模型关系
- 设计模型可以派生到配置模型,支持多种派生策略
这种分层架构使得AUTOSAR AP机器配置更加灵活,能够适应多种配置场景,同时保持与设计模型的一致性。
2.2 类结构详解
为了更清晰地理解AUTOSAR AP机器配置的内部结构,下图展示了定义侧和值侧的详细类结构:
图2.2:AUTOSAR AP机器配置类图
从类图中可以看出以下重要结构:
-
定义侧类层次结构
- MachineDesign:机器设计的顶层类,包含多个配置元素
- ConfigurationElement:所有配置元素的抽象基类,提供通用属性如
shortName
和desc
- Container、Parameter和Reference:从ConfigurationElement继承的三种主要元素类型
- 参数类型体系:从Parameter继承的具体参数类型,如
EnumerationParameter
、BooleanParameter
等 - 引用类型体系:从Reference继承的具体引用类型,如
ContainerReference
、ForeignReference
等
-
值侧类层次结构
- ConfigurationValue:所有配置值的抽象基类
- ContainerValue、ParameterValue和ReferenceValue:从ConfigurationValue继承的三种主要值类型
- NumericalValue和TextualValue:从ParameterValue继承的具体参数值类型
-
关键关系
- 定义侧和值侧之间通过引用关系连接,值侧元素引用定义侧中的相应元素
- Container可以包含多个ConfigurationElement,形成层次化的配置结构
- ContainerValue可以包含多个ConfigurationValue,对应定义侧的结构
这种类结构设计具有良好的可扩展性和灵活性,允许配置在不同功能域之间保持一致性,同时支持特定功能集群的定制化需求。
3. 元模型与序列化关系
3.1 元模型层级
AUTOSAR采用多级元建模方法,在机器配置中这一点尤为重要。以下图表展示了元模型层级和序列化关系:
图3.1:AUTOSAR AP元模型层级和序列化关系图
从图中可以看出三种关键的层级关系:
-
M2与M1模型关系
- M2元模型:定义AUTOSAR模型的"语法",是创建其他模型的基础
- M1模型:依据M2元模型创建的具体模型,如机器配置模型
- M2元模型序列化为XML Schema,而M1模型序列化为XML文件
- XML文件需要符合由XML Schema定义的结构规则
-
参数定义与参数值关系
- 参数定义侧:定义参数的结构和规则,相当于"语法"
- 参数值侧:存储具体参数值,必须符合定义侧设定的规则
- 定义侧序列化为参数定义XML,值侧序列化为参数值XML
- 参数值XML的结构由参数定义XML决定
-
综合层级关系
- M2元模型定义M1模型(包括定义侧和值侧)的结构
- 定义侧(M1)定义值侧(M1)的结构
- 所有XML序列化产物之间存在层级验证关系
这种多层元建模方法的关键点是:
- 值侧必须同时遵循M2元模型定义的结构规则
- 值侧还必须遵循定义侧确定的内容规则
- 这种双重约束确保了配置的正确性和一致性
3.2 参数定义与值关系
在AUTOSAR AP机器配置中,参数定义和参数值之间的关系是基础性的概念。定义侧建立了配置的"语法",而值侧则按照这个"语法"提供具体的配置数据。
这种分离带来几个关键优势:
- 配置变更简化:可以独立更新配置值,而不需要修改配置结构
- 多配置支持:同一配置定义可以有多套配置值,适用于不同部署场景
- 验证自动化:系统可以根据定义侧的规则自动验证值侧的正确性
- 工具链支持:建模工具可以基于定义侧提供更好的配置编辑体验
4. 建模策略
AUTOSAR AP提供了多种建模策略,用于不同场景下设计模型和配置模型的整合。下图展示了这些建模策略:
图4.1:AUTOSAR AP建模策略图
4.1 仅设计模型
在某些特殊场景下,可以完全从设计模型获取配置信息,无需创建单独的配置模型:
- 适用场景:配置需求简单,或者设计模型中已包含足够的配置信息
- 工作方式:直接从设计模型中提取需要的配置信息
- 优势:减少模型冗余,简化工作流程
- 局限性:仅适用于少数特殊情况,不适合复杂配置场景
4.2 完全派生策略
将设计模型完全派生到配置模型的策略类似于AUTOSAR经典平台中的Com配置方法:
- 工作方式:所有相关设计信息复制到配置模型中
- 特点:派生完成后,设计模型可以不再需要
- 优势:配置模型包含所有必要信息,独立完整
- 局限性:配置模型可能变得庞大且复杂,存在信息冗余
4.3 部分派生策略
部分派生策略有两种变体:使用平面引用和使用实例引用:
-
使用平面引用的部分派生
- 只将部分设计信息派生到配置模型
- 配置模型使用平面引用指向原始设计模型
- 不使用类型-原型模式
- 设计模型必须保留
-
使用实例引用的部分派生
- 同样只派生部分设计信息
- 配置模型使用实例引用指向设计模型
- 主要针对使用类型-原型模式的元模型
- 设计模型必须保留
部分派生策略的主要优势是减少了信息冗余,同时保持了设计模型和配置模型之间的联系。
4.4 仅配置模型
在某些场景下,可能不存在相关的设计模型,所有配置都在M1级别直接完成:
- 适用场景:无需从设计模型中获取信息的纯配置场景
- 工作方式:直接在配置模型中创建所有必要的配置元素
- 局限性:这种方法在AUTOSAR中较少使用,通常是特殊情况
4.5 厂商扩展策略
厂商可以基于AUTOSAR标准的功能集群定义创建自己的扩展:
- 工作方式:从标准功能集群定义派生厂商特定功能集群定义
- 扩展能力:可以添加厂商特定的容器、参数或引用
- 语言一致性:使用与标准定义相同的语言元素
- 优势:便于工具开发,允许后续标准化
这种厂商扩展策略使得AUTOSAR生态系统可以在保持标准兼容性的同时,满足特定厂商的需求。
5. 参数与引用详解
5.1 参数类型
AUTOSAR AP机器配置支持多种参数类型,以满足不同的配置需求:

图5.1:AUTOSAR AP参数与引用详细结构图
从图中可以看出,AUTOSAR AP支持以下参数类型:
-
枚举参数(EnumerationParameter)
- 定义有限的选项集合(如
NetworkState
可选值为"OFFLINE"、“ONLINE”、“PREPARED”) - 默认值必须是选项列表中的一个值
- 适用于离散选项场景
- 定义有限的选项集合(如
-
布尔参数(BooleanParameter)
- 表示开/关、是/否类型的配置(如
IsEnabled
) - 默认值为
true
或false
- 适用于二元选择场景
- 表示开/关、是/否类型的配置(如
-
整数参数(IntegerParameter)
- 包含可选的最小值和最大值约束(如
RetryCount
的范围为0-10) - 可以设置默认值
- 适用于需要整数配置的场景
- 包含可选的最小值和最大值约束(如
-
浮点参数(FloatParameter)
- 支持带小数点的数值(如
Timeout
的范围为0.0-60.0) - 可以设置最小值、最大值和默认值
- 适用于需要精确数值的场景
- 支持带小数点的数值(如
-
字符串参数(StringParameter)
- 用于文本类型的配置值(如
InstanceName
) - 可以设置默认值
- 适用于需要自由文本的场景
- 用于文本类型的配置值(如
5.2 引用类型
AUTOSAR AP机器配置支持三种主要的引用类型:
-
容器引用(ContainerReference)
- 引用配置模型内部的其他容器(如
LoggerConfiguration
引用LoggerContainer
) - 指定
targetType
属性确定引用目标的类型 - 用于在配置元素之间建立关联
- 引用配置模型内部的其他容器(如
-
外部引用(ForeignReference)
- 引用外部命名空间中的元素(如
ServiceInterface
引用AUTOSAR/ServiceInterfaces命名空间中的元素) - 包含
referencedType
和targetNamespace
属性 - 用于连接设计模型或其他独立模型中的元素
- 引用外部命名空间中的元素(如
-
实例引用(InstanceReference)
- 引用特定上下文路径中的实例(如
ComInstance
引用特定路径下的通信实例) - 包含
contextPath
指定引用上下文 - 适用于指向具体部署实例的场景
- 引用特定上下文路径中的实例(如
5.3 容器结构
容器是AUTOSAR AP机器配置中组织参数和引用的基本结构:
-
定义侧容器
- 提供层次化的组织结构(如
NetworkManagementContainer
) - 包含参数、引用和子容器
- 定义配置的整体结构和关系
- 提供层次化的组织结构(如
-
值侧容器
- 对应定义侧的容器结构(如
NetworkManagementValue
) - 包含实际的参数值和引用值
- 必须遵循定义侧确定的结构
- 对应定义侧的容器结构(如
容器结构使得配置可以按功能域或功能集群进行模块化组织,提高了配置的可读性和维护性。
6. 总结
AUTOSAR自适应平台的机器配置(APMC)提供了一个灵活且功能强大的机制,用于配置自适应平台系统的各个方面。相比于经典平台的ECU配置,它采用了更为简化和现代化的方法。
AUTOSAR AP机器配置的主要特点包括:
- 定义侧与值侧分离:清晰分离配置结构和具体值,提高了灵活性
- 丰富的参数与引用类型:满足各种配置需求的类型系统
- 多层元模型架构:基于AUTOSAR元模型的多级建模方法
- 多种建模策略:支持不同场景下的设计模型与配置模型集成
- 容器化组织结构:层次化组织配置元素,提高可维护性
- 厂商扩展能力:支持厂商特定扩展,满足个性化需求
通过这些机制,AUTOSAR AP机器配置能够满足现代汽车软件中日益增长的复杂性和灵活性需求,同时保持与AUTOSAR标准的一致性和兼容性。
对于开发人员和架构师而言,深入理解AUTOSAR AP机器配置的结构和原理,有助于设计更加灵活、可维护和可扩展的车载软件系统,为高级驾驶辅助系统(ADAS)和自动驾驶功能提供坚实的软件基础。