,这些智能汽车被软件控制,装有巨量的软件程序,当出现一个软件程序问题或者更新时,如果按照传统的解决方式,那都将是一项很繁重的任务。以某车上市后出现的刹车逻辑问题为例,按照传统的解决方案,那么所有该车辆先将被召回,然后派人更新软件。这样,一方面影响用户体验和满意度,另一方面又要耗费大量的人力物力来修复问题。
为了解决传统方式的痛点,使得软件更新更迅速,一种远程升级软件的技术OTA被引入到汽车行业。汽车远程升级技术OTA(Over-the-Air)是指通过移动通信网络(2G/3G/4G或Wifi)对汽车的零部件终端上固件、数据及应用进行远程管理的技术。简单来说OTA技术实现分三步:首先将更新软件上传到OTA中心,然后OTA中心无线传输更新软件到车辆端,最后车辆端自动更新软件。
也就是上述刹车逻辑问题的解决方式就变成了更新软件无线传输到车辆并自动完成更新,完美地解决传统方式的痛点,显然我们可以看出OTA技术的优势:
而且随着汽车行业已进入软件定义汽车的时代,对售后汽车售卖各种各样功能的新商业模式兴起,也要求汽车必须具备OTA功能。这里准确地说,OTA分为两类,一类是固件在线升级FOTA(Firmware-Over-the-Air),是指不改变车辆原有配件的前提下,通过写入新的固件程序,使拥有联网功能的设备进行升级,包括车辆的发动机,电机变速箱,底盘等控制系统,比如特斯拉曾通过FOTA新增过自动驾驶功能、增加过电池容量和改善过刹车距离等。另一类是软件在线升级SOTA(Software-Over-the-Air),是在操作系统的基础上对应用程序进行升级,是指那些离用户更近的应用程序,UI界面和车载地图、人机交互界面等功能,像娱乐系统更新操作界面或主题。
当前智能网联汽车的OTA架构由OTA云端,OTA终端和OTA升级三部分组成,如下所示。
这里,OTA云端为OEM专属的云端服务器平台,OTA终端采用TBox,网络架构采用功能域划分方式。考虑到本文对OTA技术介绍的完整性,但重点不在说明OTA技术架构,而是旨在说明车内嵌入式设备ECU等的升级方案,故引用《智能网联汽车的OTA升级方案》供相关朋友再做进一步研究。
针对ECU升级的过程描述:FOTA 系统主要通过车载移动互联网进行数据上报及下行传输,通过车内网对车内设备单元进行数据刷写。典型的 FOTA 系统网络安全主要由 OTA 远程管理平台端、 TBox 端(4G LTE)、中央网关、域控制器端及数个 ECU 等节点组成。
FOTA 系统网络安全性需要确保升级包在远程服务器端的安全存储、后台服务器到车端的安全加密通讯、中央网关的升级包解密、防火墙和 OTA 管理,以及车内网络基于对称加密的安全通讯和安全 Bootloader 等要素。
本部分主要介绍车内嵌入式设备ECU的OTA技术实现方案,也就是整车控制器,发动机控制器,变速箱控制器和电池管理控制器等实现OTA升级,可以采用怎样的实现方案。
从上文可知,在车辆端,OTA实现是从TBox 端(4G LTE)经网关,通过总线通讯(CAN以太网)将软件刷写到车内嵌入式设备ECU(目标ECU)。
那么具体刷写到目标ECU还是其他存储设备?以及又将如何启动新软件运行?下面将详细介绍,不过为了更好地理解ECU的OTA实现方案,先解释下分区刷写和地址映射的概念:
关于软件刷写,经常会看到需求“要求支持Bootloader,BSW,ASW和标定等独立刷写”,这是怎么个概念呢?下面进行详细解释:对于汽车ECU软件研发来说,所谓软件要么是模型,要么是C/C++代码,但最终都会变成一个二进制文件,比如HEX, S19, Bin等格式。这个文件将会被刷写到ECU的非易失性存储单元(内存)。
像英飞凌TC2xx系列采用的内存是Flash,存储程序叫做PFlash,存储数据叫做DFlash。为了合理有效使用这些内存,同时也方便管理,通常我们会分配这些内存的用途,以下图的PFlash分配为例,分配2MB存启动软件Bootloader,2MB存底层软件BSW和2MB存应用层软件ASW。
针对前面需求,不难理解客户的意思,就是需要能只更新其中一个,比如ASW,而其他不变,即Bootloader和BSW不变。当然,OTA本质上就是实现软件远程刷写,当然会有这样的需求,所以在此先介绍
上面进行了内存分配,那么我们写代码时候,怎么保证代码就能放入规定的内存空间,比如说ASW的软件代码怎么能放在规定的内存空间,更准确第地说,ASW代码编译完成后的地址怎么会在0x8040 0000 - 0x805F FFFF范围。需要使用#pragma用法来实现,以一个ASW函数QxyDemo的定义为例,
通过上述这个过程,其实我们建立ASW C/C++代码与ECU Flash地址的映射,这样就能保证ASW二进制代码刷写到预期的ECU PFlash地址,同理Bootloader和BSW。当软件运行时,就可以通过有序地访问来自PFlash地址的ASW内容,执行ASW预期的操作和运算。
在介绍了分区刷写和地址映射的概念后,下面来了解ECU的OTA实现方案。总的来说,OTA实现方案分为两种,一种与通常的刷写方式一样,即先擦除当前版本软件,再刷写新版本软件,但这种方法有个隐患,就是新软件有问题时,由于旧软件已经被擦除,没有备份,恢复会很麻烦,因此就提出了另一种,即A/B交换。
一块存放当前版本软件,另一块存放旧版本软件。当OTA升级新版本软件时,新版本软件将代替旧版本软件,这时,一块放的是当前版本软件,另一块放的是新版本软件。再激活运行新版本软件,此时原先的当前版本就变为旧版本软件,作为备份,以防运行的新版本软件有问题,可以及时回滚恢复。
该方案要求ECU内存足够,而且支持地址重映射,也就是当新版本软件刷写完成,通过更新映射地址来激活新版本软件,即新版本软件运行的入出地址不变。
与第1类的差别在于ECU硬件不支持地址重映射,激活新版本软件的入出地址变化。
该方案是需要额外的外扩内存,备份当前版本软件和旧版本软件,新版本软件会先刷写原先的旧版本软件空间,然后擦除ECU内存的当前版本软件,刷写新版本软件,完成激活。
第1,2方案的激活时间都较短,但第1种方案一般需要高级版本的ECU才支持,比如英飞凌TC39x;第2种方案软件实现较复杂,因为需要处理不同的复位向量和中断地址;
第3种方案则是通用的方案,因为对已有的MCU平台不需要做很大改动,只需要增加额外的外扩内存就能实现。
注:回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。
上述OTA升级刷写的新版本软件,一般分为两类。一类是通常理解的新软件替换旧软件。
像车辆ECU的大部分软件很小,都采用这类,但像车辆的娱乐信息系统和车载地图等的软件很大,可能采用另一类:差分文件。
引自[6]:由于车载网络的带宽资源和计算资源等有限,通常不在其上直接传输完整升级文件而是选择通过差分算法传输增量升级文件然后再通过相应还原算法计算出原完整升级文件,以减少传输过程中的时间消耗以及对车载网络本身的使用负载。差分算法是指在云服务器端比较新、旧版本之间的差异并生成差分 delta 文件,然后将该文件传输到车辆客户端,由车辆客户端根据接收到的差分delta 文件和旧版文件还原成新版文件。因差分 delta文件的大小远小于源文件,所以有利于无线传输,同时节省流量,能够提升整个传输过程的安全可靠性和经济性。
以上就是从ECU角度介绍了OTA技术实现方案的大体思路,具体采用何种方案,主要取决整车网络架构和ECU情况,接下来借助AutoSAR OTA相关文档来谈谈OTA都有哪些典型需求。
为了实现OTA功能,一般会提什么样的需求?下面通过对OTA升级过程和OTA软件实现架构的理解,来逐步分析。
在这个过程,Master ECU为了协调OTA升级,需要实时了解进展;软件installation需要多帧传输,这时Target ECU需要进行数据处理;installation过程也可能不是如预期顺利,比如会出现取消或中断等情况。因此,针对这些情况就会产生相应的需求,比如:
activation是指车辆处于安全状态下,备份旧软件,激活新软件。这里,如果采用外部Flash来实现,其过程可能为先备份旧软件到外部Flash,然后复制新软件到ECU,再激活新软件。
以上通过对各个过程描述和分析,示例了各个过程会产生怎样的需求。以此思路,那么对Target ECU又怎样的需求,从AutoSAR文档可见如下需求:
总的来说,需求一方面取决于整车的OTA架构和ECU情况,另一方面又取决于OTA功能的自身定义和特性。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。侵权投诉
应用落地,离不开完整的测试验证。经纬恒润基于自主研发的INTEWORK系列产品,提出了
固件的管理、升级与维护。下图展示了 RT-Thread 通用 Bootloader 的软件框架:原作者:文江博客
完整网联化、智能化体验的基础,自引入汽车以来,广受研发人员、市场用户的高度关注。近来,国家有关部门也陆续出台了相应政策,对汽车企业
固件更新需要在安全的环境下运行,并需考虑无线通信的稳定程度。通常,汽车网关配有
。 2. 通过 MCU/DSP/MPU 等应用处理器 / 控制器和各类通讯模块开发的
了云端的安全通信,包括协议通信链接管理,升级指令接收和升级状态发送,升级包下载、升级包解密、差分包重构等功能;2. Update Agen
系统升级技术的汽车是2012年上市的特斯拉Model S。其后越来越多新能源车型都标配
(over the air,空中下载)技术的基本原理、组网结构和功能体系,从业务
在量产车型的应用落地,离不开完整的测试验证。经纬恒润基于自主研发的INTEWORK系列产品,提出了
在日常研发中,调试已经成为日常工作中核心的一部分。汽车电子行业中,测试时,常需对
体验。同时也可以修复用户反馈的软件问题,增强制造商的售后服务体验。 目前
终端内存储数据的更新,进而改善终端的功能和服务的技术。 这项技术最早应用在 PC 机上,后来广泛应用在移动手机行业,近几年才开始在汽车行业里广泛应用。 与 PC、移动手机在短短二三十年广泛应用
升级。 用户如果将开发了的产品发布上线销售,后期需要更新固件和程序,就需要用到远程
产品大都带有SAE J1939 CAN接口。针对具有SAE J1939 CAN接口的
,可以从一开始就采用域/区架构。然而,在实践中,许多汽车制造商并不是从 空白 开始的,他们需要保留对
无线连接测试专家Microwave Vision Group(MVG)和安立公司近日宣布,他们与丰田公司合作开发了世界上第一个5G
BootLoad(简称Boot)是一种启动加载程序,或者称为引导程序,我们在操作系统和嵌入式开发中经常用到,因为汽车
共享,大量的控制信号能够实时交换。这样,传统线束已远远不能满足这种需求。
的持续扩展给汽车制造商带来了更多挑战。因此,全球大多数汽车制造商正在从传统的分布式
采用标准OBD II接口,可以使用即插即用的方式连接到汽车的OBD接口上,可用于开发汽车电子设备、模拟
在日常研发中,调试已经成为日常工作中核心的一部分。汽车电子行业中,测试时,常需对
这些结果表明,设计决策将对软件性能产生切实的影响。没有放之四海而皆准的解决
简单的可以理解为远程升级,最早是安卓系统在手机上推出的,终结了手机软件升级需要连接电脑、然后下载软件、再安装更新的繁复流程。而运用到汽车上也就可以理解为可以远程升级你的
可有多个。服务器通过串口与PC机连接,需要下载的镜像文件存放于PC机,命令执行器给服务器发命令及镜像文件。首先命令执行器控制服务器广播当
是什么 ,而对于一些刚入门的机友们,ROOT、刷机、越狱都比较熟悉,但
微控制器支持虚拟化多个独立的OS实例,使其能运行在单核或者多核系统上。Vector遵循ISO 26262 ASIL-D开发安全高效的虚拟化组件veHypervisor,
为了使“互联汽车”成为现实,汽车行业需要创建一个安全的管道,连接到汽车中的所有设备,并
)更新。如今,汽车制造商提供许多车型,这些车型具有各种各样的选项和设备包,可能需要更换或升级。对于现场
为了使“互联汽车”成为现实,汽车行业需要创建一个安全的管道,连接到汽车中的所有设备并
)更新。如今,汽车制造商为许多车型提供了各种各样的选项和设备包,可能需要更换或升级。对于为现场
的升级模式进化到整车系统化整合升级模式,比如,2016年年底搭载阿里斑马系统的荣威X5,代表了HU的
升级达到了一个成熟应用的阶段。而今年9月份东风风行T5搭载的CAROTA科络达
的升级模式进化到整车系统化整合升级模式,比如,2016年年底搭载阿里斑马系统的荣威X5,代表了HU的
升级达到了一个成熟应用的阶段。而今年9月份东风风行T5搭载的CAROTA科络达