电机控制器固件升级系统、方法及电机控制器与流程

文档序号:12335521阅读:709来源:国知局
电机控制器固件升级系统、方法及电机控制器与流程

本发明涉及一种电机控制器技术领域,特别是一种电机控制器固件升级系统、方法及电机控制器。



背景技术:

电机控制器作为电动汽车最重要的零部件之一,与整车的动力性能及驾驶舒适型密切相关,整车安装完成后需要根据整车需求和实际测试情况不断的优化,尽可能使整车达到最优的性能,中间就需要多次的将优化的软件写入电机控制器。

目前,电机控制器固件更新大都分采用仿真器直接和电机控制器电路板连接,通过仿真器把程序下载到电机控制器主控芯片中,这种方法一般需要对控制器拆装才能完成,并且整车安装完成之后空间上都受影响,拆卸更加麻烦,工作量大、效率低。



技术实现要素:

本发明的目的是提供一种电机控制器及基于CAN总线的电机控制器固件升级系统,提高了工作效率。

为解决现有技术存在的问题,本发明提供一种电机控制器固件升级系统,该系统包括:上位机,CAN通讯模块以及电机控制器;所述上位机通过所述CAN通讯模块与所述电机控制器连接;所述电机控制器包括中央处理器、第一存储器和第二存储器;所述第一存储器用于存储初始化程序和应用程序,所述第二存储器存储有固件升级标志位,用于标示是否对电机控制器的固件进行升级;所述中央处理器用于通过CAN通讯模块与上位机进行交互信息,接收来自上位机的固件升级程序,并将所述接收的固件升级程序存储于第一存储器中。

所述第一存储器包括第一区域和第二区域,所述第一区域用于存储初始化程序,所述第二区域用于存储应用程序。

相应的本发明还提供一种电机控制器,包括:中央处理器,第一存储器以及第二存储器,所述第一存储器和第二存储器分别与所述中央处理器连接;所述第一存储用于存储初始化程序和应用程序,所述第二存储器存储有固件升级标志位,用于标示是否对电机控制器的固件进行升级;所述中央处理器用于将接收的应用程序、初始化程序存储至所述第一存储器,并通过所述第二存储器判断是否需要对电机控制器的固件进行升级。

所述第一存储器包括第一区域和第二区域,所述第一区域用于存储初始化程序,所述第二区域用于存储应用程序。

所述中央处理器还包括:

时间确定单元,用于根据接收的待升级的程序代码,确定程序升级需要的时间;

电量确定单元,用于根据所述确定的程序升级需要的时间,确定程序升级需要的总电量;

启动升级确定单元,用于将所述确定的程序升级所需的总电量,与为电机控制器供电的蓄电池的当前电量进行比较,若所述程序升级所需的总电量大于蓄电池当前的总电量,则停止程序升级,等待蓄电池充电;若所述程序升级所需的总电量小于等于所述蓄电池当前的总电量,则启动对电机控制器的固件进行升级。

另外,本发明还提供了一种电机控制器固件升级方法,包括:

读取程序更新标志位;

根据所述读取的程序更新标志位判断是否更新程序,并在判断为是后,通过CAN接口接收上位机发送的待升级的程序代码;

存储所述接收的待升级的程序代码;

清除所述程序更新标志位。

所述电机控制器固件升级方法还包括:通过CAN总线接收来自上位机的进入初始化程序的指令,所述指令包括程序升级标志位;

存储所述指令中的程序升级标志位。

所述电机控制器固件升级方法,还包括:

根据接收的待升级的程序代码,确定程序升级需要的时间;

根据所述确定的程序升级需要的时间,确定程序升级需要的总电量;

将所述确定的程序升级所需的总电量,与当前为电机控制器供电的蓄电池的电量进行比较,若所述程序升级所需的总电量大于蓄电池当前的总电量,则停止程序升级,等待蓄电池充电;若所述程序升级所需的总电量小于等于蓄电池当前的总电量,则对电机控制器的固件进行升级。

本发明的电机控制器固件升级系统,其人机交互装置通过所述CAN通讯模块与所述电机控制器连接,因此外部人机交互装置可以通过CAN总线将待更新的电机控制器固件程序,传输给电机控制器;而且所述电机控制器包括中央处理器、第一存储器和第二存储器;所述第一存储用于存储初始化程序和应用程序,即固件程序可以存储于第一存储其中,另外,通过第二存储器存储有固件升级标志位,从而实现了在不拆卸电机控制器的情况下,仍然能够对电机控制器的固件程序进行升级。

附图说明

图1是本发明基于电机控制器固件升级系统的一种实施例的示意图;

图2是本发明电机控制器的第一存储器的一种实施例的示意图;

图3是本发明电机控制器的中央处理器的一种实施例的示意图;

图4是本发明电机控制器固件升级方法的第一种实施例的流程示意图;

图5是本发明电机控制器固件升级方法的第二种实施例的流程示意图。

具体实施方式

下面结合附图对本发明实施例进行详细说明。

参考图1-2所示,发明实施例的电机控制器固件升级系统包括:人机交互装置1,CAN通讯模块2以及电机控制器3;人机交互装置1通过CAN通讯模块2与电机控制器3连接;电机控制器3包括中央处理器31、第一存储器32和第二存储器33;第一存储器32用于存储初始化程序和应用程序;第二存储器33存储有固件升级标志位,用于标示是否对电机控制器的固件进行升级;中央处理器31用于通过CAN通讯模块与人机交互装置进行交互信息,接收来自人机交互装置的固件升级程序,并将接收的固件升级程序存储于第一存储器32中。

人机交互装置1,可以表现为一个电脑,即通常的上位机,下面以上位机为例进行说明。工作人员可以通过该装置对将固件升级程序通过CAN总线传输给电机控制器。

第一存储器32,具体实现时,可以为闪存(Flash),该Flash可以包括两个区域,第一区域321和第二区域322,其中第一区域为0x08000000~0x08010000区域用于存放初始化程序(BootLoader),第二区域为,0x08010000~0x0807FFFF区域用于存放应用(App)程序,其中也包括电机控制器的固件升级程序。

需要说明的,本文所述的电机控制器的固件升级程序为电机控制器内存放的APP。

第二存储器33,可以为带电可擦可编程只读存储器(EEPROM),用于存储固件升级标志位。

具体实现时,电机控制器在初始的时候通过仿真器将BootLoader程序写入到Flash的第一区域,每次重新上电最开始运行的都是BootLoader程序;在进行固件升级的时候通过CAN通讯模块连接上位机,将程序升级标志位置存储至EEPROM,第一存储器的BootLoader运行,然后上位机通过CAN总线将需要更新的APP程序传输给电机控制器的中央处理器,中央处理器接收后将接收的APP程序存入FLASH,实现对电机控制器的固件升级。同时,EEPROM的程序升级标志位也被清除。

参考图3,该图是本发明电机控制器的第二种实施例的示意图,与第一实施例不同的是,本实施例中央处理器包括:时间确定单元311、电量确定单元312、启动升级确定单元313,其中时间确定单元,用于根据接收的待升级的程序代码,确定程序升级需要的时间;电量确定单元,用于根据确定的程序升级需要的时间,确定程序升级需要的总电量;启动升级确定单元,用于将确定的程序升级所需的总电量,与为电机控制器供电的蓄电池的当前电量进行比较,若程序升级所需的总电量大于蓄电池当前的总电量,则停止程序升级,等待蓄电池充电;若程序升级所需的总电量小于等于蓄电池当前的总电量,则启动对相应的程序进行升级。

具体实现时,首先由时间确定单元根据接收的待升级的程序代码,确定程序升级需要的时间;然后,由电量确定单元根据确定的程序升级需要的时间,确定程序升级需要的总电量;最后由启动升级确定单元将确定的程序升级所需的总电量,与为电机控制器供电的蓄电池的当前电量进行比较,若程序升级所需的总电量大于蓄电池当前的总电量,则停止程序升级,等待蓄电池充电;若程序升级所需的总电量小于等于蓄电池当前的总电量,则启动对电机控制器的固件进行升级。

另外,启动升级确定单元判断蓄电池的当前电量不足的时候,中央处理器可以与整车控制器进行通信,由整车控制器控制蓄电池的充电过程;在蓄电池充好电时,整车控制器与中央处理器通信,告知中央处理器蓄电池充电已经充好了。

本实施例中电机控制器的中央处理单元在程序升级前对蓄电池的电量进行检测,从而避免了在程序升级过程中因为蓄电池的电量不足造成的程序升级失败。

需要说明的,本文所述的程序升级与固件升级意思等同,下面不进行具体说明。

下面对本发明的一种电机控制器固件升级的方法进行说明。参见图4所示,该图是本发明电机控制器固件升级的方法的第一种实施例的流程示意图,包括如下步骤:

步骤S41,初始化;具体实现时,上位机经CAN通讯模块向中央处理器发送进入初始化程序的指令,所述指令包括程序升级标志位,然后由中央处理器接收来自上位机的指令,并存储该指令中的程序升级标志位,所说的程序升级标志位存储于电机控制器的第二存储器内。

步骤S42,读取程序更新标志位,判断是否需要更新程序,若是,则执行步骤s43;否则,执行步骤s44;

步骤S43,通过CAN接口接收上位机发送的待升级的程序代码,所述的待升级的程序代码,即电机控制器的APP的升级程序的代码。

步骤S44,执行用户程序;所说的用户程序是电机控制器的APP。

步骤S45,存储接收的待升级的程序代码;该待升级的程序代码来自于上位机,其存储的位置为电机控制器的第一存储器的第二区域。

步骤S46,清除程序更新标志位,并返回步骤s44;具体实现时,是将电机控制器的第一控制器的第二存储器的固件升级标志位清除,在电机控制器的用户程序APP正在运行过程中,如果需要升级的话,则需要通过上位机发送进入BootLoader指令,中央处理器按照上位机发送指令将程序升级标志位写入第二存储器,然后中央处理器自动复位进入步骤s41开始执行上述流程。

步骤S47,结束。

参考图5,该图是本发明电机控制器固件升级的方法的第二种实施例的流程示意图,与第一实施例不同的是,本实施例还包括,如下步骤:

步骤S51,根据接收的待升级的程序代码,确定程序升级需要的时间;具体实现时,可以通过多种方法确定程序升级所需要的时间,例如,首先可以根据程序代码的长度确定程序升级大致时间等;

步骤S52,根据确定的程序升级需要的时间,确定程序升级需要的总电量;

步骤S53,将确定的程序升级所需的总电量,与为电机控制器供电的蓄电池的当前电量进行比较;

步骤S54,若程序升级所需的总电量大于蓄电池当前的总电量,则执行步骤S55;具体实现时,获取蓄电池的当前电量的方法也有很多,例如,可以通过在蓄电池上预设电量流量计,并通过电量传感器获取蓄电池的当前电量,从而实现了程序升级所需的总电量和蓄电池当前电量的比较;

步骤S55,停止程序升级,等待蓄电池充电,至到蓄电池完成充电后执行步骤S57;具体实现时,此时中央处理器可与整车控制器进行通信,然后由整车控制器控制蓄电池的充电过程;当蓄电池充好电时,整车控制器与中央处理器通信,告知中央处理器蓄电池已经充好电了;

步骤S56,若所述程序升级所需的总电量小于等于蓄电池当前的总电量,则执行步骤S57;

步骤S57,对电机控制器的固件进行升级。

本发明实施例在对电机控制器的固件进行升级前,对为电机控制器的电器元件提供控制电源的蓄电池的电量进行评估,可以有效的避免在固件升级过程中,因为电量不足造成的升级失败。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1