当前位置: 首页 > backend >正文

AUTOSAR图解==>AUTOSAR_TR_AIMeasurementCalibrationDiagnostics

AUTOSAR 测量、校准和诊断技术分析

AUTOSAR MCD机制详解与最佳实践

目录

  • 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)和各类接口(SenderReceiverInterfaceParameterInterfaceClientServerInterface),以及数据原型(AutosarDataPrototype
  • 中间层:包含RTE(运行时环境)和FlatMap(平面映射)机制,以及DisplayNameGeneration(显示名称生成)等功能模块
  • 基础层:包含校准数据交换格式(如ASAM MCD-2 MC,即A2L格式)和各种测量、校准工具

应用层中的软件组件通过接口定义并交互,中间层的RTE提供运行时支持,而FlatMap机制则将具有层次结构的AUTOSAR数据模型转换为平面结构,便于校准工具使用。

2.2 数据原型与接口关系

在AUTOSAR中,数据原型(DataPrototype)用于定义各类数据元素,接口(Interface)则定义了组件间的交互方式。下图展示了数据原型与接口的关系:

在这里插入图片描述

图2.2 AUTOSAR数据原型与接口关系

从图中可以看出:

  1. **AutosarDataPrototype**是所有数据原型的基类,包括:

    • VariableDataPrototype:用于SenderReceiverInterface中的变量定义
    • ParameterDataPrototype:用于ParameterInterface中的参数定义
    • ArgumentDataPrototype:用于ClientServerInterfaceOperation的参数
  2. **PortInterface**是所有接口的基类,包括:

    • SenderReceiverInterface:用于数据交换、状态传递和事件通知
    • ParameterInterface:用于配置参数、校准常量和可调整值
    • ClientServerInterface:定义请求/响应型通信的操作和参数
  3. 数据原型的**SwCalibrationAccess**属性决定了它是否可以被测量或校准:

    • NOT_ACCESSIBLE:不可访问
    • READ_ONLY:只读(可测量)
    • READ_WRITE:读写(可测量和校准)

此架构确保了AUTOSAR组件间通信的标准化,同时为测量和校准工具提供了统一的数据访问机制。


3. FlatMap与显示名称生成

3.1 FlatMap机制

FlatMap是AUTOSAR中一个关键概念,它将具有层次结构的AUTOSAR数据模型转换为平面结构,便于校准工具使用。下图展示了FlatMap与显示名称生成的关系:

在这里插入图片描述

图3.1 AUTOSAR FlatMap与显示名称生成

FlatMap的核心组成部分:

  1. FlatInstanceDescriptor:用于描述展平后的数据实例,包含:

    • fullQualifiedName:完整限定名
    • segment1~segment4:分段存储的名称部分
    • displayName:最终生成的显示名称
  2. AliasNameSetAliasName:提供显示名称的管理机制,允许:

    • 为同一数据元素设置不同上下文的别名
    • 支持手动定义和自动生成的名称共存

FlatMap通过分析AUTOSAR模型(包括组件、端口、接口和数据原型),创建FlatInstanceDescriptor,并基于一定规则生成显示名称,最终供校准工具使用。

3.2 显示名称生成流程

显示名称(DisplayName)是测量和校准工具中使用的标识符,必须具有唯一性和可读性。下图展示了显示名称的生成流程:

在这里插入图片描述

图3.2 AUTOSAR显示名称生成流程

显示名称生成流程包括:

  1. 识别需要显示名称的数据原型:只有SwCalibrationAccess设置为readOnlyreadWrite的数据原型才需要生成显示名称

  2. 判断是否已有手动定义的显示名称:如果已存在,则直接使用;否则开始自动生成

  3. 自动生成过程

    • 收集原型层次模型信息
    • 创建FlatInstanceDescriptor
    • 应用分段命名策略
    • 根据物理或逻辑意义划分(使用P/L-List)
    • 处理多实例组件
    • 应用命名长度约束(控制在31字符内,最好不超过16字符)
    • 检查并避免名称冲突
  4. 保存和导出:将生成的显示名称保存在AUTOSAR模型中,或导出到校准数据交换格式(如A2L)

此流程确保了生成的显示名称既符合AUTOSAR规范,又满足测量和校准工具的要求。


4. 多实例组件命名策略

在AUTOSAR系统中,同一类型的组件可能有多个实例,为确保这些实例在测量和校准工具中有唯一且有意义的名称,AUTOSAR定义了特定的多实例命名策略:

在这里插入图片描述

图4.1 AUTOSAR多实例组件命名示例

上图展示了两种典型的多实例命名场景:

  1. 坐标轮(CoordinatorWheels)示例

    • 使用位置标识符(FL、FR、RL、RR)区分不同实例
    • 例如:原始数据名称WheelSpeed在前左轮实例中变为pWheelSpeedFL
    • 前缀p表示这是一个物理信号
  2. ExtrLi(提取限制)示例

    • 根据语义添加前缀(如EngineGearbox
    • 例如:原始数据名称LimpHome在发动机实例中变为lEngLimpHome
    • 前缀l表示逻辑信号,Eng表示Engine

这种命名策略确保了:

  • 不同项目中具有相同语义的实例拥有相同的显示名称,即使实例数量不同
  • 命名保持一致性和可读性
  • 基于物理位置或功能语义的命名便于理解和分类

5. 结论与建议

基于对AUTOSAR测量、校准和诊断机制的分析,我们得出以下结论和建议:

  1. 架构设计

    • AUTOSAR的分层架构为测量和校准提供了灵活且标准化的解决方案
    • FlatMap机制有效解决了层次结构数据模型到平面工具接口的转换问题
  2. 命名策略

    • 自动生成的显示名称遵循严格的规则,确保唯一性和可读性
    • 多实例命名策略解决了同类组件多实例的识别问题
    • 物理/逻辑(P/L)分类增强了数据的结构化管理
  3. 应用建议

    • 严格遵循AUTOSAR规范中的SwCalibrationAccess属性设置
    • 根据需要适当使用手动定义的显示名称
    • 优先考虑自动生成机制,确保名称的一致性和稳定性
    • 对于复杂系统,建议使用物理/逻辑分类(P/L-List)提高数据管理效率

AUTOSAR测量、校准和诊断机制为汽车软件开发提供了强大的支持,正确理解和应用这些机制,将有助于提高开发效率和软件质量。

http://www.xdnf.cn/news/5738.html

相关文章:

  • 软考 系统架构设计师系列知识点之杂项集萃(57)
  • IIS URL静态化 伪静态组件ISAPI_Rewrite安装配置 伪静态不生效解决办法 避坑版
  • 音视频学习:使用NDK编译FFmpeg动态库
  • 【002】renPy android端启动流程分析
  • 主播美颜API常见问题解析:兼容性、性能与SDK效果调优
  • 【MCP】其他MCP服务((GitHub)
  • 001大模型-认识大模型以及大模型应用场景
  • docker gaussdb常用命令
  • 从MCU到SoC的开发思维转变
  • 【Python】杂乱-转义字符
  • 安装 NVIDIA 驱动 570.133.20 的自动化脚本
  • 鲁滨逊归结原理详解:期末考点+解题指南
  • 【AI论文】HunyuanCustom:一种多模态驱动的定制视频生成架构
  • 自适应蒙特卡洛定位-AMCL
  • HomeBank:免费且强大的个人财务管理软件
  • 【MySQL】牛客网sql语句简单例题,sql入门
  • 使用Daemonset部署日志收集守护进程
  • snoop操作怎么维护一致性?
  • 射频ADRV9026驱动
  • 供应链学习
  • 电脑端实用软件合集:土拨鼠+Rufus+实时网速监控工具
  • IDEA+git将分支合并到主分支、IDEA合并分支
  • 力扣2094题解
  • langchain4j中使用milvus向量数据库做RAG增加索引
  • 激光雷达点云畸变消除:MCU vs CPU 方案详解
  • AI Agent(11):垂直行业应用
  • 如何避免Java中的ConcurrentModificationException
  • 网页jupyter如何显示jpipvenv虚拟环境
  • android setImageResource和setBackgroundResource区别
  • 【Dv3Admin】工具视图配置文件解析