点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
传统汽车中的ECU遇到软件故障或是软件升级时,需要将车开到4S店,使用诊断设备与车辆的OBD接口连接后进行软件刷新。
这种方式的缺点不仅是耗费售后服务的人力、物力,更主要的问题是会占用车主大量的时间。
OTA是Over The Air Technology,表示空中下载技术,是通过远程的无线技术来实现软件升级。OTA在手机的应用中已十分成熟,智能手机的系统软件和App都早已使用OTA升级。
随着车辆网的普及,OTA技术已逐步开始在汽车中应用。
OTA技术可以让车主足不出户就能完成车辆升级,不仅降低了主机厂售后服务成本,也节省了车主的时间。
汽车OTA既然是由手机OTA技术而来,它和手机OTA的工作流程一样吗?它们之间又有什么区别呢?
01
系统架构
手机OTA的架构很简单,手机需要联网,如果没有WIFI的话,就必须要安装SIM卡,通过SIM卡接收4G/5G无线信号,无线信号来自云端后台服务器(比如移动或联通)。简单的说,手机OTA系统分为手机端(含SIM卡)和云端。
相应的,汽车OTA系统也可以分为车端和云端两部分。
当前的新车型中大部分都配置了中控娱乐大屏,中控屏普遍使用Android操作系统,除了具有车辆专属的控制显示功能外,也可以安装各类App,很像手机的应用,所以汽车中控屏也称为车机。
这样看起来感觉很简单了,是不是车机中安装个SIM卡,就完成了汽车OTA系统的组成呢?
不是!
手机OTA只针对手机本身刷新软件;而汽车OTA中,车机只是需要刷新软件中的1个ECU,除了车机外,还有EMS、BCM、ABS、IPC、EPS等大量的ECU需要软件刷新。
从功能上来看,其它ECU都是车辆启动后必须工作的电控件。而车机主要提供显示娱乐功能,并不需要一直开启,早期的中控屏甚至不需要CAN总线,因此它相对独立,并不适合与其它ECU联系。
所以汽车中使用另一个ECU作为车辆网的接口,那就是T-BOX,因此汽车的SIM卡是安装在T-BOX中的。
汽车OTA系统架构图
由架构图可知,汽车OTA由云端的后台服务器、含有SIM卡的T-BOX、车机和其它ECU组成。
云端作为后台服务器,负责制定升级策略,制作软件升级包和发布升级任务。
车端中的T-BOX通过WIFI或SIM卡接收后台的指令和软件升级包,再执行各个ECU的软件刷新,T-BOX是车辆中ECU与后台间的唯一接口。
这里要说明的一点是,虽然车机中没有SIM卡,但是由于车机中的操作系统和各个App的软件升级频繁,还有导航等App的日常应用也需要在线联网,所以车机对流量的需求是最大的,T-BOX与车机需要通过高速的通信接口连接,比如通过USB或以太网进行流量的分享。
OTA工作流程图
汽车OTA的流程首先由云端后台触发,T-BOX收到触发指令后,会进行车辆状态检查,比如检测电池电压,确认电量是否充足。检测车速是否为0,档位是否处于P档,确认车辆是否为停车状态。
T-BOX完成前置条件检查后就可以从后台服务器中进行更新包的下载;下载后进行验证,验证正确后就启动对ECU的软件刷新;接下来的刷新过程与通过诊断仪对ECU进行本地刷新类似,比如UDS刷新流程,完成后由ECU进行软件完整性检查。
02
A/B 升级
所谓A/B升级,是指在1个芯片中分配两个存储空间(A/B存储空间),每个存储空间上均安装有一个系统,其中一个系统处于激活使用状态,另外一个系统处于备用待命状态。
在进行系统升级时,可在激活的系统中对备用系统进行升级,升级完成重启后切换成备用系统中新升级的系统。
A/B升级首先在智能手机的Android系统上得到了大量应用。
传统ECU主要使用MCU进行控制,由于硬件特性和存储空间限制,很少使用A/B升级。
随着智能汽车的发展,不少智能控制器都使用SOC进行控制,SOC主要基于Linux或Android等遵循POSIX标准的操作系统进行开发,因此汽车也开始使用A/B升级技术。
随着汽车OTA对安全性要求的提高和MCU技术的发展,采用MCU进行控制的ECU也开始使用A/B升级技术。
使用A/B升级技术的ECU,升级过程中即使设备掉电或其他异常中断了升级过程,也能保证设备系统再次上电后系统可以正常运行;如果升级过程顺利完成但无法启动,系统将回滚到旧分区,继续运行旧版本的程序。
使用A/B升级后,系统可以保证始终有一个可以正常运行的系统,极大的降低了刷新失败后,设备变砖的可能。
A/B升级机制可大大增加软件刷新的安全性
虽然A/B升级能够提高系统的安全性和稳定性,但是对芯片的性能要求更高,尤其是对存储容量要求会大很多,存储容量大会增加ECU的成本。
03
差分包
OTA与售后服务站软件刷新最大的区别就是软件包是来自在线的网络还是来自离线的诊断设备。
OTA的软件是从线上的服务器下载而来,所以增加了额外的时间和流量。传统的ECU代码量很小,大多小于1M,而带有操作系统的SOC,尤其是仪表、中控等存储大量图片的软件代码量就很大了,可以达到几百兆甚至几个G。
软件刷新如果都要下载完整的软件包,不仅时间很长,流量费用也很高,所以需要使用差分技术,制作差分包。
差分包是通过比较新旧软件版本之间的差异生成的,它包含了从旧版本升级到新版本所需的变更内容。使用差分包进行OTA升级可以显著减少传输的数据量,节省带宽,减少升级时间,并降低对车辆电池的消耗。
应用差分算法来分析新旧版本的不同之处,常用的差分算法包括Xdelta、Vcdiff、Bsdiff等,这些算法能够有效地识别和生成两个版本之间的差异数据。
车端的控制器从后台下载到差分软件包后,控制器中的SoC需要根据差分算法完成软件包的差分还原,差分包制作和还原过程如下图所示:
差分包工作流程
04
MCU的OTA工作原理
传统的ECU模块中的主芯片是MCU,从OTA架构上来看,传统的ECU模块是通过T-BOX来刷新的,T-BOX相当于售后的诊断仪,所以MCU只需要支持常规的UDS诊断协议即可,其刷新流程与售后的刷新流程基本一样。
UDS常用的刷新流程
如果对信息安全要求较高,需要加强安全认证,还可以使用UDS中的29服务。
29服务的目的是为客户提供一种身份认证的方法。当客户想读写一些有访问限制的数据时来验证客户的身份,传统的27服务不能满足这些需求,因此需使用新增的29服务,来实现身份认证。
05
SOC的OTA工作原理
随着车联网和智能化的发展,部分ECU开始使用SOC+MCU的方案,比如全液晶仪表、车机、TBOX、网关等。
SOC的工作原理与MCU不同,因此内部刷新方式也不同;SOC的工作内容与MCU也不同,所以外部刷新方式也不同。
比如车机的SOC需要从云端接收指令和数据包完成自身软件刷新;T-BOX的SOC除了需要从云端接收指令和数据包完成自身软件刷新外,还要对其它ECU进行刷新;全液晶仪表的SOC可能会接收车机发来的指令和数据包进行刷新;
车机或T-BOX中的SOC整体流程如下图所示,SOC收到云端下发的更新指令,双方经过认证后,SOC从云端获取更新包,之后进入到更新包处理流程:差分包还原、解压缩、解密、更新包结构验证。处理完更新包之后,SOC控制器将更新包刷新至其它ECU节点,至此完成整套流程。
SOC的OTA通信数据流
SOC获取更新包则需要支持HTTP/HTTPS协议、MQTT协议等等,也有其他自定义的安全协议,需要SOC和云节点交互,满足信息安全要求。车云之间需要通过无线连接,一般是WiFi、4/5G、蓝牙,因此需要支持无线连接。
在车端SOC控制器内部,需支持更新包的差分还原,即支持差分算法。如果更新包通过压缩的方式传输,SOC还要集成相应的解压缩算法库。
在ECU内部,SOC也可以对MCU进行软件刷新,这时的MCU不走UDS协议,也不走传统的车载总线,硬件接口上常用UART、I2C或者SPI通信,需要自定义刷新流程协议,也就是私有的通信协议。
06
小结
汽车电子的OTA是从手机的OTA技术发展而来,但是汽车电子由于使用场景不同、电磁环境不同、功能不同,所以汽车OTA的技术也更为复杂。
汽车OTA不仅可以对车机进行软件升级,也可以对传统的ECU模块进行升级,由于对安全,速度、稳定性要求较高,常采用A/B分区技术与差分技术。
end
专业社群
精品活动推荐
原文始发于微信公众号(谈思实验室):汽车OTA与手机OTA一样吗?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论