1.数据收集
在路上行驶时,连接单元接收到软件更新包
在 Flash Bootloader 上下文中的运行后阶段(post-run phase)对目标 ECU 进行更新
下载过程中需要实现下载中断/恢复能力
必须考虑电池容量
关闭期间(key-off)进行更新的时间窗口是有限的
由于关闭了正常的消息通信,因此对运行后系统设计(post-run)产生影响
在路上行驶时,连接单元接收到软件更新包
更新在应用程序上下文中的目标 ECU 上的影子内存中进行
应用栈需要通过OTA下载软件组件进行扩展
必须考虑总线负载和 ECU 性能影响
必须实现多内存分区概念和下载中断/下载恢复的能力
这种架构需要微控制器本身的硬件支持
硬件将活动分区(active partition)映射到预定义的地址范围(例如 0x000000,在下面的示例中分区大小为 2MB)
代码总是从预定义的地址范围执行(0x000000-0x200000)
激活(Activation)分区意味着重新映射活动和非活动内存地址范围
在后台下载期间,下载的数据缓存在未使用的内存区域(内存区域可以是内部存储器或者是外部存储器)
在软件激活期间,Flash Bootloader 将新应用程序复制到活动存储区
根据活动/非活动内存,选择不同的应用入口地址
代码从不同的内存位置执行
需要维护两个相同版本的软件二进制文件,它们链接到不同的内存位置
诊断Tester需要知道活动/非活动内存的位置以选择正确的镜像
Hint:符号“+”表示优点,符号“-”表示缺点
硬件辅助 A/B分区交换解决方案 +单个二进制 +激活时间较短 -目前只支持少数硬件平台
下载缓存解决方案 +单个二进制 +通用解决方案 +现有 MCU 平台可通过添加外部闪存重复使用 -由于数据复制,激活时间较长 -增加了外部闪存的成本
Dual Binary解决方案
+除了支持边写边读外,没有额外的硬件要求 +极短的激活时间 -双软件镜像的配置管理 -可能需要复杂的软件来处理不同的复位向量和中断地址
注意:架构图只显示了OTA 特定的 BSW 模块。
MICROSAR
下载软件更新
软件更新验证
备份创建(可选)
Flashbootloader
激活(Activation)软件更新
回滚(Rollback)到以前的软件
软件更新管理器
签名验证
解压
解密
闪存数据的缓冲
数据处理
模块的定义,也就是逻辑块
模块到虚拟地址的映射
处理保存的恢复信息来继续中断的软件下载
内存访问管理器
AUTOSAR FLS
Vector vMem
虚拟地址的定义
虚拟到物理地址的映射
闪存作业(flash jobs)的优先级和调度
处理多个闪存驱动程序
vMem(外部)
读/写/擦除 程序闪存(program (code) flash)
可用于内部和外部闪存
OTA 管理器
Vector Flashbootloader 的附加组件
负责激活和回滚
OTA 管理器基础版本
OTA 管理器扩展版本
OTA 是一个大而复杂的话题
还有更多功能:
功能安全
多处理器ECU
不同的OEM更新策略
AUTOSAR 自适应
关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯