CN111142962A - 一种星载fpga的在轨重构方法及系统 - Google Patents
一种星载fpga的在轨重构方法及系统 Download PDFInfo
- Publication number
- CN111142962A CN111142962A CN201911122405.1A CN201911122405A CN111142962A CN 111142962 A CN111142962 A CN 111142962A CN 201911122405 A CN201911122405 A CN 201911122405A CN 111142962 A CN111142962 A CN 111142962A
- Authority
- CN
- China
- Prior art keywords
- flash
- fpga
- configuration data
- read
- control
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种星载FPGA的在轨重构方法及系统,涉及在轨重构技术领域,能够实现对FPGA的高可靠在轨重构。控制FPGA默认从PROM中读取其中预先存储的配置数据对处理FPGA加载和动态刷新。控制FPGA通过星上管理终端发送的加载源切换指令选择从PROM或FLASH中读取预先存储的配置数据对处理FPGA进行加载和动态刷新。星上管理终端发送重构FLASH指令至控制FPGA,控制FPGA擦除FLASH,之后星上管理终端开始向控制FPGA发送配置数据帧,控制FPGA解析配置数据帧,提取其中的配置数据。控制FPGA接收配置数据帧,并对配置数据帧进行双重循环冗余校验。控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态。控制FPGA回读写入到FLASH中的配置数据,并再次进行循环冗余校验。
Description
技术领域
本发明涉及在轨重构技术领域,具体涉及一种星载FPGA的在轨重构方法及系统。
背景技术
以现场可编程门阵列(FPGA Field Programmable Gata Array)为核心的信号处理系统广泛应用于空间飞行器电子系统中,用于实现主要的信号处理等逻辑功能。为了实现FPGA的加载启动,其配置文件通常需要存储在外部存储器(在轨时通常通过反熔丝的PROM实现)中。
目前,通常做法是把FPGA的配置文件烧写固化到PROM中,固化后PROM内部的配置文件无法改变,导致FPGA的配置完全固化,若要对FPGA程序进行更改或升级,需要将更改或升级后的FPGA配置文件重新写入到可编程存储器FLASH中,对于FPGA配置文件的校验是在写入FLASH之前进行,在将FPGA配置文件写入FLASH之后,并没有针对FPGA配置文件的校验过程,因此这种重构技术无法发现写入FLASH过程产生的错误,可靠性较低。
对于星载FPGA,若要实现其在轨重构,需要保证较高的可靠性,因此采用上述已有的FPGA程序重构技术无法实现星载FPGA的可靠性在轨重构。
发明内容
有鉴于此,本发明提供了一种星载FPGA的在轨重构方法及系统,能够实现对FPGA的高可靠在轨重构。
为达到上述目的本发明的技术方案为:一种星载FPGA的在轨重构方法,采用由SRAM型处理FPGA、配置存储器PROM、配置存储器FLASH和反熔丝型控制FPGA组成的空间信号处理系统进行信号处理;控制FPGA用于存储器管理以及配合加载控制逻辑对处理FPGA进行加载和动态刷新;处理FPGA用于进行信号处理。
控制FPGA针对处理FPGA的配置存储器FLASH进行在轨重构,具体为:
S1、所述控制FPGA默认从所述PROM中读取其中预先存储的配置数据对处理FPGA加载和动态刷新;
S2、星上管理终端发送加载源切换指令至所述控制FPGA,所述加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新;
S3、星上管理终端发送重构FLASH指令至控制FPGA,所述控制FPGA收到所述重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态;
S4、FLASH擦除成功后,星上管理终端开始向控制FPGA发送配置数据帧,所述配置数据帧由地面打包并发送,由星上管理终端接收并缓存,控制FPGA解析所述配置数据帧,提取其中的配置数据;
S5、所述控制FPGA接收配置数据帧,并对配置数据帧进行循环冗余校验;
S6、所述控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态;
S7、所述控制FPGA回读写入到所述FLASH中的配置数据,并再次进行循环冗余校验。
进一步地,星上管理终端发送加载源切换指令至控制FPGA,加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新,具体为:
控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成。
初始时,读控制模块通过PROM接口和FLASH接口分别将PROM和FLASH置为复位状态。
加载控制逻辑产生有效的存储器片选信号送入读控制模块,读控制模块接收到有效的存储器片选信号之后,将PROM置为读取数据状态,同时产生相应的PROM配置时钟,并接收来自PROM的配置数据,通过加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,读控制模块将PROM置为复位状态。
控制FPGA中的遥控指令解析模块接收到加载源切换指令,解析得到加载源切换指示信号送入读切换模块;读控制模块判断该加载源切换指示信号为将加载源切换为FLASH时,将PROM置为复位状态,在收到来自加载控制逻辑有效的存储器片选后,将FLASH置为读数据状态,并接收来自FLASH的配置数据通过加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,读控制模块再次将FLASH置为复位状态。
遥控指令解析模块收到回读校验FLASH指令,解析得到回读校验FLASH指示信号送入读控制模块和数据解析模块;读控制模块判断当前加载源,若当前加载源为PROM,则不中断读取PROM中的配置数据,继续通过加载控制逻辑对处理FPGA进行加载和动态刷新,处理FPGA功能不中断;若当前加载源为FLASH,则在开始回读校验FLASH之前,控制FPGA产生处理FPGA刷新屏蔽标志输出给加载控制逻辑,中断对处理FPGA的动态刷新,但不会中断处理FPGA的功能;之后,读控制模块将FLASH置为读取数据状态,接收来自FLASH的配置数据并输出给数据解析模块用于回读校验,数据解析模块的回读校验结束后,读控制模块再次将FLASH置为复位状态;若校验成功,控制FPGA输出校验成功标志并取消处理FPGA的刷新屏蔽标志,重新启动对处理FPGA的动态刷新;若校验失败,控制FPGA输出校验失败标志并继续屏蔽对处理FPGA的动态刷新。
进一步地,星上管理终端发送重构FLASH指令至控制FPGA,控制FPGA收到重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态,具体为:
重构FLASH由遥控指令解析模块解析为重构FLASH指示信号,送入读控制模块、数据解析模块以及编程控制模块。
读控制模块判断此时加载源为PROM时,则不中断读取PROM中的配置数据,持续通过加载控制逻辑对处理FPGA进行动态刷新,处理FPGA功能不中断。
读控制模块判断此时加载源为FLASH时,则在编程控制模块启动擦除FLASH过程之前,产生处理FPGA刷新屏蔽标志,中断处理FPGA的动态刷新,但不会中断处理FPGA的功能。
在轨重构终止后,若要启动对处理FPGA的动态刷新,需先对处理FPGA进行重新完全加载。
编程控制模块接收到重构FLASH指示信号,启动擦除FLASH过程,将FLASH置为写数据状态,写入FLASH芯片擦除序列,启动FLASH的擦除,然后将FLASH置为读取数据状态监测FLASH的擦除状态。
若擦除失败,则终止本次重构,产生并输出擦除失败标志,继续等待星上管理终端发送下一重构FLASH指令。
数据解析模块接收到重构FLASH指示信号,等待FLASH的擦除状态为擦除成功后,接收并解析配置数据帧。
进一步地,配置数据帧包含帧头、帧序号、配置数据以及帧内循环冗余校验CRC值。
地面将帧头、帧序号、配置数据和帧内循环冗余校验CRC值打包成配置数据帧,并设置最后一个配置数据帧的配置数据为所有配置数据的总CRC值,然后将所有配置数据帧发送至星上,由星上管理终端接收并缓存。
进一步地,控制FPGA在接收配置数据帧时,对配置数据帧进行循环冗余校验,具体为:
数据解析模块接收到当前配置数据帧,若判断帧头正确、帧序号连续且帧内CRC值正确,输出帧序号至编程控制模块,并提取当前配置数据帧的配置数据发送至编程控制模块;若帧头错误,或帧序号不连续、或帧内CRC值错误,则丢弃当前配置数据帧,并等待正确的配置数据帧。
将当前配置数据帧的配置数据全部正确写入FLASH之前,数据解析模块不再接收新的配置数据帧。
所述数据解析模块在接收配置数据帧的过程中,迭代计算所有配置数据的CRC值,并与最终接收到的最后一个配置数据帧中的总CRC值比对,若比对一致,则将该CRC值写入FLASH并启动回读校验;若比对不一致,则终止本次重构,并输出总CRC校验错误标志,继续等待星上管理终端发送下一重构FLASH指令。
进一步地,控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态,具体为:
编程控制模块将FLASH置为编程数据状态,写入FALSH的编程序列和编程数据,编程数据即为配置数据,然后将FLASH置为读数据状态监测FLASH的编程状态,若FLASH的编程状态为编程失败,则终止本次重构,输出重构失败标志。
继续等待星上管理终端发送下一重构FLASH指令。
进一步地,控制FPGA回读写入到FLASH中的配置数据,并再次进行循环冗余校验,具体为:
若FLASH的编程状态为总CRC校验通过,则指令解析模块生成有效的回读校验FLASH指示信号发送至读控制模块和数据解析模块;
读控制模块接收到回读校验指示信号后,将FLASH置为读数据状态,并将来自FLASH的数据输出给数据解析模块迭代计算CRC,最终将计算得到的总CRC值与最后从FLASH中读取的CRC值比对。
若比对不一致,则终止本次重构并输出回读校验错误标志,继续等待星上管理终端发送下一重构FLASH指令。
若比对一致,终止本次重构,并输出重构成功标志,本次重构成功。
本发明另外一个实施例还提供了一种在轨重构系统,控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成,控制FPGA针对处理FPGA进行在轨重构。
读控制模块通过PROM接口和FLASH接口连接总线控制模块。
PROM接口包括PROM数据接口和PROM控制接口;FLASH接口包括FLASH数据接口和FLASH控制接口。
读控制模块通过FLASH数据接口连接数据解析模块。
读控制模块通过存储器片选信号连接加载控制逻辑。
编程控制模块通过FLASH接口连接总线控制模块。
数据解析模块与编程控制模块的连接包括:编程状态、数据采样脉冲、编程数据、编程地址、回读校验成功标志和回读校验失败标志。
遥控指令解析模块通过串口接收星上控制终端发来的加载源切换指令、回读校验FLASH指令、编程FLASH指令以及编程复位指令,分别解析得到加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号以及编程复位指示信号。
遥控指令解析模块与总线控制模块的连接包括:加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号。
遥控指令解析模块与读控制模块的连接包括:编程FLASH指示信号、回读校验FLASH指示信号和加载源切换指示信号。
遥控指令解析模块与数据解析模块的连接包括:编程FLASH指示信号、回读校验FLASH指示信号、编程复位指示信号、回读校验成功标志和回读校验失败标志。
遥控指令解析模块与编程控制模块之间的连接包括:编程FLASH指示信号、编程复位指示信号和编程状态。
总线控制模块通过PROM接口连接配置PROM,通过FLASH接口连接FLASH。
进一步地,加载控制逻辑集成在控制FPGA中,或者通过另外的FPGA实现。
有益效果:
1、本发明提供的星载FPGA的在轨重构方法及系统,通过控制FPGA控制配置存储器PROM、FLASH的读写,在原有PROM的基础上,增加可重复擦除和编程的FLASH,并通过控制FPGA将地面上注的FPGA配置数据校验无误后写入FLASH中,实现了FPGA的高可靠在轨重构并且在重构期间处理FPGA不中断工作。
2、本发明提供的星载FPGA的在轨重构方法及系统,利用数据解析模块对配置数据帧进行多重循环冗余校验,包括帧头检测、帧序号连续性检测、帧内CRC校验和所有配置数据的总CRC校验以及编程完成后的回读CRC校验,不仅考虑到了在接收数据帧时的数据校验,以保证接收到的数据完整无误,而且在将数据完全写入FLASH后,再将数据读出,进行回读校验,保证了FLASH写入数据的正确性,进一步提高了数据可靠性。
附图说明
图1为本发明实施例提供的星载FPGA的在轨重构系统框图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种星载FPGA的在轨重构方法,采用由SRAM型处理FPGA、配置存储器PROM、配置存储器FLASH和反熔丝型控制FPGA组成的空间信号处理系统进行空间信号处理;控制FPGA用于管理存储器以及配合加载控制逻辑对处理FPGA进行加载和动态刷新;处理FPGA用于进行空间信号处理。本发明实施例中采用通用的FPGA加载控制逻辑即可实现对处理FPGA的加载和动态刷新。
控制FPGA针对处理FPGA的配置存储器FLASH进行在轨重构,具体为:
S1、所述控制FPGA默认从所述PROM中读取其中预先存储的配置数据对处理FPGA加载和动态刷新;
S2、星上管理终端发送加载源切换指令至所述控制FPGA,所述加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新;
S3、星上管理终端发送重构FLASH指令至控制FPGA,所述控制FPGA收到所述重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态;
S4、FLASH擦除成功后,星上管理终端开始向控制FPGA发送配置数据帧,所述配置数据帧由地面打包并发送,由星上管理终端接收并缓存,控制FPGA解析所述配置数据帧,提取其中的配置数据;
S5、所述控制FPGA接收配置数据帧,并对配置数据帧进行循环冗余校验;
S6、所述控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态;
S7、所述控制FPGA回读写入到所述FLASH中的配置数据,并再次进行循环冗余校验。
本发明实施例中,S2中,星上管理终端发送加载源切换指令至控制FPGA,加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新,具体为:
控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成,如图1所示。
初始时,读控制模块通过PROM接口和FLASH接口分别将PROM和FLASH置为复位状态。
加载控制逻辑产生有效的存储器片选信号送入读控制模块,读控制模块接收到有效的存储器片选信号之后,将PROM置为读取数据状态,同时产生相应的PROM配置时钟,并接收来自PROM的配置数据,通过加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,读控制模块将PROM置为复位状态。
控制FPGA中的遥控指令解析模块接收到加载源切换指令,解析得到加载源切换指示信号送入读控制模块;读控制模块判断该加载源切换指示信号为将加载源切换为FLASH时,将PROM置为复位状态,在收到来自加载控制逻辑有效的存储器片选后,将FLASH置为读数据状态,并接收来自FLASH的配置数据通过加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,读控制模块再次将FLASH置为复位状态。
遥控指令解析模块收到回读校验FLASH指令,解析得到回读校验FLASH指示信号送入读控制模块和数据解析模块;读控制模块判断当前加载源,若当前加载源为PROM,则不中断读取PROM中的配置数据,继续通过加载控制逻辑对处理FPGA进行加载和动态刷新,处理FPGA功能不中断;若当前加载源为FLASH,则在开始回读校验FLASH之前,控制FPGA产生处理FPGA刷新屏蔽标志输出给加载控制逻辑,中断对处理FPGA的动态刷新,但不会中断处理FPGA的功能;之后,读控制模块将FLASH置为读取数据状态,接收来自FLASH的配置数据并输出给数据解析模块用于回读校验,数据解析模块的回读校验结束后,读控制模块再次将FLASH置为复位状态;若校验成功,控制FPGA输出校验成功标志并取消处理FPGA的刷新屏蔽标志,重新启动对处理FPGA的动态刷新;若校验失败,控制FPGA输出校验失败标志并继续屏蔽对处理FPGA的动态刷新。
其中S3中,星上管理终端发送重构FLASH指令至控制FPGA,控制FPGA收到重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态,具体为:
重构FLASH由遥控指令解析模块解析为重构FLASH指示信号,送入读控制模块、数据解析模块以及编程控制模块。
读控制模块判断此时加载源为PROM时,则不中断读取PROM中的配置数据,持续通过加载控制逻辑对处理FPGA进行动态刷新,处理FPGA功能不中断;
读控制模块判断此时加载源为FLASH时,则在编程控制模块启动擦除FLASH过程之前,产生处理FPGA刷新屏蔽标志,中断处理FPGA的动态刷新,但不会中断处理FPGA的功能。
在轨重构终止后,若要启动对处理FPGA的动态刷新,需先对处理FPGA进行重新完全加载。
编程控制模块接收到重构FLASH指示信号,启动擦除FLASH过程,编程控制模块将FLASH置为写数据状态,写入FLASH芯片擦除序列,启动FLASH的擦除,然后将FLASH置为读取数据状态监测FLASH的擦除状态。
若擦除失败,则终止本次重构,产生并输出擦除失败标志,继续等待星上管理终端发送下一重构FLASH指令。
数据解析模块接收到重构FLASH指示信号,等待FLASH的擦除状态为擦除成功后,开始接收并解析配置数据帧。
本发明实施例中,S4中,配置数据帧包含帧头、帧序号、配置数据以及帧内循环冗余校验CRC值。
地面将帧头、帧序号、配置数据和帧内循环冗余校验CRC值打包成配置数据帧,并设置最后一个配置数据帧的配置数据为所有配置数据的总CRC值,然后将所有配置数据帧发送至星上,由星上管理终端接收并缓存。
本发明实施例中,S5中,控制FPGA在接收配置数据帧时,对配置数据帧进行循环冗余校验,具体为:
数据解析模块接收到当前配置数据帧,若判断帧头正确、帧序号连续且帧内CRC值正确,输出帧序号至编程控制模块,并提取当前配置数据帧的有效数据发送至编程控制模块;若帧头错误,或帧序号不连续、或帧内CRC值错误,则丢弃当前配置数据帧,并等待正确的配置数据帧;
将当前配置数据帧的配置数据全部正确写入FLASH之前,数据解析模块不再接收新的配置数据帧。
数据解析模块在接收配置数据帧的过程中,迭代计算所有配置数据的CRC值,并与最终接收到的最后一个配置数据帧中的总CRC值比对,若比对一致,则将该CRC值写入FLASH并启动回读校验;若比对不一致,则终止本次重构,并输出总CRC校验错误标志,继续等待星上管理终端发送下一重构FLASH指令。
本发明实施例中,S6、控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态,具体为:
编程控制模块将FLASH置为编程数据状态,写入FALSH的编程序列和编程数据,编程数据即为配置数据,然后将FLASH置为读数据状态监测FLASH的编程状态,若FLASH的编程状态为编程失败,则终止本次重构,产生并输出重构失败标志。
继续等待星上管理终端发送下一重构FLASH指令。
本发明实施例中,S7、控制FPGA回读写入到FLASH中的所有配置数据,并再次进行循环冗余校验,具体为:
若FLASH的编程状态为总CRC校验通过,则指令解析模块生成有效的回读校验FLASH指示信号发送至读控制模块和数据解析模块。
读控制模块接收到回读校验指示信号后,将FLASH置为读数据状态,并将来自FLASH的数据输出给数据解析模块迭代计算CRC,最终将计算得到的总CRC值与最后从FLASH中读取的CRC值比对。
若比对不一致,则终止本次重构并输出回读校验错误标志,继续等待星上管理终端发送下一重构FLASH指令.
若比对一致,终止本次重构,并输出重构成功标志,本次重构成功。
实施例2
本发明实施例还提供了一种在轨重构系统,如图1所示。控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成,控制FPGA针对处理FPGA的配置存储器FLASH进行在轨重构。
读控制模块通过PROM接口和FLASH接口连接总线控制模块。
PROM接口包括PROM数据接口和PROM控制接口;FLASH接口包括FLASH数据接口和FLASH控制接口。
读控制模块通过FLASH数据接口连接数据解析模块。
读控制模块通过存储器片选信号接口连接加载控制逻辑。
编程控制模块通过FLASH接口连接总线控制模块。
数据解析模块与编程控制模块的连接包括:过编程状态、数据采样脉冲、编程数据、编程地址、回读校验成功标志和回读校验失败标志。
遥控指令解析模块通过串口接收星上控制终端发来的加载源切换指令、回读校验FLASH指令、编程FLASH指令以及编程复位指令,分别解析得到加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号以及编程复位指示信号。
遥控指令解析模块与总线控制模块的连接包括:加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号。
遥控指令解析模块与读控制模块的连接包括:回读指示信号和加载源切换指示信号。
遥控指令解析模块与数据解析模块的连接包括:编程FLASH指示信号、回读校验FLASH指示信号、编程复位指示信号、回读校验成功标志和回读校验失败标志。
遥控指令解析模块与编程控制模块之间的连接包括:编程FLASH指示信号、编程复位指示信号和编程状态。
总线控制模块通过PROM接口连接配置PROM,通过FLASH接口连接FLASH。
本发明实施例中,加载控制逻辑可以集成在该控制FPGA中,或者通过另外的FPGA实现。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种星载FPGA的在轨重构方法,其特征在于,采用由SRAM型处理FPGA、配置存储器PROM、配置存储器FLASH和反熔丝型控制FPGA组成的空间信号处理系统进行信号处理;控制FPGA用于存储器管理以及配合加载控制逻辑对处理FPGA进行加载和动态刷新;处理FPGA用于进行信号处理;
所述控制FPGA针对所述处理FPGA的配置存储器FLASH进行在轨重构,具体为:
S1、所述控制FPGA默认从所述PROM中读取其中预先存储的配置数据对处理FPGA加载和动态刷新;
S2、星上管理终端发送加载源切换指令至所述控制FPGA,所述加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新;
S3、星上管理终端发送重构FLASH指令至控制FPGA,所述控制FPGA收到所述重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态;
S4、FLASH擦除成功后,星上管理终端开始向控制FPGA发送配置数据帧,所述配置数据帧由地面打包并发送,由星上管理终端接收并缓存,控制FPGA解析所述配置数据帧,提取其中的配置数据;
S5、所述控制FPGA接收配置数据帧,并对配置数据帧进行循环冗余校验;
S6、所述控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态;
S7、所述控制FPGA回读写入到所述FLASH中的配置数据,并再次进行循环冗余校验。
2.如权利要求1所述的在轨重构方法,其特征在于,所述星上管理终端发送加载源切换指令至所述控制FPGA,所述加载源切换指令使控制FPGA选择从PROM或FLASH中读取其中预先存储的配置数据,对处理FPGA进行加载和动态刷新,具体为:
所述控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成;
初始时,所述读控制模块通过PROM接口和FLASH接口分别将PROM和FLASH置为复位状态;
所述加载控制逻辑产生有效的存储器片选信号送入所述读控制模块,所述读控制模块接收到有效的存储器片选信号之后,将PROM置为读取数据状态,同时产生相应的PROM配置时钟,并接收来自PROM的配置数据,通过所述加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,所述读控制模块将PROM置为复位状态;
所述控制FPGA中的遥控指令解析模块接收到所述加载源切换指令,解析得到加载源切换指示信号送入所述读控制模块;读控制模块判断该加载源切换指示信号为将加载源切换为FLASH时,将PROM置为复位状态,在收到来自加载控制逻辑有效的存储器片选后,将FLASH置为读数据状态,并接收来自FLASH的配置数据,通过加载控制逻辑对处理FPGA进行加载和动态刷新;当存储器片选信号无效后,读控制模块再次将FLASH置为复位状态;
所述遥控指令解析模块收到回读校验FLASH指令,解析得到回读校验FLASH指示信号送入所述读控制模块和数据解析模块;所述读控制模块判断当前加载源,若当前加载源为PROM,则不中断读取PROM中的配置数据,继续通过加载控制逻辑对处理FPGA进行加载和动态刷新,处理FPGA功能不中断;若当前加载源为FLASH,则在开始回读校验FLASH之前,控制FPGA产生处理FPGA刷新屏蔽标志输出给加载控制逻辑,中断对处理FPGA的动态刷新,但不会中断处理FPGA的功能;之后,所述读控制模块将FLASH置为读取数据状态,接收来自FLASH的配置数据并输出给所述数据解析模块用于回读校验,数据解析模块的回读校验结束后,读控制模块再次将FLASH置为复位状态;若校验成功,控制FPGA输出校验成功标志并取消处理FPGA的刷新屏蔽标志,重新启动对处理FPGA的动态刷新;若校验失败,控制FPGA输出校验失败标志并继续屏蔽对处理FPGA的动态刷新。
3.如权利要求2所述的方法,其特征在于,所述星上管理终端发送重构FLASH指令至控制FPGA,所述控制FPGA收到所述重构FLASH指令后开始擦除FLASH,在擦除过程中监测FLASH擦除状态,具体为:
重构FLASH由遥控指令解析模块解析为重构FLASH指示信号,送入读控制模块、数据解析模块以及编程控制模块;
读控制模块判断此时加载源为PROM时,则不中断读取PROM中的配置数据,持续通过加载控制逻辑对处理FPGA进行动态刷新,处理FPGA功能不中断;
读控制模块判断此时加载源为FLASH时,则在编程控制模块启动擦除FLASH过程之前,产生处理FPGA刷新屏蔽标志,中断处理FPGA的动态刷新,但不会中断处理FPGA的功能;
在轨重构终止后,若要启动对处理FPGA的动态刷新,需先对处理FPGA进行重新完全加载;
编程控制模块接收到重构FLASH指示信号,启动擦除FLASH过程,首先将FLASH置为写数据状态,写入FLASH芯片擦除序列,启动FLASH的擦除,然后将FLASH置为读取数据状态监测FLASH的擦除状态;
若擦除失败,则终止本次重构,输出擦除失败标志,继续等待星上管理终端发送下一重构FLASH指令;
数据解析模块接收到重构FLASH指示信号,等待FLASH的擦除状态为擦除成功后,开始接收并解析配置数据帧。
4.如权利要求3所述的方法,其特征在于,所述配置数据帧包含帧头、帧序号、配置数据以及帧内循环冗余校验CRC值;
地面将帧头、帧序号、配置数据和帧内循环冗余校验CRC值打包成配置数据帧,并设置最后一个配置数据帧的配置数据为所有配置数据的总CRC值,然后将所有配置数据帧发送至星上,由星上管理终端接收并缓存。
5.如权利要求4所述的方法,其特征在于,所述控制FPGA在接收配置数据帧时,对配置数据帧进行循环冗余校验,具体为:
所述数据解析模块接收到当前配置数据帧,若判断帧头正确、帧序号连续且帧内CRC值正确,输出帧序号至编程控制模块,并提取当前配置数据帧的配置数据发送至编程控制模块;若帧头错误、或帧序号不连续、或帧内CRC值错误,则丢弃当前配置数据帧,并等待正确的配置数据帧;
将当前配置数据帧的配置数据全部正确写入FLASH之前,数据解析模块不再接收新的配置数据帧;
所述数据解析模块在接收配置数据帧的过程中,迭代计算所有配置数据的CRC值,并与最终接收到的最后一个配置数据帧中的总CRC值比对,若比对一致,则将该CRC值写入FLASH并启动回读校验;若比对不一致,则终止本次重构,并输出总CRC校验错误标志,继续等待星上管理终端发送下一重构FLASH指令。
6.如权利要求5所述的方法,其特征在于,所述控制FPGA将配置数据写入擦除成功后的FLASH中,在写入过程中监测FLASH编程状态,具体为:
所述编程控制模块将FLASH置为编程数据状态,写入FALSH的编程序列和编程数据,所述编程数据即为配置数据,然后将FLASH置为读数据状态监测FLASH的编程状态,若所述FLASH的编程状态为编程失败,则终止本次重构,输出重构失败标志;
继续等待星上管理终端发送下一重构FLASH指令。
7.如权利要求6所述的方法,其特征在于,所述控制FPGA回读写入到所述FLASH中的所有配置数据,并再次进行循环冗余校验,具体为:
若所述FLASH的编程状态为总CRC校验通过,则所述指令解析模块生成有效的回读校验FLASH指示信号发送至所述读控制模块和数据解析模块;
所述读控制模块接收到所述回读校验指示信号后,将FLASH置为读数据状态,并将来自FLASH的数据输出给数据解析模块迭代计算CRC,最终将计算得到的总CRC值与最后从FLASH中读取的CRC值比对:
若比对不一致,则终止本次重构并输出回读校验错误标志,继续等待星上管理终端发送下一重构FLASH指令;
若比对一致,终止本次重构,并输出重构成功标志,本次重构成功。
8.一种在轨重构系统,其特征在于,所述控制FPGA由数据解析模块、读控制模块、编程控制模块、遥控指令解析模块和总线控制模块组成,控制FPGA针对所述处理FPGA的配置存储器FLASH进行在轨重构;
所述读控制模块通过PROM接口和FLASH接口连接所述总线控制模块;
所述PROM接口包括PROM数据接口和PROM控制接口;所述FLASH接口包括FLASH数据接口和FLASH控制接口;
所述读控制模块通过FLASH数据接口连接数据解析模块;
所述读控制模块通过存储器片选信号连接加载控制逻辑;
所述编程控制模块通过FLASH接口连接总线控制模块;
所述数据解析模块与所述编程控制模块的连接包括:编程状态、数据采样脉冲、编程数据、编程地址、回读校验成功标志和回读校验失败标志;
所述遥控指令解析模块通过串口接收星上控制终端发来的加载源切换指令、回读校验FLASH指令、编程FLASH指令以及编程复位指令,分别解析得到加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号以及编程复位指示信号;
所述遥控指令解析模块与所述总线控制模块的连接包括:加载源切换指示信号、回读校验FLASH指示信号、编程FLASH指示信号;
所述遥控指令解析模块与所述读控制模块的连接包括:编程FLASH指示信号、回读校验FALSH指示信号和加载源切换指示信号;
所述遥控指令解析模块与所述数据解析模块的连接包括:编程FLASH指示信号、回读校验FLASH指示信号、编程复位指示信号、回读校验成功标志和回读校验失败标志;
所述遥控指令解析模块与所述编程控制模块之间的连接包括:编程FLASH指示信号、编程复位指示信号和编程状态;
所述总线控制模块通过PROM接口连接配置PROM,通过FLASH接口连接FLASH。
9.如权利要求8所述的系统,其特征在于,所述加载控制逻辑可以集成在所述控制FPGA中,或者通过另外的FPGA实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122405.1A CN111142962B (zh) | 2019-11-15 | 2019-11-15 | 一种星载fpga的在轨重构方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122405.1A CN111142962B (zh) | 2019-11-15 | 2019-11-15 | 一种星载fpga的在轨重构方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142962A true CN111142962A (zh) | 2020-05-12 |
CN111142962B CN111142962B (zh) | 2020-09-18 |
Family
ID=70517107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911122405.1A Active CN111142962B (zh) | 2019-11-15 | 2019-11-15 | 一种星载fpga的在轨重构方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142962B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611201A (zh) * | 2020-06-24 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种刷新自适应的连续高可靠在轨fpga重构系统与方法 |
CN111800345A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 一种高可靠星座组网空间路由器电路 |
CN111880841A (zh) * | 2020-07-28 | 2020-11-03 | 西安微电子技术研究所 | 一种星载固态存储器的程序重构方法、系统及设备 |
CN112099832A (zh) * | 2020-11-04 | 2020-12-18 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN112131828A (zh) * | 2020-09-18 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112230970A (zh) * | 2020-09-16 | 2021-01-15 | 北京遥测技术研究所 | 一种适合于星载xilinx v2 fpga刷新方法 |
CN112491457A (zh) * | 2020-10-16 | 2021-03-12 | 浙江吉利控股集团有限公司 | 一种卫星在轨重构方法、装置、系统、设备及存储介质 |
CN112527350A (zh) * | 2020-12-08 | 2021-03-19 | 中国科学院国家空间科学中心 | 一种星载sram型fpga配置与刷新控制的ip核 |
CN112596743A (zh) * | 2020-12-09 | 2021-04-02 | 北京时代民芯科技有限公司 | 一种基于jtag接口的军用fpga通用重构电路 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN113098746A (zh) * | 2021-03-31 | 2021-07-09 | 三一汽车起重机械有限公司 | 作业机械can总线通信方法和装置 |
CN113204394A (zh) * | 2021-04-29 | 2021-08-03 | 北京微纳星空科技有限公司 | 星上程控数据的处理方法、装置、设备及存储介质 |
CN113268263A (zh) * | 2021-06-10 | 2021-08-17 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
CN113433858A (zh) * | 2021-06-24 | 2021-09-24 | 上海航天电子通讯设备研究所 | 星载fpga芯片自动监测系统 |
CN113434207A (zh) * | 2021-06-09 | 2021-09-24 | 山东航天电子技术研究所 | Zynq UltraScale+ SoC配置文件加载重构方法 |
CN113849456A (zh) * | 2021-10-18 | 2021-12-28 | 中国科学院长春光学精密机械与物理研究所 | 星载fpga重构方法 |
CN117453462A (zh) * | 2023-12-26 | 2024-01-26 | 中国人民解放军国防科技大学 | 一种星载设备软件可靠重构和加载运行方法 |
CN113268263B (zh) * | 2021-06-10 | 2024-06-07 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0490496A1 (en) * | 1990-12-14 | 1992-06-17 | Hughes Aircraft Company | Active spin axis control for spinning space vehicles |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN109783434A (zh) * | 2018-10-25 | 2019-05-21 | 西安空间无线电技术研究所 | 低代价高可靠的星载单机多片sram型fpga在轨重构系统及方法 |
-
2019
- 2019-11-15 CN CN201911122405.1A patent/CN111142962B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0490496A1 (en) * | 1990-12-14 | 1992-06-17 | Hughes Aircraft Company | Active spin axis control for spinning space vehicles |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN109783434A (zh) * | 2018-10-25 | 2019-05-21 | 西安空间无线电技术研究所 | 低代价高可靠的星载单机多片sram型fpga在轨重构系统及方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611201B (zh) * | 2020-06-24 | 2022-04-19 | 中国人民解放军国防科技大学 | 一种刷新自适应的连续高可靠在轨fpga重构系统与方法 |
CN111611201A (zh) * | 2020-06-24 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种刷新自适应的连续高可靠在轨fpga重构系统与方法 |
CN111800345A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 一种高可靠星座组网空间路由器电路 |
CN111800345B (zh) * | 2020-06-30 | 2022-04-26 | 西安微电子技术研究所 | 一种高可靠星座组网空间路由器电路 |
CN111880841A (zh) * | 2020-07-28 | 2020-11-03 | 西安微电子技术研究所 | 一种星载固态存储器的程序重构方法、系统及设备 |
CN112230970A (zh) * | 2020-09-16 | 2021-01-15 | 北京遥测技术研究所 | 一种适合于星载xilinx v2 fpga刷新方法 |
CN112131828A (zh) * | 2020-09-18 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112131828B (zh) * | 2020-09-18 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112491457A (zh) * | 2020-10-16 | 2021-03-12 | 浙江吉利控股集团有限公司 | 一种卫星在轨重构方法、装置、系统、设备及存储介质 |
CN112491457B (zh) * | 2020-10-16 | 2022-09-27 | 浙江吉利控股集团有限公司 | 一种卫星在轨重构方法、装置、系统、设备及存储介质 |
CN112099832A (zh) * | 2020-11-04 | 2020-12-18 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN112099832B (zh) * | 2020-11-04 | 2021-04-20 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN112527350A (zh) * | 2020-12-08 | 2021-03-19 | 中国科学院国家空间科学中心 | 一种星载sram型fpga配置与刷新控制的ip核 |
CN112527350B (zh) * | 2020-12-08 | 2024-04-26 | 中国科学院国家空间科学中心 | 一种星载sram型fpga配置与刷新控制的ip核 |
CN112596743B (zh) * | 2020-12-09 | 2024-04-02 | 北京时代民芯科技有限公司 | 一种基于jtag接口的军用fpga通用重构电路 |
CN112596743A (zh) * | 2020-12-09 | 2021-04-02 | 北京时代民芯科技有限公司 | 一种基于jtag接口的军用fpga通用重构电路 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN113098746A (zh) * | 2021-03-31 | 2021-07-09 | 三一汽车起重机械有限公司 | 作业机械can总线通信方法和装置 |
CN113098746B (zh) * | 2021-03-31 | 2022-05-03 | 三一汽车起重机械有限公司 | 作业机械can总线通信方法和装置 |
CN113204394A (zh) * | 2021-04-29 | 2021-08-03 | 北京微纳星空科技有限公司 | 星上程控数据的处理方法、装置、设备及存储介质 |
CN113434207B (zh) * | 2021-06-09 | 2023-03-24 | 山东航天电子技术研究所 | Zynq UltraScale+ SoC配置文件加载重构方法 |
CN113434207A (zh) * | 2021-06-09 | 2021-09-24 | 山东航天电子技术研究所 | Zynq UltraScale+ SoC配置文件加载重构方法 |
CN113268263A (zh) * | 2021-06-10 | 2021-08-17 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
CN113268263B (zh) * | 2021-06-10 | 2024-06-07 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
CN113433858A (zh) * | 2021-06-24 | 2021-09-24 | 上海航天电子通讯设备研究所 | 星载fpga芯片自动监测系统 |
CN113849456A (zh) * | 2021-10-18 | 2021-12-28 | 中国科学院长春光学精密机械与物理研究所 | 星载fpga重构方法 |
CN117453462A (zh) * | 2023-12-26 | 2024-01-26 | 中国人民解放军国防科技大学 | 一种星载设备软件可靠重构和加载运行方法 |
CN117453462B (zh) * | 2023-12-26 | 2024-03-08 | 中国人民解放军国防科技大学 | 一种星载设备软件可靠重构和加载运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111142962B (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111142962B (zh) | 一种星载fpga的在轨重构方法及系统 | |
CN107957972B (zh) | 一种基于fpga的在轨重构系统及方法 | |
US8914702B2 (en) | Bit error repair method and information processing apparatus | |
US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
US8176387B2 (en) | Error detection control system | |
CN111611201B (zh) | 一种刷新自适应的连续高可靠在轨fpga重构系统与方法 | |
KR20110094289A (ko) | 데이터를 메모리 디바이스로 재-입력하지 않고 페이지들을 재프로그램하기 위한 페이지 버퍼 프로그램 명령 및 방법 | |
WO1998028745A1 (en) | Nonvolatile writeable memory with fast programming capability | |
CN112732334A (zh) | 一种高连续性导航卫星软件重构方法 | |
US20030227796A1 (en) | Nonvolatile semiconductor memory device capable of correcting over-erased memory cells | |
CN114237122A (zh) | 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 | |
US10249376B2 (en) | Flash memory storage device and operating method thereof | |
JP3875139B2 (ja) | 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム | |
US20040145939A1 (en) | Non-volatile semiconductor storage device and production method thereof | |
CN112332902B (zh) | 一种星上自主控制的在轨重构系统与方法 | |
JPH05216775A (ja) | 半導体記憶装置 | |
CN113238985A (zh) | Fpga在轨重构控制系统及方法 | |
CN112433777A (zh) | Sram型fpga的配置数据动态刷新方法及装置 | |
CN113254288B (zh) | 一种星载设备中fpga单粒子翻转故障注入方法 | |
US7979736B2 (en) | Method for updating nonvolatile memory | |
JPH0877074A (ja) | フラッシュメモリを用いた記憶装置システム | |
US10725862B2 (en) | Data recovery method to error correction code in memory | |
JP2000276402A (ja) | フラッシュメモリ駆動方法及びフラッシュメモリ装置 | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP4148990B2 (ja) | エラー許容データのための不揮発性メモリデバイス |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |