CN105677388A - 电动汽车电机控制器的固件更新方法 - Google Patents
电动汽车电机控制器的固件更新方法 Download PDFInfo
- Publication number
- CN105677388A CN105677388A CN201511014248.4A CN201511014248A CN105677388A CN 105677388 A CN105677388 A CN 105677388A CN 201511014248 A CN201511014248 A CN 201511014248A CN 105677388 A CN105677388 A CN 105677388A
- Authority
- CN
- China
- Prior art keywords
- bootloader
- application program
- district
- version information
- firmware update
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
<b>本发明公开了一种电动汽车电机控制器的固件更新方法,包括:上电复位后,</b><b>Bootloader</b><b>程序运行,初始化控制器的</b><b>MCU</b><b>,将</b><b>MCU</b><b>的</b><b>Flash</b><b>空间划分为四个区域;获取当前的</b><b>Bootloader</b><b>版本及应用程序版本信息;根据获取的应用程序版本信息判断应用程序是否存在,若存在,则读取固件更新请求,若无固件更新请求,则跳转到应用程序,执行应用程序;若应用程序不存在或读取到固件更新请求,则将</b><b>MCU</b><b>的</b><b>Flash</b><b>或扩展的</b><b>Flash</b><b>初始化为</b><b>USB</b><b>大容量存储设备并通过</b><b>USB</b><b>接口与</b><b>PC</b><b>连接,并放入更新文件;读取更新文件信息,完成相应更新。利用</b><b>USB</b><b>的高速传输性能和文件系统进行自更新及固件更新,使得更新更加高效简洁。</b>
Description
技术领域
本发明属于电动汽车电机控制器技术领域,具体涉及一种电动汽车电机控制器的固件更新方法。
背景技术
电机控制器是电动汽车的重要电子控制单元。一般情况下,电机控制器的软件分为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的自更新及固件更新,使得更新更加高效简洁。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (5)
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包括通过按键来控制设定的引脚电平的高低,如果为高电平则代表存在固件更新请求,如果为低电平则代表没有固件更新请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511014248.4A CN105677388A (zh) | 2015-12-31 | 2015-12-31 | 电动汽车电机控制器的固件更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511014248.4A CN105677388A (zh) | 2015-12-31 | 2015-12-31 | 电动汽车电机控制器的固件更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677388A true CN105677388A (zh) | 2016-06-15 |
Family
ID=56297842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511014248.4A Pending CN105677388A (zh) | 2015-12-31 | 2015-12-31 | 电动汽车电机控制器的固件更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677388A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930236A (zh) * | 2016-07-15 | 2016-09-07 | 深圳市沃特玛电池有限公司 | 一种基于BMS Bootloader升级的应用程序版本回退方法 |
CN108255504A (zh) * | 2016-12-27 | 2018-07-06 | 纬颖科技服务股份有限公司 | 在一储存系统中更新软件的方法及储存系统 |
WO2018176692A1 (zh) * | 2017-03-28 | 2018-10-04 | 宁德时代新能源科技股份有限公司 | 系统的固件更新方法、装置和电池管理系统 |
CN109857426A (zh) * | 2018-12-27 | 2019-06-07 | 百度在线网络技术(北京)有限公司 | Bootloader程序更新方法、装置、电子设备及存储介质 |
CN110413310A (zh) * | 2018-04-28 | 2019-11-05 | 深圳市优必选科技有限公司 | 程序升级方法及终端设备 |
WO2020062887A1 (zh) * | 2018-09-26 | 2020-04-02 | 深圳市慧嘉智科技有限公司 | 基于闪存微控制器的固件升级方法和系统及闪存微控制器 |
CN111061500A (zh) * | 2019-12-31 | 2020-04-24 | 宝能汽车有限公司 | bootloader程序的更新方法及更新装置 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
CN111984281A (zh) * | 2019-05-24 | 2020-11-24 | 北京车和家信息技术有限公司 | 软件更新方法、车辆、终端及计算机可读存储介质 |
CN112181465A (zh) * | 2020-12-01 | 2021-01-05 | 深圳杰睿联科技有限公司 | 物联网通信模组中第三方应用的管理方法与装置 |
WO2021000535A1 (zh) * | 2019-06-29 | 2021-01-07 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN114253567A (zh) * | 2020-09-21 | 2022-03-29 | 北京海博思创科技股份有限公司 | 程序更新方法、装置和设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928821A (zh) * | 2006-09-26 | 2007-03-14 | 北京飞天诚信科技有限公司 | 一种电子设备的在线升级方法 |
CN1991761A (zh) * | 2005-12-30 | 2007-07-04 | 北京华旗资讯数码科技有限公司 | 一种固件程序在线升级的方法及硬件设备 |
CN101414264A (zh) * | 2008-11-24 | 2009-04-22 | 孙亚萍 | 一种高可靠软件版本的更新方法和三种更新方式 |
US20110246678A1 (en) * | 2010-03-30 | 2011-10-06 | Hung-June Wu | method for automatic mapping and updating of computer switching devices |
US20120042390A1 (en) * | 2010-08-12 | 2012-02-16 | Nokia Corporation | Method and apparatus for secure revocable location sharing |
CN104102508A (zh) * | 2014-07-01 | 2014-10-15 | 杭州电子科技大学 | 一种基于FlexRay总线的多机程序在线升级方法 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN104375855A (zh) * | 2014-09-24 | 2015-02-25 | 深圳市航盛电子股份有限公司 | 一种基于车载多mcu通过存储设备升级固件的装置及方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
-
2015
- 2015-12-31 CN CN201511014248.4A patent/CN105677388A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991761A (zh) * | 2005-12-30 | 2007-07-04 | 北京华旗资讯数码科技有限公司 | 一种固件程序在线升级的方法及硬件设备 |
CN1928821A (zh) * | 2006-09-26 | 2007-03-14 | 北京飞天诚信科技有限公司 | 一种电子设备的在线升级方法 |
CN101414264A (zh) * | 2008-11-24 | 2009-04-22 | 孙亚萍 | 一种高可靠软件版本的更新方法和三种更新方式 |
US20110246678A1 (en) * | 2010-03-30 | 2011-10-06 | Hung-June Wu | method for automatic mapping and updating of computer switching devices |
US20120042390A1 (en) * | 2010-08-12 | 2012-02-16 | Nokia Corporation | Method and apparatus for secure revocable location sharing |
CN104102508A (zh) * | 2014-07-01 | 2014-10-15 | 杭州电子科技大学 | 一种基于FlexRay总线的多机程序在线升级方法 |
CN104375855A (zh) * | 2014-09-24 | 2015-02-25 | 深圳市航盛电子股份有限公司 | 一种基于车载多mcu通过存储设备升级固件的装置及方法 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930236A (zh) * | 2016-07-15 | 2016-09-07 | 深圳市沃特玛电池有限公司 | 一种基于BMS Bootloader升级的应用程序版本回退方法 |
CN108255504A (zh) * | 2016-12-27 | 2018-07-06 | 纬颖科技服务股份有限公司 | 在一储存系统中更新软件的方法及储存系统 |
WO2018176692A1 (zh) * | 2017-03-28 | 2018-10-04 | 宁德时代新能源科技股份有限公司 | 系统的固件更新方法、装置和电池管理系统 |
CN110413310A (zh) * | 2018-04-28 | 2019-11-05 | 深圳市优必选科技有限公司 | 程序升级方法及终端设备 |
WO2020062887A1 (zh) * | 2018-09-26 | 2020-04-02 | 深圳市慧嘉智科技有限公司 | 基于闪存微控制器的固件升级方法和系统及闪存微控制器 |
CN109857426A (zh) * | 2018-12-27 | 2019-06-07 | 百度在线网络技术(北京)有限公司 | Bootloader程序更新方法、装置、电子设备及存储介质 |
CN111984281B (zh) * | 2019-05-24 | 2024-04-12 | 北京车和家信息技术有限公司 | 软件更新方法、车辆、终端及计算机可读存储介质 |
CN111984281A (zh) * | 2019-05-24 | 2020-11-24 | 北京车和家信息技术有限公司 | 软件更新方法、车辆、终端及计算机可读存储介质 |
WO2021000535A1 (zh) * | 2019-06-29 | 2021-01-07 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111061500A (zh) * | 2019-12-31 | 2020-04-24 | 宝能汽车有限公司 | bootloader程序的更新方法及更新装置 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
CN114253567A (zh) * | 2020-09-21 | 2022-03-29 | 北京海博思创科技股份有限公司 | 程序更新方法、装置和设备 |
CN112181465A (zh) * | 2020-12-01 | 2021-01-05 | 深圳杰睿联科技有限公司 | 物联网通信模组中第三方应用的管理方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677388A (zh) | 电动汽车电机控制器的固件更新方法 | |
CN106557340B (zh) | 一种配置方法及装置 | |
CN103197939A (zh) | 在混合计算系统中更新固件 | |
CN104199706A (zh) | 一种eMMC的固件升级方法及其设备 | |
CN102880495A (zh) | 移动终端及其软件升级方法 | |
CN104317667A (zh) | 一种dmi同步fru的方法 | |
CN101963910A (zh) | 基于通用usb总线的设备固件升级方法 | |
JP6661387B2 (ja) | コンピュータシステム、及びソフトウェアの初期インストール方法 | |
CN103853586A (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
US20060037015A1 (en) | Embedded driver for bus-connected device | |
CN103677880A (zh) | 一种信息处理方法及电子设备 | |
CN102662749A (zh) | 一种双Boot切换的实现方法及装置 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
CN105159716A (zh) | 一种存储器件初始化方法和电子设备 | |
CN104601617A (zh) | 虚拟桌面系统中外设的接入处理方法及装置 | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN102740279B (zh) | 一种无线网络接入终端及其运行方法 | |
CN104428751A (zh) | 程序数据的更新方法及设备 | |
CN105224483A (zh) | 数据传输方法、电子设备及通用串行总线设备 | |
CN102880478B (zh) | 软件更新方法 | |
CN106528226B (zh) | 操作系统的安装方法及装置 | |
CN112912743B (zh) | 算力的控制方法、装置、设备及存储介质 | |
US10616944B2 (en) | Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS | |
CN103246544B (zh) | 虚拟硬件驱动方法 | |
CN102736861A (zh) | 存储器配置方法、存储器控制器及存储器储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |
|
RJ01 | Rejection of invention patent application after publication |