专利名称: | 电动汽车电机控制器的固件更新方法 | ||
专利名称(英文): | Electric automobile motor controller firmware updating method | ||
专利号: | CN201511014248.4 | 申请时间: | 20151231 |
公开号: | CN105677388A | 公开时间: | 20160615 |
申请人: | 清华大学苏州汽车研究院(吴江); 苏州穆欧动力科技有限公司 | ||
申请地址: | 215200 江苏省苏州市吴江区长安路2358号 | ||
发明人: | 王秀锐; 王月宏; 任晨佳; 周伟波; 易兴初 | ||
分类号: | G06F9/445 | 主分类号: | G06F9/445 |
代理机构: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 范晴; 丁浩秋 |
摘要: | 本发明公开了一种电动汽车电机控制器的固件更新方法,包括:上电复位后,Bootloader程序运行,初始化控制器的MCU,将MCU的Flash空间划分为四个区域;获取当前的Bootloader版本及应用程序版本信息;根据获取的应用程序版本信息判断应用程序是否存在,若存在,则读取固件更新请求,若无固件更新请求,则跳转到应用程序,执行应用程序;若应用程序不存在或读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为USB大容量存储设备并通过USB接口与PC连接,并放入更新文件;读取更新文件信息,完成相应更新。利用USB的高速传输性能和文件系统进行自更新及固件更新,使得更新更加高效简洁。 | ||
摘要(英文): | The invention discloses an electric automobile motor controller firmware updating method, comprising : power-on reset, Bootloader The program to run, the initialization controller MCU , The MCU of Flash Space is divided into four regional; obtaining the present Bootloader Version and application program version information; according to the obtained version information of the application program is judged whether there is the application program, if there is, the firmware update request is read, if no firmware update request, the application program to jump to, execution of application program; if the application program does not exist or reading to the firmware update request, the MCU of Flash Or the extended Flash Initialized to USB Large-capacity storage device and USB Interface and PC Connection, and is put into the update file; reading update file information, finish the corresponding update. Use USB The high-speed transmission of the document system performance and self-updating and firmware updating, and the updated more efficient. |
1.一种电动汽车电机控制器的固件更新方法,其特征在于,包括以下步骤: S01:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的 Flash空间划分为四个区域分别存储不同的信息; S02:获取当前的Bootloader版本信息及应用程序版本信息; S03:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更 新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不 存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为大容量存储设备 并通过USB与PC连接,并将更新文件放入大容量存储设备; S04:读取更新文件信息,判断更新文件是Bootloader更新文件还是应用程序更新文 件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执行步骤 S06; S05:更新Bootloader代码,更新Bootloader版本信息,删除Bootloader更新文件,断开 USB连接并复位; S06:更新应用程序代码,更新应用程序版本信息,删除应用程序更新文件,断开USB连 接并复位。
2.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述MCU 的Flash空间划分的四个区域区为:区域一为固定区,存储复位向量表,指向Bootloader区 的首地址;区域二为Bootloader区,包括主存储区和备份区,备份区用于Bootloader的自更 新;区域三为应用程序存储区,存储应用程序及中断向量重映射表;区域四为用户数据存储 区,存储Bootloader及应用程序版本信息、故障代码及重要参数。
3.根据权利要求2所述的电动汽车电机控制器的固件更新方法,其特征在于,所述步骤 S05具体包括如下步骤: S11:上电或复位后,程序运行在Bootloader主存储区,获取Bootloader更新代码,擦除 Bootloader备份区,将更新代码写入备份区; S12:运行程序跳转到Bootloader备份区,擦除Bootloader主存储区,将更新代码写入 主存储区; S13:运行程序跳转到Bootloader主存储区,更新Bootloader版本信息,删除 Bootloader更新文件,断开USB连接并复位。
4.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述应用 程序版本信息包括版本号、更新日期、大小,如果全不为0,则应用程序存在,否则应用程序 不存在。
5.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述步骤 S03包括通过按键来控制设定的引脚电平的高低,如果为高电平则代表存在固件更新请求, 如果为低电平则代表没有固件更新请求。
1.一种电动汽车电机控制器的固件更新方法,其特征在于,包括以下步骤: S01:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的 Flash空间划分为四个区域分别存储不同的信息; S02:获取当前的Bootloader版本信息及应用程序版本信息; S03:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更 新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不 存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为大容量存储设备 并通过USB与PC连接,并将更新文件放入大容量存储设备; S04:读取更新文件信息,判断更新文件是Bootloader更新文件还是应用程序更新文 件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执行步骤 S06; S05:更新Bootloader代码,更新Bootloader版本信息,删除Bootloader更新文件,断开 USB连接并复位; S06:更新应用程序代码,更新应用程序版本信息,删除应用程序更新文件,断开USB连 接并复位。
2.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述MCU 的Flash空间划分的四个区域区为:区域一为固定区,存储复位向量表,指向Bootloader区 的首地址;区域二为Bootloader区,包括主存储区和备份区,备份区用于Bootloader的自更 新;区域三为应用程序存储区,存储应用程序及中断向量重映射表;区域四为用户数据存储 区,存储Bootloader及应用程序版本信息、故障代码及重要参数。
3.根据权利要求2所述的电动汽车电机控制器的固件更新方法,其特征在于,所述步骤 S05具体包括如下步骤: S11:上电或复位后,程序运行在Bootloader主存储区,获取Bootloader更新代码,擦除 Bootloader备份区,将更新代码写入备份区; S12:运行程序跳转到Bootloader备份区,擦除Bootloader主存储区,将更新代码写入 主存储区; S13:运行程序跳转到Bootloader主存储区,更新Bootloader版本信息,删除 Bootloader更新文件,断开USB连接并复位。
4.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述应用 程序版本信息包括版本号、更新日期、大小,如果全不为0,则应用程序存在,否则应用程序 不存在。
5.根据权利要求1所述的电动汽车电机控制器的固件更新方法,其特征在于,所述步骤 S03包括通过按键来控制设定的引脚电平的高低,如果为高电平则代表存在固件更新请求, 如果为低电平则代表没有固件更新请求。
翻译:技术领域
本发明属于电动汽车电机控制器技术领域,具体涉及一种电动汽车电机控制器的 固件更新方法。
背景技术
电机控制器是电动汽车的重要电子控制单元。一般情况下,电机控制器的软件分 为Bootloader和应用程序。上电或复位时,从地址0x00000000处开始运行,而在这个地址处 通常放置的是一段用来引导处理器并加载应用程序的引导程序,也就是常说的 Bootloader。应用程序指的是用户用来实现某项或多项工作的程序。
现有的Bootloader可以通过SCI、SPI、CAN等通信媒介,在不拆卸控制器的情况下, 与PC或其他设备进行信息交互,实现应用程序的在线更新。这样一方面保证了源代码的安 全性,一方面对于电机控制器的布置提供了更多选择。
在实际应用中,使用CAN、SPI等通信媒介的Bootloader还存在不足之处,主要体现 在以下两个方面:一是传输速度相对较慢,对于比较大的应用程序,往往需要几分钟甚至十 几分钟的时间才能更新完成;二是PC上需要安装专门的软件来进行控制操作,操作步骤也 较为复杂。
随着计算机技术的快速发展,USB技术也得到了飞速发展,从早期1.0版本发展到 今天的USB3.0版本,速度也由12Mbps发展到5Gbps,这个速度远远大于CAN、SPI等通信媒介 几百kbps的速度。现在USB接口已经成为PC机的必备接口,适合用来做电机控制器MCU的单 片机大多集成有USB接口,这样利用USB技术来设计电机控制器的Bootloader成为了一种高 效方便的选择。
发明内容
针对上述技术问题,本发明提出了一种电动汽车电机控制器的固件更新方法,通 过USB线将电机控制器和PC连接起来,利用USB的高速传输性能和文件系统进行Bootloader 的自更新及固件更新,使得更新更加高效简洁。
本发明的技术方案是:
一种电动汽车电机控制器的固件更新方法,其特征在于,包括以下步骤:
S01:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的 Flash空间划分为四个区域分别存储不同的信息;
S02:获取当前的Bootloader版本信息及应用程序版本信息;
S03:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更 新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不 存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为USB大容量存储设 备并通过USB接口与PC连接,并将更新文件放入USB大容量存储设备;
S04:读取更新文件信息,判断更新文件是Bootloader更新文件还是应用程序更新文 件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执行步骤 S06;
S05:更新Bootloader代码,更新Bootloader版本信息,删除Bootloader更新文件,断开 USB连接并复位;
S06:更新应用程序代码,更新应用程序版本信息,删除应用程序更新文件,断开USB连 接并复位。
优选的,所述MCU的Flash空间划分的四个区域区为:区域一为固定区,存储复位向 量表,指向Bootloader区的首地址;区域二为Bootloader区,包括主存储区和备份区,备份 区用于Bootloader的自更新;区域三为应用程序存储区,存储应用程序及中断向量重映射 表;区域四为用户数据存储区,存储Bootloader及应用程序版本信息、故障代码及重要参 数。
优选的,所述步骤S05具体包括如下步骤:
S11:上电或复位后,程序运行在Bootloader主存储区,获取Bootloader更新代码,擦除 Bootloader备份区,将更新代码写入备份区;
S12:运行程序跳转到Bootloader备份区,擦除Bootloader主存储区,将更新代码写入 主存储区;
S13:运行程序跳转到Bootloader主存储区,更新Bootloader版本信息,删除 Bootloader更新文件,断开USB连接并复位。
优选的,所述应用程序版本信息包括版本号、更新日期、大小,如果全不为0,则应 用程序存在,否则应用程序不存在。
优选的,所述步骤S03包括通过按键来控制设定的引脚电平的高低,如果为高电平 则代表存在固件更新请求,如果为低电平则代表没有固件更新请求。
与现有技术相比,本发明的优点是:
1.利用USB的高传输速度可以快速传输更新文件,更新速度快。
2.不需要与上位机软件进行通讯,节约时间和成本。
3.大大简化了操作,用户只需要将更新文件放入到USB大容量存储设备即可,通过 简单的步骤即可完成更新。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明电动汽车电机控制器的固件更新方法的电机控制器MCU的Flash空间分配 图;
图2为本发明电动汽车电机控制器的固件更新方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参 照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发 明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本 发明的概念。
实施例:
下面结合附图,对本发明的较佳实施例作进一步说明。
本实施例是基于SAM4S系列硬件,以电机控制器为载体,实现电机控制器固件的更 新方法。
如图1和2所示,该电动汽车电机控制器的固件更新方法,包括下列步骤:
S01:上电或复位后,Bootloader程序自动运行,初始化电机控制器的MCU,将MCU的 Flash空间划分为四个区域为:区域一为固定区,存储复位向量表,指向Bootloader区的首 地址;区域二为Bootloader区,包括主存储区和备份区,备份区用于Bootloader的自更新; 区域三为应用程序存储区,存储应用程序及中断向量重映射表;区域四为用户数据存储区, 存储Bootloader及应用程序版本信息、故障代码及重要参数。
S02:获取当前的Bootloader版本信息及应用程序版本信息;
S03:根据获取的应用程序版本信息判断应用程序是否存在,如果存在,则读取固件更 新请求,如果没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不 存在或者读取到固件更新请求,则将MCU的Flash或扩展的Flash初始化为大容量存储设备 并通过USB与PC连接,并放入更新文件;
S04:读取更新文件信息,判断更新文件是Bootloader更新文件还是应用程序更新文 件,如果是Bootloader更新文件,则执行步骤S05;如果是应用程序更新文件,则执行步骤 S06;
S05:更新Bootloader代码,更新Bootloader版本信息,删除Bootloader更新文件,断开 USB连接并复位;
S06:更新应用程序代码,更新应用程序版本信息,删除应用程序更新文件,断开USB连 接并复位。
步骤S03具体为:
根据获取的应用程序版本信息,包括版本号、更新日期、大小,如果全不为0,则说明应 用程序存在,否则应用程序不存在。
接下来读取设定的引脚电平,该引脚的电平高低可以由用户通过一个按键来控 制,如果为高电平则代表存在固件更新请求,如果为低电平则代表没有固件更新请求。如果 没有固件更新请求,则直接跳转到应用程序,执行应用程序;如果应用程序不存在或者读取 到固件更新请求,则将MCU的Flash或扩展的Flash初始化为大容量存储设备并通过USB与PC 连接,在PC中可以看到盘符,并可直接放入文件。本例是通过扩展nandflash实现的。
步骤S05具体为:
Step1:上电或复位后,程序运行在Bootloader主存储区。获取Bootloader更新代码,擦 除Bootloader备份区,将更新代码写入备份区。
Step2:运行程序跳转到Bootloader备份区,擦除Bootloader主存储区,将更新代 码写入主存储区。
Step3:运行程序跳转到Bootloader主存储区。
Step4:更新Bootloader版本信息,删除Bootloader更新文件,断开USB连接。
Step5:复位。
利用USB的高速传输性能和文件系统进行Bootloader的自更新及固件更新,使得 更新更加高效简洁。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的 原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨 在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修 改例。