文章目录
- 前言
- 一、软件更新
- 二、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功能!