​连接未来,探索汽车OTA

news2024/12/21 19:02:31

摘要:

汽车OTA技术正在变革汽车工业

提起汽车OTA,相信大家都不陌生。OTA就是Over The Air的缩写,就是指汽车可以通过无线网络升级软件。即使非汽车从业者,相信也会被铺天盖地的广告科普过:现在新车型发布,基本都会宣传该车可以全车OTA,会不断智能进化,用户买的不只是现在,还有未来。

但大家有没有想过,为什么汽车产品宣传时会将OTA作为特别的卖点呢?而其他产品,例如手机、电视、智能手环等也都可以通过无线网络升级软件,却很少会将OTA作为卖点重点宣传。那说明OTA虽然并不是汽车独有的,但在这个行业和产品上有其独特之处。那究竟独特之处是什么?OTA在汽车上又有哪些难点痛点?现在又是怎么解决的呢?本文抛砖引玉,尝试从非专业人员的角度探讨,亦请各位大佬不吝赐教。

汽车OTA历史和背景

图片

图1:汽车软件升级示意图

OTA经常分为软件更新(Software OTA, SOTA)和固件更新(Firmware OTA, FOTA)两类。其中SOTA 是指车辆软件应用层的升级,通过网络将文件从云端服务器下载后完成升级,常见的是娱乐系统、音乐、导航等的升级。而 FOTA 则一般包含车辆底层固件升级,包括动力、底盘、智能驾驶、电池等在内的控制器软件升级。类比来说,SOTA就像我们手机APP的升级,而FOTA则像是IOS或者安卓系统的升级。

对于汽车OTA来说,固件或软件的更新一般使用电信设备(行业常叫的“TBox”),通过汽车内部的网关,以无线方式更新到电子控制器(ECU)。狭义OTA仅指软件升级,例如座舱APP或者智能驾驶功能的升级。而广义OTA还包括地图数据的更新和影子模式等数据采集功能。

早在2000年左右OTA的概念就出现在汽车行业了。当时本田等日本车企就开始对TBox进行研究。TBox实际上就是一个电信设备,内含SIM卡,通过接通移动网络来通讯。但当时移动网络通讯速率很低,数据传输过程十分漫长,并没有在市场上量产铺开。到2009年,通用汽车公司则通过著名的安吉星(OnStar)服务量产了车载娱乐系统的远程更新功能。但这些都只是局限于汽车部分功能的SOTA。而真正的汽车OTA “OG”,大家普遍都认为是特斯拉。在2012年,特斯拉就在Model S上实现了包含底盘动力软件在内的车辆主要功能OTA。而特斯拉之后发行的Model 3,更可谓树立了汽车FOTA的标杆。直到现在,特斯拉的OTA已经扩大到了所有在售车辆。先将硬件预埋,然后再通过OTA发布智能驾驶功能包Autopilot,也可谓是业界商业模式创新的先驱。

汽车OTA的痛点

时至今日,汽车OTA依然被许多厂商作为重点功能来开发和迭代,说明该功能在汽车上并未完备。那么它究竟有哪些痛点和难点需要进一步解决呢?

1.网络信息安全。它是汽车OTA中一个很大的考量点。软件升级过程中的任何漏洞或者缺陷,都可能危害车辆及其乘客的安全。因此OTA必须是安全可靠、防篡改的,以防止黑客访问敏感数据或者干扰车辆的操作。而另一方面,现在很多车辆的智能驾驶系统都采用硬件预埋,软件付费订阅的方式销售,其价格动辄上万元。如果被一套简单工具“逆向工程”篡改盗用,则对车厂来说也是一笔巨大损失。当然在保障安全的同时,也必须保障体验,让用户能够高效地进行OTA,而不是一味地确认和验证。
 

2.兼容性。汽车不同型号和不同配置,往往有不同的硬件和软件版本,这就会影响OTA的兼容性。在软件配置管理方面,厂家需要有一套管理方案,确保电子控制器内部软件、单车车辆配置、云端服务器和OTA通讯管道的兼容。这对于只有少量车型及配置的初创来说,难度还算小,但对于车型丰富的传统厂家来说,其复杂程度实属让人头疼。

3.高效便捷性。相信大家都记得早年某车辆OTA过程中停在繁忙路段动弹不得,导致交通堵塞的新闻。汽车毕竟是一个交通工具,如何让OTA过程快速高效,尽量不打扰驾驶员对车辆的操作,则显得尤为重要。

4.鲁棒性。汽车OTA过程中环境变量很多,例如无线网络信号不好,或者电池余量不足等。但用户肯定希望OTA能够稳定进行,不受外界干扰。而鲁棒性的另一个体现就是要求OTA升级的成功率极高,万一升级失败,也应该有备份措施,防止汽车“变砖”。

应对痛点的几种OTA技术

汽车OTA可以很好地提高用户体验,让汽车软件不断更新,不断进化,提供更加丰富的新功能给用户。这种能给用户带来“惊喜”的情绪价值,有时比操控或是静谧性等传统产品价值更能让消费者买单。但是与很多新技术类似,OTA也存在上文提到的一些用户痛点。为了应对这些痛点,工程师们也煞费苦心,提出应对方案。下面我们就来看看几种热门的OTA技术。

1.后台传输

传统车载控制器一般通过统一诊断服务(UDS)来传输需要刷写升级的软件,这往往需要控制器进入特定的模式,在传输文件的时候并不允许应用功能开启。这意味着文件传输过程中,用户功能都得中断。但随着车载软件日益丰富,升级的软件包大小也越来越大,这个中断过程时间过长,会严重影响用户体验。

而后台传输技术则允许控制器在运行应用程序的同时,在后台偷偷地传输文件。没错,这技术听起来相信大家并不陌生,就像我们一边玩游戏,一边通过迅雷下载。当然一般后台传输也会具备丢包重传和断点续传的机制。让用户开车不被打扰的同时,软件包在后台也可以稳定传输。一次没传完,用户也不用管,关好车门锁好车,下车点火的时候接着上次传输继续下载软件包就好。许多成熟的通讯协议都可以支持这项技术,关键是车载控制器相应的硬件配置需要提升支持。

2.AB分区

AB分区指整个软件系统(包括操作系统)分为A和B两个独立分区,且系统可以在A和B之间切换。这就可以让A分区跑旧版本软件,保障车辆正常使用的同时,让软件在B分区更新起来。等B分区也更新好了,再重启切换到B分区上。

图片

图2:AB分区升级示意图

3.版本回滚

“人生没有后悔药”,但是OTA升级得有。OTA升级过程中不可控的网络状态、车辆状态等因素比较多。为了确保升级的鲁棒性,可以在升级不达预期的情况下采用版本回滚策略。简单来说就是升级新软件的同时,保证旧版本软件备份可用,如果升级失败或者用户不满意,可以安装或者切换回旧版本软件。实现方案上,可以单独给旧版本软件开辟备份分区,也可以与上述AB分区相结合,升级失败时回滚至之前的可用分区。

4.差分升级

现在汽车上复杂控制器的软件包大小越来越大,如果直接传输巨大的数据,网络状态和网络流量都是巨大的挑战。为了应对这个挑战,很多主机厂也会采用差分升级的方式。所谓差分升级,就是利用算法识别新旧软件的差异,制作出来一个差分包。然后云端后台将差分数据包推送给车端,车上的控制器再利用算法,结合旧软件和差分包,生成出来全量的新软件包,然后再进行更新。当然这种技术在手机或者电脑上已经比较成熟,安卓系统就能支持这种升级。差分包的实际文件大小取决于新旧软件之间的差异,但是通常情况下差分包只有全量软件包大小的5%~20%。这可以大大降低无线网络传输的流量,提高鲁棒性。有些算法还支持直接在旧软件包的分区上,直接基于差分包合成全量软件。这样还能进一步节省车载控制器的本地存储空间。

图片

图3:差分升级示意图

5.信息安全手段

汽车OTA毕竟涉及到软件更新,稍有不慎则容易被黑客攻击或盗用,所以信息安全相关的技术手段必须为此保驾护航。实际上,汽车OTA的信息安全保护可谓是全方位的,常见的手段包括:

-刷写文件安全:通过OTA更新的软件数据包,一般都带有数字签名部分。控制器可以通过签名验证算法和密钥,确认将要刷写的数据包的完整性和合法性。

-文件传输安全:需要更新的软件数据包从云端通过无线网络下载到汽车,这个数据传输的过程一般都带有保护机制。互联网中已经成熟的传输层安全协议(Transport Layer Security, TLS)是最常见的手段。

-诊断安全:汽车OTA过程中往往会伴随通过UDS指令更新标定参数或者触发例程等操作。这时候就需要对UDS诊断操作先做一层安全控制,常见的有UDS的0x27服务,某些OEM还会拓展0x27的子功能或者自定义0x31例程来完成远程诊断的安全校验。

汽车OTA的实施(以AUTOSAR UCM为例子)

上文尝试从抽象概念和顶层设计的角度去理解汽车OTA,那么接下来我们再具象化一点地分析汽车OTA的设计和实施方案。这里以汽车软件事实标准组织AUTOSAR的Update and Configuration Management (UCM)功能簇作为例子来展开。

AUTOSAR Adaptive中规定的UCM是一个服务实例。它所提供的服务功能包括:

-AUTOSAR Adaptive环境中软件的版本报告-接收和缓存软件更新-检查是否有足够的资源来确保软件更新-执行软件更新,提供日志信息和进度信息-验证软件更新的结果-提供回滚功能,在发生故障时恢复到之前已知的功能软件状态

单独的UCM服务并不能完成ECU上完整的OTA工作。在AUTOSAR Adaptive整体架构中,UCM需要其他模块配合的部分包括:

-启动升级过程。从整车角度,需要判断电池余量、挡位等车辆状态信息再开始软件升级。这部分的逻辑判断需要由其他应用程序来实现。

-从云端下载软件。出于网络信息安全的考量,本地控制器内的UCM模块一般不会和云端建立直接的通讯下载软件,而一般由其他应用或者中央网关作为代理服务器下载。

-执行鉴权等安全操作。软件升级过程中涉及的验证签名过程,一般由UCM再调用Crpto模块操作安全环境来执行。而访问控制则一般由UCM配合AUTOSAR中的IAM和EM模块来实施。

图片

图4:应用UCM的OTA和诊断升级总体架构示意图

如上图总体架构示意图,AUTOSAR Adaptive的UCM功能簇主要负责执行软件升级。上层应用中需要包含相应的应用程序来调用UCM的服务,也就是下图中的“UCM Client” (也叫“UCM Master”)。值得注意的是,AUTOSAR Adaptive的规范中,除定义了UCM服务接口外,也定义了UCM Master中的部分接口,也举了相应的例子来阐述UCM Master的功能。

在这个架构下,UCM功能簇更多的是执行和实现软件刷写和升级的动作。而OTA过程中,与云端的交付以及车辆状态交付等需求,都是在UCM Master中实现的。

虽然近年来汽车OTA火出天际,但实际上汽车行业传统上的诊断刷写依然是现在各大车厂保留的ECU软件更新方式。所谓诊断刷写,简单来说,就是通过诊断仪上位机与ECU建立有线网络链接,通过UDS诊断协议来完成近端刷写。AUTOSAR Adaptive的UCM方案显然也考虑到了对诊断刷写的兼容。所以在这个架构中,可以由诊断应用(即下图中Diagnostic Application)调用底层诊断管理模块(Diagnostic Manager,DM)来实现ECU与诊断仪的握手。握手确认后,诊断应用就可以通过调用UCM服务来实现软件刷写。而在下图架构中,UCM Master和诊断应用做在了同一个应用程序实体内,实现了OTA和近端诊断仪刷写的兼容。

图片

图5:UCM和SM、Cryptography的接口关系示意图


当然AUTOSAR Adaptive是一个整体架构,OTA过程中的很多功能和步骤,都是由UCM调用其他模块来协同完成的。如上面示意图,UCM在OTA过程中涉及到验证签名等Security的操作,也可以通过调用Cryptography接口来实现。同时,UCM也可以通过调用SM接口,来实现功能组的状态切换。AUTOSAR Adaptive中对这部分的交互接口也作了详细定义,确保该架构可落地。
 

写在最后

总的来说,汽车OTA技术正在变革汽车工业。无线远程软件更新还可以进一步糅合远程诊断、数据管理和上传,演变更多用户功能,让汽车技术迭代更快。这项技术不但会提高汽车的性能和安全性,还可以优化汽车开发成本和增加用户满意度。这无疑让OTA成为了汽车的“灵魂”功能。

除此之外,汽车OTA所涉及到的用户数据合规性、信息安全性等特征,也会进一步推动汽车厂家将该技术及其运营牢牢把握在自己手上 。现在市场上在销售的很多汽车已经具备了OTA功能,各大厂家的开发过程、与供应商的合作程度各不相同。车端的实现方案只是汽车OTA的其中一环,配合与之相对应的云端部署、车云通讯和系统运营管理等,才能构成可落地的整体方案。

在未来,预计各大厂家都会加强优化OTA功能的系统化设计,构建统一运营框架,规范操作流程。而对我们从业人员来说,汽车OTA潜力无限,所带来的职业机会也同样是全方位和遍布上下游的。我们可以期待汽车OTA在未来持续发展和创新,作为个体我们也希望能在这场变革中同频共振,为汽车行业带来更大的进步。

作者 | 拉车老牛

出品 | 焉知

参考来源:1.https://www.pathpartnertech.com/understanding-automotive-ota-over-the-air-update/2.https://www.vector.com/int/en/know-how/automotive-ota/#3.Software-Updates over the air (all-electronics.de)4.https://www.autosar.org/fileadmin/standards/R22-11/AP/AUTOSAR_SWS_UpdateAndConfigurationManagement.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

敏捷知识点

敏捷思想理念 敏捷宣: 我们正在通过亲自开发和帮助他人开发,发现开发软件的更好方法。通过这项工作,我们开始更重视: 个体以及互动而不是过程和工具可用的软件而不是完整的文档客户合作而不是合同谈判应对变更而不是遵循计划 也就是说,右…

表单验证:输入的字符串以回车分隔并验证是否有

公司项目开发时&#xff0c;有一个需求&#xff0c;需要对输入的字符串按回车分隔并验证是否有重复项&#xff0c;效果如下&#xff1a; 表单代码&#xff1a; <el-form-item label"IP地址条目&#xff1a;" prop"ipAddressEntry"><el-inputtype&…

基于深度神经网络的肺炎检测系统实现

一、说在前面 使用AI进行新冠肺炎图像诊断可以加快病例的诊断速度&#xff0c;提高诊断的准确性&#xff0c;并在大规模筛查中发挥重要作用&#xff0c;从而更好地控制和管理这一流行病。然而&#xff0c;需要强调的是&#xff0c;AI技术仅作为辅助手段&#xff0c;最终的诊断决…

vue3时间插件——Moment.js使用

在日期时间这一块在js中是有体现的&#xff0c;但是用起来不是特别方便&#xff0c;尤其是在vue框架中&#xff0c;我们也不可能去那样使用&#xff0c;显得很笨拙麻烦&#xff0c;所以给大家这次带来一个好用的时间插件&#xff0c;就是Moment时间插件&#xff0c;很小巧&…

vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示

vue3tselement-plus axiosnode.jsmysql开发管理系统之表格展示 ✏️ 1. 新建一个node项目* 初始化node* 安装可能用到的依赖* 配置文件目录* 添加路由router1. 添加router.js文件&#xff0c;添加一个test目录2. 修改app.js ,引入router&#x1f4d2; 3. 启动并在浏览器打开 * …

【C++】再谈模板,深入理解C++模板

深入理解C模板 typename和class的区别非类型模板参数模板的特化函数模板特化类模板特化全特化偏特化 模板分离编译模板的分离编译解决方法 总结&#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&#xff1a;&#x1f44d…

Linux---详解进程信号

进程信号 &#x1f373;信号理解&#x1f9c8;什么是信号&#xff1f;&#x1f95e;进程信号&#x1f953;查看系统信号&#x1f969;在技术角度理解信号&#x1f357;注意 &#x1f356;信号处理&#x1f9c7;信号异步机制 &#x1f354;信号产生&#x1f35f;通过终端按键产生…

解决VScode下载太慢的问题记录

最近突然想重新下载vscoded便携免安装版&#xff0c;发现下载很慢&#xff0c;于是乎查询一下&#xff0c;以便记录 下载地址 VScode官方网站&#xff1a; https://code.visualstudio.com/ 根据个人的需求选择下载&#xff0c;页面加载下载需要等一会&#xff0c; 然后就会…

Oracle输出文本平面(CSV、XML)文本数据详细过程

此过程是提供给前端,调用的接口,为报表提供”下载“功能。以下是本人在测试环境的测试,有什么不足的地方,请留言指教,谢谢。 1、测试表 分别对测试表输出csv、xml两种格式文件数据。前期的准备工作。 --在服务器端创建directory,用管理员用户 create or replace directo…

Python系列学习第二章-Python语言基本语法元素

hello&#xff0c;这里是Token_w的文章&#xff0c;主要讲解python的基础学习&#xff0c;希望对大家有所帮助 整理不易&#xff0c;感觉还不错的可以点赞收藏评论支持&#xff0c;感谢&#xff01; Python程序说它可以倒背如流&#xff0c;人类的你要不要默写一下保留字来试试…

Android 之 Paint API —— ColorFilter (颜色过滤器) (2-3)

本节引言&#xff1a; 上一节中我们讲解了Android中Paint API中的ColorFilter(颜色过滤器)的第一个子类&#xff1a; ColorMatrixColorFilter(颜色矩阵颜色过滤器)&#xff0c;相信又开阔了大家的Android图像处理视野&#xff0c; 而本节我们来研究它的第二个子类&#xff1a;L…

h5百度地图聚合---切换tab时,聚合不能清除

项目&#xff1a;taro3vue3 描述&#xff1a;切换tab的时候用map.clearOverlays清除&#xff0c;但是地图缩放下聚合又出现了 解决&#xff1a;地图组件监听makers的时候 if (oldVal.length) {map.clearOverlays()markerClusterer.clearMarkers() }

数仓学习---13、报表数据导出

星光下的赶路人star的个人主页 莫见长安行乐处&#xff0c;空令岁月易蹉跎 文章目录 一、报表数据导出1.1 MySQL建库建表1.1.1 创建数据库1.1.2 创建表 1.2 数据导出1.2.1 DataX配置文件生成脚本1.2.2 编写每日导出脚本 一、报表数据导出 为方便报表应用使用数据&#xff0c;需…

解决 cannot execute binary file: Exec format error

问题&#xff1a;cannot execute binary file: Exec format error 解决 cannot execute binary file: Exec format error 原因&#xff1a; "cannot execute binary file: Exec format error" 错误通常发生在尝试执行一个不兼容的二进制文件时。这可能是因为你正在…

python中使用cProfile可视化并解决性能瓶颈问题

大家好&#xff0c;帕累托法则讲到&#xff1a;“在大多数情况下&#xff0c;80%的结果来自于20%的原因。”作为一名程序员&#xff0c;当代码运行速度不尽如人意时&#xff0c;就需要花费大量时间对代码进行相应的重构&#xff0c;但在许多情况下&#xff0c;所得到的速度提升…

【Python入门系列】第十八篇:Python自然语言处理和文本挖掘

文章目录 前言一、Python常用的NLP和文本挖掘库二、Python自然语言处理和文本挖掘1、文本预处理和词频统计2、文本分类3、命名实体识别4、情感分析5、词性标注6、文本相似度计算 总结 前言 Python自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&…

吴恩达ChatGPT《LangChain Chat with Your Data》笔记

文章目录 1. Introduction2. Document Loading2.1 Retrieval Augmented Generation&#xff08;RAG&#xff09;2.2 Load PDFs2.3 Load YouTube2.4 Load URLs2.5 Load Notion 3. Document Splitting3.1 Splitter Flow3.2 Character Splitter3.3 Token Splitter3.4 Markdown Spl…

如何在3ds max中创建可用于真人场景的巨型机器人:第 3 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建腿部装备 步骤 1 打开 3ds Max。 打开在本教程最后一部分中保存的文件。 打开 3ds Max 步骤 2 转到创建> 系统并单击骨骼。 创建>系统 步骤 3 为的 侧视口中的腿&#xff0c;如下图所示…

【C++】开源:Linux端ALSA音频处理库

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Linux端ALSA音频处理库。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…

12.(开发工具篇vscode+git)vscode 不能识别npm命令

1&#xff1a;vscode 不能识别npm命令 问题描述&#xff1a; 解决方式&#xff1a; &#xff08;1&#xff09;右击VSCode图标&#xff0c;选择以管理员身份运行&#xff1b; &#xff08;2&#xff09;在终端中执行get-ExecutionPolicy&#xff0c;显示Restricted&#xff…