CP AUTOSAR 中的FOTA 技术栈
汽车
2024-12-24 08:08
吉林
FOTA(Firmware Over-The-Air)是一种通过无线网络远程更新车辆中的软件的技术。随着安全要求的不断提升以及分布式、互联功能带来的软件复杂性日益增加,车辆系统需要频繁保持最新状态。为了减少因软件更新而带来的耗时和重复前往维修厂的麻烦,应通过FOTA技术向车辆推送软件更新。CP AUTOSAR对FOTA的支持主要体现在以下几个方面:- 软件包管理:CP AUTOSAR提供了一套丰富的软件包管理功能,以支持FOTA。这些功能包括软件包的下载、验证、存储和安装。车辆可以通过无线网络接收到新的软件包,并使用CP AUTOSAR提供的安全机制进行验证,以确保软件包的完整性和可靠性。验证通过后,软件包可以被存储在车辆的存储器中,准备进行更新。
- 更新过程执行:CP AUTOSAR定义了FOTA更新过程的执行流程。这包括检测新的软件包、下载软件包、安装软件包以及更新后的验证等步骤。在更新过程中,CP AUTOSAR提供了数据完整性和安全性的保障,以确保软件包的正确性和可靠性。
不过,CP AUTOSAR自身是不直接支持OTA的。这意味着要更新在CP AUTOSAR上运行的应用程序,就必须更新整个ECU的代码。通过其他控制器对运行CP AUTOSAR的控制器进行更新,并不被视为CP AUTOSAR自身的OTA功能。FOTA引入了一种通用机制,允许在车辆运行时更新ECU(电子控制单元)软件。当当前ECU软件正在执行且功能完全正常时,新的ECU软件应在后台进行打包准备。在安装过程中,必须验证新软件的真实性和完整性。一旦验证通过,ECU应能启用新的软件版本。不过,软件的启用需要ECU进入一种特殊模式,因此在车辆行驶过程中不得启动或执行新软件的启用操作。启用新软件应在确保车辆安全的状态下进行,比如车辆静止、发动机熄火且已施加驻车制动时。如果在启用新软件的过程中或之后发现异常或错误,ECU应具备内部回滚功能,即能够恢复到之前的软件版本。这意味着之前的软件会保留在ECU上,并可以随时重新启用。不同的无线技术(UMTS、LTE、蓝牙、WiFi、5G)可用于将车辆连接到后端/云系统,以提供将软件下载到车辆的能力。通过CAN、CAN-FD、Flexray或汽车以太网等车辆总线,将新软件分发到需要更新的目标ECU。如今,大多数ECU都具备更新升级功能。通常,这种软件更新的实现接口采用闪存引导加载程序的形式,并且支持通过OTA技术更新主ECU。可以通过将软件更新任务从外部诊断仪发送到已连接的车载ECU(作为OTA-Master)上,来实现无线的软件更新。从目标ECU的角度来看,无论是通过传统的诊断仪还是通过OTA-Master进行更新,整个过程都十分便捷。这种方法涉及几个重要方面,需要在实施过程中仔细考虑(以下针对单分区升级方案):首先,从功能角度来看,在整个软件更新过程中,目标ECU将无法正常运行,这通常意味着整个车辆在软件更新期间会处于不可用状态。 其次,在分布式电子电气架构中,由于多个ECU需要在一次更新活动中同步更新,与单独更新一个ECU相比,车辆的不可用时间可能会更长。再者,如果在安装新软件的过程中或之后出现问题,虽然可以通过OTA主控端启动并重新安装之前的软件来进行修复,但这一操作会进一步延长车辆的不可用时间,并有可能导致ECU功能完全失效。此外,如果需要进行软件回滚,那么与更新相关的所有依赖ECU也必须同步进行回滚操作。最后,采用这种方法时,我们还需要特别注意电池的剩余容量,以确保更新过程的顺利进行。FOTA的整体更新过程可分为几个阶段,可以参考如下图示:1. Update
术语“(FOTA)update”用于表示 ECU 的整个更新过程(如果是其他依赖 ECU 更新,则表示多个 ECU)。它包含下面描述的所有任务,例如download, installation, verification, activation等。如有必要,可以将回滚功能视为更新过程的一部分。2. Download
下载镜像是指将FOTA目标ECU的完整更新所需的ECU软件、数据和配置从后端服务器传输到FOTA主节点,即FOTA的Master ECU。 3. Installation
Installation是指将待更新的ECU软件从FOTA主节点ECU转移到FOTA目标ECU。由于一次将整个ECU软件完全传输到FOTA目标ECU并不方便,因此该过程是使用数据块实现的。当没有更多块要传输到FOTA目标ECU并且所有块都已成功写入内存堆栈时,安装过程就完成了。此外,安装过程还包括FOTA目标ECU内的flash驱动程序将软件实际写入非活动目标分区。4. Verification
Verification验证过程是要确保更新的ECU软件的正确性。这只会影响相应FOTA目标ECU中的普通ECU软件(例如镜像或者差异化更新)。5. Activation
Activation激活过程是ECU引导分区的实际启动操作。对于采用不可切换内存架构的ECU,比如那些使用外部闪存或固定多分区内存的ECU,这个过程还涉及到从临时存储(例如外部闪存)到内部闪存的复制。一旦确认了前一个ECU软件版本的备份,激活过程即告完成。新安装的软件必须在车辆处于安全状态时才能最终激活,开发者有责任确保车辆在这种安全状态下进行操作。6. Rollback
在回滚过程中,必须恢复之前运行软件的所有ECU和用户数据。回滚完成后,ECU软件和用户数据必须与整个更新过程开始之前没有差异。
它接收从 FOTA Master刷写的 ECU 软件,并将软件写入到内存堆栈(实际的 ECU 软件烧录过程);缓存所有新的 ECU 软件工件,以发送到 FOTA 目标 ECU;为 FOTA Master ECU 提供要安装到 FOTA Target ECU 的镜像;1. FOTA Target ECU
由于FOTA处理程序规范目前仍在发展阶段,尚未涵盖和明确定义所有功能,因此现阶段将其视为CDD。如果未来FOTA的功能集增长到足够复杂,足以构成一个独立的BSW模块时,AUTOSAR可能会考虑定义FOTA BSW模块。由于 AUTOSAR Dcm 模块实现了UDS诊断协议,因此直接提供了许多有用的功能以实现FOTA功能。对于FOTA程序,可以有如下的功能实现:- 0x22/0x2E Read/WriteDataByIdentifier
- 0x34 RD/0x36 TD/0x37 TE(请求下载/传输数据/传输退出)
在AUTOSAR中,NvM模块主要负责管理数据闪存,包括用户数据、标定数据、错误记录、快照以及ECU软件的其他运行时数据。这些数据会被组织成所谓的NvDataBlock。NvM模块提供了功能接口,允许读取、写入或删除这些数据块。为了迁移或修改NvData,应当使用NvM模块提供的功能,而不是直接操作数据闪存。这是因为FOTA(固件空中升级)的Master和Target端都不应直接与数据闪存交互,以防止数据受到干扰、阻塞或损坏。如果数据发生变化,例如影响到NvData或用户数据的迁移,这些变化需要由实施者进行处理。然而,为了安全地存储与FOTA进程相关的信息(如当前FOTA进程状态、FOTA处理程序上次成功写入的内存地址等),并确保这些信息在中断期间能够持续存在,应使用NvM模块来处理这些(FOTA特定的)用户数据。 2. FOTA Master (UCM-Master)
FOTA Target ECU 需要与相应的主节点通信,以便接收 FOTA 镜像数据。此 Master 实例必须存储车辆网络中所有相关 ECU 的镜像数据,数据量突然不会少。通常,Classic Platform所针对的嵌入式ECU在内存、存储及计算能力上资源较为有限。因此,一种可行的方案是将FOTA Master实例的职责转移到资源更丰富的AP平台上的ECU中。与 FOTA Target ECU 通信的实现目前由更新和配置管理模块(UCM,Update And Configuration Management)完成。这将产生以下逻辑体系结构:
3. Backend
后台FOTA服务器Backend 实例表示要更新的车辆的初始镜像程序和通知接口。有关可用新软件的通知可以从后端实例触发到车辆,或者车辆自行决定何时询问是否有新软件可用(轮询方法)。但是,如果车辆网络中一个或多个 ECU 的新软件可用,则启动镜像拉取过程并将镜像存储在车辆内的适当位置(例如 FOTA Master)。后台服务器还必须提供有关与其他软件包的依赖关系的信息。车辆可以与后台服务器共享有关 FOTA 流程的状态和更新进度信息,以便进行分析和诊断。 FOTA Handler 模块需要在处理 FOTA 镜像期间处理并指示所有不同的状态。这还包括恢复中断(例如由于驾驶周期更改)或暂停(例如通过更高优先级的诊断请求)。为了将此信息提供给启动和触发 FOTA 程序的 FOTA Master,应实现诊断服务,从 FOTA Target 的角度提供和更新安装程序的当前状态。这些不同的状态应通过以下状态来反映:ECU启动程序后FOTA Handler的初始状态FOTA处理程序已初始化,Dcm已设置为正确状态(在Dcm FOTA会话中,已授予安全访问权限)。所有FOTA数据块均已完成安装,可以触发激活程序。FOTA Handler由Dcm调用触发,因为新块已被接收并正在处理。FOTA处理程序已成功处理最后一个接收到的数据块,返回了Dcm函数返回值,并正在等待下一个数据块。自行设定如何验证数据包,CP对这方面没有具体的约定。FOTA安装已完成,并从FOTA Master收到相应的工作指令,该指令指示下一次启动过程中的分区切换。 可以反馈Target的错误状态,根据实际情况自已进行定义,CP对这方面没有具体的约定。上述所有状态应有助于保持FOTA Target状态,从而保持整个FOTA更新过程的确定性、可靠性和可恢复性。这将导致一个状态机来处理FOTA更新,如图所示:
AUTOSAR CP中的FOTA流程是一种在运行时更新ECU软件的机制,它通过无线技术将新软件下载到车辆上,并在后台进行安装和验证,以减少车辆停机时间并提高软件更新效率。FOTA技术架构包括FOTA目标ECU、FOTA主机和后端等组件,通过一系列步骤实现软件的下载、安装、激活和回滚等功能。内部状态机则管理FOTA过程中的各种状态转换,确保软件更新的可靠性和安全性。