CN110737452A - 一种fpga固件在线升级方法及系统 - Google Patents
一种fpga固件在线升级方法及系统 Download PDFInfo
- Publication number
- CN110737452A CN110737452A CN201910937390.8A CN201910937390A CN110737452A CN 110737452 A CN110737452 A CN 110737452A CN 201910937390 A CN201910937390 A CN 201910937390A CN 110737452 A CN110737452 A CN 110737452A
- Authority
- CN
- China
- Prior art keywords
- dsp
- configuration
- fpga firmware
- fpga
- state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004891 communication Methods 0.000 claims abstract description 39
- 230000002093 peripheral effect Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012356 Product development Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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
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通过与DSP通信获取写配置数;对EPCS配置芯片进行擦除操作;对配置芯片进行写操作,得到固件升级版本号,并向DSP发送配置完成信号;获取nCONFIG低电平信号;FPGA进入配置和初始化状态;判断INIT_DONE信号是否为高电平信号;若是,则重新建立FPGA固件与DSP的通信,并将固件升级版本号发送至DSP;DSP判断是否升级成功。本发明能实现FPGA固件的在线升级,自动重新启动;且具备在线配置监控功能,DSP能实时确定FPGA是否升级成功,提高了在线升级的可靠性。
Description
技术领域
本发明涉及电子信息技术领域,特别是涉及一种FPGA固件在线升级方法及系统。
背景技术
在电力电子系统中,通常采用DSP+FPGA的控制方案对FPGA固件进行升级。该方案结合了FGPA可编程资源丰富、并行流水线处理的特点和DSP计算能力比较强的特点,能够减少硬件成本和提高产品性能。
目前,对FPGA固件进行升级的方法有:(1)通过Nios II软核在线烧录,该方法硬件成本高,效率低。(2)不使用Nios II软核,DSP通过并行接口连接至FPGA,实现对FPGA的在线升级,TMDC根据通信的握手协议完成rpd格式烧录文件的转换,并通过NET与DSP通信。该方法需要通过第三方工具TMDC根据TMDC的烧录流程和握手机制来完成烧录数据的转换,过程繁琐;FPGA接收到的烧录文件为rpd格式,在写入EPCS时,需要再进行一次格式转换,增加FPGA的逻辑处理,同时对缓存的需求也增加了;FPGA程序升级状态未知,DSP无法确定FPGA是否升级成功。(3)采用IP核对EPCS存储器的在线升级,该方法同时具备了配置过程的监控功能,可以避免烧写错误。但是该方法需要有两个IP核,在设计功能复杂时,FPGA资源紧张;并且读写操作复杂,程序升级速度慢。(4)将flash分为出厂配置区和应用配置升级区,通过串行或并行接口对相应的flash进行读写,实现产品软件的引导和启动。虽然该方法能够在一定程度上提高软件升级的可靠性,但分区存储对存储空间要求比较高,同时未采用工作状态监控机制,不具备自恢复功能。
现有的FPGA固件升级方法不能实现FPGA固件的在线升级,自动重新启动,并且不具备在线配置监控功能,DSP无法确定FPGA是否升级成功,可靠性差。
发明内容
基于此,有必要提供一种FPGA固件在线升级方法及系统,以实现FPGA固件的在线升级,自动重新启动,并且提高FPGA升级的可靠性。
为实现上述目的,本发明提供了如下方案:
一种FPGA固件在线升级方法,包括:
FPGA固件获取烧写文件;所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的;
获取写配置数据命令;所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令;
依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号;所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接;
获取nCONFIG信号;所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号;
当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态;所述配置状态为所述FPGA固件停止工作的状态;
判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号;所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号;
当所述CONF_DONE信号为高电平时,所述FPGA固件进入初始化状态;所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态;
生成INIT_DONE高电平信号;所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号;
依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP;
获取升级反馈信息;所述升级反馈信息是所述DSP依据所述固件升级版本号生成的;
依据所述升级反馈信息判断是否升级成功;若升级成功,则结束;若升级失败,则返回所述获取写配置数据命令。
可选的,所述依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号,具体包括:
判断所述擦除状态是否为擦除操作成功;
若否,则返回所述依据所述写配置数据命令对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令;
依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。
可选的,所述依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号,具体包括:
接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,根据所述FPGA固件的配置文件产生的指令;n≥1;
依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态;
判断第n帧的写操作状态是否写操作成功;
若否,则返回所述接收所述DSP发送的第n帧的配置数据指令;
若是,则比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N;当n小于N时,则令n=n+1,并返回所述接收所述DSP发送的第n帧的配置数据指令;当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
本发明还提供了一种FPGA固件在线升级系统,包括:
第一获取模块,用于采用FPGA固件获取烧写文件;所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的;
第二获取模块,用于获取写配置数据命令;所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令;
擦除模块,用于依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
写操作模块,用于依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向DSP发送配置完成信号;所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接;
第三获取模块,用于获取nCONFIG信号;所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号;
配置状态进入模块,用于当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态;所述配置状态为所述FPGA固件停止工作的状态;
第一判断模块,用于判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号;所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号;
初始化状态进入模块,用于当所述CONF_DONE信号为高电平时,所述FPGA固件进入初始化状态;所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态;
高电平信号生成模块,用于生成INIT_DONE高电平信号;所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号;
通信连接重建模块,用于依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP;
升级反馈信息获取模块,用于获取升级反馈信息;所述升级反馈信息是所述DSP依据所述固件升级版本号生成的;
第二判断模块,用于依据所述升级反馈信息判断是否升级成功;若升级成功,则结束;若升级失败,则返回所述获取写配置数据命令。
可选的,所述写操作模块,具体包括:
擦除判断单元,用于判断所述擦除状态是否为擦除操作成功;若否,则返回所述擦除模块;若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令,并执行写操作单元;
写操作单元,用于依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。
可选的,所述写操作单元,具体包括:
指令接收子单元,用于接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,读取所述FPGA固件的配置数据后产生的指令;n≥1;
写操作子单元,用于依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态;
判断子单元,用于判断第n帧的写操作状态是否写操作成功;若否,则返回所述指令接收子单元;若是,则执行比较子单元;
比较子单元,用于比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N;当n小于N时,则令n=n+1,并返回所述指令接收子单元;当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
与现有技术相比,本发明的有益效果是:
本发明提出了一种FPGA固件在线升级方法及系统。该方法包括:包括FPGA通过与DSP通信获取写配置数;对EPCS配置芯片进行擦除操作;对配置芯片进行写操作,得到固件升级版本号,并向DSP发送配置完成信号;获取nCONFIG低电平信号;FPGA进入配置和初始化状态;判断INIT_DONE信号是否为高电平信号;若是,则重新建立FPGA固件与DSP的通信,并将固件升级版本号发送至DSP;DSP判断是否升级成功。本发明能实现FPGA固件的在线升级,自动重新启动;且具备在线配置监控功能,DSP能实时确定FPGA是否升级成功,提高了FPGA固件在线升级的可靠性;采用主动串行存储器接口完成对EPCS配置芯片的擦除操作和写操作,能够简化程序,减少工作量,提高升级速度;本发明形成的配置文件只需一个,因此所需EPCS的空间较小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1一种FPGA固件在线升级方法的流程图;
图2为本发明实施例2中FPGA固件的配置时序图;
图3为本发明实施例3一种FPGA固件在线升级系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
图1为本发明实施1一种FPGA固件在线升级方法的流程图。
参见图1,本实施例的FPGA固件在线升级方法,包括:
步骤S1:FPGA固件获取烧写文件。
所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的。
步骤S2:获取写配置数据命令。
所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令。
步骤S3:依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态。
步骤S4:依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向DSP发送配置完成信号。所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接。
所述步骤S4,具体包括:
1)判断所述擦除状态是否为擦除操作成功;若否,则返回所述步骤S3;若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令。
2)依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。具体包括:
21)接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,读取所述FPGA固件的配置数据后产生的指令;n≥1。
22)依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态。
23)判断第n帧的写操作状态是否写操作成功。
若第n帧的写操作状态为写操作失败,则返回所述步骤21);若写操作状态为写操作成功,则比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N。
当n小于N时,则令n=n+1,并返回所述步骤21);当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
步骤S5:获取nCONFIG信号。
所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号。
步骤S6:当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态。
所述配置状态为所述FPGA固件停止工作的状态。
步骤S7:判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号。
所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号。若所述CONF_DONE信号为高电平时,则执行步骤S8。
步骤S8:所述FPGA固件进入初始化状态。
所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态。
步骤S9:生成INIT_DONE高电平信号。
所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号。
步骤S10:依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP。
步骤S11:获取升级反馈信息。
所述升级反馈信息是所述DSP依据所述固件升级版本号生成的。
步骤S12:判断是否升级成功。具体的,依据所述升级反馈信息判断是否升级成功,若升级成功,则结束;若升级失败,则返回所述步骤S2。
本实施例在基于DSP+FPGA的控制架构基础上,采用FPGA的主动串行配置(主动串行存储器接口)和JTAG配置(JTAG接口)结合的方法对FPGA固件进行升级,可以实现FPGA固件的在线升级,自动重新启动,具备在线配置监控功能,可以避免升级失败;节省FPGA的逻辑资源和电路硬件资源;JTAG设计还可以实现产品开发过程中的在线调试和出厂固件烧写;同时,本实施例还可以支持多种FPGA程序的可选择烧写,能够在不修改硬件和程序的情况下,提高产品的适用性。
实施例2:
本实施例中FPGA固件是将JTAG接口、主动串行存储器接口(active serialmemory interface,ASMI)和串行外设接口从机(SPI slave)固化在FPGA中形成的。所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接,所述FPGA固件外接EPCS配置芯片,上位机分别与所述FPGA固件和所述DSP连接。其中SPI slave的功能是和DSP进行SPI双向编码器数据通信和接收升级的配置数据。FPGA内的配置升级逻辑,用来缓存配置数据,实现对EPCS写控制模块的控制。所述EPCS写控制模块为ASMI模块。ASMI为FPGA内部宏定义的IP核,用来完成对配置芯片的访问。使用ASMI的IP核,可以不用关心AS接口的细节和EPCS的读写协议,简化程序减少工作量。FPGA程序设计比较简单,形成的配置文件只需一个,因此所需EPCS空间较小。
FPGA固件具体在线升级过程为:
当系统第一次上电时,通过JTAG接口烧写FPGA固件,得到烧写文件,重上电时,FPGA固件从EPCS中读取配置数据,并缓存至内部SRAM中,之后就可以正常工作,和DSP建立SPI通信连接。
上位机读取烧写文件,并产生需要升级FPGA固件的命令。当从上位机接收到需要升级FPGA固件的命令时,DSP从存储器(内部SRAM)读取FPGA配置数据。DSP对读取到的配置数据分包,并在配置数据上加上校验信息和控制命令后,作为配置数据命令打包发送给FPGA。
DSP先通过SPI对FPGA发送写配置数据命令,FPGA在接收到命令后,先对EPCS进行擦除操作。如果擦除成功,FPGA向DSP返回擦除成功的状态;否则FPGA继续进行擦除操作并返回擦除失败的状态。擦除成功后,DSP通过SPI向FPGA发送一帧配置命令,配置命令数据中包含配置数据的长度和校验。FPGA在接收到一帧配置命令之后,依据EPCS要求的时序对EPCS进行写操作,同时返回写操作状态。如果FPGA返回的写操作状态为失败,则DSP重新发送配置命令。当接收到FPGA返回的写成功状态后,DSP开始发送下一帧配置命令,直到写完所有的配置数据。FPGA根据解析配置数据得到接收的固件版本信息。
在擦除和写EPCS期间,FPGA监控ASMI的busy、illegal_write和illegal_erase信号,向DSP返回相应的操作状态。从而,DSP实现了对FPGA配置文件过程的控制。
当写完所有的配置数据之后,FPGA向DSP发送写结束的状态;DSP发出nCONFIG的低电平信号。nCONFIG为低电平时,FPGA进入复位状态,和DSP之间的SPI连接也因此断开。在nCONFIG低电平持续5uS之后,DSP发出nCONFIG的高电平信号。则此时,FPGA启动主动配置。
当配置结束以后,CONF_DONE信号变为高电平,FPGA进入初始化状态,此时所有IO均为高阻态。当初始化完成之后,FPGA设计的功能则可以实现。在FPGA的IO功能满足设计要求时,INIT_DONE信号变为高电平,FPGA的INIT_DONE信号输出至DSP。DSP在检测到INIT_DONE信号变为高电平时,重新启动和FPGA之间的SPI通信连接,系统完成FPGA的在线升级,重新开始工作。
在SPI连接重新建立之后,FPGA发送更新的版本信息给DSP。DSP确定FPGA固件升级是否成功,若不成功,则重新对FPGA配置。
FPGA的配置时序如图2所示,包含复位、配置和初始化三个过程。参见图2,MODE表示FPGA的详细配置过程,Reset表示复位,Configuration表示配置,Initialization表示初始化,User-Mode表示用户模式。复位:当nCONFIG信号为低电平时,器件进入复位状态,当nCONFIG信号为高电平时,器件退出复位状态,并且释放nSTATUS信号,准备接受配置数据以及开始配置阶段,复位过程中nSTATUS信号和CONF_DONE保持低电平。配置:配置过程中,在每个DCLK周期的配置数据被锁存在FPGA器件上。图中n表示数据的个数。在配置过程中,INIT_DONE信号变为低电平。在器件接收所有的配置数据后,器件开始释放CONF_DONE信号,当CONF_DONE信号变为高电平时,表示配置已经完成,可以开始初始化。如果在配置过程中FPGA器件的nSTATUS信号为低电平,则表示出现了数据帧错误。初始化:在配置数据正在接收时,且CONF_DONE信号变为高电平之后,FPGA器件需要一段时间进行正确的初始化和进入用户模式。用户模式:INIT_DONE信号从低电平跳变为高电平表示初始化结束,FPGA进入到用户模式。只有在用户模式下,用户定义的IO功能才能实现。
作为一种可选的实施方式,本实施例中的DSP可以使用CPLD、ARM、MCU等其他控制器来替换,以控制FPGA的现场升级。本实施例中DSP和FPGA之间的SPI通信,也可以使用其他任何一种通信方式。本实施例中,FPGA程序的存储不限于本地存储,还可以通过网络远程读取FPGA配置数据,对FPGA进行远程升级。
本实施例中的FPGA固件在线升级方法,能实现FPGA固件的在线升级,自动重新启动;具备在线配置监控功能,DSP能实时确定FPGA是否升级成功,提高了FPGA固件在线升级的可靠性;FPGA固件的升级过程可以通过DSP控制,进一步提高固件升级的可靠性;无需DSP模拟JTAG时序配置FPGA,降低了软件设计复杂度,节省了硬件IO资源;FPGA程序设计简单,节省了逻辑资源和存储器资源;硬件设计简单,因而可以减小产品体积;可以通过外部通信接口更新FPGA固件,无需拆卸设备或接口,方便的实现了FPGA固件的现场升级。
实施例3:
本实施例还提供了一种FPGA固件在线升级系统,图3为本发明实施例3一种FPGA固件在线升级系统的结构示意图。
参见图3,FPGA固件在线升级系统包括:
第一获取模块301,用于采用FPGA固件获取烧写文件;所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的。
第二获取模块302,用于获取写配置数据命令;所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令。
擦除模块303,用于依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态。
写操作模块304,用于依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向DSP发送配置完成信号;所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接。
第三获取模块305,用于获取nCONFIG信号;所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号。
配置状态进入模块306,用于当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态;所述配置状态为所述FPGA固件停止工作的状态。
第一判断模块307,用于判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号;所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号。
初始化状态进入模块308,用于当所述CONF_DONE信号为高电平时,所述FPGA固件进入初始化状态;所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态。
高电平信号生成模块309,用于生成INIT_DONE高电平信号;所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号。
通信连接重建模块310,用于依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP。
升级反馈信息获取模块311,用于获取升级反馈信息;所述升级反馈信息是所述DSP依据所述固件升级版本号生成的。
第二判断模块312,用于依据所述升级反馈信息判断是否升级成功;若升级成功,则结束;若升级失败,则返回所述获取写配置数据命令。
作为一种可选的实施方式,所述写操作模块304,具体包括:
擦除判断单元,用于判断所述擦除状态是否为擦除操作成功;若否,则返回所述擦除模块303;若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令,并执行写操作单元。
写操作单元,用于依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。
作为一种可选的实施方式,所述写操作单元,具体包括:
指令接收子单元,用于接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,读取所述FPGA固件的配置数据后产生的指令;n≥1。
写操作子单元,用于依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态。
判断子单元,用于判断第n帧的写操作状态是否写操作成功;若否,则返回所述指令接收子单元;若是,则执行比较子单元。
比较子单元,用于比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N;当n小于N时,则令n=n+1,并返回所述指令接收子单元;当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
本实施例的FPGA固件在线升级系统,能实现FPGA固件的在线升级,自动重新启动;具备在线配置监控功能,DSP能实时确定FPGA是否升级成功,提高了FPGA固件在线升级的可靠性;通过外部通信接口更新FPGA固件,无需拆卸设备或接口,方便的实现了FPGA固件的现场升级;通过与DSP通信的方式实现FPGA配置过程的控制,系统无需重新上电即可重配置FPGA;FPGA固件所需的EPCS存储空间小,无需额外的硬件设计,在减小产品体积的同时节约了产品成本;FPGA固件升级系统同时满足了现场在线实时固件升级和和研发阶段的在线调试的要求。
本说明书中各个实施例采用递进的方式描述,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种FPGA固件在线升级方法,其特征在于,包括:
FPGA固件获取烧写文件;所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的;
获取写配置数据命令;所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令;
依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号;所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接;
获取nCONFIG信号;所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号;
当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态;所述配置状态为所述FPGA固件停止工作的状态;
判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号;所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号;
当所述CONF_DONE信号为高电平时,所述FPGA固件进入初始化状态;所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态;
生成INIT_DONE高电平信号;所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号;
依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP;
获取升级反馈信息;所述升级反馈信息是所述DSP依据所述固件升级版本号生成的;
依据所述升级反馈信息判断是否升级成功;若升级成功,则结束;若升级失败,则返回所述获取写配置数据命令。
2.根据权利要求1所述的一种FPGA固件在线升级方法,其特征在于,所述依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号,具体包括:
判断所述擦除状态是否为擦除操作成功;
若否,则返回所述依据所述写配置数据命令对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令;
依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。
3.根据权利要求2所述的一种FPGA固件在线升级方法,其特征在于,所述依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号,具体包括:
接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,根据所述FPGA固件的配置文件产生的指令;n≥1;
依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态;
判断第n帧的写操作状态是否写操作成功;
若否,则返回所述接收所述DSP发送的第n帧的配置数据指令;
若是,则比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N;当n小于N时,则令n=n+1,并返回所述接收所述DSP发送的第n帧的配置数据指令;当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
4.一种FPGA固件在线升级系统,其特征在于,包括:
第一获取模块,用于采用FPGA固件获取烧写文件;所述FPGA固件是将JTAG接口、主动串行存储器接口和串行外设接口从机固化在FPGA中形成的;
第二获取模块,用于获取写配置数据命令;所述写配置数据命令是DSP根据读取到的烧写文件而生成的命令;
擦除模块,用于依据所述写配置数据命令,所述主动串行存储器接口对与所述FPGA固件外接的EPCS配置芯片进行擦除操作,得到擦除状态;
写操作模块,用于依据所述擦除状态,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向DSP发送配置完成信号;所述FPGA固件通过所述串行外设接口从机与所述DSP通信连接;
第三获取模块,用于获取nCONFIG信号;所述nCONFIG信号是所述DSP产生的开启配置过程的控制信号;
配置状态进入模块,用于当所述nCONFIG信号为低电平时,所述FPGA固件进入配置状态;所述配置状态为所述FPGA固件停止工作的状态;
第一判断模块,用于判断所述FPGA固件产生的CONF_DONE信号是否为高电平信号;所述CONF_DONE信号是所述FPGA固件在所述配置状态结束之后产生的信号;
初始化状态进入模块,用于当所述CONF_DONE信号为高电平时,所述FPGA固件进入初始化状态;所述初始化状态为所述FPGA固件内的所有IO口均为高阻态的状态;
高电平信号生成模块,用于生成INIT_DONE高电平信号;所述INIT_DONE高电平信号是所述FPGA固件在所述初始化状态结束之后产生的信号;
通信连接重建模块,用于依据所述INIT_DONE高电平信号,重新建立所述FPGA固件与所述DSP的通信连接,并将所述FPGA固件升级版本号发送至所述DSP;
升级反馈信息获取模块,用于获取升级反馈信息;所述升级反馈信息是所述DSP依据所述固件升级版本号生成的;
第二判断模块,用于依据所述升级反馈信息判断是否升级成功;若升级成功,则结束;若升级失败,则返回所述获取写配置数据命令。
5.根据权利要求4所述的一种FPGA固件在线升级系统,其特征在于,所述写操作模块,具体包括:
擦除判断单元,用于判断所述擦除状态是否为擦除操作成功;若否,则返回所述擦除模块;若是,则向与所述FPGA固件通信连接的DSP发送擦除成功命令,并执行写操作单元;
写操作单元,用于依据所述擦除成功命令,所述主动串行存储器接口对所述EPCS配置芯片进行写操作,得到FPGA固件升级版本号,并向与所述FPGA固件通信连接的DSP发送配置完成信号。
6.根据权利要求5所述的一种FPGA固件在线升级系统,其特征在于,所述写操作单元,具体包括:
指令接收子单元,用于接收所述DSP发送的第n帧的配置数据指令;所述配置数据指令是所述DSP接收到所述擦除成功命令后,读取所述FPGA固件的配置数据后产生的指令;n≥1;
写操作子单元,用于依据第n帧的配置数据指令对所述EPCS配置芯片进行写操作,得到第n帧的写操作状态;
判断子单元,用于判断第n帧的写操作状态是否写操作成功;若否,则返回所述指令接收子单元;若是,则执行比较子单元;
比较子单元,用于比较n是否等于N,N表示DSP发送的最后一帧的配置数据指令,n≤N;当n小于N时,则令n=n+1,并返回所述指令接收子单元;当n等于N时,则完成配置,得到FPGA固件升级版本号,并向所述DSP发送配置完成信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937390.8A CN110737452A (zh) | 2019-09-30 | 2019-09-30 | 一种fpga固件在线升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937390.8A CN110737452A (zh) | 2019-09-30 | 2019-09-30 | 一种fpga固件在线升级方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110737452A true CN110737452A (zh) | 2020-01-31 |
Family
ID=69268239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910937390.8A Pending CN110737452A (zh) | 2019-09-30 | 2019-09-30 | 一种fpga固件在线升级方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737452A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506333A (zh) * | 2020-04-27 | 2020-08-07 | 湖北三江航天红峰控制有限公司 | 一种双dsp程序在线升级方法及系统 |
CN113867771A (zh) * | 2021-09-29 | 2021-12-31 | 哈尔滨工程大学 | 一种基于fpga的远程固件升级方法 |
CN114489742A (zh) * | 2021-12-31 | 2022-05-13 | 杭州加速科技有限公司 | 一种提升ate设备中fpga在线升级效率的升级方法及系统 |
CN114546453A (zh) * | 2022-04-27 | 2022-05-27 | 成都凯天电子股份有限公司 | Fpga配置项在线升级方法、系统、设备及存储介质 |
CN114845071A (zh) * | 2022-07-04 | 2022-08-02 | 北原科技(深圳)有限公司 | 一种单摄像头多路usb视频输出系统及硬件升级方法 |
CN118567690A (zh) * | 2024-08-01 | 2024-08-30 | 杭州计算机外部设备研究所(中国电子科技集团公司第五十二研究所) | 一种fpga多版本固件远程在线更新方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673101A (zh) * | 2009-09-27 | 2010-03-17 | 电子科技大学 | 一种在线编程的fpga可重构装置 |
CN103019779A (zh) * | 2012-11-30 | 2013-04-03 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的程序更新方法 |
CN103513994A (zh) * | 2012-06-19 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种通过pcie 进行fpga 在线升级的方法和系统 |
CN104077166A (zh) * | 2014-07-10 | 2014-10-01 | 西北工业大学 | 基于fpga中ip核的epcs与epcq存储器在线升级方法 |
CN106547596A (zh) * | 2016-11-07 | 2017-03-29 | 天津津航计算技术研究所 | 一种高可靠性fpga远程升级方法 |
CN106598632A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 一种光模块的固件升级方法及装置 |
CN108874424A (zh) * | 2018-06-21 | 2018-11-23 | 大唐电信(成都)信息技术有限公司 | 基于串口协议的fpga安全在线升级方法 |
WO2019120327A2 (en) * | 2019-04-03 | 2019-06-27 | Alibaba Group Holding Limited | Processing blockchain data based on smart contract operations executed in a trusted execution environment |
-
2019
- 2019-09-30 CN CN201910937390.8A patent/CN110737452A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673101A (zh) * | 2009-09-27 | 2010-03-17 | 电子科技大学 | 一种在线编程的fpga可重构装置 |
CN103513994A (zh) * | 2012-06-19 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种通过pcie 进行fpga 在线升级的方法和系统 |
CN103019779A (zh) * | 2012-11-30 | 2013-04-03 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的程序更新方法 |
CN104077166A (zh) * | 2014-07-10 | 2014-10-01 | 西北工业大学 | 基于fpga中ip核的epcs与epcq存储器在线升级方法 |
CN106598632A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 一种光模块的固件升级方法及装置 |
CN106547596A (zh) * | 2016-11-07 | 2017-03-29 | 天津津航计算技术研究所 | 一种高可靠性fpga远程升级方法 |
CN108874424A (zh) * | 2018-06-21 | 2018-11-23 | 大唐电信(成都)信息技术有限公司 | 基于串口协议的fpga安全在线升级方法 |
WO2019120327A2 (en) * | 2019-04-03 | 2019-06-27 | Alibaba Group Holding Limited | Processing blockchain data based on smart contract operations executed in a trusted execution environment |
Non-Patent Citations (1)
Title |
---|
李强 等: "FPGA远程更新系统" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506333A (zh) * | 2020-04-27 | 2020-08-07 | 湖北三江航天红峰控制有限公司 | 一种双dsp程序在线升级方法及系统 |
CN113867771A (zh) * | 2021-09-29 | 2021-12-31 | 哈尔滨工程大学 | 一种基于fpga的远程固件升级方法 |
CN113867771B (zh) * | 2021-09-29 | 2024-05-24 | 哈尔滨工程大学 | 一种基于fpga的远程固件升级方法 |
CN114489742A (zh) * | 2021-12-31 | 2022-05-13 | 杭州加速科技有限公司 | 一种提升ate设备中fpga在线升级效率的升级方法及系统 |
CN114489742B (zh) * | 2021-12-31 | 2023-09-05 | 杭州加速科技有限公司 | 一种提升ate设备中fpga在线升级效率的升级方法及系统 |
CN114546453A (zh) * | 2022-04-27 | 2022-05-27 | 成都凯天电子股份有限公司 | Fpga配置项在线升级方法、系统、设备及存储介质 |
CN114845071A (zh) * | 2022-07-04 | 2022-08-02 | 北原科技(深圳)有限公司 | 一种单摄像头多路usb视频输出系统及硬件升级方法 |
CN118567690A (zh) * | 2024-08-01 | 2024-08-30 | 杭州计算机外部设备研究所(中国电子科技集团公司第五十二研究所) | 一种fpga多版本固件远程在线更新方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737452A (zh) | 一种fpga固件在线升级方法及系统 | |
CN104579719B (zh) | 一种固件的升级方法和系统、上位机和光模块 | |
KR102012120B1 (ko) | 소프트 프로세서 기반의 이미지 신호 소스 및 이미지 신호 처리 방법 | |
CN111142907B (zh) | 离线关键词识别系统分区升级方法 | |
CN111562932B (zh) | 一种高可靠嵌入式软件升级方法及系统 | |
US20120324147A1 (en) | Read While Write Method for Serial Peripheral Interface Flash Memory | |
CN103605542A (zh) | Fpga配置文件的在线升级装置 | |
CN106201563A (zh) | 启动参数的配置方法和装置、主板启动的方法和装置 | |
WO2021136200A1 (zh) | 引导程序的加载方法、存储介质及嵌入式终端 | |
CN113703803B (zh) | 基于fpga的远程升级系统、方法及介质 | |
CN113434162A (zh) | 远程在线更新fpga多版本程序的方法 | |
TWI786871B (zh) | 電腦和系統啓動方法 | |
CN112000351A (zh) | Bmc固件的更新方法、更新装置、更新设备及存储介质 | |
CN113138779B (zh) | 基于多功能接口的fpga在线程序更新装置及方法 | |
CN113127264B (zh) | 数据存储装置修复方法 | |
CN106528217B (zh) | 一种现场可编程门阵列程序加载系统和方法 | |
TWI774391B (zh) | 實時配置韌體數據的方法與除錯裝置 | |
CN111414182B (zh) | 一种基于spi的fpga远程升级方法 | |
CN112685066A (zh) | 一种异构平台的mcu软件代理模式开发方法 | |
CN116700765A (zh) | 伺服驱动器的固件升级方法及装置、伺服驱动器 | |
CN213211012U (zh) | 一种激光雷达系统的在线升级装置及激光雷达系统 | |
CN108958776A (zh) | 一种基于命令行的bmc固件更新方法与装置 | |
CN115080091A (zh) | 一种卫星通信设备在线升级mcu固件的方法及系统 | |
CN212484137U (zh) | 一种支持多种编码器协议的伺服驱动器 | |
CN116431190B (zh) | 一种固件升级方法、装置、bmc芯片、服务器及介质 |
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: 20200131 |