CN109358893A - 一种fpga程序的在线升级方法、装置及系统 - Google Patents
一种fpga程序的在线升级方法、装置及系统 Download PDFInfo
- Publication number
- CN109358893A CN109358893A CN201811504895.7A CN201811504895A CN109358893A CN 109358893 A CN109358893 A CN 109358893A CN 201811504895 A CN201811504895 A CN 201811504895A CN 109358893 A CN109358893 A CN 109358893A
- Authority
- CN
- China
- Prior art keywords
- fpga
- program
- external memory
- fpga chip
- upgrading
- 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
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
本发明提供了一种FPGA程序的在线升级方法、装置及系统,其中的方法包括:当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,并控制切换电路使得外部存储器与MCU控制器连接,然后接收FPGA芯片转发的待更新的FPGA程序文件,接着将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;再接收FPGA芯片转发的升级结束指令,并控制切换电路使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。本发明实现了提高升级的效率以及方便在线升级的技术效果。
Description
技术领域
本发明涉及FPGA配置技术领域,具体涉及一种FPGA程序的在线升级方法、装置及系统。
背景技术
FPGA(Field-Programmable Gate Array),现场可编程门阵列是目前工业设备中常用的逻辑器件之一,其功能强大,但由于FPGA内部RAM(random access memory,RAM随机存取存储器)的数据掉电易失特性,所以在设备系统每次上电时,都需要对其重新进行数据配置。
一款设备生产好以后,其中的FPGA程序就基本固定了,而在实际的工程应用过程中,通常会出现需要更新FPGA程序的情形,例如修复功能异常后的程序升级、将现场设备升级为演示版本程序等等。现在技术中,通常是通过下载器(JTAG Joint Test ActionGroup)连接PC与FPGA,然后通过专门的软件(例如Quartus),将待更新的程序写入到FPGA的外部存储器中。
本发明申请人在实施本发明的过程中,发现现有技术中至少存在如下技术问题:
现有技术中在进行升级时,需要配置专门的JTAG接口,并且每次升级时,都需要重新配置,对于现场使用来说是极其不方便的。
由此可知,现有技术中的升级方式存在效率低以及不适用于现场升级的技术问题。
发明内容
有鉴于此,本发明实施例提供了一种FPGA程序的在线升级方法、装置及系统,用以解决或者至少部分解决现有技术中的升级方式存在效率低以及不适用于现场升级的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种FPGA程序的在线升级方法,包括:
当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片;
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片;
将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
在一种实施方式中,所述外部存储器还包括备份数据区,在将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区之后,所述方法还包括:
判断备份数据区是否存在存储数据,如果不存在,则将待更新的FPGA程序文件写入备份数据区。
在一种实施方式中,在进行FPGA程序的在线升级时,所述述方法还包括:
检测FPGA芯片是否正常运行;
如果FPGA芯片未正常运行,则对在线升级流程进行恢复。
在一种实施方式中,MCU控制器通过状态检测信号管脚与FPGA芯片相连,检测FPGA芯片是否正常运行,包括:
通过状态检测信号管脚检测FPGA芯片是否正常运行。
在一种实施方式中,所述外部存储器还包括备份数据区,对在线升级流程进行恢复,包括:
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接;
从外部存储器的备份数据区读取数据;
将读取的数据覆盖外部存储器的程序数据区中原来的数据;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区中的数据,进行FPGA程序恢复。
基于同样的发明构思,本发明第二方面提供了一种FPGA程序的在线升级方法,包括:
当需要更新FPGA程序时,控制端生成升级开始指令;
将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,再通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
基于同样的发明构思,本发明第三方面提供了一种FPGA程序的在线升级装置,所述装置为MCU控制器,包括:
升级开始指令接收模块,用于当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片;
第一电路控制模块,用于控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件接收模块,用于接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片;
数据写入模块,用于将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
升级结束指令接收模块,用于接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片;
第二电路控制模块,用于切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
基于同样的发明构思,本发明第四方面提供了一种FPGA程序的在线升级装置,所述装置为控制端,包括:
第一指令生成模块,用于当需要更新FPGA程序时,控制端生成升级开始指令;
第一指令发送模块,用于将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件下发模块,用于将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,并通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
第二指令生成模块,用于生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
基于同样的发明构思,本发明第五方面提供了一种FPGA程序的在线升级系统,包括第三方面所述的MCU控制器,第四方面所述的控制端,FPGA芯片、切换电路以及外部存储器,其中,控制端与FPGA芯片连接,FPGA芯片分别与MCU控制器连接、切换电路连接,MCU控制器与切换电路连接,切换电路与外部存储器连接。
在一种实施方式中,MCU控制器的状态检测管脚与FPGA芯片连接,用于检测FPGA芯片的运行状态。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明公开的FPGA程序的在线升级方法,MCU控制器接收控制端发送的升级开始指令后,则可以控制切换电路的状态,使得外部存储器与MCU控制器连接,并擦除外部存储器中程序数据区的数据,然后将接收FPGA芯片转发的待更新的FPGA程序文件写入外部存储器的程序数据区,接着接收FPGA芯片转发的升级结束指令,并控制切换电路的状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。相对于现有的方法中,需要通过下载器将PC机与FPGA连接,然后通过专门的软件进行升级而言,本发明的方法可以通过MCU控制器接收设备上位机(控制端)的升级开始指令和升级结束指令,则可以对设备内的FPGA程序进行在线升级,提高了升级方法的效率,并且适用于现场升级。
进一步地,外部存储器还包括备份数据区,在将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区之后,判断备份数据区是否存在存储数据,如果不存在,则表明为首次更新,则将待更新的FPGA程序文件写入备份数据区,可以保证恢复功能的可靠性,并进一步提高升级的效率。
进一步地,当FPGA芯片未正常运行,则对在线升级流程进行恢复,从而可以确保升级的可靠性,防止升级过程中断或者升级的数据有误,而导致的FPGA无法正常运行的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种FPGA程序的在线升级方法的流程图;
图2为本发明实施例中外部存储器的分区示意图;
图3为本发明实施例中另一种FPGA程序的在线升级方法的流程图;
图4为本发明实施例中一种FPGA程序的在线升级装置的结构示意图;
图5为本发明实施例中另一种FPGA程序的在线升级装置的结构示意图;
图6为本发明实施例中一种FPGA程序的在线升级系统的结构图。
具体实施方式
本发明实施例提供了一种FPGA程序的在线升级方法、装置及系统,用以改善现有技术中的升级方式存在效率低以及不适用于现场升级的技术问题。
为了达到上述技术效果,本发明的总体思路如下:
本发明提供了一种FPGA程序在线升级的系统与方法,需要更新FPGA程序时,则由控制端发送控制指令至MCU,控制MCU改变切换电路连接状态,将外部存储器与MCU相连。然后通过MCU将待更新的FPGA程序文件更新到外部存储器的程序数据区。接着通过MCU控制切换电路,使外部存储器连接到FPGA,并通过复位信号,使FPGA重新执行加载程序运行的过程,从而达到更新FPGA程序的目的。不需要通过下载器将FPGA芯片与PC连接,然后通过专门的软件来实现更新,可以直接通过控制端发送指令,控制底层来实现在线更新,达到了提高升级方法的效率,并且适用于现场升级的技术效果。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种FPGA程序的在线升级方法,执行主体为MCU控制器,请参见图1,该方法包括:
首先执行步骤S101:当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片。
具体来说,控制端为设备的上位机,用于生成升级开始指令、待更新的FPGA程序文件、升级结束指令等,控制在线升级流程。控制端生成的升级开始指令,首先发送至FPGA芯片,然后由FPGA芯片转发至MCU控制器,其中,FPGA芯片可以通过数据传输链路将指令透传给MCU。
然后执行步骤S102:控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据。
具体来说,MCU可以通过向切换电路发送切换电路控制信号,来控制其连接状态。而切换电路用于控制外部存储器的数据链路的选通连接关系,如果与MCU的数据链路相连,则外部存储器的读写由MCU控制,如果与FPGA芯片的数据链路相连,则FPGA芯片可以从外部存储器中加载程序数据。
接下来执行步骤S103:接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片。
具体来说,当MCU擦除外部存储器的程序数据区的数据后,则由控制端下发待更新的FPGA程序文件。
接着执行步骤S104:将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据。
具体来说,此时外部存储器的数据链路与MCU控制器连接,则可以由MCU控制其数据的更新。
再执行步骤S105:接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片。
具体来说,当MUC将待更新的FPGA程序文件写入所述外部存储器后,控制端则发送升级结束指令,也就是,将外部存储器的操作权交还给FPGA芯片。
最后执行步骤S106:控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
具体来说,可以通过复位信号使FPGA芯片复位,然后重新执行加载外部存储器中更新后的程序文件,从而达到更新FPGA程序的目的。其中,复位信号可以由MCU的相应管脚与FPGA芯片连接后,由MCU发送。
在一种实施方式中,所述外部存储器还包括备份数据区,在将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区之后,所述方法还包括:
判断备份数据区是否存在存储数据,如果不存在,则将待更新的FPGA程序文件写入备份数据区。
具体来说,请参见图2,为本发明实施例中外部存储器的分区示意图。外部存储器包括程序数据区和备份数据区。MCU在将待更新的FPGA程序文件写入程序数据后,会检测备份数据区是否存有数据。如果备份数据区不存在存储数据时,则表明为首次更新,此时将待更新的FPGA程序文件写入备份数据区。当判断备份数据区是已经存在数据时,则不对备份数据区进行操作。那么,外部存储器的程序数据区存储的数据,即FPGA每次上电时加载的程序数据;备份数据区始终存储着一份基础功能版本的FPGA程序,用于异常时恢复FPGA程序。
为保证异常恢复功能可用,在系统出厂之前,需要进行首次在线升级的操作,在首次在线升级时,升级的程序文件数据(即更新的FPGA程序文件)除了会被写入外部存储器的程序数据区,还会写入备份数据区。也就是说,出厂之前就会将功能可靠的程序版本存入外部存储器的备份数据区,那么在后续的在线升级过程中,MCU会检测到备份数据区已存有数据,则不会重复覆盖,一方面可以节省时间,另一方面可以保证恢复功能的可靠性(因为后续出厂使用过程中,有可能将不匹配的程序版本拿来升级的,这样的程序文件数据不应该保存到备份数据区)。
在一种实施方式中,在进行FPGA程序的在线升级时,所述述方法还包括:
检测FPGA芯片是否正常运行;
如果FPGA芯片未正常运行,则对在线升级流程进行恢复。
具体来说,,由于在线升级过程异常中断,或者升级的程序文件有误等,会造成当前升级失败,FPGA无法正常运行工作的情况发生,可以通过MCU检测FPGA芯片是否正常运行。
具体地,MCU控制器通过状态检测信号管脚与FPGA芯片相连,检测FPGA芯片是否正常运行,包括:
通过状态检测信号管脚检测FPGA芯片是否正常运行。
具体来说,当检测到FPGA芯片未正常运行时,则会触发进入恢复处理流程。
在一种实施方式中,所述外部存储器还包括备份数据区,对在线升级流程进行恢复,包括:
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接;
从外部存储器的备份数据区读取数据;
将读取的数据覆盖外部存储器的程序数据区中原来的数据;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区中的数据,进行FPGA程序恢复。
具体来说,在线升级的恢复流程,具体通过MCU控制器控制切换电路的连接状态来实现,首先使得外部存储器数据链路与MCU控制器连接,然后MCU对外部存储器的备份数据区的数据进行读取,并将读取的数据对程序数据区中原来的数据进行覆盖,此时,程序数据区中数据则为备份数据区中存储的数据。用于后续的恢复。
基于同一发明构思,本申请还提供了另一种FPGA程序的在线升级方法,详见实施例二。
实施例二
请参见图3,本实施例提供了一种FPGA程序的在线升级方法,其执行主体为控制端,该方法包括:
S201:当需要更新FPGA程序时,控制端生成升级开始指令;
S202:将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
S203:将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,然后通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
S204:生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
具体来说,由于实施例一中已经详细介绍控制端生成升级开始指令、下发待更新的FPGA程序文件、生成升级结束指令的具体实施方式,在本实施例中不再赘述,凡是本发明实施例一的方法所包含的实施方式都属于本发明所欲保护的范围。
基于同一发明构思,本申请还提供了与实施例一中FPGA程序的在线升级方法对应的装置,详见实施例三。
实施例三
本实施例提供了一种FPGA程序的在线升级装置,所述装置为MCU控制器,请参见图4,该MCU控制器包括:
升级开始指令接收模块301,用于当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片;
第一电路控制模块302,用于控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件接收模块303,用于接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片;
数据写入模块304,用于将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
升级结束指令接收模块305,用于接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片;
第二电路控制模块306,用于切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
在一种实施方式中,所述外部存储器还包括备份数据区,所述装置还包括判断模块,用于在将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区之后:
判断备份数据区是否存在存储数据,如果不存在,则将待更新的FPGA程序文件写入备份数据区。
在一种实施方式中,所述装置还包括检测模块,用于在进行FPGA程序的在线升级时:
检测FPGA芯片是否正常运行;
如果FPGA芯片未正常运行,则对在线升级流程进行恢复。
在一种实施方式中,MCU控制器通过状态检测信号管脚与FPGA芯片相连,检测模块具体用于:
通过状态检测信号管脚检测FPGA芯片是否正常运行。
在一种实施方式中,所述外部存储器还包括备份数据区,所述装置还包括恢复模块,具体用于:
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接;
从外部存储器的备份数据区读取数据;
将读取的数据覆盖外部存储器的程序数据区中原来的数据;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区中的数据,进行FPGA程序恢复。
由于本发明实施例三所介绍的装置,为实施本发明实施例一中FPGA程序的在线升级方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请还提供了与实施例一中FPGA程序的在线升级方法对应的装置,详见实施例四。
实施例四
本实施例提供了一种FPGA程序的在线升级装置,所述装置为控制端,请参见图5,该控制端具体包括:
第一指令生成模块401,用于当需要更新FPGA程序时,控制端生成升级开始指令;
第一指令发送模块402,用于将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件下发模块403,用于将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,并通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
第二指令生成模块404,用于生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
由于本发明实施例四所介绍的装置,为实施本发明实施例二中FPGA程序的在线升级方法所采用的装置,故而基于本发明实施例二所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例二的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请还提供了一种FPGA程序的在线升级系统,详见实施例五。
实施例五
本实施例提供了一种FPGA程序的在线升级系统,请参见图6,包括实施三所述的MCU控制器,实施例四所述的控制端,FPGA芯片、切换电路以及外部存储器,其中,控制端与FPGA芯片连接,FPGA芯片分别与MCU控制器连接、切换电路连接,MCU控制器与切换电路连接,切换电路与外部存储器连接。
MCU控制器的状态检测管脚与FPGA芯片连接,用于检测FPGA芯片的运行状态。
具体来说,本实施例提供的FPGA程序的在线升级系统中,控制端与FPGA芯片连接,FPGA芯片与MCU控制器之间通过数据传输链路、状态检测管脚相连,通过数据传输链路可以透传由控制端发送的控制指令,以及相连的线路传输复位信号、状态检测信号。MCU控制器与切换电路之间包括MCU数据链路和切换电路控制信号,切换电路与FPGA芯片之间包括FPGA数据链路,,切换电路与外部存储器之间包括数据链路。
本实施例提供的在线升级系统,具体包括以下三种状态:
第一、正常加载状态
1、当设备上电后,MCU默认将切换电路置于连通外部存储器与FPGA之间的数据链路的状态;
2、FPGA从外部存储器中的程序数据区,加载程序数据到内部RAM中,并开始运行程序,进入工作状态;
3、一段时间后,MCU通过状态检测信号管脚,检测FPGA是否正常运行;如果检测到在正常运行状态,则不进行处理,进入空闲状态。
需要说明的是,本实施例提及的设备是包含在线升级系统的整个产品设备。
第二、在线升级状态
同时结合图1,具体介绍在线升级的具体流程:
1、控制端,发送升级开始指令,FPGA接收到以后,则通过数据传输链路将升级开始指令透传给MCU;
2、MCU收到开始指令后,控制切换电路,使得外部存储器与MCU之间的数据链路处于连通状态。之后,MCU擦除外部存储器的程序数据区内容,等待下一步升级处理流程;
3、控制端,发送待更新的FPGA程序文件,同样地,通过FPGA透传给MCU;
4、MCU将接收到的待更新的FPGA程序文件,写入外部存储器的程序数据区。优选地,如果备份数据区没有存储数据,同时将程序文件写入一份到外部存储器的备份数据区中;
5、控制端,发送升级结束指令。MCU接收到以后,控制切换电路,使得外部存储器此时与FPGA相连,然后,通过复位信号管脚,控制FPGA进行复位;
6、FPGA复位后,即会重新从外部存储器中加载程序数据,开始运行以及工作;
7.在线升级流程完毕;
第三、异常状态恢复
1、设备上电后,MCU默认将切换电路置于连通外部存储器与FPGA之间的数据链路的状态;
2、一段时间后,MCU通过状态检测信号管脚,检测FPGA是否正常运行;如果检测到未正常运行状态,则改变切换电路连接状态,使外部存储器与MCU的数据链路相连;
3、MCU从外部存储器的备份数据区,读取备份的程序文件数据,然后覆盖程序数据区的相应位置;
4、MCU再次控制切换电路,使外部存储器与FPGA相连,并通过与FPGA相连的复位信号管脚,控制FPGA进行复位;
5、FPGA重新执行从外部存储器加载程序文件的步骤,开始运行以及工作;
6、以上即使得系统重新恢复过来,然后可以再次进行在线升级操作。
总体来说,本发明提供的在线升级系统,一方面,使得设备在现场使用时,可以灵活地对设备中的FPGA程序进行在线升级,而无需返厂使用烧录器进行更新。另一方面,具备异常状态恢复功能,保证FPGA在线升级的可靠性,防止异常情况发生后造成的无法启动问题。
本发明实施例提供的系统,为基于实施例三和四所介绍的装置而形成的系统,故而基于前述实施例所介绍的相关装置,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种FPGA程序的在线升级方法,其特征在于,包括:
当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片;
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片;
将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
2.如权利要求1所述的方法,其特征在于,所述外部存储器还包括备份数据区,在将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区之后,所述方法还包括:
判断备份数据区是否存在存储数据,如果不存在,则将待更新的FPGA程序文件写入备份数据区。
3.如权利要求1所述的方法,其特征在于,在进行FPGA程序的在线升级时,所述述方法还包括:
检测FPGA芯片是否正常运行;
如果FPGA芯片未正常运行,则对在线升级流程进行恢复。
4.如权利要求3所述的方法,MCU控制器通过状态检测信号管脚与FPGA芯片相连,其特征在于,检测FPGA芯片是否正常运行,包括:
通过状态检测信号管脚检测FPGA芯片是否正常运行。
5.如权利要求3所述的方法,其特征在于,所述外部存储器还包括备份数据区,对在线升级流程进行恢复,包括:
控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接;
从外部存储器的备份数据区读取数据;
将读取的数据覆盖外部存储器的程序数据区中原来的数据;
控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区中的数据,进行FPGA程序恢复。
6.一种FPGA程序的在线升级方法,其特征在于,包括:
当需要更新FPGA程序时,控制端生成升级开始指令;
将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,再通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
7.一种FPGA程序的在线升级装置,其特征在于,所述装置为MCU控制器,包括:
升级开始指令接收模块,用于当需要更新FPGA程序时,MCU控制器接收FPGA芯片转发的升级开始指令,其中,所述升级开始指令由控制端生成后发送至FPGA芯片;
第一电路控制模块,用于控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件接收模块,用于接收FPGA芯片转发的待更新的FPGA程序文件,其中,所述待更新的FPGA程序文件由所述控制端生成后发送至所述FPGA芯片;
数据写入模块,用于将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
升级结束指令接收模块,用于接收FPGA芯片转发的升级结束指令,其中,所述升级结束指令由控制端生成后发送至FPGA芯片;
第二电路控制模块,用于切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
8.一种FPGA程序的在线升级装置,其特征在于,所述装置为控制端,包括:
第一指令生成模块,用于当需要更新FPGA程序时,控制端生成升级开始指令;
第一指令发送模块,用于将所述升级开始指令发送至FPGA芯片,并通过FPGA芯片转发至MCU控制器,使得MCU控制器基于所述升级开始指令,控制切换电路为第一连接状态,使得外部存储器与MCU控制器连接,其中,所述外部存储器包括程序数据区,并擦除所述外部存储器中程序数据区的数据;
程序文件下发模块,用于将待更新的FPGA程序文件下发至所述FPGA芯片,并通过FPGA芯片转发至MCU控制器,并通过MCU控制器将接收到的待更新的FPGA程序文件写入所述外部存储器的程序数据区,更新所述程序数据区的数据;
第二指令生成模块,用于生成升级结束指令,并通过FPGA芯片转发至MCU控制器,使得MCU控制器控制切换电路为第二连接状态,使得外部存储器与FPGA芯片连接,并通过控制所述FPGA芯片的复位,使得FPGA芯片从外部存储器中加载程序数据区的FPGA程序文件,进行FPGA程序的在线升级。
9.一种FPGA程序的在线升级系统,其特征在于,包括如权利要求7所述的MCU控制器,权利要求8所述的控制端,FPGA芯片、切换电路以及外部存储器,其中,控制端与FPGA芯片连接,FPGA芯片分别与MCU控制器连接、切换电路连接,MCU控制器与切换电路连接,切换电路与外部存储器连接。
10.如权利要求9所述的系统,其特征在于,MCU控制器的状态检测管脚与FPGA芯片连接,用于检测FPGA芯片的运行状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811504895.7A CN109358893A (zh) | 2018-12-10 | 2018-12-10 | 一种fpga程序的在线升级方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811504895.7A CN109358893A (zh) | 2018-12-10 | 2018-12-10 | 一种fpga程序的在线升级方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109358893A true CN109358893A (zh) | 2019-02-19 |
Family
ID=65331911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811504895.7A Pending CN109358893A (zh) | 2018-12-10 | 2018-12-10 | 一种fpga程序的在线升级方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109358893A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110286935A (zh) * | 2019-08-02 | 2019-09-27 | 爱士惟新能源技术(扬中)有限公司 | 一种双芯片程序更新装置及方法 |
CN110673871A (zh) * | 2019-10-08 | 2020-01-10 | 北京淳中科技股份有限公司 | 在线升级装置、控制方法、电子设备及计算机可读介质 |
CN111399869A (zh) * | 2020-02-28 | 2020-07-10 | 合肥芯碁微电子装备股份有限公司 | 控制直写式曝光机软件升级的方法、控制单元和曝光机 |
CN111984288A (zh) * | 2020-07-29 | 2020-11-24 | 深圳市拔超科技有限公司 | 一种基于mcu和fpga的远程电子系统升级装置及方法 |
CN112769613A (zh) * | 2021-01-04 | 2021-05-07 | 武汉光迅科技股份有限公司 | 一种fpga在线升级的系统及其在线升级方法 |
CN113110858A (zh) * | 2021-04-27 | 2021-07-13 | 云南电网有限责任公司电力科学研究院 | 一种基于pcram的fpga系统在线升级方法 |
CN113535213A (zh) * | 2021-07-21 | 2021-10-22 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
CN114398057A (zh) * | 2022-01-04 | 2022-04-26 | 武汉光迅科技股份有限公司 | 一种fpga程序升级方法和装置 |
CN115934139A (zh) * | 2023-03-13 | 2023-04-07 | 东方电子股份有限公司 | 一种fpga在线升级方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360302A (zh) * | 2011-10-13 | 2012-02-22 | 福建星网锐捷网络有限公司 | 一种fpga配置文件在线升级方法及装置 |
CN104166566A (zh) * | 2014-08-12 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种fpga配置文件升级方法及系统 |
CN104636168A (zh) * | 2015-02-09 | 2015-05-20 | 南京国电南自美卓控制系统有限公司 | 基于mlvds总线的soc fpga在线升级方法 |
CN107634859A (zh) * | 2017-09-30 | 2018-01-26 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
JP2018097638A (ja) * | 2016-12-14 | 2018-06-21 | 三菱電機株式会社 | ネットワークシステム、fpgaの書き込みデータ更新方法、およびプラント機器制御方法 |
-
2018
- 2018-12-10 CN CN201811504895.7A patent/CN109358893A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360302A (zh) * | 2011-10-13 | 2012-02-22 | 福建星网锐捷网络有限公司 | 一种fpga配置文件在线升级方法及装置 |
CN104166566A (zh) * | 2014-08-12 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种fpga配置文件升级方法及系统 |
CN104636168A (zh) * | 2015-02-09 | 2015-05-20 | 南京国电南自美卓控制系统有限公司 | 基于mlvds总线的soc fpga在线升级方法 |
JP2018097638A (ja) * | 2016-12-14 | 2018-06-21 | 三菱電機株式会社 | ネットワークシステム、fpgaの書き込みデータ更新方法、およびプラント機器制御方法 |
CN107634859A (zh) * | 2017-09-30 | 2018-01-26 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110286935B (zh) * | 2019-08-02 | 2024-03-26 | 爱士惟新能源技术(扬中)有限公司 | 一种双芯片程序更新装置及方法 |
CN110286935A (zh) * | 2019-08-02 | 2019-09-27 | 爱士惟新能源技术(扬中)有限公司 | 一种双芯片程序更新装置及方法 |
CN110673871A (zh) * | 2019-10-08 | 2020-01-10 | 北京淳中科技股份有限公司 | 在线升级装置、控制方法、电子设备及计算机可读介质 |
CN111399869A (zh) * | 2020-02-28 | 2020-07-10 | 合肥芯碁微电子装备股份有限公司 | 控制直写式曝光机软件升级的方法、控制单元和曝光机 |
CN111984288A (zh) * | 2020-07-29 | 2020-11-24 | 深圳市拔超科技有限公司 | 一种基于mcu和fpga的远程电子系统升级装置及方法 |
CN111984288B (zh) * | 2020-07-29 | 2024-04-16 | 深圳市拔超科技股份有限公司 | 一种基于mcu和fpga的远程电子系统升级装置及方法 |
CN112769613B (zh) * | 2021-01-04 | 2022-08-09 | 武汉光迅科技股份有限公司 | 一种fpga在线升级的系统及其在线升级方法 |
CN112769613A (zh) * | 2021-01-04 | 2021-05-07 | 武汉光迅科技股份有限公司 | 一种fpga在线升级的系统及其在线升级方法 |
CN113110858B (zh) * | 2021-04-27 | 2023-02-17 | 云南电网有限责任公司电力科学研究院 | 一种基于pcram的fpga系统在线升级方法 |
CN113110858A (zh) * | 2021-04-27 | 2021-07-13 | 云南电网有限责任公司电力科学研究院 | 一种基于pcram的fpga系统在线升级方法 |
CN113535213A (zh) * | 2021-07-21 | 2021-10-22 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
CN113535213B (zh) * | 2021-07-21 | 2024-03-29 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
CN114398057A (zh) * | 2022-01-04 | 2022-04-26 | 武汉光迅科技股份有限公司 | 一种fpga程序升级方法和装置 |
CN114398057B (zh) * | 2022-01-04 | 2024-06-18 | 武汉光迅科技股份有限公司 | 一种fpga程序升级方法和装置 |
CN115934139A (zh) * | 2023-03-13 | 2023-04-07 | 东方电子股份有限公司 | 一种fpga在线升级方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109358893A (zh) | 一种fpga程序的在线升级方法、装置及系统 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN103729275B (zh) | 硬盘固件修复系统及硬盘固件修复方法 | |
CN103488498A (zh) | 一种计算机启动方法及计算机 | |
US8904055B2 (en) | Switching control device and switching control method | |
CN103890736A (zh) | 灾难恢复期间的消息对账 | |
CN110109782B (zh) | 一种故障PCIe设备的更换方法、装置及系统 | |
CN112825011A (zh) | PCIe设备的上下电控制方法以及系统 | |
CN103870367A (zh) | Sas扩展卡自动切换系统及方法 | |
CN102339264B (zh) | 一种星载电子系统设备即插即用控制方法及系统 | |
CN102890647A (zh) | 一种数据的存储与更新方法及装置 | |
CN102253845B (zh) | 服务器系统 | |
CN110286852A (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN109582337A (zh) | 一种固件升级的方法、装置和计算机可读存储介质 | |
CN115509821A (zh) | 一种系统异常处理方法、装置、设备及存储介质 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN107290954A (zh) | 一种控制计算机的双机热冗余方法 | |
CN105426268B (zh) | 一种防止继电保护装置断电时文件系统损坏的方法 | |
CN103890713B (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
CN105119765A (zh) | 一种智能处理故障体系架构 | |
CN113608970A (zh) | 核心板,服务器,故障修复方法、装置以及存储介质 | |
CN103577284A (zh) | 非透明桥芯片的异常检测与恢复方法 | |
CN112148527A (zh) | 服务器断电方法、装置及系统 | |
CN104572198A (zh) | 一种业务恢复方法及装置 | |
CN1329839C (zh) | 一种计算机cpu抗干扰的设计方法 |
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: 20190219 |