DEENESPTFRRUARHIKOZHNL

模块 ara::sm — State Management

Spezifikation: AUTOSAR_AP_SWS_StateManagement.pdf (R25-11) · 51 API-Records

模块指南人工智能生成

编排 Adaptive Machine 的系统状态、功能组、节能模式和软件更新。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 35b1c28da865 来源 未决问题(2)
因果锚点:R25-11 自 R25-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

编排 Adaptive Machine 的系统状态、功能组、节能模式和软件更新。

Adaptive Cluster State Management 与 Execution Management 及 UCM 协同控制 Adaptive Machine 的全系统运行模式、功能组状态和软件更新阶段 EXP SWArchitecture 第51页。它通过配置的表格和动作列表确定性地处理迁移触发条件,通过 StateMachineNotification 报告中间状态,并通过 Hub-Satellite 模式编排 Suspend-to-RAM [SWS_SM_91107],[SWS_SM_81110]。诸如对更新许可的严格检查以及强制性的 ANY 错误捕获路径等边界条件确保了平台的稳健运行 [SWS_SM_91108]。

功能集群 State Management (SM) 在 AUTOSAR Adaptive Platform 中充当中央平台守护程序,用于控制机器状态、功能组状态以及执行模式 EXP SWArchitecture 第51页。它将控制应用程序(SMControlApplication)中特定于车辆的决策逻辑与 Execution Management (EM) 的实际进程管理严格解耦 EXP PlatformDesign 第40页。除厂商专属实现外,AUTOSAR 还提供了一种标准化的 StateMachine 方法,其中通过表格元模型和配置的动作列表来处理迁移 SWS StateManagement 第42页。

状态迁移通过 StateMachineService 的方法 RequestTransition 发起 [SWS_SM_91107],并对照 TransitionRequestTable 进行校验 SWS StateManagement 第44页。在处理关联的 ActionList 期间,通知字段 CurrentState 向消费应用程序指示过渡值 "inTransition",随后在完全确认后发布目标状态 [SWS_SM_91109],SWS StateManagement 第67页。

StateMachine 方法中的状态转换流程SMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger Transition检查 TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems 已完全执行Ergebnisse gesammeltSetze CurrentState = TargetStatekSuccess

时序图:通过 StateMachineService 进行规则状态迁移并通过 StateMachineNotification 进行通知的流程。来源:[SWS_SM_91107],[SWS_SM_91109],SWS StateManagement 第51页

为了执行软件更新,State Management 为 Update and Configuration Management (UCM) 提供接口 UpdateRequest [SWS_SM_91102],EXP SWArchitecture 第56页。在检查应用程序字段 UpdateAllowed 后,该模块协调准备步骤(PrepareUpdate)、验证步骤(VerifyUpdate)或回滚步骤(PrepareRollback),并通过 ResetMachine 协调机器重启 [SWS_SM_91100],[SWS_SM_91103],[SWS_SM_91108]。对于 Suspend-to-RAM 等节能模式,S2RHub 和 S2RSatellite 同步应用程序和操作系统的冻结与恢复运行 [SWS_SM_81010],[SWS_SM_81110],[SWS_SM_71001]。

在发生错误时,SmErrorDomain [SWS_SM_81247] 以及 ErrorRecoveryTable 中强制性的 ANY 捕获条目可确保确定性地捕获来自 Execution Management 或 Platform Health Management 的意外执行错误,并将正在运行的操作立即转换至定义的恢复状态 SWS StateManagement 第42页。

平台体系中的角色与功能系统边界

功能集群 State Management (SM) 构成了 AUTOSAR Adaptive Platform 中编排全系统运行模式、功能组和进程生命周期的中央实体 EXP SWArchitecture 第51页。作为自主平台守护程序运行,State Management 将平台内部的状态执行与通常封装在独立控制应用程序(SMControlApplication)中的特定于车辆和厂商的控制逻辑解耦 EXP PlatformDesign 第40页。在 State Management 制定并验证逻辑状态决策的同时,它通过 StateClient 将进程的物理启动、终止和切换委派给 Execution Management (EM) SWS StateManagement 第40页。

在架构上,该模块依托双重集成理念:由于面向 State Management 的接口保持公开,集成商既可以使用平台协议栈标准化的、基于 manifest 的 StateMachine 方法,也可以实现完全由制造商专有的状态逻辑 SWS StateManagement 第42页。在标准化方法中,State Management 对来自控制应用程序的外部触发、Platform Health Management (PHM) 的错误报告以及 Network Management (NM) 的网络状态变更作出确定性响应 SWS StateManagement 第45页。此外,State Management 还构成了通过 Update and Configuration Management (UCM) 进行软件更新的关键控制实体 EXP SWArchitecture 第56页。

diag_architektur SMControlApp SMControlApplication (Applikative Kontrolllogik) SM State Management (daemon-based) SMControlApp->SM StateMachineService UpdateAllowedService UCM UCM (Update & Configuration) UCM->SM UpdateRequest PHM PHM (Platform Health Management) PHM->SM ExecutionError / Recovery NM Network Management NM->SM NetworkHandle EM Execution Management (ara::exec) SM->EM StateClient (SetState) OS Betriebssystem / BSP (apext::sm) SM->OS PowerStateInterface (SetPowerState) Apps Adaptive Applications (S2RSatellite / Consumer) SM->Apps StateMachineNotification S2RHub / S2RSatellite

上下文图:Functional Cluster State Management 在 AUTOSAR Adaptive 系统环境中的嵌入。来源:EXP PlatformDesign 第40页,SWS StateManagement 第28页

状态转换与基于 StateMachineService 接口的控制

为了启动状态更改,State Management 为每个已配置的 StateMachine 实例提供基于服务的 service StateMachineService SWS StateManagement 第44页。应用程序通过服务方法 RequestTransition 请求转换 [SWS_SM_91107]。State Management 根据静态存储在 manifest 中的 TransitionRequestTable,对照状态机的当前状态检查该请求 SWS StateManagement 第44页。如果转换已定义,则停止当前操作列表(ActionList)的执行,并启动向目标状态的切换 SWS StateManagement 第45页。

一旦状态转换启动,State Management 便将 StateMachineNotification 接口的服务字段 CurrentState 的值设置为 "inTransition" [SWS_SM_91109],SWS StateManagement 第67页。该过渡状态通过 ara::com 向依赖的 Adaptive Application 发出信号,表明系统正在进行重配置 EXP SWArchitecture 第52页。在操作列表内部,可以通过 SYNC 元素对功能组进行同步或并行化,以精确映射依赖关系 SWS StateManagement 第56页。仅当所有 ActionListItems 均已完全处理并收集完结果之后,CurrentState 才会采用新状态的最终名称 SWS StateManagement 第67页。

StateMachine 方法中的状态转换流程SMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger Transition检查 TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems 已完全执行Ergebnisse gesammeltSetze CurrentState = TargetStatekSuccess

时序图:通过 StateMachineService 进行常规状态转换以及通过 StateMachineNotification 进行通知的流程。来源:[SWS_SM_91107],[SWS_SM_91109],SWS StateManagement 第51页,EXP SWArchitecture 第219页

diag_statemachine_lebenszyklus Start Off 关闭 Start->Off On On Off->On Request 1001 Startup Startup Startup->Off Request 1001 On->Off Request 1000 Recovery Recovery On->Recovery ExecutionError (PHM/EM) Suspend Suspend Suspend->On Request 1000 Recovery->Off Request 1000 / 1002

状态图:基于 TransitionRequestTable 的 StateMachine 典型生命周期和转换逻辑。来源:EXP InterfacesGuidelines 第22页,SWS StateManagement 第44页

与 UCM 协同编排软件更新

在软件更新框架下,State Management 承担 Update and Configuration Management (UCM) 与机器执行状态之间的接口功能 EXP SWArchitecture 第142页。为此,State Management 提供了接口 UpdateRequest,该接口每台机器最多只能实例化一次,且专有绑定到运行控制器状态机的进程 SWS StateManagement 第79页。更新通过 UCM 调用方法 RequestUpdateSession 来启动 [SWS_SM_91102]。State Management 并不自主做出准许决定,而是咨询 UpdateAllowedService 的服务字段 UpdateAllowed,该字段由应用程序控制逻辑设置 [SWS_SM_91108],SWS StateManagement 第81页。

如果会话获得批准,控制器会将受影响的状态机标记为 ImpactedByUpdate SWS StateManagement 第81页。在实际导入之前,UCM 会携带受影响功能组的列表调用 PrepareUpdate,随后这些功能组被转入非活动状态 [SWS_SM_91103],PlatformDesign 第58页。如果更新需要重启,UCM 会通过 fire-and-forget 方法 ResetMachine 请求有序重置,在此之前必须先保存所有数据 [SWS_SM_91100]。在重置期间,State Management 通过字段 ResetMachineNotifier 将状态更改通知 UCM [SWS_SM_91106],SWS StateManagement 第92页。重启或更新之后,通过 VerifyUpdate 进行验证 [SWS_SM_91104],SWS StateManagement 第87页。如果检查失败,PrepareRollback 会准备回滚 [SWS_SM_91105],SWS StateManagement 第88页。整个周期的结束通过 StopUpdateSession 进行确认 [SWS_SM_91101],SWS StateManagement 第79页。

UCM 与 State Management 之间的软件更新会话UCMUpdateRequestState ManagementUpdateAllowedServiceExecution ManagementRequestUpdateSession()检查更新权限Lese Feld UpdateAllowedkUpdateAllowedSession AkzeptiertPrepareUpdate(functionGroupList)将 FunctionGroups 转入非活动/OffBereitkSuccessoptNeustart erforderlichResetMachine() [Fire&Forget]ResetMachineNotifier (Updating)VerifyUpdate(functionGroupList)kSuccessStopUpdateSession()kSuccess

时序图:UCM、State Management 与控制逻辑之间软件更新会话的交互流程。来源:[SWS_SM_91100],[SWS_SM_91102],[SWS_SM_91103],[SWS_SM_91104],SWS StateManagement 第78页

Hub-Satellite 体系中的电源管理与 Suspend-to-RAM

针对诸如 Suspend-to-RAM (S2R) 等扩展电源管理功能,State Management 实现了 Hub-Satellite 架构模式 EXP SWArchitecture 第54页。平台守护进程中的中央控制实体使用类 S2RHub [SWS_SM_81103],而参与的 Adaptive Application 则在其自身的进程空间中集成 S2RSatellite 的实例 [SWS_SM_81003],[SWS_SM_81014],SWS StateManagement 第35页。Satellite 通过 Offer [SWS_SM_81012] 激活其接收模式切换的就绪状态,或通过 StopOffer [SWS_SM_81013] 将其停用。它们实现纯虚方法 EnterSuspendMode [SWS_SM_81010] 与 LeaveSuspendMode [SWS_SM_81011],作为用于准备和收尾挂起状态的回调机制。

一旦挂起过程启动,S2RHub 会通过 RequestToEnterSuspendMode 并带有可配置的超时异步寻址所有已注册的 Satellite [SWS_SM_81110]。在所有 Satellite 均已成功完成其挂起准备之后,Hub 通过 EnterSuspendToRamOs 促使操作系统进入保持 RAM 状态 [SWS_SM_81112],SWS StateManagement 第101页。在接近硬件的 OS 包装层上,State Management 借助 apext::sm::PowerStateInterface:它允许通过 SetPowerState [SWS_SM_71001] 根据枚举 PowerState [SWS_SM_71002] 设置接近硬件的运行状态,并允许通过 RegisterWakeUpHandler [SWS_SM_71003] 和 UnregisterWakeUpHandler [SWS_SM_71005] 使用函数类型 WakeUpHandler [SWS_SM_71004],SWS StateManagement 第105页 注册和注销自主唤醒处理程序。唤醒后,Hub 通过 RequestToLeaveSuspendMode 请求所有 Satellite 进行协调的重新启动 [SWS_SM_81111]。

通过 S2RHub 和 S2RSatellite 进行 Suspend-to-RAM 编排SmControlAppState ManagementS2RHubS2RSatellite (Apps)OS / BSPRequestTransition(Suspend)RequestToEnterSuspendMode(timeout=1000)EnterSuspendMode()静默与准备进入休眠状态Future<void> ReadyEnterSuspendToRamOs() / SetPowerState(kPmSuspendToRam)Use Case: 系统处于 RAM 保持模式(Suspend-to-RAM)Autonomes Aufwachen via WakeUpHandler()RequestToLeaveSuspendMode(timeout=1000) / LeaveSuspendMode()Future<void> ReadySystem aktiv (Normal Mode)

时序图:使系统进入 Suspend-to-RAM 及后续重新唤醒的两阶段流程。来源:[SWS_SM_71001],[SWS_SM_81110],[SWS_SM_81112],SWS StateManagement 第101页

发生错误时的行为

针对自身的运行错误,该模块定义了 SmErrorDomain [SWS_SM_81247],它通过 GetSmDomain 获取 [SWS_SM_81251],并带有标识符 "Sm" [SWS_SM_81248]。它提供错误描述 [SWS_SM_81249],并在发生异常时通过 ThrowAsException 将代码转换为 SmException [SWS_SM_81243],[SWS_SM_81250]。通过枚举 SmErrc 对特定的故障原因进行类型化,其中包括用于与平台守护进程连接断开的 kOfferFailed,以及用于 Satellite 通信失败的 kCommunicationFailed [SWS_SM_81240],可通过 MakeErrorCode [SWS_SM_81244] 生成。

在逻辑状态机领域,State Management 通过 ErrorRecoveryTable 强制实施无遗漏的错误处理 SWS StateManagement 第69页。每个表都必须强制包含恰好一个值为 ANY 的条目,作为所有未显式映射的执行错误的确定性兜底路径 SWS StateManagement 第42页,SWS StateManagement 第69页。如果 Platform Health Management 或 Execution Management 报告了错误,且受影响的状态机未被标记为 ImpactedByUpdate,则它会设置正在进行错误恢复的内部标志,立即中止当前操作列表,并立刻切换到参数化的恢复状态 SWS StateManagement 第42页。当发生 Execution Management 的严重错误(如 kIntegrityOrAuthenticityCheckFailed)时,State Management 假定平台的可靠性已受损且后续请求将会失败,因此纠正措施超出了该 Cluster 的范畴 SWS StateManagement 第40页。

diag_error_recovery_flow Start 传入的 ExecutionError (来自 PHM 或 EM) CheckUpdate StateMachine 是否被标记为 “ImpactedByUpdate”? Start->CheckUpdate Ignore 常规错误处理被抑制 (UCM 错误路径生效) CheckUpdate->Ignore Ja SetFlag Setze internes Flag: ErrorRecoveryOngoing CheckUpdate->SetFlag Nein EvalTable 评估 ErrorRecoveryTable (查找特定代码或 ANY) SetFlag->EvalTable SpecificFound Spezifischer Folgezustand konfiguriert EvalTable->SpecificFound Code gefunden AnyFallback Verwende Catch-All-Zustand (ANY-Eintrag) EvalTable->AnyFallback Unbekannter Code StopActionList Stoppe aktuelle ActionList sofort SpecificFound->StopActionList AnyFallback->StopActionList ExecuteRecovery 立即切换至恢复状态 并执行恢复 ActionList StopActionList->ExecuteRecovery End Zustandswechsel abgeschlossen ExecuteRecovery->End

活动图:传入执行错误时的决策和处理流程以及对 ErrorRecoveryTable 的求值。来源:SWS StateManagement 第42页,SWS StateManagement 第69页

进一步详细证据

State Management 的架构与交互路径由以下规范性需求和设计规范所证实:

本模块指南由 AI 策展助手基于针对 Release R25-11 的 AUTOSAR Adaptive 规范生成,并梳理了关于 State Management 的规范性要求。

function: 31 service method: 7 class: 5 type alias: 3 service field: 3 enumeration: 2

apext::sm

class for power state coordination with OS

PowerState 枚举

Power State Enumeration.

enum class PowerState : std::uint32_t {...};
WakeUpHandler 类型别名

WakeUpHandler function.

using WakeUpHandler = std::function<void(void)>;

ara::sm

Defines the error domain for State Management.

继承自 ara::core::ErrorDomain

Exception type thrown by State Management.

继承自 ara::core::Exception

Returns the global SmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;

Creates an error code.

constexpr ara::core::ErrorCode MakeErrorCode (SmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
SmErrc 枚举

Defines an enumeration class for the State Management error codes.

enum class SmErrc : ara::core::ErrorDomain::CodeType {...};

ara::sm::s2r

S2RHub 类

S2RHub class.

S2RSatellite abstract class.

服务接口

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

StateMachineService 服务接口

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

UpdateRequest 服务接口

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

命名空间

服务接口(通过 ara::com 建模)

模块的 UML 类图

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 apext::sm cluster_2 ara::sm cluster_3 ara::sm::s2r napext__sm__PowerStateInterface528 PowerStateInterface nara__sm__SmErrorDomain386 SmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain nara__sm__SmErrorDomain386->nara__core__ErrorDomain335 nara__sm__SmException872 SmException nara__core__Exception792 ara::core::Exception nara__sm__SmException872->nara__core__Exception792 nara__sm__s2r__S2RHub106 S2RHub nara__sm__s2r__S2RSatellite502 S2RSatellite