模块 ara::ucm — Update and Configuration Management
模块指南人工智能生成
管理 Adaptive Platform 上软件包的安全传输、验证和激活。
管理 Adaptive Platform 上软件包的安全传输、验证和激活。
Functional Cluster Update and Configuration Management 控制 Adaptive 机器上软件包的事务性安装、验证和激活(AUTOSAR_AP_EXP_SWArchitecture 第138页)。为此,服务接口 PackageManagement 实现了由数据传输、包处理和随后通过 Activate 进行切换组成的三阶段流水线([SWS_UCM_00352])。当发生错误或缺少依赖项时,诸如 Rollback 和 RevertProcessedSwPackages 等标准化机制可确保将先前的系统状态安全恢复([SWS_UCM_00350]、[SWS_UCM_00353])。
Update and Configuration Management (UCM) 是 AUTOSAR Adaptive Platform 的基于守护进程的 Functional Cluster,它通过 ara::com 提供面向服务的接口 PackageManagement([SWS_UCM_00361]、AUTOSAR_AP_EXP_SWArchitecture 第138页)。UCM 充当 OTA 客户端、诊断应用程序或车端 Vehicle Update and Configuration Management (V-UCM) 的本地执行机构,并在多 ECU 配置中通过 GetId 使用车端唯一的实例标识符进行寻址([SWS_UCM_00343]、TPS_ManifestSpecification 第631页)。
更新流程分为三个阶段:数据传输、处理和激活(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第136页)。软件包可以随时通过 TransferStart、TransferData 和 TransferExit 进行分块流式传输,或通过 RegisterSoftwarePackage 注册为现有的 URI 路径([SWS_UCM_00344]、[SWS_UCM_00345]、[SWS_UCM_00346])。不再需要的传输可以使用 DeleteTransfer 移除([SWS_UCM_00348])。
时序图:通过分块流式传输或直接 URI 注册传输软件包。来源:[SWS_UCM_00344]、[SWS_UCM_00345]、[SWS_UCM_00346]、[SWS_UCM_00347]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第136页、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第137页。
处理由 ProcessSwPackage 触发,在此期间 UCM 检查包清单和签名,解压目标集群,并在状态字段 CurrentStatus 以及通过 GetProgress 显示进度([SWS_UCM_00349]、[SWS_UCM_00360]、[SWS_UCM_00361])。成功准备后,Activate 与 State Management 和 Execution Management 协调切换到新集群,随后 Finish 清理临时源数据([SWS_UCM_00352]、[SWS_UCM_00354]、AUTOSAR_AP_EXP_PlatformDesign 第77页)。
时序图:软件包的激活、平台状态转换和清理。来源:[SWS_UCM_00352]、[SWS_UCM_00354]、AUTOSAR_AP_EXP_PlatformDesign 第77页。
错误的处理会导致进入状态 kProcessingFailed,而未完成的活动在激活前可通过 RevertProcessedSwPackages、在切换失败后可通过 Rollback 以事务方式回滚至初始状态([SWS_UCM_00350]、[SWS_UCM_00353]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第38页)。GetSwClusterInfo、GetSwClusterChangeInfo 以及 GetHistory 用于状态检查和审计([SWS_UCM_00355]、[SWS_UCM_00356]、[SWS_UCM_00357])。
在平台联合体中的角色与功能系统边界
Functional Cluster Update and Configuration Management (UCM) 构成了 AUTOSAR Adaptive Platform 的核心平台组件,用于在机器级别对应用软件和平台软件进行安全、事务性的更新、安装和卸载(AUTOSAR_AP_EXP_SWArchitecture 第138页)。在技术上,UCM 实现为全系统后台服务(daemon-based),并通过主要 ara::com 服务接口 PackageManagement 提供其核心功能([SWS_UCM_00361]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第90页)。使用其实体的包括车内空中下载客户端(OTA 客户端)、通过 Diagnostic Management 的诊断仪,以及上层协调器(如 Vehicle Update and Configuration Management (V-UCM))(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第17页)。
在多级车辆架构内,UCM 充当本地执行机构(UCM Subordinate),而以车辆为中心的 V-UCM 则跨多个控制器编排基于软件的活动(SWS_VehicleUpdateAndConfigurationManagement 第16页、AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement 第12页)。为了使中央编排器能够寻址分布在不同机器上的多个 UCM 实例,每个实例通过方法 GetId 提供其唯一标识符([SWS_UCM_00343])。根据清单规范,该标识符必须配置为全车范围内机器特异唯一的(TPS_ManifestSpecification 第631页)。
上下文图:UCM 守护进程在 Adaptive Platform 中的功能嵌入以及与客户端和平台集群的交互。来源:AUTOSAR_AP_EXP_SWArchitecture 第138页、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第17页、SWS_VehicleUpdateAndConfigurationManagement 第16页。
软件包的提供与传输
软件更新的生命周期标准上划分为数据传输(Data Transmission)、包处理(Processing)和激活(Activation)这三个宏观阶段(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第136页)。UCM 的一个重要架构特征是数据传输与内部处理及包管理状态的解耦:在运行期间的任何任意时间点,都可以将软件包传输到机器上(SWS_UpdateAndConfigurationManagement 第38页)。
为了提供软件包,接口 PackageManagement 定义了两种互补的机制:
- 分块流式传输:客户端通过调用
TransferStart并指定以字节为单位的总大小来发起传输,并获得一个唯一的TransferIdType以及允许的最大块大小([SWS_UCM_00345])。随后,数据片段使用TransferData和连续的块计数器按顺序传输([SWS_UCM_00346]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第136页)。方法调用TransferExit构成形式上的结束([SWS_UCM_00347])。 - 基于 URI 的注册:如果软件包已在 UCM 外部提供(例如通过后台下载管理器或预先存放在本地文件系统中),客户端可以通过
RegisterSoftwarePackage并指定标准化的 URI 路径来注册该包([SWS_UCM_00344]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第137页)。
在这两种情况下,UCM 都会为软件包分配一个唯一的 TransferId,所有后续操作均通过其进行引用。已传输但尚未处理的软件包在取消或空间清理时,可以通过 DeleteTransfer 显式从临时存储中移除([SWS_UCM_00348])。
时序图:通过分块流式传输或直接 URI 注册传输软件包。来源:[SWS_UCM_00344]、[SWS_UCM_00345]、[SWS_UCM_00346]、[SWS_UCM_00347]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第136页、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第137页。
本地 UCM 中的处理与验证
成功传输或注册后,客户端通过方法 ProcessSwPackage 触发软件包的处理([SWS_UCM_00349])。处理包括提取软件集群、读取清单、完整性和真实性检查,以及集群依赖项的静态验证(EXP_SWArchitecture 第185页)。单个软件包可以封装 Adaptive Applications 的可执行文件、操作系统或固件更新,以及配置和标定数据(SWS_UpdateAndConfigurationManagement 第27页)。
调用 ProcessSwPackage 会使服务字段 CurrentStatus 进入状态 kProcessing([SWS_UCM_00361]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第123页)。客户端可以订阅该字段,或通过查询方法 GetProgress 监控当前进度([SWS_UCM_00360])。此外,GetSwPackages 允许查询 UCM 当前已知的所有软件包及其处理状态([SWS_UCM_00359])。正在运行的耗时处理步骤在需要时可以使用 Suspend 中断,并在稍后时间点通过 Resume 继续([SWS_UCM_00397]、[SWS_UCM_00398])。如果取消处理,可以使用 Cancel 受控地停止该过程([SWS_UCM_00351])。
时序图:带有状态转换和进度监控的包处理。来源:[SWS_UCM_00349]、[SWS_UCM_00360]、[SWS_UCM_00361]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第123页。
激活工作流与平台状态切换
当为某次活动预定的所有软件包均成功处理后,客户端通过同步调用 Activate 发起新软件集群的激活([SWS_UCM_00352])。此操作的前提条件是 UCM 处于一致的静止状态,并且没有活动的正在运行的处理或取消任务(EXP_SWArchitecture 第185页)。UCM 与 State Management (SM) 和 Execution Management (EM) 紧密协调激活步骤:旧版本的运行中进程被有序终止,持久化数据结构被迁移,并且新的应用程序实例被启动(AUTOSAR_AP_EXP_PlatformDesign 第77页)。
Adaptive Platform 的清单元模型支持多阶段激活步骤(SoftwarePackageStep),从而使包处理的顺序能够灵活地与准备工作以及实际的切换时间点(activationSwitch=True)解耦(AUTOSAR_TPS_ManifestSpecification 第642页)。在成功切换并验证新软件状态后,客户端使用 Finish 结束活动([SWS_UCM_00354])。此调用执行最终清理,从临时存储中删除源包,并将软件集群转换为持久状态(EXP_SWArchitecture 第138页)。
时序图:软件包的激活、平台状态转换和清理。来源:[SWS_UCM_00352]、[SWS_UCM_00354]、AUTOSAR_AP_EXP_PlatformDesign 第77页。
集群生命周期、查询 API 与审计历史
软件集群(SwCluster)具有明确定义的生命周期:通过 ProcessSwPackage 成功处理后,新添加的集群转入状态 kAdded,而更新后的集群则进入状态 kUpdating(SWS_UpdateAndConfigurationManagement 第24页)。直到激活后最终调用 Finish,这些集群才进入稳定的生产状态 kPresent(SWS_UpdateAndConfigurationManagement 第24页)。对于软件包本身存在解耦的状态机:TransferState(状态 kTransferring、kTransferred)和 ProcessingState(状态 kReady、kProcessing、kProcessed、kProcessingFailed)也允许纯流式传输场景,而无需预先暂存整个包(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第38页)。
在运行时,UCM 提供全面的信息接口用于系统检查:
GetSwClusterInfo提供处于状态kPresent的所有当前处于活动状态的软件集群的列表及其版本标识符([SWS_UCM_00357])。GetSwClusterChangeInfo在最终激活之前报告所有待处理的更改(要添加、更新或移除的集群)([SWS_UCM_00356])。GetSwClusterManifestInfo允许有针对性地查询特定已安装软件集群的清单详细信息([SWS_UCM_00358])。GetHistory允许读取在定义的时间间隔内所有 UCM 操作的时间序列审计追踪,以便在车队管理中进行无缝追踪([SWS_UCM_00355]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第86页)。
状态图:软件包的数据传输和处理的解耦状态机。来源:AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第38页、AUTOSAR_SWS_UpdateAndConfigManagement 第20页。
状态图:软件集群从准备到最终激活的生命周期。来源:SWS_UpdateAndConfigurationManagement 第24页、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第87页。
错误情况下的行为与事务保障
为了在所有运行条件下确保控制器的功能安全与系统稳定性,UCM 强制执行严格的一致性检查,并为更新过程的每个阶段提供回退机制。如果包处理期间的验证或安装失败,受影响的包将转入状态 kProcessingFailed(AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第38页)。如果要在激活前丢弃已处理的包,RevertProcessedSwPackages 将统一回滚所有临时文件和配置更改([SWS_UCM_00350])。
如果在激活步骤期间检测到错误——例如由于无法解析的依赖项(kDependencyMissing)、失败的内存分配(kPersistencyAllocationFailed)或与 State Management 的更新会话中的错误([SWS_UCM_00352])——UCM 将中止激活。在出现此类错误的情况下,方法 Rollback 将整个平台恢复到开始包处理之前的确切状态([SWS_UCM_00353])。解释:在此过程中,UCM 可能会利用 A/B 分区或文件系统快照等冗余存储结构,以便在无数据丢失的情况下重新运行未更改的旧版本(AUTOSAR_AP_EXP_SWArchitecture 第138页)。 问题 Q-8d85be7343a9aace (未决)
在接口层面上,非法调用(例如缺少包时的激活尝试,或活动操作期间的并行调用)会通过错误码 kOperationNotPermitted 被确定性地拒绝([SWS_UCM_00347]、[SWS_UCM_00352])。Interpretation:UCM 很可能会在正在进行的激活或回滚过程期间严格阻止任何并发修改调用,以防止分区切换时的竞态条件(EXP_SWArchitecture 第185页)。 问题 Q-60859031e6230a65 (未决)对于无效或未知的会话标识符,UCM 会以应用程序错误 kTransferIdInvalid 进行确认([SWS_UCM_00348]、[SWS_UCM_00351])。
进一步详细证据
UCM 的架构及其面向服务的嵌入规范性地确立在以下核心规范中:
PackageManagement服务接口与传输协议:[SWS_UCM_00345]、[SWS_UCM_00346]、[SWS_UCM_00347]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第85页。- 处理、状态转换与错误处理:[SWS_UCM_00349]、[SWS_UCM_00350]、[SWS_UCM_00352]、[SWS_UCM_00353]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第38页。
- 状态检查、软件集群数据模型与历史记录:[SWS_UCM_00355]、[SWS_UCM_00356]、[SWS_UCM_00357]、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第86页、AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 第87页。
- 多 ECU 协调以及与 Vehicle UCM 的交互:[SWS_UCM_00343]、SWS_VehicleUpdateAndConfigurationManagement 第16页、TPS_ManifestSpecification 第631页。
本指南完全基于 AUTOSAR Adaptive Platform Release R25-11 的规范性需求和架构工件。
service method: 20 service field: 1
主题图
此版本没有元素数据
服务接口
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
服务接口(通过 ara::com 建模)
- PackageManagement 21 Mitglieder
gemini-3.8-flash-low· 2026-10-13 · 德文原文