CN112306535A - 一种高可靠性mcu远程升级系统和方法 - Google Patents

一种高可靠性mcu远程升级系统和方法 Download PDF

Info

Publication number
CN112306535A
CN112306535A CN202011245052.7A CN202011245052A CN112306535A CN 112306535 A CN112306535 A CN 112306535A CN 202011245052 A CN202011245052 A CN 202011245052A CN 112306535 A CN112306535 A CN 112306535A
Authority
CN
China
Prior art keywords
program
upgrading
app1
app2
mcu
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
Application number
CN202011245052.7A
Other languages
English (en)
Inventor
朱银东
方泽莉
周彬奇
黄振强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mingfeng Medical System Co Ltd
Minfound Medical Systems Co Ltd
Original Assignee
Mingfeng Medical System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mingfeng Medical System Co Ltd filed Critical Mingfeng Medical System Co Ltd
Priority to CN202011245052.7A priority Critical patent/CN112306535A/zh
Publication of CN112306535A publication Critical patent/CN112306535A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种高可靠性MCU远程升级系统和方法,涉及MCU固件升级技术领域,通过在MCU的FLASH中放置APP1程序、APP2程序和bootloader程序,APP1程序用于正常运行实现系统需要的动作,当系统远程升级时会把APP1擦除并烧写新的固件到APP1的FLASH空间,当APP1由于异常擦除更新时,bootloader程序会自动跳转到APP2,由APP2和上位机交互实现固件的继续升级,由于APP2不会被擦除,就可以保证系统一直可以正常进行升级,而不会出现升级失败破坏APP2的现象,因此保证了系统升级的安全性和稳定性。相比传统通过USB或者JTAG等烧录接口的升级方式,该方法具有操作方便,省时省力的特点,极大地提高了升级效率,省去了升级时开机壳等流程。

Description

一种高可靠性MCU远程升级系统和方法
技术领域
本发明涉及一种高可靠性MCU远程升级系统和方法,属于MCU固件升级技术领域。
背景技术
基于MCU的控制器往往会因为安装或者可靠性考虑增加保护外壳,比如PETCT探测器的电源板就按照在金属外壳里面并且外面还有机架的外罩,而目前PET电源板的传统升级方式需要打开外罩进行升级,费事费力。
为了解决上述问题,现有的技术往往采用USB升级或者其他常规下载器进行升级,或者采用IAP升级时现将固件放到另一个区,验证成功后再将原来的固件覆盖。但会存在以下问题:现有的技术方案虽然能够实现固件升级,但是往往需要打开控制器的外壳,有些时候安装比较麻烦时这种方式就给固件升级带来很大困难,耗时过久。
对于先将固件拷贝到另一个FLASH区的方案需要FLASH空间足够大,否则固件代码较长时会造成无法升级的情况。
本发明以PET电源板为例提供了一种高可靠性MCU远程升级的方案和方法。
基于此,做出本申请。
发明内容
为了解决现有技术中存在的上述缺陷,在给机壳内的控制器升级固件时,本发明提供了一种高可靠性MCU远程升级系统和方法,操作简单,安全可靠。
为了实现上述目的,本发明采取的技术方案如下:
一种高可靠性MCU远程升级系统,包括上位机、以及与上位机通信连接的MCU控制器;所述上位机将升级命令下发给MCU控制器;
所述MCU控制器设置存储模块,存储模块中至少放置一个bootloader程序、APP1程序和APP2程序;其中APP1程序用于正常运行实现系统需要的动作,且在系统升级时可被擦除,擦除后的存储空间用于烧写新的固件;APP2程序用于在APP1程序升级失败时承继升级过程,实现固件的继续升级,且不会被擦除;所述bootloader程序用于实现引导运行系统固件的APP1程序或者APP2程序。
作为优选,所述上位机与MCU控制器之间连接FPGA中转板,上位机设置DAQ卡,FPGA中转板与DAQ卡通信连接,FPGA中转板与MCU控制器通信连;所述上位机通过DAQ卡将升级命令下发给FPGA中转板、FPGA中转板再将该命令转发给MCU控制器。
作为优选,所述存储模块中还设置有跳转标志变量,所述bootloader程序根据跳转标志变量的状态引导跳转到APP1程序或APP2程序。
作为优选,所述存储模块采用FLASH。
作为优选,所述上位机通过PCIE接口与DAQ卡连接,DAQ卡通过光纤与FPGA中转板通信,FPGA中转板通过TTL电平和MCU控制器进行串口通信。
作为优选,所述MCU控制器采用STM32F103系列的MCU,支持IAP升级。
一种高可靠性MCU远程升级方法,包括如下步骤:
步骤S100、上位机通过DAQ卡与FPGA中转板通信,下发包括升级指令在内的指令;
步骤S200、FPGA中转板将指令通过跳转标志变量的形式转发给MCU控制器;
步骤S300、MCU控制器的存储模块中的bootloader程序根据目前跳转标志变量的状态引导跳转APP1程序或者APP2程序进行APP1程序正常运行、APP1程序固件升级或APP2程序继续升级;
步骤S400、升级完成后跳转到APP2程序正常运行。
本发明的原理和有益技术效果:
本发明在MCU的FLASH中放置3个程序用于达到高可靠性地固件升级的目的,其中一个是bootloader程序,另外2个是APP程序,bootloader程序其中用于实现引导运行系统固件的APP1程序或者APP2程序,APP1程序用于正常运行实现系统需要的动作,当系统远程升级时会把APP1擦除并烧写新的固件到APP1的FLASH空间,当APP1由于异常擦除更新时,bootloader程序会自动跳转到APP2,由APP2和上位机交互实现固件的继续升级,由于APP2不会被擦除,就可以保证系统一直可以正常进行升级,而不会出现升级失败破坏APP2的现象,这样就保证了系统升级的安全性和稳定性。
相比传统通过USB或者JTAG等烧录接口的升级方式,该方法具有操作方便,省时省力的特点,极大地提高了升级效率,省去了升级时开机壳等流程。
附图说明
图1为本实施例一种高可靠性MCU远程升级系统的系统框图;
图2为本实施例中MCU控制器的 FLASH存储区划分图;
图3为本实施例中bootloader程序流程图;
图4为本实施例中APP1程序流程图;
图5为本实施例中APP2程序流程图。
具体实施方式
为了使本发明的技术手段及其所能达到的技术效果,能够更清楚更完善的披露,兹提供了以下实施例,并结合附图作如下详细说明:
本发明提供一实施例,由PC操作端下达命令,FPGA平台转发给电源板(MCU控制器)的升级方案。
如图1所示,本实施例的一种高可靠性MCU远程升级系统,包括PC操作端、与PC操作端通信连接的FPGA中转板、以及与FPGA中转板通信连接的MCU控制器;PC操作端设置DAQ卡,PC操作端通过DAQ卡将升级命令下发给FPGA中转板、FPGA中转板再将该命令转发给MCU控制器。本实施例通过一个FPGA控制器做中转,可以很好地实现MCU与升级的上位机PC的连接,进一步保证升级的实现不需开外罩和机壳即可实现稳定升级的效果。
本实施例优选的,PC操作端通过PCIE接口与DAQ卡连接,DAQ卡通过光纤与FPGA中转板通信,FPGA中转板通过TTL电平和MCU控制器进行串口通信。即,PC端通过DAQ卡将升级命令下发给FPGA中转板、FPGA再通过串口通信将该命令转发给电源板。整个命令下发和数据传输都是通过该方式完成,当升级完成后系统MCU端固件自动跳转到APP1正常运行。
MCU控制器设置存储模块,存储模块采用FLASH,如图2所示,将FLASH分为Bootloader程序存储区、APP1程序存储区、APP2程序存储区和跳转标志变量及参数保存区,采用IAP编程技术在MCU的FLASH中放置3个程序,一个bootloader程序、APP1程序和APP2程序;其中bootloader程序根据跳转标志变量的状态引导跳转到APP1程序或APP2程序。APP1程序负责电源板的正常运行,且在系统升级时可被擦除,擦除后的存储空间用于烧写新的固件;APP2程序正常情况下不运行,当系统进行固件升级失败(如异常擦除更新)时负责重新给FPGA提供正常电源并支持继续给APP1进行升级,且不会被擦除,从而可以安全可靠地保证APP1固件总是能够完成升级。
本实施例优选的,MCU控制器采用STM32F103系列的MCU,支持IAP升级。更优选的MCU控制器采用STM32F103VCT6,具有256K的FLASH,足够实现功能并留有余量。
本实施例的一种高可靠性MCU远程升级方法,包括如下步骤:
步骤S100、PC操作端通过DAQ卡与FPGA中转板通信,下发包括升级指令在内的指令;
步骤S200、FPGA中转板将指令通过跳转标志变量的形式转发给MCU控制器;
步骤S300、MCU控制器的存储模块中的bootloader程序根据目前跳转标志变量的状态引导跳转APP1程序或者APP2程序进行APP1程序正常运行、APP1程序固件升级或APP2程序继续升级,换言之每次上电bootloader程序首先读取该变量,进而判断目前应该处于哪个APP中;
步骤S400、升级完成后跳转到APP2程序正常运行。
如图3所示,步骤S300具体包括如下步骤(Bootloader的处理流程):
步骤S310、存储模块初始化;
步骤S320、读取跳转标志变量;
步骤S330、判断跳转标志变量是否是运行APP1程序,若答案为是则执行步骤S331,若答案为否则执行步骤S333;
步骤S331、跳转到APP1程序;
步骤S332、APP1程序正常运行,流程结束;
步骤S333、判断跳转标志变量是否处于升级命令,若答案为是,则执行步骤S334,若答案为否,则执行步骤330;
步骤S334、升级APP1程序的固件;
步骤S335 、判断是否升级成功,若升级成功,则执行步骤S336,若升级失败,则执行步骤S338;
步骤S336、跳转变量改为跳转到APP1程序并保存;
步骤S337、跳转到APP1程序正常运行,流程结束;
步骤S338、跳转变量改为跳转到APP2程序并保存;
步骤S339、跳转到APP2程序继续升级,流程结束;
步骤S340、跳转到APP2程序继续升级,流程结束。
本实施例中,APP1用于正常工作的流程,并且通过串口命令决定是否跳转到bootloader程序进行APP1的固件升级。APP1首先要对电源芯片进行初始化以保证FPGA正常工作,然后执行其他需要运行的动作,APP1的流程图如图4所示。
本实施例中,APP2用于上次升级失败后APP1已经损坏时继续支持对APP1进行升级的操作,开始时需要先进行电源初始化用于保证升级固件的FPGA正常工作,然后就可以通过上位机PC端选择需要升级的APP1固件,然后跳转到bootloader进行升级。APP2的流程图如图5所示。
本发明实施例采用IAP编程技术在MCU的FLASH中放置3个程序用于达到高可靠性地固件升级的目的,其中一个是bootloader程序,另外两个是APP程序,其中bootloader程序用于实现引导运行系统固件的APP1程序或者APP2程序,APP1程序用于正常运行实现系统需要的动作,当系统远程升级时会把APP1擦除并烧写新的固件到APP1的FLASH空间,当APP1由于异常擦除更新时,bootloader程序会自动跳转到APP2,由APP2和上位机交互实现固件的继续升级,由于APP2不会被擦除,就可以保证系统一直可以正常进行升级,而不会出现升级失败破坏APP2的现象,这样就保证了系统升级的安全性和稳定性。相比传统通过USB或者JTAG等烧录接口的升级方式,该方法具有操作方便,省时省力的特点,极大地提高了升级效率,省去了升级时开机壳等流程。
以上内容是结合本发明的优选实施方式对所提供技术方案所作的进一步详细说明,不能认定本发明具体实施只局限于上述这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种高可靠性MCU远程升级系统,其特征在于:包括上位机、以及与上位机通信连接的MCU控制器;所述上位机将升级命令下发给MCU控制器;
所述MCU控制器设置存储模块,存储模块中至少放置一个bootloader程序、APP1程序和APP2程序;其中APP1程序用于正常运行实现系统需要的动作,且在系统升级时可被擦除,擦除后的存储空间用于烧写新的固件;APP2程序用于在APP1程序升级失败时承继升级过程,实现固件的继续升级,且不会被擦除;所述bootloader程序用于实现引导运行系统固件的APP1程序或者APP2程序。
2.如权利要求1所述的一种高可靠性MCU远程升级系统,其特征在于:所述上位机与MCU控制器之间连接FPGA中转板, 上位机设置DAQ卡,FPGA中转板与DAQ卡通信连接,FPGA中转板与MCU控制器通信连;所述上位机通过DAQ卡将升级命令下发给FPGA中转板、FPGA中转板再将该命令转发给MCU控制器。
3.如权利要求1所述的一种高可靠性MCU远程升级系统,其特征在于:所述存储模块中还设置有跳转标志变量,所述bootloader程序根据跳转标志变量的状态引导跳转到APP1程序或APP2程序。
4.如权利要求1或3所述的一种高可靠性MCU远程升级系统,其特征在于:所述存储模块采用FLASH。
5.如权利要求1所述的一种高可靠性MCU远程升级系统,其特征在于:所述存储模块分为Bootloader程序存储区、APP1程序存储区、APP2程序存储区和跳转标志变量及参数保存区。
6.如权利要求1所述的一种高可靠性MCU远程升级系统,其特征在于:所述上位机通过PCIE接口与DAQ卡连接,DAQ卡通过光纤与FPGA中转板通信,FPGA中转板通过TTL电平和MCU控制器进行串口通信。
7.如权利要求1或6所述的一种高可靠性MCU远程升级系统,其特征在于:所述MCU控制器采用STM32F103系列的MCU,支持IAP升级。
8.如权利要求7所述的一种高可靠性MCU远程升级系统,其特征在于:所述MCU控制器采用STM32F103VCT6,具有256K的FLASH,足够实现功能并留有余量。
9.一种高可靠性MCU远程升级方法,其特征在于包括如下步骤:
步骤S100、上位机通过DAQ卡与FPGA中转板通信,下发包括升级指令在内的指令;
步骤S200、FPGA中转板将指令通过跳转标志变量的形式转发给MCU控制器;
步骤S300、MCU控制器的存储模块中的bootloader程序根据目前跳转标志变量的状态引导跳转APP1程序或者APP2程序进行APP1程序正常运行、APP1程序固件升级或APP2程序继续升级;
步骤S400、升级完成后跳转到APP2程序正常运行。
10.如权利要求9所述的一种高可靠性MCU远程升级方法,其特征在于所述步骤S300具体包括如下步骤:
步骤S310、存储模块初始化;
步骤S320、读取跳转标志变量;
步骤S330、判断跳转标志变量是否是运行APP1程序,若答案为是则执行步骤S331,若答案为否则执行步骤S333;
步骤S331、跳转到APP1程序;
步骤S332、APP1程序正常运行,流程结束;
步骤S333、判断跳转标志变量是否处于升级命令,若答案为是,则执行步骤S334,若答案为否,则执行步骤330;
步骤S334、升级APP1程序的固件;
步骤S335 、判断是否升级成功,若升级成功,则执行步骤S336,若升级失败,则执行步骤S338;
步骤S336、跳转变量改为跳转到APP1程序并保存;
步骤S337、跳转到APP1程序正常运行,流程结束;
步骤S338、跳转变量改为跳转到APP2程序并保存;
步骤S339、跳转到APP2程序继续升级,流程结束;
步骤S340、跳转到APP2程序继续升级,流程结束。
CN202011245052.7A 2020-11-10 2020-11-10 一种高可靠性mcu远程升级系统和方法 Pending CN112306535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011245052.7A CN112306535A (zh) 2020-11-10 2020-11-10 一种高可靠性mcu远程升级系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011245052.7A CN112306535A (zh) 2020-11-10 2020-11-10 一种高可靠性mcu远程升级系统和方法

Publications (1)

Publication Number Publication Date
CN112306535A true CN112306535A (zh) 2021-02-02

Family

ID=74325520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011245052.7A Pending CN112306535A (zh) 2020-11-10 2020-11-10 一种高可靠性mcu远程升级系统和方法

Country Status (1)

Country Link
CN (1) CN112306535A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672271A (zh) * 2021-08-24 2021-11-19 天津津航计算技术研究所 一种国产fpga远程升级系统和方法
CN116841578A (zh) * 2023-05-19 2023-10-03 国汽朴津智能科技(安庆)有限公司 一种移动机器人的远程升级方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303113A (ja) * 2002-04-10 2003-10-24 Nippon Telegr & Teleph Corp <Ntt> アプリケーション処理装置、その制御方法ならびにプログラム
CN106227572A (zh) * 2016-08-30 2016-12-14 深圳市蓝海华腾技术股份有限公司 一种变频器控制系统程序升级方法
CN106598597A (zh) * 2016-12-14 2017-04-26 普华基础软件股份有限公司 一种电控单元应用软件刷新方法
CN108958761A (zh) * 2017-05-25 2018-12-07 中兴通讯股份有限公司 一种设备程序的处理方法及装置
CN109460245A (zh) * 2018-10-31 2019-03-12 北京众谊越泰科技有限公司 一种嵌入式系统的远程升级方法
CN109491686A (zh) * 2018-11-02 2019-03-19 天津津航技术物理研究所 基于xilinx公司k7系列的FPGA程序在线升级方法
CN111897562A (zh) * 2020-07-21 2020-11-06 阿理新能源科技(昆山)有限公司 一种程序升级方法和设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303113A (ja) * 2002-04-10 2003-10-24 Nippon Telegr & Teleph Corp <Ntt> アプリケーション処理装置、その制御方法ならびにプログラム
CN106227572A (zh) * 2016-08-30 2016-12-14 深圳市蓝海华腾技术股份有限公司 一种变频器控制系统程序升级方法
CN106598597A (zh) * 2016-12-14 2017-04-26 普华基础软件股份有限公司 一种电控单元应用软件刷新方法
CN108958761A (zh) * 2017-05-25 2018-12-07 中兴通讯股份有限公司 一种设备程序的处理方法及装置
CN109460245A (zh) * 2018-10-31 2019-03-12 北京众谊越泰科技有限公司 一种嵌入式系统的远程升级方法
CN109491686A (zh) * 2018-11-02 2019-03-19 天津津航技术物理研究所 基于xilinx公司k7系列的FPGA程序在线升级方法
CN111897562A (zh) * 2020-07-21 2020-11-06 阿理新能源科技(昆山)有限公司 一种程序升级方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩左左: "ARM7 LPC2378远程升级-ISP与IAP", 《HTTPS://BLOG.CSDN.NET/ALLAN0508/ARTICLE/DETAILS/52577898》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672271A (zh) * 2021-08-24 2021-11-19 天津津航计算技术研究所 一种国产fpga远程升级系统和方法
CN116841578A (zh) * 2023-05-19 2023-10-03 国汽朴津智能科技(安庆)有限公司 一种移动机器人的远程升级方法及系统
CN116841578B (zh) * 2023-05-19 2024-03-26 国汽朴津智能科技(安庆)有限公司 一种移动机器人的远程升级方法及系统

Similar Documents

Publication Publication Date Title
CN112306535A (zh) 一种高可靠性mcu远程升级系统和方法
CN101477471B (zh) 一种嵌入式系统固件在线升级方法
CN105354070B (zh) 一种通过i2c升级设备固件的方法
CN106598650A (zh) 基于光纤通信的fpga程序在线升级的装置及方法
CN112506535A (zh) 一种汽车ECU控制器更新升级Bootloader软件的方法
US11995427B2 (en) Method, apparatus, device, and storage medium for upgrading vehicle-mounted Tbox
CN105354063B (zh) 程序在线升级方法及系统
CN103777972A (zh) 基于现场可编程门阵列的系统、配置方法以及升级方法
CN103997683A (zh) 利用机顶盒平台实现可定制Flash烧录器的系统及其方法
CN111399945B (zh) 一种基于10g pon bob设备的校准及配置管理方法
CN109189434A (zh) 一种电能表的在线升级方法
CN109358865A (zh) 一种具有远程升级功能的工业车辆车联网仪表及升级方法
CN110187909A (zh) 一种基于安卓系统的单片机固件升级方法
CN106789334A (zh) 一种固件升级的方法和设备
CN108803442A (zh) 一种光模块代码下载装置及方法
CN110377303A (zh) 基于备用存储区方式升级程序的方法及其设备
CN112685053B (zh) 单片机程序远程升级控制方法
CN210721449U (zh) Eeprom芯片程序烧写装置及系统
CN112965734A (zh) 一种spartan6系列FPGA多镜像程序远程刷新方法
CN112052031A (zh) 一种业务板卡自动匹配和升级cpld的方法及装置
CN103345456B (zh) 调节BootLoader启动地址的电路及方法
CN102270148A (zh) 一种液晶显示屏驱动板的升级方法
CN207780761U (zh) 光伏设备升级系统
CN113821230A (zh) 一种嵌入式系统的系统固件更新方式设计
CN116700061B (zh) 一种基于安全启动技术的快速启动方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210202