我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:神州彩票 > 二进制文件 >

车企提升车辆IT属性的利器 汽车OTA增量更新

归档日期:05-27       文本归类:二进制文件      文章编辑:爱尚语录

  5月25日,Tesla向Model 3车主远程推送了一版更新包,完成OTA升级后,在的测试中,Model 3的制动距离由日前被披露的46.33米缩短至了41米。

  行业内,日产、丰田、比亚迪的某些车型虽也具备OTA功能,但能实现的仅是对远程通信模块或娱乐系统的部分数据更新,相比之下,Tesla目前仍是第一家可通过OTA完成对关键功能模块远程刷新以实现车辆性能升级的车企。

  北美GM宣称,将会采用全新的Global B电子汽车架构及信息娱乐系统,并于2020年之前提供OTA无线软件更新服务。

  OTA(over the air),是一项基于短消息机制的远程更新技术,即终端通过无线或蜂窝网络的接口与服务器连接来实现对本地设备数据的更新。

  OTA技术在手机为代表的消费类电子产品中已部署多年,如对操作系统及手机端app的更新,或是手环等智能设备的固件升级。

  随着操作系统及应用软件的迭代开发速度加快,更新需求及频次无疑会随之递增,尽管频繁的更新给用户带去全新的feature,但是,下载等待时间过长或更新所需流量太大以及本地空间不足导致的无法更新都严重影响到了用户体验,因此,在更新事件中对过程进行优化,尤其流量方面的控制就显得尤为重要。

  此需求在车辆OTA场景中同样存在,尤其需进行整车模块升级时,或者当Target ECU是ECM、TCM及新能源功能相关模块时,由于涉及的模块功能复杂度高决定了其刷新包数据量较大,对于此类模块,若每次都采用全包更新(Full OTA)的方式,对于承诺承担费用的OEM来说,将是一笔不小的支出。

  多年前,囿于移动网络条件较差以及价格高昂的流量费用,用户对于新版本软件的推送常视而不见。为此,Google在2012年的Google I/O大会上,推出了Android 4.1,并在此系统上引入了Smart App Update,即现在所说的增量更新。

  增量更新(Increment OTA)又称差分更新,区别于整包更新(Full OTA)。手机端的原理相对简单,更新前,将本地的旧版本安装包与服务器端新版本更新包通过字符串匹配或者使用HASH的方式提取出公共以及差异部分,这个行为即为差分。

  新版本中更新部分会被抽取并使用差分算法打包得到差分包,此包也可称之为补丁包(Patch),差分包大小并无特定限制,通常情况下比整包小很多,但也可能会因为新旧版本的差异较大,而使得差分包与整包大小接近,因此并非任何更新都可采用差分增量更新。

  在做差分时,源文件本身是否为文件结构数据,决定了差分算法的转换效率,比如针对内容结构化的文件数据,需对文件内部内容逐行甚至逐字逐句进行解析,再对读取到的字符串进行截取复制的同步比较,而不同的内容格式复杂程度亦不相同,显然,这样的做法难以达到平台化的效果。为此,当前最常用的方式是采用二进制文件的差分算法,也就是将所有类型的文件都统一视作无结构仅由字节流组成的二进制格式文件,这样源文件的最小颗粒度即可缩小至字节,差分时开发人员不需要去关心文件内部存储的类型与内容。

  差分更新过程中,更新服务器推送提醒后,用户点击同意更新。后服务器直接向用户推送差分后小数据量的补丁包,本地将下载下来的差分包与已安装的旧版本数据包通过差分算法恢复出新版软件包进行本地安装。

  差分更新以相似数据编码技术为基础,采用Delta编码技术来解决升级包过大的问题,常见的编码技术包括:BsDiff,Xdelta,VcDiff等。

  BsDiff是一种针对可执行文件的二进制差分算法,也就是将可执行文件以二进制形式来处理。

  此算法的中心思想是,新旧版本软件的迭代,源码层面上,直接修改增加的源代码会使二进制文件存在新增部分,但同时也会导致其他未被修改代码部分的文件指针以及寄存器地址发生变化,但即便如此,新版本的大部分其他二进制内容仍与旧版本保持一致,也就是说,新旧版本文件存在大量长度且内容一致的数据块,只是存在偏移位置。

  新旧版本二进制数据大部分字节差为0,少部分需要更新的地址位移数据有存在大量相同位移值,而源代码相同的代码块差异数据可以被高效压缩。(当前最常用的时bzip2压缩方案)

  因此,基于文件块长度,利用字节地址偏移标识位置,通过操作命令加增量数据的方式来构建差分补丁文件。

  旧版本二进制文件中所有字符串使用哈希算法或Faster String Matching形成索引

  对于整车OEM而言,OTA是当前车联网技术的重要领域,尤其远程刷新的功能将会是维护与保障车辆Cyber Security的重要途径。随着自动驾驶等新技术的发展,满足整车软件快速迭代更新的需求极为重要。差分更新的引入,可以有效减小终端更新包的大小,能够有效减少更新文件下载时间,降低终端功耗等。

  但车辆不同于手机,多总线多模块且功能高复杂度,再加上车辆存在高速驾驶的场景,使之比手机端的升级有更高的安全需求,如何确保车辆在售后阶段高效稳定发布OTA,仍需要做更多的探索与研究。

本文链接:http://runhappyplace.com/erjinzhiwenjian/228.html