电动汽车电机控制器的固件更新方法

文档序号:9910755阅读:936来源:国知局
电动汽车电机控制器的固件更新方法
【技术领域】
[0001]本发明属于电动汽车电机控制器技术领域,具体涉及一种电动汽车电机控制器的固件更新方法。
【背景技术】
[0002]电机控制器是电动汽车的重要电子控制单元。一般情况下,电机控制器的软件分为Bootloader和应用程序。上电或复位时,从地址0x00000000处开始运行,而在这个地址处通常放置的是一段用来引导处理器并加载应用程序的引导程序,也就是常说的Bootloader。应用程序指的是用户用来实现某项或多项工作的程序。
[0003]现有的Bootloader可以通过SC1、SP1、CAN等通信媒介,在不拆卸控制器的情况下,与PC或其他设备进行信息交互,实现应用程序的在线更新。这样一方面保证了源代码的安全性,一方面对于电机控制器的布置提供了更多选择。
[0004]在实际应用中,使用CAN、SPI等通信媒介的Bootloader还存在不足之处,主要体现在以下两个方面:一是传输速度相对较慢,对于比较大的应用程序,往往需要几分钟甚至十几分钟的时间才能更新完成;二是PC上需要安装专门的软件来进行控制操作,操作步骤也较为复杂。
[0005]随着计算机技术的快速发展,USB技术也得到了飞速发展,从早期1.0版本发展到今天的USB3.0版本,速度也由12Mbps发展到5Gbps,这个速度远远大于CAN、SPI等通信媒介几百kbps的速度。现在USB接口已经成为PC机的必备接口,适合用来做电机控制器M⑶的单片机大多集成有USB接口,这样利用USB技术来设计电机控制器的Bootloader成为了一种高效方便的选择。

【发明内容】

[0006]针对上述技术问题,本发明提出了一种电动汽车电机控制器的固件更新方法,通过USB线将电机控制器和PC连接起来,利用USB的高速传输性能和文件系统进行Bootloader的自更新及固件更新,使得更新更加高效简洁。
[0007]本发明的技术方案是:
一种电动汽车电机控制器的固件更新方法,其特征在于,包括以下步骤:
S01:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的Flash空间划分为四个区域分别存储不同的信息;
502:获取当前的Bootloader版本信息及应用程序版本信息;
503:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为USB大容量存储设备并通过USB接口与PC连接,并将更新文件放入USB大容量存储设备;
S04:读取更新文件信息,判断更新文件是Boot loader更新文件还是应用程序更新文件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执行步骤S06;
S05:更新Bootloader代码,更新Bootloader版本信息,删除Bootloader更新文件,断开USB连接并复位;
S06:更新应用程序代码,更新应用程序版本信息,删除应用程序更新文件,断开USB连接并复位。
[0008]优选的,所述MCU的Flash空间划分的四个区域区为:区域一为固定区,存储复位向量表,指向Bootloader区的首地址;区域二为Bootloader区,包括主存储区和备份区,备份区用于Bootloader的自更新;区域三为应用程序存储区,存储应用程序及中断向量重映射表;区域四为用户数据存储区,存储Bootloader及应用程序版本信息、故障代码及重要参数。
[0009]优选的,所述步骤S05具体包括如下步骤:
Sll:上电或复位后,程序运行在Bootloader主存储区,获取Bootloader更新代码,擦除Bootloader备份区,将更新代码写入备份区;
S12:运行程序跳转到Bootloader备份区,擦除Bootloader主存储区,将更新代码写入主存储区;
S13:运行程序跳转到Bootloader主存储区,更新Boo11oader版本信息,删除Bootloader更新文件,断开USB连接并复位。
[0010]优选的,所述应用程序版本信息包括版本号、更新日期、大小,如果全不为0,则应用程序存在,否则应用程序不存在。
[0011]优选的,所述步骤S03包括通过按键来控制设定的引脚电平的高低,如果为高电平则代表存在固件更新请求,如果为低电平则代表没有固件更新请求。
[0012]与现有技术相比,本发明的优点是:
1.利用USB的高传输速度可以快速传输更新文件,更新速度快。
[0013]2.不需要与上位机软件进行通讯,节约时间和成本。
[0014]3.大大简化了操作,用户只需要将更新文件放入到USB大容量存储设备即可,通过简单的步骤即可完成更新。
【附图说明】
[0015]下面结合附图及实施例对本发明作进一步描述:
图1为本发明电动汽车电机控制器的固件更新方法的电机控制器MCU的Flash空间分配图;
图2为本发明电动汽车电机控制器的固件更新方法的流程图。
【具体实施方式】
[0016]为使本发明的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0017]实施例:
下面结合附图,对本发明的较佳实施例作进一步说明。
[0018]本实施例是基于SAM4S系列硬件,以电机控制器为载体,实现电机控制器固件的更新方法。
[0019]如图1和2所示,该电动汽车电机控制器的固件更新方法,包括下列步骤:
SO1:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的Flash空间划分为四个区域为:区域一为固定区,存储复位向量表,指向Bootloader区的首地址;区域二为Bootloader区,包括主存储区和备份区,备份区用于Bootloader的自更新;区域三为应用程序存储区,存储应用程序及中断向量重映射表;区域四为用户数据存储区,存储Bootloader及应用程序版本信息、故障代码及重要参数。
[°02°] S02:获取当前的Bootloader版本信息及应用程序版本信息;
S03:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为大容量存储设备并通过USB与PC连接,并放入更新文件;
S04:读取更新文件信息,判断更新文件是Boot loader更新文件还是应用程序更新文件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1