0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发一套可兼容现有OTA系统的全新OTA服务系统

汽车ECU开发 来源:焉知智能汽车 作者:Jessie 2022-10-21 09:02 次阅读

由于智能汽车集中化趋势,导致在网络连接上已经由传统的低带宽Can网络升级转换到高带宽以太网网络为主的升级过程。为了提升车辆升级能力,基于为车主提供持续且优质的体验和服务,需要在现有系统基础(由原始只对车机上传统的 ECU 进行升级,转换到实现以太网增量升级的过程)之上开发一套可兼容现有 OTA 系统的全新 OTA 服务系统,实现对整车软件、固件、服务的 OTA 升级能力,从而最终提升用户的使用体验和服务体验。

1.软件升级触及的两大领域-FOTA/SOTA

整车软件升级是通过OTA技术,是对车载娱乐、导航、人机互动等应用软件及转向、制动、车身控制等固件进行升级。整车OTA升级包是由升级对象中可升级ECU的升级包组合而成。对于整车OTA类型,主要分为两类,FOTA(Firmware-over-the-air)和SOTA(Software-over-the-air),两者均为主机厂重点关注及逐步落地的领域,可适应不同场景的OTA需求。

FOTA(又称为移动终端空中下载软件升级技术),通过给车辆控制器下载安装完整的固件镜像,来实现系统功能完整的升级更新。FOTA涉及控制器相关策略核心功能的一个完整的系统性更新,对整车性能影响较大,升级过程对时序、稳定性、安全性要求极高,同时升级前置条件包括挡位、电量、车速等要求,升级过程一般不支持点火用车。

FOTA通过给车辆控制器下载安装完整的固件镜像,来实现系统功能完整的升级更新。例如升级车辆的智驾系统,让驾驶员享受越来越多的辅助驾驶功能;升级车辆的座舱系统,提高驾驶员疲劳检测的准确率;升级车辆的制动系统,提升车辆的制动性能。

SOTA实际可看成一种软件可售策略的核心需求,他是通过给车辆控制器安装“增量包”,来实现控制器功能的一个“增量”更新,一般应用于娱乐系统和智驾系统。例如更换多媒体系统操作界面,优化仪表盘显示风格,更新娱乐主机里的地图程序时,用到的都是SOTA升级方式。SOTA涉及控制器应用层一个小范围的功能局部更新,对整车性能影响较小,升级前置条件要求较低。SOTA的增量更新策略,可以大幅减小升级包文件大小、从而节约网络流量和存储空间。

这里我们举例说明FOTA和SOTA分别如何在智能驾驶升级中进行有效定义。

例如升级智能驾驶汽车系统,为了让驾驶员享受越来越多的辅助驾驶功能;通常根据功能开发难度、时间长度来确定对阶段性功能的不断更新迭代(包含从低级别功能向高级别功能进阶的软件更迭)。同时,过程中需要升级车辆的座舱系统,提高驾驶员疲劳检测的准确率;升级智能驾驶车辆的关联子系统(如制动、转向系统等模块),提升车辆的制动性能。

2.智驾系统中的软件升级架构

对于整个OTA升级而言,从下至上主要包括如下三方面:升级对象、OTA管理器、OTA云服务平台。自动驾驶域控制器与座舱域控制器通过以太网连接,升级协议一般为常用的DoIP,除开域控本身外,升级过程还包括高精定位模块升级,传感器升级。

对于由以太网连接的摄像头而言,其升级过程主要是通过主域控端所搭载的整个集成程序进行升级。也就是说对于纯摄像头传感器而言,没有单独的程序升级过程。对于由CANFD搭载的毫米波/超声波雷达而言,由于是自带控制器的,其升级过程主要是通过CANFD连接控制器,域控通过CANFD接入公CAN,由座舱域负责刷写CANFD域控制器转发报文到各雷达控制器上。

585ca004-50da-11ed-a3b6-dac502259ad0.png

如上图所示,OTA云服务平台主要对OTA升级包进行管理与下发,并完成升级任务的配置、调度及跟踪。OTA管理器主要完成升级包的下载、解密、验签、差分包重构等功能,最终将升级包发送至对应的升级对象。升级对象是由一个或多个ECU构成,升级对象接收到升级包后,将对应的ECU升级包发送至对应的ECU,ECU完成升级包的刷写。

3.智驾系统中的升级过程原理

目前的升级方式主要是静默升级。即包含常态化模式下的有感升级和非常态模式下的无感升级。常态模式实际就是在工厂模式下,多媒体接收升级命令后,在满足升级条件的情况下下载升级包,进行车辆的自动化升级。升级过程中,如收到解闭锁/开车门/按下启动按钮/云服务解锁信号后,车辆显示屏不显示 OTA 升级,常规升级过程中车辆处于静默状态。

非工厂模式下做无感升级,在用户不感知的情况下进行升级作为一保留方案。由于受国家相关法律的限制,这种方案的实现需要智能驾驶所有模块满足两面分区升级策略。这里的两面区分指的是A/B双面升级过程。即针对域控中的SOC开辟A/B两个存储空间,每个存储空间上均安装有一个系统,其中一个系统处于激活使用状态时,另一个系统就会处于待命备用状态。

在进行系统升级时,可在激活的系统中对备用系统进行升级,升级完成后重启切换成新升级的系统。由此,在智驾域控的SOC中的升级过程可描述为当运行区为 A 区,则升级 B 区,升级完成后,从 B 区重启,启动后,择时将 B 区同步到 A 区。且当 SOC 升级失败的时候,不允许使用使能驾驶。

此外,对于域控中的MCU刷写而言,最好采用双APP机制。即MCU采用bootloader单区+app双区部署方式,bootloader一般没有升级需求。因此,对MCU的升级过程只需要对双区部署的APP进行即可。

587a1e9a-50da-11ed-a3b6-dac502259ad0.png

整个升级过程中,需要完成如下升级过程中的任务:

1)升级前置条件判断:

通过以太网、CAN 等车内网络获取车辆当前状态检查,根据项目实际需求定制包含但不限于蓄电池电量、发动机转速、车辆速度、车辆档位、手刹状态、座椅传感器状态、门状态、锁状态等。座舱域控制器在升级开始前,需要针对升级车辆进行状态检查后继续后续动作。

其当前状态的检查项目包括:模块剩余内部存储空间、模块硬件版本、模块固件版本、模块软件版本。通常情况下,升级过程中需要判断是否满足车辆是否静止,档位是否为P档,域控制器的SOC电量是否大于一定阈值条件。在适当的情况下,由中控界面/电检电脑显示屏上弹出预约升级或立即升级指示。有两种情况会触发升级:上下电自检与用户主动触发。升级条件触发,触发成功进入下一步,否则退出本次升级流程。

2)下载升级包:

在云端升级策略和升级包下发过程中,云端需要检测版本号是否更新,OTA升级服务器下发升级策略包到座舱域控制器,此过程中用户不会感知。座舱域控制器支持常规的刷写升级方式,DoIP 和 CAN烧写。

基于CAN协议的软件刷写

CAN 烧写过程实际是一种根据规范(规范主要是根据 ISO 14229 )进行编程的过程。编程过程中需要指定参照如下几种类型的不同步骤进行有效的寻址及服务访问:

标准步骤作为一种强制性的步骤,要求无论任何情况下客户端和服务器都应按照规定行事。推荐步骤是可选的,他需要使用特定的诊断服务标识符,并包含有关如何执行操作的建议。这种可选的方案仅要求在使用指定的功能的情况下,客户端和服务器应按照规定行事。OEM实施步骤:其使用和内容(例如,使用的诊断服务标识符)由车辆制造商自行决定,当然也可作为另一种可选的步骤。

CAN软件刷写主要分三个阶段:预编程阶段,编程阶段,结束阶段。相应的各阶段需要进行的业务流程如下图所示:

58a248ac-50da-11ed-a3b6-dac502259ad0.png

基于DoIP协议的软件刷写详解

DoIP(Diagnostic communication over Internet Protocol)作为基于车载以太网的诊断,主要存在于OSI 七层模型中的传输层,DoIP是在以太网网络上传输UDS诊断数据的传输协议。DoIP具有高带宽,适合传输大量数据的场景,这就非常适合作为车上更新的OTA软件升级。

相较于CAN,DoIP主要是在物理层和传输层对数据的传输进行了优化并提升了速度。在应用层和诊断服务环节,CAN与DoIP的实现均基于14229协议。ODX数据库部分,除需增加DoIP协议通讯参数和相关控制器外,一般情况下,不需要进行额外调整,这大大节省了诊断数据开发时间与成本。

对于DoIP的文件刷写主要包括无文件系统控制器的DoIP刷写和有文件系统控制器的DoIP刷写。针对无文件系统控制器的刷写,其总方案类似于 CAN 节点刷写方案。多媒体主机按地址传输,控制器按地址写入方式。对于有文件系统的控制器,多媒体主机只需要将升级包传到控制器(当然过程中需要能支持断点续传),并没有其他的要求。

目前常用的DoIP诊断连接方式分为两种:其一,是以太网线缆直连形式:在整车情况下,制作OBD-Ethernet线缆直连;其二,是兼容CAN/CAN FD通讯,并满足生产和售后需求,通过使用诊断VCI集成以太网激活功能,实现DoIP通讯。数据库创建完成后,使用相关诊断工具,即可实现车辆刷写过程。

座舱域控收到服务器下发的整车工厂模式自动化升级指令后,在满足升级条件的情况下请求服务器自动下载升级包,并对车辆进行自动化升级,支持断点续传,完整性校验,存储空间管理等功能。

3)智驾域控制器升级状态反馈:

智驾域控制器上报域控制器信息到座舱域控制器完成升级前置条件判断,条件满足时方可进入 OTA 升级,升级这类信息需要上传到OTA服务器。这类信息包括域控制器各个模块的软/硬件版本号、序列号(SN) 、定位信息(GPS)等。

4)执行升级任务:

座舱域控制器将根据服务器下发的升级包,升级策略等信息,进行 OTA 升级。如果同时需要进行多 ECU 联合升级刷写时,需要根据下发的升级任务序列,按照升级顺序与对应控制器发送点对点升级交互信息,即可完成对应的升级任务。

5)断点接续升级:

断点接续升级是指基于状态机的管理,在升级过程中,对当前升级的文件或块设备进行备份存储。如果在升级过程中出现中断,断电,或其它干扰,导致正在升级的文件被破坏,那么,控制器会记录当前升级状态,后续在下次重启程序时,控制器会执行一定的校验算法(如hash 校验)评估该文件是否已经遭到破坏,如果程序完好,则会直接按照未被标记升级过的程序进行顺序升级。如果文件已损坏,则会用备份的存储来恢复升级。

对于整个升级过程一般要求刷写失败后有数次重试机会。且有关联模块依赖时,对于已升级的关联模块需要全部回滚。

6)联动升级管理:

针对功能相关联的 ECU(比如前毫米波雷达升级可看成同性质下的联动升级),后台可以设定联动升级,也可以针对关联 ECU 设置升级顺序。升级过程为当座舱域控制器自后台取得升级任务后,会检测升级指令中是否有联动升级要求,如果有便会依照顺序进行逐一升级并关联 ECU。

座舱域控制器在整个升级过程中会管理并不间断派发升级包,监控整个升级过程直到所有 ECU完成升级,再统一上报后台升级结果。当检测到有任一ECU升级失败需要进行回滚时,控制器会联动所有关联 ECU 同步进行版本回滚。同时,座舱域控制器会有效上报因为哪一个 ECU 升级失败导致回滚。

相应的软件升级时序图如下:

58b271aa-50da-11ed-a3b6-dac502259ad0.png

基于如上说明,整车各模块升级可概括为:由 OTA 服务器下发升级策略文件决定升级顺序,在服务器上配置升级时生成策略文件,座舱域控根据策略文件制定各 ECU 升级方案和顺序。智能驾驶相关模块的升级顺序则按照如下优先级顺序进行先后升级控制:CAN 模块—>DoIP 无文件系统模块—>DoIP 有文件系统。

相较于CAN,DoIP主要是在物理层和传输层对数据的传输进行了优化并提升了速度。在应用层和诊断服务环节,CAN与DoIP的实现均基于14229协议。

4.总结

对于智能驾驶系统而言,软件升级已作为不可或缺的一部分。在为客户提供实时在线升级功能的同时,域控制器需要满足云端安全通信,包括协议通信链接管理,升级指令接收和升级状态发送,升级包下载、升级包解密、差分包重构、对升级包进行合法性验证,还包括密钥证书管理服务,数据加密服务,数字签名服务等功能。可以说,智驾级别的软件升级是引领起其不断发展的源源动力。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5385

    浏览量

    171159
  • ecu
    ecu
    +关注

    关注

    14

    文章

    881

    浏览量

    54409
  • OTA
    OTA
    +关注

    关注

    7

    文章

    568

    浏览量

    35151
  • 智能驾驶
    +关注

    关注

    3

    文章

    2461

    浏览量

    48658

原文标题:智能驾驶系统与软件升级的关联设计方案

文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【xG24 Matter开发套件试用体验】BLE OTA调试

    是Device Firmware Upgrade,可以通过蓝牙无线升级芯片固件。 先在程序中加入版本打印,分别编译个V1.0和V1.1版本的程序,用来测试验证ota升级效果。 1. 蓝牙OTA
    发表于 08-29 18:26

    如何使用NimBLE的OTA范例中添加额外的GATT服务呢?

    如何使用NimBLE的OTA范例中添加额外的GATT服务
    发表于 07-19 06:38

    OTA自动化测试解决方案——实车级OTA测试系统PAVELINK.OTABOX

    ,并简单介绍北汇信息的实车级OTA自动化测试解决方案——PAVELINK.OTABOX。实车级OTA自动化系统目前,OTA自动化测试系统的落
    的头像 发表于 07-11 08:26 602次阅读
    <b class='flag-5'>OTA</b>自动化测试解决方案——实车级<b class='flag-5'>OTA</b>测试<b class='flag-5'>系统</b>PAVELINK.OTABOX

    高级别智能驾驶神级利器:自研OTA系统

    精地图等专业模块,组成了一套完整的智慧港口解决方案。OTA(OverTheAir)软件升级系统旨在为无人驾驶车辆提供控制器软件远程升级服务,是进行软件升级、功能更
    的头像 发表于 06-21 08:00 1312次阅读
    高级别智能驾驶神级利器:自研<b class='flag-5'>OTA</b><b class='flag-5'>系统</b>

    如何编译OTA时的加密固件?

    main->CMakeLists.txt中添加以下生成加密OTA固件的命令。第次编译时能够生成加密固件。但第次之后,再编译固件时,就生成不了加密固件了。请问我该怎么解决,达到每次编译都能生成
    发表于 06-05 08:28

    飞凌嵌入式i.MX 8M Plus开发板的OTA远程升级方案

    在传统印象中,Linux上的镜像替换方式相对单,无法像Android那样实现OTA升级。然而,我们通过RAUC的工具就可以实现类似安卓OTA系统升级功能。RAUC为Linux
    的头像 发表于 06-03 17:59 697次阅读
    飞凌嵌入式i.MX 8M Plus<b class='flag-5'>开发</b>板的<b class='flag-5'>OTA</b>远程升级方案

    飞凌嵌入式i.MX8M Plus开发板的OTA远程升级方案

    在传统印象中,Linux上的镜像替换方式相对单,无法像Android那样实现OTA升级。然而,我们通过RAUC的工具就可以实现类似安卓OTA系统升级功能。RAUC为Linux
    的头像 发表于 04-29 08:01 680次阅读
    飞凌嵌入式i.MX8M Plus<b class='flag-5'>开发</b>板的<b class='flag-5'>OTA</b>远程升级方案

    汽车OTA通道和压力测试方案

    北汇信息基于对客户需求规范、行业法规及自身测试经验Know-How,为汽车客户提供完整和专业的汽车OTA通道测试和压力测试解决方案,包括测试系统开发、测试规范开发、测试脚本实现及测试实施的全流程
    的头像 发表于 04-25 09:16 2222次阅读
    汽车<b class='flag-5'>OTA</b>通道和压力测试方案

    技术帖 | RK3568开发板的OTA升级教程

    说起OTA我们应该都不陌生,它是种可以为设备无损失升级系统的方式,能将新功能远程部署到产品上。我们不仅可以通过网络下载OTA升级包,也可以通过下载
    的头像 发表于 04-20 08:01 1547次阅读
    技术帖 | RK3568<b class='flag-5'>开发</b>板的<b class='flag-5'>OTA</b>升级教程

    请问BlueNRG ota升级中ota_sw_activation变量上电是随机值吗?

    最近在看BlueNRG ota升级代码时有个疑惑,ota_sw_activation变量是个未初始化的值,按照ram特性上电应该是个随
    发表于 03-13 08:29

    谷歌Android 15开发者预览版遇问题,OTA更新暂停

    谷歌在Android Developer官网发表声明,因发现“已知问题”,将暂时关闭Android 15 DP1的OTA更新订阅服务。谷歌解释道:“禁用OTA镜像下载是为了深入调查问题。”对于想要尝鲜Android 15的
    的头像 发表于 02-21 14:08 632次阅读

    汽车ota升级有什么用 汽车ota功能有必要吗

    汽车OTA(Over-The-Air)升级是指通过无线网络进行汽车软件系统的远程更新和升级。传统上,汽车的软件系统需要通过专门的设备或者到车辆所在的服务中心来进行升级,非常不便捷。而
    的头像 发表于 02-18 14:39 1219次阅读

    ota升级是什么意思 ota升级有什么用

    OTA(Over-the-Air)升级是指通过无线网络,将软件、固件或系统的新版本传输到支持的设备上进行更新和安装的过程。这技术广泛应用于手机、智能电视、汽车等各类智能设备中。本文将详细介绍
    的头像 发表于 02-02 10:25 5385次阅读

    如何从ESP32中删除OTA

    通过 Arduino IDE 和示例等对 ESP32 Dev 32 模块进行了OTA 测试,切正常。 现在我们想恢复到正常的串行/USB 编程,虽然我们似乎可以编程个新程序,
    发表于 01-31 07:37

    OTA技术如何助力AEB系统进化呢?

    场沸沸扬扬的AEB之争将AEB带入大众的视野,短短几天大众快速完成被教育。事件以小鹏汽车表示将通过OTA不断提高AEB能力为终结。
    的头像 发表于 12-28 13:57 876次阅读
    <b class='flag-5'>OTA</b>技术如何助力AEB<b class='flag-5'>系统</b>进化呢?