商用车FOTA实践与应用
2019-07-23杜贵锋陈姿霖
杜贵锋,李 锐,陈姿霖,陈 佩,赵 杰
(陕西重型汽车有限公司汽车工程研究院,陕西 西安 710200)
随着汽车电子技术的迅速发展,电子控制单元在整车中得到越来越多的应用,功能也变得越来越复杂,特别是新能源、ADAS/AD技术的迅猛发展,传统的程序更新方法已经不能满足开发、生产及售后服务要求,一种新的远程刷写技术——FOTA正迅速在汽车行业扩展。
FOTA:Firmware Over-The-Air,即固件空中下载技术。汽车FOTA技术,就是云端通过车载终端对整车电控系统中的控制器进行远程程序更新[1]。
1 FOTA技术介绍
汽车FOAT的主要功能有:ECU程序更新、ECU标定参数更新、ECU配置更新、控制算法更新、安全措施升级及软件漏洞补丁等。借助于FOTA技术,OEM厂商可以通过公司的售后数据平台以及车辆上装载的车载终端,对ECU缺陷进行修复,从而避免对问题车辆召回,或升级标定数据优化整车性能等方式。这种方式可以大幅降低售后维护或召回成本和时间,让OEM厂商和用户共同从中受益。
相对于传统车辆,新能源、ADASAD车辆的持续优化迭代已成为技术常态,特斯拉早在2013年已经使用FOTA技术进行远程升级。大众、通用、丰田等OEM厂商在传统车辆领域也在积极推广应用该项技术。
汽车FOTA的实施主要包括如下3个步骤,流程如图1所示。
图1 汽车FOTA流程
1)云端到车载终端FOTA数据传输
在云端启动程序更新,车载终端与云端经过安全认证后,使用加密技术、断点续传等无线传输技术传输升级相关的数据。数据传输完成后进行完整性、正确性校验无误后,车载终端向云端反馈数据成功接收,云端将车辆数据信息状态更新为软件已下发完成等待更新的状态。
2)获取FOTA更新授权
车载终端在收到完整、正确的软件包后,在多媒体或仪表等人机交互界面上向驾驶员发出提示信息“请求实施FOAT”,获取到驾驶员的升级许可后,车载终端启动程序升级并向云端报告该信息。
3)整车执行FOTA更新
车载终端实时控制BT刷写流程并记录升级过程,升级完成后通知云端后台,并通过多媒体或仪表等人机界面告知驾驶员已完成车辆升级,驾驶员可以自由操作车辆。
安全性 (Security)和可靠性是汽车FOTA实施的难点。安全性 (Security)主要涉及车载终端和云端之间的信息交互;可靠性则更多的与整车网络的诊断及BT系统相关[1]。
基于FOTA技术的优势,商用车OEM厂商对FOTA技术的研究应用也在积极开展中,相较于乘用车,商用车FOTA更具有挑战性,商用车的车型产量与乘用车不在同一量级,实现定制化难度较大,特别是动力底盘相关的控制器,大多由国外供应商提供通用件,难以按OEM厂商的诊断规范和BT规范进行。
结合商用车FOTA的开发应用实践,本文重点对车载终端的FOTA过程行为、中央网关的FOTA行为、BT刷写等方面的设计要求进行探讨。
2 商用车的UDS诊断及BT系统
FOTA的实现在车端主要是通过BT流程来完成,而BT建立在UDS诊断协议之上,故整车电控系统中所有电子控制单元需要支持UDS诊断。
2.1 整车诊断系统
UDS(全称:Unified Diagnostic Services),即统一诊断服务,是诊断服务的规范化标准,它是一个应用层协议(ISO 14229-1),既可以在CAN线上实现,也可以在Ethernet上实现 (DoIP,Diagnostic over Internet protocol)。UDS为诊断服务提供一个基本框架,通常OEM厂商根据实际情况会选择实现其中的一部分或是自定义一部分私有化的诊断服务,所以基于UDS协议的诊断又被称为Enhanced diagnostic(增强型诊断)[2]。
2.2 BT系统
BT是Bootloader的简称,基于CAN通信的电子控制单元BT,能够通过CAN网络快速实现对电控单元应用软件、标定数据的更新,BT刷写流程主要包括3个部分:预刷写、主刷写、刷写后处理,如图2所示,刷写流程中每一步骤均由相应的诊断服务实现。
1)预刷写主要步骤如下:通过85诊断服务,中止各控制器的故障记录;通过28诊断服务,控制所有控制单元在刷写期间不进行非诊断相关的总线通信,以降低负载率,保证控制单元BT刷写的正常进行。
2)主刷写程序是整个刷写流程的主体,将原有的应用程序或标定数据擦除,写入新的应用程序或标定数据。
3)刷写后处理在刷写程序完成后,需对电子控制单元进行复位操作,使新程序被激活生效,恢复车辆所有电子控制单元正常通信及诊断故障码的记录[3]。
图2 BT刷写流程
3 商用车FOTA整车电控系统关键行为
从云端下载数据完成后,FOTA实现就成为整车电控系统内部行为,实践应用中发现以下几项工作对FOTA的顺利完成起着非常关键的作用。
3.1 对BT流程中标准步骤与可选步骤的处理
BT流程一般针对车型平台定义,为了满足动力、底盘、车身等不同子系统的要求,在兼顾安全和效率的基础上,定义了标准步骤与可选步骤,FOTA中需对平台车型中各个控制器的BT流程进行兼容性处理,一般可以采用以下两种方式。
1)控制器识别:车载终端内部已存储了各个控制器的BT流程,识别到该控制器的特征信息时,直接调用该控制器的BT流程。这种方式指向明确,流程确定,缺点是通用性、扩展性较差。
2)流程识别:车载终端按统一BT流程实现,顺序执行BT流程中的所有标准步骤及可选步骤。根据被刷写控制器对可选步骤的反馈确定被刷写控制器中是否有可选步骤。该方式通用性强,易于扩展性,缺点是整车网络中所有的控制器需要按照规范要求对可选步骤做出严格的正确响应。
3.2 在整个刷写过程,维持严格的诊断会话的重要性
在整个BT过程中,确保整车网络总线上的所有控制器均维持在总线静默状态中,这就要求车载终端严格遵循在S3client时间间隔内周期性广播3E命令。如果在S3client的时间内,车载网络终端没有发送3E命令,那么会出现下面情况。
1)网络总线上的所有控制器将自动跳转回默认会话模式,控制器恢复正常工作状态,从而使得总线上出现应用报文,为BT下载所创造的良好环境将不复存在。
2)网关也自动跳转回默认会话,网关开始发送自身的周期性报文并启动报文及信号路由的正常工作,引发数据丢帧或数据次序颠倒从而导致BT下载失败。
3.3 BT下载中数据流量的控制
设计中应尽可能追求BT数据流的最大流量,以提高FOTA效率。理论上,总线静默无任何应用报文时有利于获得高的刷写效率;但在实际中,有的控制器根本就不具有诊断功能,或由于诊断协议的不同,无法满足总线静默要求,应用报文的存在占用部分总线负载,导致FOTA时BT数据占用有效的总线负载降低。
3.4 中央网关FOTA关键行为
FOTA流程中,当中央网关接收到总线静默命令后,需要执行如下工作:停止自身的外发报文;停止所有应用报文及信号的路由;识别并路由来自诊断网段的诊断信息(BT命令,BT数据)。
中央网关的极限路由能力,是指网关在网络总线高负载情况下进行报文路由的能力,是影响BT刷写可靠性和效率的重要因素,也是车载终端进行BT刷写流量控制的主要依据,如果BT执行过程中总线负载超出网关的极限路由能力,往往会导致BT刷写过程异常中断。
4 结束语
汽车FOTA是一项新技术,是一个复杂的系统工程,就FOTA可靠性方面,在合理设计整车E-E架构、诊断系统和BT系统基础上,对电控单元诊断协议、诊断功能测试,特别是对控制器BT流程符合性、网关极限转发能力以及车载终端对BT流程控制能力的测试验证工作,是非常重要的。