卜凡涛,刘木林,刘晓晔
(东软睿驰汽车技术(沈阳)有限公司,辽宁 沈阳 110000)
随着人工智能、电子控制以及互联网技术的不断完善,汽车正逐步从机械产品演变成为集各种先进电子技术于一身的智能网联汽车。智能网联汽车的各个系统,从灯光控制到车辆控制,从主动安全到高级自动驾驶系统,无一不借助各种精密可靠的电子电气系统得以实现。随着智能网联汽车的功能要求越来越多,控制器的代码量也随之增加,甚至达到上亿行。代码量的增加使得整车出厂前无法完全规避软件漏洞,必须售后通过软件更新修复,但传统的软件升级过程需要诊断设备连接车上的OBD(On-Board Diagnostics,车载诊断系统)接口进行,无论是让车主前往4S店进行升级还是厂商召回,都将消耗大量时间、人力成本。为了解决软件升级的难题,很多新兴公司开始使用OTA技术,使用无线网络通过远程升级软件。
OTA(Over-the-Air Technology)空中下载技术,即通过移动网络从远程服务器无线下载新的软件更新包对自身系统进行升级。OTA技术可以减少大量的人力和物力,本文提出对车载控制器的OTA设计。
OTA是利用移动网络(TD-LTE)实现对移动设备软件进行更新的技术。客户端和服务端协同工作,而服务端只有一个,一般设在整车厂的服务器;客户端有多个,本文新能源车就是客户端。一个服务端对应多个客户端,当客户端同意进行更新软件后,服务端就会发起更新请求,客户端接收到新版软件后在合适的时间段内完成更新。车载OTA网络架构如图1所示。
图1 车载OTA网络架构图[4]
当客户端同意进行OTA更新时,车辆通过移动网络连接到OEM服务器,OEM服务器将更新的固件发送到车辆的远程处理单元,远程处理单元再发送到网关控制器,通过网关控制器分发到相应控制器。本文重点介绍OTA技术,不对网络安全技术做详细讲解。
图2 OTA主需求图
1)软件中同时存在soft1(Bank A)和soft2(Bank B),新旧2套不同软件。
2)软件可以通过CAN控制指令在soft1和soft2之间切换。
3)软件通过OTA烧录更新,在旧版本位置更新为新版本软件。
4)在软件更新失败时,可以回滚至旧软件。
5)软件存在Boot并且不变更。
OTA实现的困难点如下。
1)两版软件App功能相同,但是PFLASH地址不同,对应的Linker配置也就不同,所以必须有两套软件。
2)在进行OTA更新时,需要明确当前ECU运行的软件是Bank A还是Bank B。
由于编译地址不同,对于同一版Soft Code,需要配置不同的Linker文件,最后需要准备不同的烧录对象文件(.hex),见表1。
表1 未使用SWAP的hex版本
为了解决以上问题,本文应用了英飞凌的SWAP技术。SWAP是使能后,Bank切换时通过修改特定的Dflash数据进行配置切换,Reset后实际切换。如图3所示。
图3 SWAP功能开启后的Bank切换图
通过SWAP功能,可做到每一版软件只需要生成一版烧录对象文件(.hex),见表2。
表2 使用SWAP后的hex版本
使用SWAP的软件时序图如图3所示。
图4 软件流程图
1)UDS指令进入Boot1。
2)Boot1擦除Bank B App Area(App1),如果Bank A为now。
3)下载App3.hex,在Bank B App Area进行烧录。
4)切换UCB_SWAP。
5)Reset,进入Bank B Boot1。
6)校验PFlash区中,Bank B App3完整性。
7)如果6)校验成功,Reset,软件从Bank B Boot1跳转至Bank B App3。
8)如果6)校验失败,报烧录软件检验失败错误。
切换UCB_SWAP,Reset,软件从Bank A Boot1跳转至Bank A App2。
汽车联网能力日渐普及,以“互联网云服务”为中心的内容及服务系统逐步建立,为每位客户建立个人账户系统,提供语音交互、在线导航、新闻资讯、在线音乐电台等典型互联网特色的内容;同时,企业为完善自身的信息化建设和软件管理能力,搭建OTA及信息安全管理平台势在必行。
本文的OTA功能设计已在实际项目中运用,预计在2023年达到量产状态。