基于电机控制器软件强刷方案的研究与实现
曾凡沂
广汽埃安新能源汽车股份有限公司 广东 广州市 511447
摘要:新能源汽车电机控制器开发过程中需要频繁的进行软件更新,若因干扰造成应用层软件刷写失败,控制器内软件不完整,易导致无法再次通过CAN总线进行软件更新。本文通过在BootLoader中加入强刷命令检测模块,使电机控制器可以在上电过程检测强刷命令报文并强制进入软件刷写模式,确保其在应用层软件不完整的情况下依然具备刷写能力。本文所设计的软件强刷方案旨在对应用层软件不完整的控制器进行强制软件更新,减小问题件处理时间,有效的缩短电机控制器的开发周期。
关键词:电机控制器、软件刷写
0,前言
在电机控制器开发过程中,控制器装车调试是必不可少的一个开发环节,调试过程需要频繁的进行软件更新。传统的电机控制器软件更新过程中,若出现外界干扰导致程序更新中断,容易造成APP(应用层软件)刷写失败,控制器内程序不完整,无法执行正常的软件功能,从而使得整车“趴窝”。APP刷写失败后,无法与CAN总线建立通讯,因此正常的刷写命令已无法控制电机控制器进入软件刷写模式,只能打开控制器盖板,通过连接主控板的JTAG接口完成软件刷写[1]。
本文通过优化BootLoader(简称BT)软件架构解决软件刷写失败后必须对控制器进行开盖处理的问题,BootLoader主要负责应用程序的升级[2],通过在BootLoader软件中添加强刷命令检测模块,使其可以在上电过程通过检测强刷命令报文,进入软件刷写模式,从而实现控制器不开盖的情况下通过CAN网络进行软件更新。
1,传统的电机控制器软件更新方法
图1所示为控制器装车后传统的电机控制器软件更新方法,需要通过CAN网络向电机控制器发送UDS诊断报文进行软件更新[3]。软件更新过程中,如果受到外界干扰(如断电,连接线松动等)导致软件更新中断,控制器中的软件将会不完整,其APP无法工作,不能接收和发送CAN报文,因此,电机控制器将无法响应CAN网络中的诊断报文,这种现象叫做APP刷写失败。
开发过程中通常处理APP刷写失败的方法是要将电机控制器从整车拆下并开盖,然后使用芯片烧录工具连接控制板中JTAG接口对软件进行更新。这个过程需要多人协作、拆解安装过程易引起硬件连接问题且开盖会破坏控制器的密封结构,需要返厂重新打胶密封,严重影响电机控制器开发进度。
2,本文设计的电机控制器软件强刷方案
2.1新方案的软件更新流程
本文设计的电机控制器软件强刷方案是在APP刷写失败的情况下,不需要拆下电机控制器进行软件更新,只需在上电过程向电机控制器发送强刷命令报文,便可让控制器进入软件刷写模式,如图2所示。此时,控制器处于可刷写状态,能够接收并响应来自CAN网络的诊断报文,可进行软件更新。这种方法,有效的减小了APP刷写失败带来的风险、节约了产品开发周期。
2.2新方案BootLoader设计原理图
本文设计的电机控制器软件强刷方案的BootLoader设计原理如图3所示,通过在BootLoader程序中增加强刷命令检测模块,上电时,BootLoader会在一定时间内检测总线是否存在强刷命令报文,如果在这段时间内检测到强刷命令报文,则跳转至软件刷写模式,若未检测到强刷命令报文,则跳转至APP。
2.3软件强刷流程
在电机控制器不开盖的情况下,可以通过CAN网络对控制器进行软件更新,常用的工具有ETAS公司的INCA。当APP刷写失败,也可利用INCA进行强刷,强刷流程如图4,可在INCA的CAN Message List模块中配置强刷命令报文,导入CAN-Output设置为循环发送,运行后循环向电机控制器发送强刷命令报文,然后电机控制器重新上电,控制器在强刷命令检测期间,从总线接收INCA发送的强刷命令报文,便进入软件刷写模式,在该模式下可使用INCA进行软件更新。
3,结论
本文设计的电机控制器软件强刷方案可以有效的减小电机控制器装车调试期间软件更新风险,出现APP刷写失败的情况,不需要花费大量人力物力去拆件开盖拯救控制器,只需通过CAN网络发送强刷命令报文,便可对软件进行强制更新,极大的节约了时间和人力成本,缩短了电机控制器开发周期。
参考文献
[1] 邓启辉. 用JTAG烧写Flash的方法.软件技术.2005(24).
[2] 陶媛媛,杜 彬,田 彬.基于车载控制器 BootLoader 的数据备份刷写软件方案实现.汽车电器,2022(9).
[3] 詹克旭. 基于UDS协议的汽车ECU升级方案.计算机应用与软件.2019(1).
作者简介:曾凡沂,1991年,汉族,男,籍贯:江西赣州,研究生学历,职称:工程师,研究方向:新能源汽车