摘要
针对汽车OTA整包升级时,用户下载时间长,升级时间长,设备服务器端压力大等问题,本文提出了一种基于Bsdiff差分算法的汽车OTA升级技术。该算法能够对比新旧版本的差异,进行差分文件下载,减少软件包的下载量,提高用户满意度,在保证安全性的前提下实现更为轻量化的升级。
引言
在未来汽车竞争中,车载软件将占据未来汽车创新的90%,这一数据也充分的体现了软件对未来的影响,相比于从前,嵌入式软件更加复杂,迭代速度更快,嵌入式软件对于整体嵌入式系统性能越来越重要。
OTA(Over-the-Air Technology)空中数据下载技术,在智能手机上通过使用无线移动电话通信的空中下载接口可以进行数据远程管理,是一种无线技术。
作为一个智能终端,不可避免地需要对运行时的问题进行及时调整修复,并不断加入新的功能特性。随着系统新功能的加入,用户应用程序的大量下载,系统升级活动越来越频繁。若每次升级都采取整包升级的方式,每次都要下载数据量巨大的升级包,不仅降低系统的实时性,同样设备服务器也将承受巨大压力。
汽车OTA差分升级系统架构
- 首先是最上层的云端,主要负责升级的交互工作,进行OTA的管理与服务,升级包的检测下载和OTA文件分发等流程。
- 其次是管端,通过4G网络建立终端与服务器之间的安全连接,确保全新的、待更新的固件安全地传输到车辆。
- 终端负责实施哥哥软件更新到汽车。
升级包是在升级任务中,用于真正下载和安装部署的文件。升级包由若干个文件组成,数量庞大。在FOTA升级中的整包下载过程中,需要逐个文件进行下载,每个文件会进入等待序列等待下载,前一个文件下载成功后则进入下载队列。所以整包下载一般耗时较长。
需要检测到对应软件包已经更新,然后通知下载任务开始。在传输初始阶段,需要上传第一个文件(版本信息文件),车辆对当前文件进行信息检测。当车端监测成功并接收文件后,服务器端将继续传送第二个文件,然后车端继续判断再接收。以此方式反复,直到最后一个文件接收完毕,完成升级包的下载功能。
从版本V1到V2的升级包下载,只需要分析其中差分部分,完成下载并升级。差分下载不但可以完成相邻版本之间的升级,跨版本也可以完成,只是时间略有增加,但整体相对整包下载更少。
汽车OTA差分升级流程
汽车OTA差分升级一般分为三步:
- 生成差分更新包
- 传输差分更新包
- 安装更新
汽车OTA差分升级流程共分为四点:
- 服务器端向终端发送版本检测请求进行升级包的检测,如果服务器端版本与终端版本一致,则提示无新版本需要更新,否则进行升级包的发送。
- 当检测到新的版本,应继续检测之前是否下载过,如果曾经下载过,进行OTA断点续传功能,否则全新下载。
- 升级。
实验方案与升级
差分升级性能主要指升级时间,升级时间主要包括如下三部分:
- 下载时间Td。
- 校验时间Tc。
- 数据擦写时间Tr。
升级时间Tu = Td + Tc + Tr。