AP AUTOSAR——Update and Configuration Management UCM

2023-05-16

15 Update and Configuration Management

15.1 What is Update and Configuration Management?

更新和配置管理是Adaptive Platform Services中的一个功能集群。作为一种自适应平台的服务,更新和配置管理(UCM)是实现自适应平台的主要目标之一,来支持在计算机上运行的自适应应用程序的灵活更新。

UCM向已经实现,并需要更新的应用程序(以及UCM客户端进程)提供了一系列ara::com API。UCM使用ara::com,而不是直接使用API意味着在访问功能集群的地方有灵活性,即使是从不同的机器上。由于UCM纯粹是通过面向服务的通信来访问的,因此,与自适应平台中的功能集群不同,由于使用了正常的ara::com交互,RTA-VRTE中未提供任何库。

15.2 Responsibilities

更新和配置管理(UCM)服务负责管理软件包的安装、更新和删除。UCM是自适应平台的可选组件,但必须存在于可更新的每台机器上。

UCM仅在其机器上负责更新过程。UCM客户端(第15.6节)负责接收需要安装、更新或删除的软件包,UCM主机(第15.7节)负责协调多台machine的更新。

软件包(第15.4节)描述了在机器生命周期内对建模软件集群执行的单个操作。SoftwareCluster是一个AUTOSAR ARXML元素,它表示一个或多个自适应应用程序进程和相关数据元素(包括AUTOSAR清单)的集合。从UCM的角度来看,软件集群可分为应用程序层和平台集群,后者有一个特殊的平台核心类别,表示软件集群是自适应平台的关键部分,因此无法删除。

软件集群(及其包含的元素)进行版本控制。UCM负责检查要安装的软件包版本,如果传入版本低于机器上已有的版本,则拒绝更新。

 

 

RTA-VRTE UCM管理两种形式的更新:

  • Image update第15.5.1节)- Update of images(如:NOR images、eMMC分区),包括对A/B更新的支持。请注意,A/B镜像之间的切换不在AUTOSAR机器的上下文范围内,因此不在本章的范围内。
  • Application update(第15.5.2节)–在POSIX文件系统上安装、更新和删除单个应用程序,包括与状态管理的交互,以确保在更新之前停止应用程序。

Known Limitations(来自AUTOSAR AP R20-11官网)

  1. UCM 不负责启动更新过程。 UCM 实现了一个服务接口来实现这个操作。该服务接口的用户负责在按需执行软件更新程序之前验证车辆处于可更新状态。用户还有责任与车辆内的其他 AUTOSAR 自适应平台或 AUTOSAR 经典平台进行通信。
  2. UCM 接收本地可用的软件包进行处理。软件包通常从 OEM 后端下载。软件包的下载必须由另一个应用程序完成,即 UCM 不管理与 OEM 后端的连接。在触发它们的处理之前,必须使用提供的 ara::com 接口将软件包传输到 UCM。
  3. UCM 更新过程旨在涵盖使用单个 AUTOSAR 自适应平台的用例更新。 UCM 可以更新自适应应用程序、AUTOSAR 自适应平台本身,包括所有功能集群和底层操作系统。
  4. UCM 不负责对提供的接口实施身份验证和访问控制。该文件目前没有提供任何保密保护机制以及防止拒绝服务攻击的措施。假设是该平台保留了 UCM 与其用户之间交换的参数的完整性。
  5. UCM 不支持更新不支持 ARA::COM 或具有对齐诊断闪存序列支持的 UDS 的 ECU。

15.3 Architecture

UCM的逻辑架构如图15.1所示,反映了AUTOSAR服务的常用方法,如状态管理,平台特定元素(UCM)在机器上执行更新机制,自适应应用程序(UCM客户端,见第15.6节)通过OTA空中接收更新并决定何时更新和更新内容。

UCM通信的元素通常统称为“UCM客户端”。UCM客户端获取有关AUTOSAR自适应平台软件的信息,并通过使用UCM的API传输和处理软件包来执行更新过程(第15.4节)。

软件包是一个元素,其中包含应放置在平台上的用户代码等和UCM可以执行更新过程所需的指令。保存这些指令的元素称为“Software Package Manifets”或更简单的“Update Manifest”。

UCM通过ara::com与UCM主机(第15.7节)通信,或通过UDS与车库检测仪通信。为了与garage tester通信,UCM包括一个名为“DSA(Diagnostic Service Application)’(诊断服务应用程序)”的库,该库实现了不同诊断序列的变体。DSA是特定于项目的库,它允许车库检测仪使用未更改的诊断序列与UCM通信。

UCM与多个自适应平台功能集群交互:

  • STM(状态管理),UCM在更新过程中请求不同功能组的状态。例如:停止一个功能组,以便替换文件,重新启动ECU等。
  • Crypto API,UCM要求Crypto API对软件包和包含的人工制品进行身份验证和验证。
  • File System,UCM在应用程序更新过程中复制、删除和添加文件系统上的文件。
  • Storage Devices UCM在image更新过程中更改存储设备上的内容。
  • Persistency,UCM使用持久性存储与更新过程相关的值。

软件包生命周期由UCM状态机描述(图15.2)。

  • Added:UCM已完成第一次安装已传输软件包的安装操作(kInstall)。激活后,添加的包将移动到当前状态。kAdded 在使用 AUTOSAR 自适应平台上的 ProcessSwPackage 方法调用成功处理软件集群后,如果它以前不存在于 AUTOSAR 自适应平台中,则应 kAdded 软件集群状态。
  • Updated:UCM已完成对已传输软件包的更新操作(kUpdate)的处理。处理后的包需要激活才能移动到当前状态。
  • Removed:UCM已完成对软件包的删除操作(kRemove)的处理。激活后,软件包将从UCM中完全移除。
  • Present当前–已处理的软件包(无论是新安装还是更新的软件包)已成功完成激活。在此生命周期状态下,软件包的SoftwareCluster准备运行。

当处于上述任何状态时,service interface PackageManagement中的GetSwPackages方法会报告软件群集。当完成删除SoftwareCluster或还原添加的SoftwareCluster时,特定软件包的报告将停止。有关报告的更多信息,请参见第15.5节。4.

15.3.1 Dependencies

UCM对自适应平台内的功能集群具有多个依赖关系。

Dependencies to other functional clusters(AUTOSAR AP R20-11官网)

UCM 功能集群通过 ara::com 中间件向客户端应用程序公开服务。

Interfaces to Adaptive State Management

UCM 依赖状态管理及其提供的更新请求服务接口来执行激活新安装、更新或删除的软件所需的必要功能组状态更改。
某些应用程序可能会与更新过程或新更新的包发生冲突,需要在更新过程中停止它们。 这可以通过将机器置于安全机器状态、激活合适的功能组及其状态的组合来实现。 定义此状态或功能组是平台集成商的责任。 在开始更新之前,访问 UCM 的自适应应用程序应确保平台切换到此状态(使用来自状态管理的接口)。

  • UCM 应使用方法和字段在 ara::com 上提供服务接口。
  • UCM 使用 AUTOSAR 自适应平台的加密接口 [6] 来验证包的完整性和真实性并解密机密更新数据。
  • 身份和访问管理控制 UCM 的客户端对 UCM 的服务接口 PackageManagement 的访问。

15.3.1.1 State Management

状态管理用于将自适应平台置于定义的更新功能组状态,其中自适应应用程序未运行,因此可以更新。在更新本身之后,UCM将通过进一步的状态更改请求向状态管理发出重新启动自适应应用程序的信号。

UCM需要状态管理器提供的UpdateRequest服务接口。状态管理器是实现机器状态逻辑的特定于项目的自适应应用程序。UpdateRequest服务接口包括以下方法:

StartUpdateSession,该方法在UCM准备启动一个或多个软件包的更新会话时调用。如果计算机未处于合适的状态,状态管理将拒绝启动会话请求。

StopUpdateSession该方法在更新完成时由UCM调用,以通知状态管理操作已完成且计算机现在稳定。

ResetMachine 由UCM调用以请求机器重置的方法。要使状态管理接受请求,UCM必须事先调用StartUpdateSession

PrepareUpdate  方法由UCM调用,其中包含要更新的函数组列表。除非UCM以前调用过StartUpdateSession,否则状态管理将拒绝该请求。

PrepareRollback方法由UCM使用要回滚的函数组列表调用。除非UCM以前调用过StartUpdateSession,否则状态管理将拒绝该请求。

VerifyUpdate方法由UCM使用要验证的函数组列表调用。除非UCM先前调用了PrepareUpdate,否则状态管理将拒绝该请求。

系统集成商在软件包清单(更新清单)中定义:

  • 受软件包影响的软件群集名称和版本。
  • 使用交付的软件包执行的操作。(添加、删除、更新)
  • 应与状态管理(STM)交互调用的功能组列表(PrepareUpdate、PrepareRollbak、VerifyUpdate)。包括是否应重新启动平台。
  • 软件包中包含并交付的人工制品,以及其真实性和有效性检查值
  • Artefacts’ target在系统、形式和交付方法上的目标定位。Artefacts’ target可以包含在数据包中,也可以由于平台上的存储有限而流式传输。
  • 清单签名以确保软件包的真实性和有效性。

15.3.1.2 Cryptography

UCM依赖于加密功能集群对软件包进行身份验证和完整性验证。加密机密,即密钥,用于保护完整性和签署软件包,确保只有授权包源才能为UCM创建更新包。

15.3.1.3 Persistency

持久性用于存储有关诊断会话的信息。它由UCM的DSA(诊断服务应用程序)组件使用。

持久化数据的更新和回滚完全由使用持久性的自适应应用程序处理,而无需UCM的参与。

15.3.1.4 Diagnostics

如第15.3节所述。2、UCM使用UDS服务(哪个?)软件包下载。

统一诊断服务(UDS)是ISO 14229-1中规定的诊断通信协议。车库测试仪使用它与ECU通信,并运行更新过程。UCM包括一个特定于项目的库,用于将UDS调用转换为UCM API调用。该库名为诊断服务应用程序(DSA),它处理不同的诊断更新序列。车库检测仪可以使用任何现有的更新序列,而无需进行任何更改。

15.3.2 Application Communication

作为Adaptive Platform Services中的功能集群,UCM通过ara::com使用面向服务的通信提供(并要求)功能。

UCM需要由特定于项目的状态管理器提供的UpdateRequest服务接口。状态管理器实现者有责任确保提供接口。

15.3.2.1 Package Management

RTA-VRTE UCM客户端自适应应用程序需要UCM提供的PackageManagement服务接口。使用替代项目特定的自适应应用程序代替RTA-VRTE UCM客户端,然后可以选择替代应用程序通信机制。

任务:在“UCM<------->UCM客户端”通信(特别是提供/要求的服务)方面存在哪些约束?例如,它们是否限制必须如何配置端口才能发现它们,还是仅使用服务类型?

15.3.2.2 UDS

UCM的服务接口旨在使用“标准”UDS诊断服务来接收自适应应用程序的更新。但是,服务接口中的方法和字段的设计方式是,任何自适应应用程序都可以使用它们。

15.4 Software Package

UCM负责管理自适应应用程序的安装、更新和删除。此过程使用软件包执行,每个软件包封装UCM(安装、更新、删除)的更新操作以及相关的可执行代码、数据文件和AUTOSAR清单信息。

UCM支持软件包的身份验证和完整性验证。身份验证确保包由授权更新计算机的已知源发布。完整性验证确保包内容自发布以来未被篡改或损坏。

软件包清单描述了软件包内容。软件包和清单

在转发到UCM之前,使用ISOLAR-A_自适应进行脱机配置。

UCM提供PackageManagement服务接口,用于控制软件包的更新。UCM处理本地软件包,因此,通过辅助应用程序(如UCM客户端)(第15.6节)或非车载诊断测试仪将软件包从脱机软件包存储库传输到UCM。

软件包引用计算机上的单个软件群集。SoftwareCluster是一个AUTOSAR ARXML元素,它表示一个或多个自适应应用程序进程和相关数据元素(包括AUTOSAR清单)的集合。

SoftwareCluster可以是一个简单的“SubsftwareCluster”,包含进程、可执行文件和其他元素,但没有诊断目标地址,也可以是一个“RootSoftwareCluster”,既有诊断目标,又可以引用零个或多个“SubsftwareCluster”。

从UCM的角度来看,软件集群可以进一步分为应用程序层和平台集群,后者有一个特殊的平台核心类别,表示软件集群是自适应平台的关键部分,因此无法删除。

对软件包(及其包含的元素)进行版本控制,UCM在处理操作之前验证要更新或安装的软件包的版本是否比计算机上已有的版本更新。AUTOSAR遵循语义版本控制模式,版本号由三个主要、次要和修补程序编号组成。通过增加主版本、次版本或补丁,可以获得更高的版本号。AUTOSAR UCM不支持软件群集降级,因此需要降级。有必要使用更高的版本号重新打包旧的、正在工作的软件群集。

软件集群可以对其他集群的依赖关系进行建模。UCM将在激活期间验证这些依赖关系(第15.5.2节),确保在激活完成和自适应应用程序执行开始之前满足软件包的运行时依赖关系。

15.4.0.1 Configuration

一个软件包直接引用一个软件集群。此外,包还必须定义:

  1. UCM action: 软件包是否应安装、删除或更新SoftwareCluster。
  2. 包裹大小(压缩和未压缩),以便UCM能够验证完整接收,并确保包裹有足够的存储空间。
  3. 软件包版本信息(支持的最大值和最小值)。
  4. 机组是否需要ECU复位。
  5. 功能组声明,UCM必须使用所需的UpdateRequest服务接口建立,然后才能激活和/或验证包。
  6. 允许对包进行身份验证的加密证书。

使用ISOLARA_ADAPTIVE中的UCM清单编辑器配置软件包。

15.5 Update Sequence

UCM控制图像和应用程序更新的更新顺序(何时发生)。

15.5.1 Image Update

映像更新会修改整个(虚拟)计算机映像。RTA-VRTE UCM支持A/B更新,其中更新可以在后台进行-进入非活动分区。

15.5.2 Application Update

应用程序更新修改单个软件集群的数据和/或可执行文件(一个或多个自适应应用程序加上AdaptivePlatform使用的相关元数据)。这种形式的更新允许在(POSIX)文件系统上安装、删除和修改应用程序,即使在机器正在使用时也是如此。

UCM应用程序更新序列包括三个主要阶段;传输、处理和激活。图15.4说明了UCM应用程序更新的三个阶段和主要状态转换。

  1. Transferring传输–在此阶段,一个或多个软件包从UCM客户端(第15.6节)传输到UCM并进行缓冲。每个软件包都与单个软件集群相关联,但可以包含多个可执行文件、日期和清单文件。包传输与下一阶段(处理)分离,以实现下载优化,例如并行下载,或在正常车辆运行期间在后台进行下载。
  2. Processing 处理–UCM在引用的软件集群上执行软件包操作(即kInstall、kUpdate或kRemove)。UCM处理单个软件
  3. Activating 激活–为确保执行依赖关系得到满足,UCM会在成功处理软件集群后检查它们的依赖关系。一旦满足依赖项检查,UCM然后尝试通过请求状态管理器将相关功能组切换到软件包中指定的预激活状态来激活集群。状态更改成功后,更新序列完成。

通过与状态管理的交互启动应用程序更新序列。UCM首先使用服务接口UpdateRequest中的StartUpdateSession方法请求转换到特定于项目的更新状态(由集成商定义)。系统状态是特定于项目的,但通常表示已停止的应用程序已准备好进行更新。

在传输和处理阶段,UCM独立监控每个软件包的状态。这允许多个并行传输在任何时候生效,或者在后台进行传输,而不影响正常的机器功能。

在处理过程中,UCM将一次更新一个软件包–此AUTOSAR限制旨在防止关键文件的更新冲突,从而确保整个计算机的一致性。软件包包含描述UCM任务的实施特定信息,例如,对于kRemove,这可能涉及描述需要删除的数据。描述现有应用程序的kUpdate的软件包可以包含部分数据,例如已处理执行清单的更新版本。

传输的软件包的处理通过PackageManagement服务接口内UCM提供的方法ProcessSwPackage启动。该方法采用一个参数,该参数指示传输包的ID号。通过多次调用该方法,可以将一系列更新排队等待处理。

15.5.3 Package Rollback

UCM提供回滚以从失败的激活更新阶段恢复。回滚通过服务接口UpdateRequest的PrepareRollback方法与状态管理一起执行。

15.5.4 Reporting

所提供的方法GetSwPackages支持报告当前软件包的信息。返回的信息包括软件包的标识符、名称、版本和状态。

此外,UCM可以使用GetSwClusterInfo报告已安装软件群集的版本。可以使用GetSwClusterDescription检索有关已安装群集的其他信息。使用GetSwClusterChangeInfo报告处于添加、删除或更新状态的集群。

15.6 UCM Client

UCM客户端是一个自适应应用程序,负责通过空中传送(OTA)接收软件包并使用UCM管理其更新。

虽然UCM客户端应用程序本身不是标准化的,但它确实通过UCM提供且UCM客户端应用程序需要的AUTOSAR定义的服务接口包管理与UCM交互。

该接口提供了软件包传输、更新和回滚以及报告的方法。

作为自适应平台应用程序,UCM需要状态管理提供的UpdateRequest服务接口。此接口提供了在更新序列期间控制功能组状态和管理机器重置的方法。

UCM客户端在与基于云的软件包存储库通信时使用的OTA协议未被AUTOSAR标准化。

15.7 UCM Master

UCM Master是AUTOSAR服务的一个附加组件,它提供了一个标准化的解决方案来安全地更新多台机器。UCM主机负责接收车辆包(无论是OTA还是使用诊断测试仪),将包含的软件包分发到指定机器上的目标UCM实例,然后协调其更新和激活。

UCM Master从OTA存储库或通过诊断测试仪接收车辆包,然后将软件包传输/流式传输到目标(下级UCM实例或诊断应用程序)。分发后,UCM Master将协调活动中的处理、激活和回滚(如有必要)。在活动期间,UCM主机在每个单独的机器中使用每个下级UCM实例的ara::com接口。

UCM Master还提供有关车辆中的机器、安装的软件和更新活动解决方案的信息。

15.7.1 Vehicle Package

UCM主机接收车辆软件包,并将容器软件包传输/流式传输到下级UCM实例。车辆软件包包含跨多台机器协调更新的说明。UCM Master提供有关车辆中的机器、安装的软件和更新活动解决方案的信息。

15.7.2 Configuration

15.8 AUTOSAR Services

RTA-VRTE支持ara::ucm命名空间中的AUTOSAR更新和配置管理API。

15.8.1 PackageManagement

UCM为包管理的所有方面提供的服务接口。该接口可由任何具有权限的自适应应用程序使用,但通常由UCM客户端访问。

本文图片来源 博世ETAS AP AUTOSAR ,如有侵权,请留言联系作者删除,谢谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AP AUTOSAR——Update and Configuration Management UCM 的相关文章

随机推荐

  • SPI 通讯协议

    Cuitbasics 汽车ECU设计 2 2 当您将微控制器连接到传感器 xff0c 显示器或其他模块时 xff0c 您是否考虑过这两种设备是如何相互通信的 xff1f 他们到底在说什么 xff1f 事实上电子设备之间的通信就像人类之间的交
  • UART串口通讯

    UART代表通用异步接收器 发送器也称为串口通讯 xff0c 它不像SPI和I2C这样的通信协议 xff0c 而是微控制器中的物理电路或独立的IC UART的主要目的是发送和接收串行数据 xff0c 其最好的优点是它仅使用两条线在设备之间传
  • 一文搞懂AUTOSAR的DEM模块

    Dem全称为Diagnostic Event Manager xff0c 负责故障事件的处理 故障数据的存储和管理 简单说其功能是故障事件确认前的故障debounce xff0c 故障事件确认时的故障数据存储 xff0c 故障发生后的故障老
  • linux父子进程问题——孤儿进程与僵尸进程[总结]

    今天遇到一个linux进程启动时指定Max open files不对的问题 xff0c 导致程序建立socket异常 xff0c 进而导致fullgc问题 xff0c 影响正常服务 所以顺带又温习了下linux下的父子进程的特性 孤儿进程与
  • C++11/14/17一些好用新特性自己整理下

    1 override xff1a 子类继承父类的时候 xff0c 子类虚函数名字写错了或者参数列表不匹配会变成另外一个函数编译器无法判断对错 xff0c 和你写不写virtual也没关系 xff0c 这时候可以在虚函数结尾加上overrid
  • vector中emplace_back方法的用途

    在写代码的过程中 xff0c CLion提醒我把 span style background color ffd900 push back span 方法替换成 span style background color ffd900 empl
  • constexper+const+常量表达式

    常量表达式 xff08 const expression xff09 是指值不会改变并且在编译过程就能得到计算结果的表达式 显然 xff0c 字面值属于常量表达式 xff0c 用常量表达式初始化的 const 对象也是常量表达式 一个对象
  • 这篇 CPU Cache,估计也没人看

    无论你写什么样的代码都会交给 CPU 来执行 xff0c 所以 xff0c 如果你想写出性能比较高的代码 xff0c 这篇文章中提到的技术还是值得认真学习的 另外 xff0c 千万别觉得这些东西没用 xff0c 这些东西非常有用 xff0c
  • 每天一个 Linux 命令

    https blog csdn net k346k346 category 9267835 html uptime 命令 1 命令简介 uptime 用于显示系统总共运行了多长时间和系统的平均负载 无选项 uptime 命令会显示一行信息
  • Docker 安装Jenkins并配置Maven

    系统环境 系统版本 xff1a Centos7 9 docker安装参考此链接 xff1a https blog csdn net clover661 article details 122226083 下载docker时候如果报错参考 x
  • 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列

    一文详解自动驾驶的运行设计域 xff08 ODD xff09 n 自动驾驶系列 2021年4月30日 xff0c SAE发布了第四版J3016 驾驶自动化分级 xff0c 这是即2014年1月16日 2016年9月30日 2018年6月15
  • QNX BSP分析

    QNX相关历史文章 xff1a QNX简介QNX Neutrino微内核QNX IPC机制QNX进程管理器QNX资源管理器QNX字符I OQNX之编写资源管理器 xff08 一 xff09 QNX之编写资源管理器 xff08 二 xff09
  • SOA面向服务的分布式架构详解

    导语 xff1a SOA作为一种面向服务的架构 xff0c 是一种软件架构设计的模型和方法论 从业务角度来看 xff0c 一切以最大化 服务 的价值为 出发点 xff0c SOA利用企业现有的各种软件体系 xff0c 重新整合并构建起一套新
  • 自动驾驶软件架构之:中间件与SOA(一)

    本文是将中间件作为一个专题 xff0c 专门展开进行详细的分析和讨论 中间件相关技术在计算机分布式系统中发展了很多年 xff0c 尤其在互联网服务 大型商业系统中得到广泛使用 随着智能网联汽车的发展 xff0c 现代汽车也逐步增加了以太网支
  • 嵌入式系统BSP基础知识

    嵌入式系统BSP基础知识 板级支持包 BSP 是定义如何支持特定硬件设备 设备组或硬件平台的信息集合 BSP 包括有关设备上存在的硬件功能的信息和内核配置信息以及所需的任何其他硬件驱动程序 除了用于基本和可选平台功能的通用 Linux 软件
  • constexpr

    constexpr 标志返回值或者其他表达式是常量 xff0c 在编译时就会被计算出来 这个关键字常被用来 C 43 43 const 和 constexpr 的区别 xff1f 知乎 include lt iostream gt usin
  • inline namespace

    include lt iostream gt using namespace std namespace ALL namespace V2014 void fun int num cout lt lt 34 int 34 lt lt 34
  • 进程与线程

    对于操作系统来说 xff0c 一个任务就是一个进程 xff08 Process xff09 xff0c 比如打开一个浏览器就是启动一个浏览器进程 xff0c 打开一个记事本就启动了一个记事本进程 xff0c 打开两个记事本就启动了两个记事本
  • 详解SOME/IP协议文档

    以下内容来源于AutoSar官网的AUTOSAR PRS SOMEIPProtocol文档 详解SOME IP协议文档 2 知乎 以下内容来源于AutoSar官网的AUTOSAR PRS SOMEIPProtocol文档 SOME IP P
  • AP AUTOSAR——Update and Configuration Management UCM

    15 Update and Configuration Management 15 1 What is Update and Configuration Management 更新和配置管理是Adaptive Platform Servic