当前位置: 首页 > news >正文

汽车OTA概述

文章目录

  • 前言
  • 一、软件更新
  • 二、ECU刷写包复用
    • 1.引入库
    • 2.读入数据
  • 总结


前言

掌握OTA(Over-The-Air,无线技术),汽车领域与IT领域正在技术融合!

技术更新,也增加了车载应用场景,软件更新、实时诊断和数据收集等OTA应用案例为汽车整车厂带来了巨大的成本节约潜力,并且为提高客户忠诚度提供了新的机会。但所需付出的努力是巨大的。

成功实现该目标的一个关键是如何恰当地融入现有流程。

随着车辆内部所使用的E/E电子电气架构发生改变,车辆中也开始引入HPC(High-Performance Computing,高性能计算)平台。这样可以脑补成车辆为行驶的一台计算机。目前车辆内部的架构是多个域控制器通过中央网关互连(地盘域、动力域、车载娱乐域等),各个模块的功能在生产时已分配给特定的ECU(微控制器)。

在这种架构下,ECU软件开发主要是用嵌入式C,代码经过优化并最大程度地降低资源占用。编程范例存在一些限制发展现象——比如不允许动态内存管理。

CP平台是此架构的一个典型代表。但在未来的车辆生产中,更加复杂的功能将通过HPC(微处理器)集中实现,其余功能子网通过相关的中间件互相通信,传感器和执行器仍使用传统ECU 这种变化的目标是创建面向服务的架构,使得整个系统具有更好的可维护性和可扩展性,尤其是在 SOP量产后。HPC当中使用了许多与POSIX兼容的操作系统。整个平台也可以使用来自于传统IT领域的技术和工具。同时,会使用到面向对象的高级语言,例如C++,使得新的编程范例可以实现动态内存管理。CP平台是此架构的Solution方案。


一、软件更新

在通讯行业,OTA软件更新已经被实际运用了很多年。典型场景——如今的智能手机几乎每天都会更新一到多个应用程序,该机制再汽车领域应用不多。通常情况下, ECU软件仍然是在车间或售后点进行更新(EOL或4S店花钱升级)。其中一个原因是,相较于更新智能手机应用(类似于单节点),更新车辆网络中的ECU更加复杂。当前,车辆中可能包含有超过100个基于不同平台,采用不同更新刷写机制的ECU。这些ECU在整车网络架构中进行通信。另一方面,出于车辆安全考虑,车辆只有在安全的状态或者有保障的环境当中才能够进行软件更新。这是因为在更新期间无论发生任何情况,车辆都可能无法行使与安全相关的功能。e.g. 车辆ECU更新时,要求发动机转速为0。

在产线下线时,这些条件可以轻松满足,例如,通过将外部诊断仪接入车辆并发送相关诊断指令来完成。但是在OTA方案中,检查和验证的过程是在无人监督的情况下自动执行的。这就需要车辆内部的某个应用程序能够扮演诊断仪和诊断工程师的角色,使得实际的刷写过程与离线状态下由工程师操作诊断仪实现的流程没有本质上的区别。支持OTA更新的ECU可以实现在Application 环境中进行软件下载。为此,这些ECU保留了双重内部保护(A/B分区)。当一些应用程序在活动分区中运行时,新版软件可以同时下载到非活动分区。之后,交换执行分区便可快速激活新版软件。在这种机制下,即使更新失败,应用软件也能够很轻松可靠的退回到上一个版本并且不会产生额外冲突,避免使车辆处于无法控制的状态(有点像数据库中的回滚机制)。

二、ECU刷写包复用

ECU的软件升级刷写流程由Bootloader预先定义(Bootloader基于车企刷写规范定制)。

1、诊断仪通过车载总线(CAN或以太网)与目标ECU建立通信。然后经过响应措施(解锁ECU进行安全认证);

2、然后执行诊断序列。上位机工具将会先从ECU中读取值,然后根据读到的数据运行不同的流程分支。上位机除了基于刷写序列之外。还应该获取:

  • 刷写数据;

  • 通讯参数;

  • 地址信息等刷写必要内容。

     

通过获取上述内容,以上位机为载体,执行符合当前刷写要求的刷写序列以及Flash Driver & Flash Data。

实时诊断和数据收集

伴随着车企云越发应用普及以及无线数据传输功能完善,汽车通过远程技术策略,可以实时获取已销售车辆运行状态信息,实时监测,便于技术升级和故障解决。

另外收集多车数据时,将数据高效地传输到后端对于节省带宽及成本极其重要。从技术上讲,可以争取以最佳方式对内容进行编码,并在车辆中预处理和汇总数据。但这种预处理通常会在ECU中产生额外的负载,在极端情况下可能会限制正在进行中的其他程序。任何情况下都必须避免这种情况。因此,数据收集作业必须严格设计为尽量获取精简但“正确”的数据。

数据收集时,通过车辆总线传输的信号可以深入了解车辆的行为。这些信号比较容易在不产生其他影响的情况下被捕捉到,前提是通过以太网连接的带有数据收集应用的HPC系统正常运行,以及常用库可用于方便地记录以太网通信。该流程几乎不会对总线造成额外的负载。

OTA通讯终端验证是必须的。因此,在OTA整体框架中提供所有应用需要的通讯和安全组件有很大意义。


总结

车载操作系统随着POSIX系统HPC的出现,让我们这些工程师可采用典型IT领域所常用的编程语言(C++等)、典型范例甚至工具进行开发。基于这样的背景,OTA解决方案可以更高效、更高质量地实现。通过开发可在车内以及离线工具中使用的便携式软件组件,通讯可靠度能够得到极大的优化。

伴随着技术成熟,会越来越多的车企实现OTA功能!

相关文章:

  • 基于Java+Swing+mysql餐厅点餐管理系统
  • 店铺如何快速实现数字化管理?不妨参考一下管理系统
  • 修改后的代码只进行了git add操作不小心给他恢复了怎么找回来
  • JUC(一):线程池
  • org.springframework.jdbc.BadSqlGrammarException: Error updating database
  • 熟人服务器被黑,五种实战方法强化linux服务器安全性!
  • RabbitMQ总结
  • 【每日一题Day67】LC1739放置盒子 | 找规律+贪心 二分查找
  • 【Linux】Linux项目自动化构建工具——make/Makefile
  • <Linux线程同步>——《Linux》
  • 【Array数组】面试前基础知识点深度记忆总结
  • 20221226编译Toybrick的TB-RK3588X开发板的Android12系统1-编译环境配置
  • 大话JMeter2|正确get参数传递和HTTP如何正确使用
  • 在Makefile中使用空格缩进的方法
  • 详解vue中vuex的用法
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017-08-04 前端日报
  • Angular 响应式表单之下拉框
  • Javascript弹出层-初探
  • java多线程
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • nginx 配置多 域名 + 多 https
  • Objective-C 中关联引用的概念
  • Python学习笔记 字符串拼接
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 记录一下第一次使用npm
  • 聊聊flink的TableFactory
  • 如何优雅地使用 Sublime Text
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 学习JavaScript数据结构与算法 — 树
  • 用 Swift 编写面向协议的视图
  • nb
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • !!Dom4j 学习笔记
  • $GOPATH/go.mod exists but should not goland
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (九)c52学习之旅-定时器
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (转)3D模板阴影原理
  • .net 4.0发布后不能正常显示图片问题
  • .net 7 上传文件踩坑
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET学习教程二——.net基础定义+VS常用设置
  • :=
  • :O)修改linux硬件时间
  • @AutoConfigurationPackage的使用
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [BUUCTF]-Reverse:reverse3解析
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [BZOJ 3282] Tree 【LCT】