软件更新和无线升级 (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 自适应
相关文章
|
机器学习/深度学习 自然语言处理 算法
【多标签文本分类】《多粒度信息关系增强的多标签文本分类》
提出一种多粒度的多标签文本分类方法。一共3个粒度:文档级分类模块、词级分类模块、标签约束性关系匹配辅助模块。
342 0
|
测试技术 Android开发
autojs横屏截图的正确姿势
牙叔教程 简单易懂
3315 0
【知识分享】Java获取当前周的开始时间结束时间
【知识分享】Java获取当前周的开始时间结束时间
391 0
|
9月前
|
安全 Linux 网络安全
车载操作系统信息安全架构
本次分享的主题是车载操作系统信息安全架构,由中兴通讯操作系统产品部张兵分享。主要分为以下四个部分: 1. 背景 2. 现状 3. 实践 4. 展望
272 1
|
XML 运维 监控
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
909 0
|
12月前
|
机器学习/深度学习 人工智能 并行计算
量子计算与人工智能:智能革命的新动力
【10月更文挑战第31天】量子计算与人工智能的结合,正成为推动科技进步的重要力量。本文探讨了量子计算的基本原理与优势,分析了人工智能的发展现状与挑战,并展望了两者结合在医疗、金融、交通和智能制造等领域的应用前景。尽管面临技术成熟度和算法设计等挑战,但这场智能革命将为人类社会带来前所未有的变革和机遇。
|
Oracle 关系型数据库 数据库
详细解读ADG增量恢复手册
详细解读ADG增量恢复手册
175 0
|
算法 大数据 数据处理
一文读懂AutoSAR通信模块
一文读懂AutoSAR通信模块
一文读懂AutoSAR通信模块
|
存储 编译器 C语言
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
299 1
|
Android开发
App Inventor 2 Activity启动器技巧:如何查看并启动其他App
Activity启动器(ActivityStarter)如何查看并启动其他App,可以通过解压源码查看,或使用“包名查看器”App查看,不同品牌手机可能略有不同。
404 0