软件更新和无线升级 (SOTA)自学笔记

简介: 软件更新和无线升级 (SOTA)自学笔记

01.概述

1.1 汽车 OTA——三个关键用例

  1. 1.数据收集
  • 实施预测性维护
  • 建立早期反馈循环(例如在推出新模型时)
  • 基于车辆数据提供新服务
  • 例如,为当地天气报告收集雨水传感器数据
  1. 2.实时诊断
  • 从中央车辆支持中心从远程获得路边援助
  • 继续驾驶还是继续等待拖车服务?
  • 立即解决一些 E/E 问题
  1. 3.软件更新
  • 通过快速修复功能和安全事件来避免昂贵的召回
  • 发布花哨的新功能,创造新的商业模式
  • 实施基于软件的模型升级

1.2 基于Vector的OTA 方案

dd3af5e4c5f79b6683eac550b6b7bfac_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述


02.软件下载用例

2.1 通过离线车载诊断测试仪下载软件


7059302b25241756e113f10b89baeac3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2.2 单分区的引导加载程序上下文中的 OTA 软件下载

175fb368d0cc169bcae4d4b7700593bb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

2.3 多分区(Multiple Partitions)的引导加载程序上下文中的 OTA 软件下载

7250d1575a7ef8b20d03c9354b973321_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

2.4  Bootloader 上下文中的 OTA 软件下载

  1. 1.方法
  • 在路上行驶时,连接单元接收到软件更新包
  • 在 Flash Bootloader 上下文中的运行后阶段(post-run phase)对目标 ECU 进行更新
  1. 2.约束
  • 下载过程中需要实现下载中断/恢复能力
  • 必须考虑电池容量
  1. 3.优点
  • 重用现有基础架构(Flash Bootloader)
  • 对应用程序运行时行为没有影响
  • 在更新阶段利用最大网络带宽
  1. 4.缺点
  • 关闭期间(key-off)进行更新的时间窗口是有限的
  • 由于关闭了正常的消息通信,因此对运行后系统设计(post-run)产生影响

2.5 Application上下文中的 OTA 软件下载

  1. 1.方法
  • 在路上行驶时,连接单元接收到软件更新包
  • 更新在应用程序上下文中的目标 ECU 上的影子内存中进行
  1. 2.约束
  • 应用栈需要通过OTA下载软件组件进行扩展
  • 必须考虑总线负载和 ECU 性能影响
  • 必须实现多内存分区概念和下载中断/下载恢复的能力
  1. 3.优点
  • ECU 在应用程序上下文中运行,无需禁用正常的消息通信
  • 根据内存分区概念,对车辆可用性几乎没有影响
  1. 4.缺点
  • 复杂性增加
  • 额外的 ROM 资源
  • 必须考虑对 ECU 系统设计和安全要求的

03.ECU存储解决方案

3.1 硬件辅助 A/B分区交换解决方案

  • 这种架构需要微控制器本身的硬件支持
  • 硬件将活动分区(active partition)映射到预定义的地址范围(例如 0x000000,在下面的示例中分区大小为 2MB)
  • 代码总是从预定义的地址范围执行(0x000000-0x200000)
  • 激活(Activation)分区意味着重新映射活动和非活动内存地址范围
  • 2184bcb822ae62d2d5c4b0a106c5e97b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3.2 下载缓存解决方案

  • 在后台下载期间,下载的数据缓存在未使用的内存区域(内存区域可以是内部存储器或者是外部存储器)
  • 在软件激活期间,Flash Bootloader 将新应用程序复制到活动存储区
  • 946418a6502fbbf6b03c66cf2aa10a90_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3.3 Dual Binary解决方案

  • 根据活动/非活动内存,选择不同的应用入口地址
  • 代码从不同的内存位置执行
  • 需要维护两个相同版本的软件二进制文件,它们链接到不同的内存位置
  • 诊断Tester需要知道活动/非活动内存的位置以选择正确的镜像
  • 9d56895409a8c94e326bf5ecab36e1d6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3.4 ECU存储解决方案比较

Hint:符号“+”表示优点,符号“-”表示缺点

  1. 1.硬件辅助 A/B分区交换解决方案 +单个二进制 +激活时间较短 -目前只支持少数硬件平台
  2. 2.下载缓存解决方案 +单个二进制 +通用解决方案 +现有 MCU 平台可通过添加外部闪存重复使用 -由于数据复制,激活时间较长 -增加了外部闪存的成本
  3. 3.Dual Binary解决方案

+除了支持边写边读外,没有额外的硬件要求 +极短的激活时间 -双软件镜像的配置管理 -可能需要复杂的软件来处理不同的复位向量和中断地址

04.MICROSAR.OTA 软件下载解决方案

4.1 MICROSAR.OTA 软件架构 - 职责

注意:架构图只显示了OTA 特定的 BSW 模块。

b843c6f3d5fcc8bcac6d3cae3ddb0397_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  • MICROSAR
  • 下载软件更新
  • 软件更新验证
  • 备份创建(可选)
  • Flashbootloader
  • 激活(Activation)软件更新
  • 回滚(Rollback)到以前的软件

4.2 MICROSAR.OTA 软件架构 - SWDL Handler

b917976262997b384ba85953dc8ad0a8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

4.3 MICROSAR.OTA 软件架构 – 软件更新管理器

8f8f785ac5207abac8fedbe214a0dddf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

  • 软件更新管理器
  • 签名验证
  • 解压
  • 解密
  • 闪存数据的缓冲
  • 数据处理
  • 模块的定义,也就是逻辑块
  • 模块到虚拟地址的映射
  • 处理保存的恢复信息来继续中断的软件下载

4.4 MICROSAR.OTA 软件架构 – 内存访问管理器

de64ef02a896ee9541f2e11d0e7068c4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

  • 内存访问管理器
  • AUTOSAR FLS
  • Vector vMem
  • 虚拟地址的定义
  • 虚拟到物理地址的映射
  • 闪存作业(flash jobs)的优先级和调度
  • 处理多个闪存驱动程序

4.5 MICROSAR.OTA 软件架构 – vMem

ad550f57d0adfb6e7eca266e445ea546_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

  • vMem(外部)
  • 读/写/擦除 程序闪存(program (code) flash)
  • 可用于内部和外部闪存

4.6 SWDL 软件架构

e59e54a4d942ecd584d33942d944787e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里插入图片描述

  • OTA 管理器
  • 在内部和/或外部闪存的分区之间复制数据
  • 使用硬件辅助 A/B 交换
  • Vector Flashbootloader 的附加组件
  • 负责激活和回滚
  • OTA 管理器基础版本
  • OTA 管理器扩展版本

05.总结与展望

  • OTA 是一个大而复杂的话题
  • 从最低硬件级别到系统级别的依赖关系(包括后端)
  • 还有更多功能:
  • 功能安全
  • 多处理器ECU
  • 不同的OEM更新策略
  • AUTOSAR 自适应
相关文章
|
1月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 二次创新篇 | 升级版本Dyhead检测头替换DCNv3 实现完美升级(全网独家首发)
YOLOv8改进 | 二次创新篇 | 升级版本Dyhead检测头替换DCNv3 实现完美升级(全网独家首发)
278 2
|
1月前
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | 二次创新篇 | 升级版本Dyhead检测头替换DCNv3 实现完美升级(全网独家首发)
YOLOv5改进 | 二次创新篇 | 升级版本Dyhead检测头替换DCNv3 实现完美升级(全网独家首发)
127 0
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于计算机视觉手势识别控制系统YoloGesture (利用YOLO实现) 有详细代码+部署+在线服务器尝试+开源可复现
基于计算机视觉手势识别控制系统YoloGesture (利用YOLO实现) 有详细代码+部署+在线服务器尝试+开源可复现
|
1月前
|
人工智能 自然语言处理 前端开发
ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)
ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)
60 0
|
10月前
|
机器学习/深度学习 监控 算法
利用BP算法优化企业电脑监控软件:一览深度学习在安全防护中的崭新应用
不知道大家有没有听说过BP(Backpropagation)神经网络算法,听上去比较高级,但其实也是挺酷的!而且BP算法还可以在企业电脑监控软件方面大显身手哦。想知道怎么玩转它吗?别担心,接下来咱们就用通俗易懂的语言来了解一下BP算法在企业电脑监控软件中的作用——
95 0
|
10月前
|
人工智能 JSON 数据格式
HarmonyOS学习路之开发篇—AI功能开发(文档检测校正)
基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
文心大模型升级3.5版本,有多强?我们帮你试了试
文心大模型升级3.5版本,有多强?我们帮你试了试
282 0
|
机器学习/深度学习 存储 人工智能
多路径多领域通吃!谷歌AI发布多领域学习通用模型MDL
多路径多领域通吃!谷歌AI发布多领域学习通用模型MDL
142 0
|
SQL 存储 测试技术
|
机器学习/深度学习 SQL 人工智能
ARM放大招发布Trillium项目:包含神经网络软件库和两种AI处理器
90% 的 AI 设备都是用 Arm 的架构设计的,现在 Arm 在人工智能领域厚积薄发,发布了 Trillium 项目,包括一款为移动设备而设计的机器学习处理器、一款目标检测处理器和一个神经网络软件库。
212 0
ARM放大招发布Trillium项目:包含神经网络软件库和两种AI处理器