01.概述
1.1 汽车 OTA——三个关键用例
- 1.数据收集
- 实施预测性维护
- 建立早期反馈循环(例如在推出新模型时)
- 基于车辆数据提供新服务
- 例如,为当地天气报告收集雨水传感器数据
- 2.实时诊断
- 从中央车辆支持中心从远程获得路边援助
- 继续驾驶还是继续等待拖车服务?
- 立即解决一些 E/E 问题
- 3.软件更新
- 通过快速修复功能和安全事件来避免昂贵的召回
- 发布花哨的新功能,创造新的商业模式
- 实施基于软件的模型升级
1.2 基于Vector的OTA 方案
在这里插入图片描述
02.软件下载用例
2.1 通过离线车载诊断测试仪下载软件
2.2 单分区的引导加载程序上下文中的 OTA 软件下载
在这里插入图片描述
2.3 多分区(Multiple Partitions)的引导加载程序上下文中的 OTA 软件下载
在这里插入图片描述
2.4 Bootloader 上下文中的 OTA 软件下载
- 1.方法
- 在路上行驶时,连接单元接收到软件更新包
- 在 Flash Bootloader 上下文中的运行后阶段(post-run phase)对目标 ECU 进行更新
- 2.约束
- 下载过程中需要实现下载中断/恢复能力
- 必须考虑电池容量
- 3.优点
- 重用现有基础架构(Flash Bootloader)
- 对应用程序运行时行为没有影响
- 在更新阶段利用最大网络带宽
- 4.缺点
- 关闭期间(key-off)进行更新的时间窗口是有限的
- 由于关闭了正常的消息通信,因此对运行后系统设计(post-run)产生影响
2.5 Application上下文中的 OTA 软件下载
- 1.方法
- 在路上行驶时,连接单元接收到软件更新包
- 更新在应用程序上下文中的目标 ECU 上的影子内存中进行
- 2.约束
- 应用栈需要通过OTA下载软件组件进行扩展
- 必须考虑总线负载和 ECU 性能影响
- 必须实现多内存分区概念和下载中断/下载恢复的能力
- 3.优点
- ECU 在应用程序上下文中运行,无需禁用正常的消息通信
- 根据内存分区概念,对车辆可用性几乎没有影响
- 4.缺点
- 复杂性增加
- 额外的 ROM 资源
- 必须考虑对 ECU 系统设计和安全要求的
03.ECU存储解决方案
3.1 硬件辅助 A/B分区交换解决方案
- 这种架构需要微控制器本身的硬件支持
- 硬件将活动分区(active partition)映射到预定义的地址范围(例如 0x000000,在下面的示例中分区大小为 2MB)
- 代码总是从预定义的地址范围执行(0x000000-0x200000)
- 激活(Activation)分区意味着重新映射活动和非活动内存地址范围
3.2 下载缓存解决方案
- 在后台下载期间,下载的数据缓存在未使用的内存区域(内存区域可以是内部存储器或者是外部存储器)
- 在软件激活期间,Flash Bootloader 将新应用程序复制到活动存储区
3.3 Dual Binary解决方案
- 根据活动/非活动内存,选择不同的应用入口地址
- 代码从不同的内存位置执行
- 需要维护两个相同版本的软件二进制文件,它们链接到不同的内存位置
- 诊断Tester需要知道活动/非活动内存的位置以选择正确的镜像
3.4 ECU存储解决方案比较
Hint:符号“+”表示优点,符号“-”表示缺点
- 1.硬件辅助 A/B分区交换解决方案 +单个二进制 +激活时间较短 -目前只支持少数硬件平台
- 2.下载缓存解决方案 +单个二进制 +通用解决方案 +现有 MCU 平台可通过添加外部闪存重复使用 -由于数据复制,激活时间较长 -增加了外部闪存的成本
- 3.Dual Binary解决方案
+除了支持边写边读外,没有额外的硬件要求 +极短的激活时间 -双软件镜像的配置管理 -可能需要复杂的软件来处理不同的复位向量和中断地址
04.MICROSAR.OTA 软件下载解决方案
4.1 MICROSAR.OTA 软件架构 - 职责
注意:架构图只显示了OTA 特定的 BSW 模块。
- MICROSAR
- 下载软件更新
- 软件更新验证
- 备份创建(可选)
- Flashbootloader
- 激活(Activation)软件更新
- 回滚(Rollback)到以前的软件
4.2 MICROSAR.OTA 软件架构 - SWDL Handler
在这里插入图片描述
4.3 MICROSAR.OTA 软件架构 – 软件更新管理器
在这里插入图片描述
- 软件更新管理器
- 签名验证
- 解压
- 解密
- 闪存数据的缓冲
- 数据处理
- 模块的定义,也就是逻辑块
- 模块到虚拟地址的映射
- 处理保存的恢复信息来继续中断的软件下载
4.4 MICROSAR.OTA 软件架构 – 内存访问管理器
在这里插入图片描述
- 内存访问管理器
- AUTOSAR FLS
- Vector vMem
- 虚拟地址的定义
- 虚拟到物理地址的映射
- 闪存作业(flash jobs)的优先级和调度
- 处理多个闪存驱动程序
4.5 MICROSAR.OTA 软件架构 – vMem
在这里插入图片描述
- vMem(外部)
- 读/写/擦除 程序闪存(program (code) flash)
- 可用于内部和外部闪存
4.6 SWDL 软件架构
在这里插入图片描述
- OTA 管理器
- 在内部和/或外部闪存的分区之间复制数据
- 使用硬件辅助 A/B 交换
- Vector Flashbootloader 的附加组件
- 负责激活和回滚
- OTA 管理器基础版本
- OTA 管理器扩展版本
05.总结与展望
- OTA 是一个大而复杂的话题
- 从最低硬件级别到系统级别的依赖关系(包括后端)
- 还有更多功能:
- 功能安全
- 多处理器ECU
- 不同的OEM更新策略
- AUTOSAR 自适应