AUTOSAR图解==>AUTOSAR_TR_AIMeasurementCalibrationDiagnostics
AUTOSAR 测量、校准和诊断技术分析
目录
- 1. 引言
- 2. AUTOSAR MCD架构概述
- 2.1 整体架构
- 2.2 数据原型与接口关系
- 3. FlatMap与显示名称生成
- 3.1 FlatMap机制
- 3.2 显示名称生成流程
- 4. 多实例组件命名策略
- 5. 结论与建议
1. 引言
AUTOSAR(汽车开源系统架构)标准为汽车电子控制单元(ECU)软件开发提供了一套完整的框架和方法论。其中,测量、校准和诊断(MCD)是AUTOSAR中至关重要的一部分,它们支持软件参数调整、运行时数据监控以及系统诊断,对于汽车软件的开发、调试和维护起着关键作用。
本文基于AUTOSAR技术报告《AUTOSAR_TR_AIMeasurementCalibrationDiagnostics》,对AUTOSAR中的MCD相关概念、架构和工作机制进行深入分析和解释。
2. AUTOSAR MCD架构概述
2.1 整体架构
AUTOSAR MCD架构由应用层、中间层和基础层组成,各层之间通过定义良好的接口和数据结构进行交互。下图展示了AUTOSAR MCD的整体架构:
图2.1 AUTOSAR MCD架构
在此架构中:
- 应用层:包含软件组件(
SwComponentType
)和各类接口(SenderReceiverInterface
、ParameterInterface
、ClientServerInterface
),以及数据原型(AutosarDataPrototype
) - 中间层:包含RTE(运行时环境)和
FlatMap
(平面映射)机制,以及DisplayNameGeneration
(显示名称生成)等功能模块 - 基础层:包含校准数据交换格式(如ASAM MCD-2 MC,即A2L格式)和各种测量、校准工具
应用层中的软件组件通过接口定义并交互,中间层的RTE提供运行时支持,而FlatMap
机制则将具有层次结构的AUTOSAR数据模型转换为平面结构,便于校准工具使用。
2.2 数据原型与接口关系
在AUTOSAR中,数据原型(DataPrototype)用于定义各类数据元素,接口(Interface)则定义了组件间的交互方式。下图展示了数据原型与接口的关系:
图2.2 AUTOSAR数据原型与接口关系
从图中可以看出:
-
**
AutosarDataPrototype
**是所有数据原型的基类,包括:VariableDataPrototype
:用于SenderReceiverInterface
中的变量定义ParameterDataPrototype
:用于ParameterInterface
中的参数定义ArgumentDataPrototype
:用于ClientServerInterface
中Operation
的参数
-
**
PortInterface
**是所有接口的基类,包括:SenderReceiverInterface
:用于数据交换、状态传递和事件通知ParameterInterface
:用于配置参数、校准常量和可调整值ClientServerInterface
:定义请求/响应型通信的操作和参数
-
数据原型的**
SwCalibrationAccess
**属性决定了它是否可以被测量或校准:NOT_ACCESSIBLE
:不可访问READ_ONLY
:只读(可测量)READ_WRITE
:读写(可测量和校准)
此架构确保了AUTOSAR组件间通信的标准化,同时为测量和校准工具提供了统一的数据访问机制。
3. FlatMap与显示名称生成
3.1 FlatMap机制
FlatMap
是AUTOSAR中一个关键概念,它将具有层次结构的AUTOSAR数据模型转换为平面结构,便于校准工具使用。下图展示了FlatMap
与显示名称生成的关系:
图3.1 AUTOSAR FlatMap与显示名称生成
FlatMap
的核心组成部分:
-
FlatInstanceDescriptor
:用于描述展平后的数据实例,包含:fullQualifiedName
:完整限定名segment1~segment4
:分段存储的名称部分displayName
:最终生成的显示名称
-
AliasNameSet
和AliasName
:提供显示名称的管理机制,允许:- 为同一数据元素设置不同上下文的别名
- 支持手动定义和自动生成的名称共存
FlatMap
通过分析AUTOSAR模型(包括组件、端口、接口和数据原型),创建FlatInstanceDescriptor
,并基于一定规则生成显示名称,最终供校准工具使用。
3.2 显示名称生成流程
显示名称(DisplayName
)是测量和校准工具中使用的标识符,必须具有唯一性和可读性。下图展示了显示名称的生成流程:
图3.2 AUTOSAR显示名称生成流程
显示名称生成流程包括:
-
识别需要显示名称的数据原型:只有
SwCalibrationAccess
设置为readOnly
或readWrite
的数据原型才需要生成显示名称 -
判断是否已有手动定义的显示名称:如果已存在,则直接使用;否则开始自动生成
-
自动生成过程:
- 收集原型层次模型信息
- 创建
FlatInstanceDescriptor
- 应用分段命名策略
- 根据物理或逻辑意义划分(使用P/L-List)
- 处理多实例组件
- 应用命名长度约束(控制在31字符内,最好不超过16字符)
- 检查并避免名称冲突
-
保存和导出:将生成的显示名称保存在AUTOSAR模型中,或导出到校准数据交换格式(如A2L)
此流程确保了生成的显示名称既符合AUTOSAR规范,又满足测量和校准工具的要求。
4. 多实例组件命名策略
在AUTOSAR系统中,同一类型的组件可能有多个实例,为确保这些实例在测量和校准工具中有唯一且有意义的名称,AUTOSAR定义了特定的多实例命名策略:
图4.1 AUTOSAR多实例组件命名示例
上图展示了两种典型的多实例命名场景:
-
坐标轮(
CoordinatorWheels
)示例:- 使用位置标识符(FL、FR、RL、RR)区分不同实例
- 例如:原始数据名称
WheelSpeed
在前左轮实例中变为pWheelSpeedFL
- 前缀
p
表示这是一个物理信号
-
ExtrLi
(提取限制)示例:- 根据语义添加前缀(如
Engine
、Gearbox
) - 例如:原始数据名称
LimpHome
在发动机实例中变为lEngLimpHome
- 前缀
l
表示逻辑信号,Eng
表示Engine
- 根据语义添加前缀(如
这种命名策略确保了:
- 不同项目中具有相同语义的实例拥有相同的显示名称,即使实例数量不同
- 命名保持一致性和可读性
- 基于物理位置或功能语义的命名便于理解和分类
5. 结论与建议
基于对AUTOSAR测量、校准和诊断机制的分析,我们得出以下结论和建议:
-
架构设计:
- AUTOSAR的分层架构为测量和校准提供了灵活且标准化的解决方案
FlatMap
机制有效解决了层次结构数据模型到平面工具接口的转换问题
-
命名策略:
- 自动生成的显示名称遵循严格的规则,确保唯一性和可读性
- 多实例命名策略解决了同类组件多实例的识别问题
- 物理/逻辑(P/L)分类增强了数据的结构化管理
-
应用建议:
- 严格遵循AUTOSAR规范中的
SwCalibrationAccess
属性设置 - 根据需要适当使用手动定义的显示名称
- 优先考虑自动生成机制,确保名称的一致性和稳定性
- 对于复杂系统,建议使用物理/逻辑分类(P/L-List)提高数据管理效率
- 严格遵循AUTOSAR规范中的
AUTOSAR测量、校准和诊断机制为汽车软件开发提供了强大的支持,正确理解和应用这些机制,将有助于提高开发效率和软件质量。