第一文秘网    > 单位计划

一种可靠的ECU软件升级方法

作者:jnscsh   时间:2022-03-25 08:41:26   浏览次数:

摘 要:随着汽车行业的高速发展,电子自动化的不断提高,汽车控制系统的电控单元也日益增多,当控制器新功能导入、软件优化、软件bug修复等都需要通过更新软件来实现,因此要保证控制器软件更新的可靠性及稳定性十分有必要。

关键词:可靠性;稳定性;UDS

1 前言

通常情况下,软件进入下载模式后,需要先删除原有的app软件,再重新下载更新的软件包,但这样的操作有个问题,万一更新的软件包本身有bug,原有的app又直接删除了,就会造成软件问题导致控制器死机,这种情况下,难以完成软件更新,故如何避免该情况发生,如何确保了安全可靠的软件下载过程,本文主要介绍有无自回滚功能的软件设计,进而阐述有自回滚功能的重要性。

2 UDS刷写描述

UDS(Unified diagnostic service)协议是一种通用的汽车级通信协议,用于发送和接收CAN报文。

汽车ECU基于UDS诊断功能而实现的独立且安全的应用软件/数据刷新功能。UDS协议保证app和bootloader跳转的安全性和检测app的完整性。UDS协议有19个基本服务以及不同的安全等级,服务和安全等级配合使用,UDS协议要求bootloader和app放在不同的安全内存,防止app擦除时误擦bootloader程序,同时,从app跳转到bootloader时要符合UDS的安全等级要求,不能直接跳转,必须从UDS的应用模式—扩展模式—编程模式,UDS协议用于保证app和bootloader跳转的安全性;UDS协议里设有多帧发送机制,大量数据发送时,不能一次完成,需要按帧传输,把UDS协议运用到bootloader的软件下载过程中,可以保证软件下载的完整性;上位机每次更新软件前需要计算新软件的大小,并加上CRC校验,下载时,这些信息在软件下载完成后会同步发送给ECU的bootloader部分,ECU的bootloader在接收到完整的更新软件后,不急着启动新程序,先检查接收到软件的大小,同时进行CRC校验,把计算结果和上位机上传来的数据进行比较,结果一致时才认为更新的软件完整,可以跳转到application模式,启动新软件。

3 无回滚功能ECU的软件设计

传统ECU的FLASH空间划分为两个区域,一个区域为用于存储Bootloader自身的代码和数据的刷新空间,另一个区域为用于存储应用程序application相关数据的应用空间,两个区域均作为独立的存储空间。ECU日常运行下上电,如没有刷新请求,且判断应用程序有效,则跳转到应用空间运行应用程序。

在应用程序刷新升级过程中,Bootloader先将存储有原有应用程序的FLASH空间进行擦除,然后再通过与上位机的UDS通信将新的应用程序下载并刷写到该FLASH空间中。

缺点:由于现有ECU应用软件和Bootloader的空间布局,整个ECU中只有一套Bootloader和应用软件。如果在ECU刷新过程中出现断电或通信中断等情况,ECU中仅有Bootloader能够正常工作应用软件则处于无效状态,ECU无法正常执行应用功能,处于死机状态,只有再次进行应用刷新才能恢复应用程序的功能。

优点:对控制器硬件内存要求不高,软件架构简单。

4 有回滚功能ECU软件设计

(1)控制器内存分成两个内存大小一样的运行区和备份区。

(2)应用程序只能在运行区里运行。

(3)上位机传输的数据只能下载在备份区。

(4)Bootloader中的标志位指示软件是否下载完成。

(5)软件更新失败后,不影响运行区的程序运行。

(6)软件下载成功后,Bootloader将备份区软件复制到运行区。

ECU软件架构包含有Bootloader、运行区软件以及备份区软件,软件刷新操作时只是在ECU的备份区中进行,ECU中的运行区软件仍然在正常運行,ECU的bootloader内含有一个标志位,application正常应用程序时,该标志位为0,当进入bootloader模式,准备开始下载前,bootloader的标志位自动置为1,软件更新下载过程中,该标志位为一直保持为1,app下载完成后,标志位为0。标志位的存在,保证了软件更新下载过程,标志位为1,说明软件一直处于下载过程,若在下载中途突发断电情况,由于标志位仍为1,ECU通过标志位判定备份区软件未完成状态,ECU仍会运行在运行区的软件中,若数据下载成功,标志位0,ECU的Bootloader会将备份区的软件复制到运行区中。

缺点:硬件内存要求高,软件架构复杂。

优点:刷新过程出现任何故障断电或者通信中断时,ECU都可以继续运行原有的应用软件,且原有应用软件的软件信息不会丢失。

5 结论

软件自回滚功能有效的避免了刷新过程中的故障,导致原有应用软件数据丢失,无法正常启动的问题。该功能提高系统的稳定性,更降低因刷新操作失误导致的经济损失。

参考文献:

[1]ISO 14229-1:2013 Road vehicles - Unified diagnostic services (UDS) - Specification and requirements.

推荐访问:可靠 升级 方法 软件 ECU