CN104484214B - 一种sram型fpga的配置、刷新与程序上注一体化系统 - Google Patents

一种sram型fpga的配置、刷新与程序上注一体化系统 Download PDF

Info

Publication number
CN104484214B
CN104484214B CN201410851497.8A CN201410851497A CN104484214B CN 104484214 B CN104484214 B CN 104484214B CN 201410851497 A CN201410851497 A CN 201410851497A CN 104484214 B CN104484214 B CN 104484214B
Authority
CN
China
Prior art keywords
data
eeprom
fpga
configuration
module
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.)
Active
Application number
CN201410851497.8A
Other languages
English (en)
Other versions
CN104484214A (zh
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201410851497.8A priority Critical patent/CN104484214B/zh
Publication of CN104484214A publication Critical patent/CN104484214A/zh
Application granted granted Critical
Publication of CN104484214B publication Critical patent/CN104484214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种SRAM型FPGA的配置、刷新与程序上注一体化系统,属于航天技术领域,目的是克服在空间辐照环境下SRAM型FPGA的SEU(Single Event Upset,单粒子翻转)问题,具备对长时间在轨工作的SRAM型FPGA进行程序升级的能力。本发明包括现场可编程逻辑门阵列SRAM型FPGA、综合管理反熔丝FPGA、配置程序存储芯片PROM、在轨升级程序存放芯片EEPORM、RS422接口芯片。本发明可以有效克服长时间在轨工作的SRAM型FPGA的单粒子翻转问题,可以在不中断系统工作的情况下,纠正SRAM FPGA内部的单粒子翻转以及单粒子累积,同时具备对SRAM FPGA在轨程序升级的功能。具备实时性、可靠性、灵活性、通用性以及低成本的特点。

Description

一种SRAM型FPGA的配置、刷新与程序上注一体化系统
技术领域
本发明属于电子设备可靠性设计技术和宇航应用技术领域,更具体地,涉及一种静态随机存储器(Static Random Access Memory,SRAM)型现场可编程门阵列(Field-Programmable Gate Array,FPGA)的配置、刷新与程序上注一体化的电路与方法。
背景技术
SRAM型FPGA因其高密度以及高性能,已经成为目前市场上应用最广泛的FPGA之一,由于其可重复编程以及可重复配置的特性,近些年来在航天领域开始体现其应用价值,并获得越来越广泛的应用。由于SRAM型FPGA是敏感器件,在轨使用时处于空间辐照环境,空间高能粒子会对器件产生一系列影响,包括总剂量效应(Total ionizing Dose Effects,TID)和单粒子效应(Single Event Effects,SEE)等,而SEE中的单粒子翻转(Single EventUpset,SEU)对SRAM型器件的影响尤为明显,会造成器件内部电路异常而无法正常工作,所以必须考虑单粒子翻转问题,相应的技术研究也越来越多。
现有技术中已有一些相关的方法,以下对一些已经发表的专利进行分析:
(1)一种SRAM型FPGA SEU运行中修复的方法
此专利采用定时动态刷新(洗涤)的方式,从可编程只读存储器(ProgrammableRead-Only Memory,PROM)中提取刷新文件写入FPGA中,使用反熔丝FPGA控制SRAM型FPGAVirtex5刷新。在上电之后,对Virtex5进行全局配置,配置成功后定时刷新Virtex5。
但是此专利存在以下不足:
(a)不能用指令控制重配,重配置需要硬复位或者断电重启;
(b)不能用指令开关刷新使能,上电配置成功即开始刷新;
(c)不能根据星上环境灵活调整动态刷新周期;
(d)不具备在轨升级能力。
(2)一种基于SRAM型FPGA配置、刷新一体化装置
此专利使用Actel公司的RT1020F芯片控制刷新Xilinx公司的XQR2V3000芯片。此专利将配置与刷新结合,事先将刷新的文件生成好固化在PROM中,配置与刷新文件分区存储,使用相同的配置接口时序,由RT1020F芯片控制片选数据来确定是重配置还是刷新。
但是此专利存在以下不足:
(a)配置与刷新文件分区存放,对存储空间要求较大,不具灵活性;
(b)无程序上注电路,不具备在轨升级能力。
还有一种用于FPGA的抗单粒子翻转加固系统及其方法、一种抗SRAM FPGA器件SEU的电路及方法等相关专利都存在类似的不足。
发明内容
鉴于现有技术的以上缺陷,本发明提供了一种SRAM型FPGA配置、刷新与程序上注一体化系统,其目的在于实现SRAM型FPGA上电全局配置、缓解空间辐照环境中运行的SRAM型FPGA内部SEU影响和功能在轨升级,具备外存储器空间需求小,灵活性好,实时性高的特点。
为了实现上述目的,本发明提供了一种SRAM型FPGA的配置、刷新与程序上注一体化系统,所述系统包括:SRAM型FPGA(1-1)、综合管理FPGA(1-2)、配置程序存储芯片PROM(1-3)、在轨升级程序存放芯片电可擦除只读存储器(Electrically Erasable Read-OnlyMemory,EEPROM)(1-4)、遥测遥控接口(1-5),其中:
所述配置程序存储芯片PROM(1-3)用于存放SRAM型FPGA(1-1)的配置程序,所述配置程序在卫星发射前固化好,上电之后默认从所述配置程序存储芯片PROM(1-3)中读取配置程序配置所述SRAM型FPGA(1-1);
所述在轨升级程序存放芯片EEPROM(1-4),用于卫星在轨运行时,存放在轨更新的程序;所述在轨更新的程序,是由综合管理FPGA(1-2)接收地面上注的程序包并加入汉明校验码之后,写入所述在轨升级程序存放芯片EEPROM(1-4)的;所述在轨升级程序存放芯片EEPROM(1-4)包括两片EEPROM,两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通;
所述SRAM型FPGA(1-1)的配置方式选用从并模式(Slave Select MAP),其配置口直接与综合管理FPGA(1-2)相连,由综合管理FPGA(1-2)控制所述SRAM型FPGA(1-1)的配置加载以及动态刷新;
所述遥测遥控接口(1-5),采用RS422电平标准,包括RS422差分信号接收器和RS422差分信号驱动器,所述遥测遥控接口(1-5)用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息;
所述综合管理FPGA(1-2),用于实现以下功能:
(a)接收并响应地面遥控指令,返回系统遥测状态信息;
(b)接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入所述在轨升级程序存放芯片EEPROM(1-4)中;
(c)从所述配置存储芯片PROM(1-3)读数据配置加载和动态刷新SRAM型FPGA(1-1);
(d)从所述在轨升级程序存放芯片EERPOM(1-4)中读数据配置加载和动态刷新所述SRAM型FPGA(1-1);
(e)对在轨升级程序存放芯片EEPROM(1-4)的校验回写。
本发明的一个实施例中,所述综合管理FPGA(1-2)包括如下子模块:通用异步串口模块(2-1)、遥测遥控模块(2-2)、上传数据接收模块(2-3)、写EEPROM模块(2-4)、读EEPROM模块(2-5)、EEPROM纠错模块(2-6)、读PROM模块(2-7)、数据分配模块(2-8)、加载控制模块(2-9)、刷新控制模块(2-10)和数据选择模块(2-11),其中:
所述通用异步串口模块(2-1),采用标准UART协议,用于实现串行数据收发;
所述遥测遥控模块(2-2),用于接收并解析遥控指令包生成的相应的控制信号,送至对应的模块;对于上注程序数据包,解析包格式将数据送至上传数据接收模块(2-3);遥测遥控模块(2-2)还用于收集系统的所有遥测量信息,组合在一起输出至地面控制台;
所述上传数据接收模块(2-3),用于将上注程序数据包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPROM(1-4)的页地址,将数据与页地址信号一起送至写EEPROM模块(2-4);
所述写EEPROM模块(2-4),用于接收缓存的上注程序数据包数据或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4);
所述读EEPROM模块(2-5),用于实现对在轨升级程序存放芯片EEPROM(1-4)的读数据操作,当收到从EEPROM重新配置SRAM型FPGA(1-1)的指令或者从EEPROM中动态刷新SRAM型FPGA(1-1)时,从在轨升级程序存放芯片EEPROM(1-4)中读配置数据;
所述EEPROM纠错模块(2-6),用于响应遥测遥控模块(2-2)生成的EEPROM纠错使能信号,控制写EEPROM模块(2-4)和读EEPROM模块(2-5),对写EEPROM模块(2-4)和读EEPROM模块(2-5)按页进行校验;
所述读PROM模块(2-7),用于实现对配置程序存储芯片PROM(1-3)的读数据操作,当系统上电、收到从配置程序存储芯片PROM(1-3)重新配置SRAM型FPGA(1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据;
所述数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PROM(1-3)或者在轨升级程序存放芯片EEPROM(1-4)数据对SRAM型FPGA(1-1)进行配置;
所述加载控制模块(2-9),用于实现对SRAM型FPGA(1-1)的上电配置加载和指令配置加载,配置数据源由数据分配模块(2-8)送入;
所述刷新控制模块(2-10),用于实现在不影响系统正常工作的情况下,对SRAM型FPGA(1-1)的配置存储单元进行刷新;使SRAM型FPGA(1-1)中发生SEU的配置存储单元的存储值得以纠正,从而恢复SRAM型FPGA(1-1)原有的功能;
所述数据选择模块(2-11),用于选择SRAM型FPGA(1-1)的配置SelectMAP接口通路,选择是由加载控制模块(2-9)接管还是刷新控制模块接管;当系统刚上电、SRAM型FPGA(1-1)配置加载不成功或者外部送入SRAM型FPGA(1-1)重加载指令时,由加载控制模块(2-9)接管SRAM型FPGA(1-1)配置SelectMAP接口;当SRAM型FPGA(1-1)配置加载成功且外部送入刷新使能开指令后,由刷新控制模块(2-10)接管SRAM型FPGA(1-1)的配置SelectMAP接口。
本发明的一个实施例中,所述刷新控制模块(2-10)包括刷新文件生成模块(4-1)、刷新文件命令字ROM(4-2)、以及FPGA刷新端口控制模块(4-3),其中:
所述刷新文件生成模块(4-1),用于实现在输入的配置数据流中提取刷新文件,刷新文件生成模块(4-1)在收到的配置数据流中找配置同步字段,然后开始从刷新文件命令字ROM(4-2)中读取刷新文件命令头,生成刷新文件,送至FPGA刷新端口控制模块(4-3)输出给SRAM型FPGA;
所述刷新文件命令字ROM(4-2),其内部包含两部分存储区域,第一个区域内容为刷新起始和结束命令,由输入cmd_addr进行寻址;第二个区域内容为起始地址、配置数据量以及CRC校验值,由输入adrnumcrc_addr进行寻址;
所述FPGA刷新端口控制模块(4-3),用于控制SRAM型FPGA(1-1)的配置SelectMAP口,接收到刷新文件生成模块(4-1)输出的带有效信号的刷新数据流送至SelectMAP口的数据线,同时将数据有效信号反向之后送至CS_B引脚,刷新期间,PROG信号一直为高,FPGA刷新端口控制模块(4-3)不控PROG信号。
本发明的一个实施例中,所述EEPROM纠错模块(2-6)对在轨升级程序存放芯片EEPROM(1-4)按页进行校验,具体检验过程如下:
(3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3-2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能;
(3-2)纠错模块每次从在轨升级程序存放芯片EEPROM(1-4)中读取一页数据,数据读取过程中同时进行判断(3-3);
(3-3)从在轨升级程序存放芯片EEPROM(1-4)读取数据过程中,利用汉明码校验判断是否需要纠错,如果不需要纠错,则进入(3-4),否则进入(3-9);
(3-4)如果汉明校验没有错误,继续进行和校验,根据读出数据计算一个校验和,然后进行和校验判断(3-5);
(3-5)将(3-4)中计算的校验和与读出数据中的校验和字段进行对比,相同则和校验通过,进入(3-6);不相同则表示和校验不通过,转入(3-16);
(3-6)清空读出数据缓存,进入(3-7);
(3-7)判断EEPROM校验是否完成,如果在轨升级程序存放芯片EEPROM(1-4)内部数据都已经经过校验,则校验完成,进入(3-18),否则继续进行校验,进入(3-8);
(3-8)在轨升级程序存放芯片EEPROM(1-4)数据页地址加1,转(3-2),循环进入下一页校验;
(3-9)在(3-3)中判断需要纠错后,如果错误是可以纠正的,则进入(3-10)进行纠错,否则,转入(3-16);
(3-10)通过汉明码进行纠错,将数据中的错误比特纠正后,进入(3-11);
(3-11)根据汉明码纠错以后的数据计算一个校验和,然后进行和校验判断(3-12);
(3-12)将(3-11)中计算的校验和与纠错以后数据中的校验和字段进行对比,相同则和校验通过,进入(3-13);不相同表示则和校验不通过,转入(3-16);
(3-13)将纠错以后的数据写入数据缓存中,等待读出,在(3-14)中读出数据缓存中的数据;
(3-14)读出数据缓存中的数据,读出同时进行(3-15)的操作;
(3-15)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPROM(1-4)对应地址中,写入完成后进入(3-6);
(3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2-6)停止对当前页数据的读操作,并将该当前页的地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该当前页的地址转成包序号存储到错误页地址队列中,等待(3-17);
(3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPROM(1-4)存储的当前页数据中出现了不能纠正的错误,该当前页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该队列中读取错误的包序号并下传地面。
本发明的一个实施例中,所述加载控制模块(2-9)的配置步骤如下:
(9.1)上电后,或需要重新配置时,综合管理FPGA(1-2)先将SRAM型FPGA(1-1)的引脚PROG_B,INIT_B,RDWR_B拉低,此时置配置程序存储芯片PROM(1-3)的CE和RESET/OE无效;
(9.2)当等待时间超过设定阈值TPOR后,综合管理FPGA(1-2)将PROG_B拉高;PROG_B拉高后,等待一段时间综合管理FPGA(1-2)将INIT_B拉高;
(9.3)INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA(1-1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/OE和CE使能;
(9.4)SRAM型FPGA(1-1)进行配置,如果中间检测到INIT_B引脚出现低电平,说明有CRC校验错误,回到步骤(9.1)重新配置;
(9.5)如果等待一段时间后发现INIT_B不为低,但DONE信号一直为0,表示配置不成功,同样回到(9.1)步骤重新配置;
(9.6)如果检测到INIT_B为高,DONE为高那么SRAM型FPGA(1-1)配置成功,将配置程序存储芯片PROM(1-3)的CE及RESET/OE置为无效,配置完成。
本发明的一个实施例中,所述刷新文件生成模块(4-1)生成FPGA刷新文件的流程为:
(6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测;
(6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作;
(6-3)对(6-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6-4),否则继续循环检测;
(6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入(6-5),否则继续计数;
(6-5)开始从刷新文件命令字ROM(4-2)中读出第一部分N个字节的刷新启动命令集(5-8),伴随数据有效信号输出到FPGA刷新端口控制模块(4-3),N字节输出完成后,进入(6-6);
(6-6)N字节的刷新启动命令集(5-8)输出完成后,无缝地将接收到的配置帧数据1(5-3)和数据有效信号输出,对应为刷新文件的配置帧数据1(5-9)和数据有效信号,输出完成后,进入(6-7);
(6-7)配置帧数据1(5-9)输出完成以后连续输出一个配置帧大小的全0填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8);
(6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5-11),第一部分刷新文件完成,进入(6-9);
(6-9)对(6-2)中接收的配置数据字节计数进行判断,计数到距配置帧数据2(5-5)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入(6-10),否则继续计数;
(6-10)~(6-13)开始第二部分刷新文件的生成,各个流程的操作分别与(6-5)~(6-8),只是对应的刷新启动命令集和配置帧数据内容对应为第二部分刷新文件中的内容。完成后进入(6-14);
(6-14)过渡阶段,标志着一次完整的刷新文件生成过程结束,进入(6-15);
(6-15)延时等待,直到距离(6-5)开始的时间等于一个刷新周期,再次进入(6-1),循环以上步骤进行周期刷新。
本发明的一个实施例中,所述配置程序存储芯片PROM(1-3)选用Xilinx公司的XQR17V16反熔丝芯片;所述在轨升级程序存放芯片EEPROM(1-4)选用2片3D-plus公司的3DEE8M08VS8190MB芯片;所述SRAM型FPGA(1-1)选用Xilinx公司的XQR2V3000芯片;所述遥测遥控接口(1-5)选用Intersil公司的HS9-26CLV31RH-Q芯片作为RS422差分信号接收器,选用Intersil公司的HS9-26CLV32RH-Q芯片作为RS422差分信号驱动器;所述综合管理FPGA(1-2)选用Actel公司的反熔丝FPGA AX2000。
和以往传统技术相比,本发明所提出的SRAM型FPGA的配置、刷新与程序上注一体化系统具有以下有益效果:
(1)物理上增加了在轨升级程序存放芯片EEPROM,综合管理FPGA内部增加了遥测遥控模块、上传数据接收模块、写EEPROM模块、读EEPROM模块和EEPROM纠错模块,可以通过星地链路将SRAM型FPGA(1-1)的配置程序打包后以固定的数据帧格式从地面上传,经过遥测遥控模块(2-2)解析出配置程序数据,上传数据接收模块对配置程序数据实施检纠错算法,在加入错误校验数据以后,通过写EEPROM模块将所有数据写入在轨升级程序存放芯片EEPROM中。从EEPROM配置或刷新SRAM型FPGA时,读EEPROM模块从在轨升级程序存放芯片EEPROM中读出数据并进行解码输出,对SRAM型FPGA进行配置。这样就可以从地面更新升级星上FPGA程序和功能,一颗在轨卫星在其数年或数十年的工作时间内,其功能可以根据客户需求的变更进行改进升级,打破了卫星一旦上天便无法改变其功能的局面,提高了卫星的灵活性和通用性。并且,在没有进行从在轨升级程序存放芯片EEPROM中启动或者刷新操作时,可以开启EEPROM检纠错功能,通过存储在在轨升级程序存放芯片EEPROM中的配置程序和错误校验数据,检测纠正受SEU影响翻转的比特位,如果不能纠正,则下传地面,重新上传对应数据包,显著提高了EEPROM的抗SEU能力;
(2)由于系统中增加了遥测遥控模块,可以通过地面遥测遥控指令的方式,综合管理FPGA可以控制SRAM型FPGA从配置程序存储芯片PROM或者在轨升级程序存放芯片EEPROM中配置和刷新,并且可以设置SRAM型FPGA刷新开启或关闭以及刷新周期,对SRAM型FPGA进行动态刷新,可以减少回读所需时间及资源消耗,并且根据星上辐照环境来灵活调节刷新周期,可以在保证不影响SRAM型FPGA正常工作的条件下,达到降低系统功耗的有益效果;
(3)刷新控制模块能够在从配置程序存储芯片PROM或者在轨升级程序存放芯片EEPROM读出原始配置数据的时序下,配合从刷新文件命令字ROM中读出数据,通过数据替换的方式,把原始配置数据的配置启动命令集、BRAM配置帧数据、填充数据和配置结束命令集替换为刷新文件命令字ROM中读出的相应字段,从配置文件中生成刷新文件,不需要设置专门用于存储刷新文件的外存储器,取得了减少存储空间,降低板上布线复杂度和节约物理空间的效果;
(4)总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于配置、刷新可遥控,刷新文件从配置文件提取生成,内部程序可升级,取得了提升抗SEU能力、减小存储需求、控制灵活性好、电路功能可升级等一系列的有益效果。
附图说明
图1是本发明的硬件电路连接图;
图2是本发明中综合管理FPGA内部电路模块框图;
图3是本发明中EEPROM纠错模块工作流程图;
图4是本发明中刷新控制模块组成示意图;
图5是本发明中SRAM型FPGA配置文件和刷新文件对比图;
图6是本发明中SRAM型FPGA刷新文件生成流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供了一种SRAM型FPGA的配置、刷新与程序上注一体化系统,所述系统包括:SRAM型FPGA(1-1)、综合管理FPGA(1-2)、配置程序存储芯片PROM(1-3)、在轨升级程序存放芯片EEPROM(1-4)、遥测遥控接口(1-5),具体地:
(1)配置程序存储芯片PROM(1-3)选用Xilinx公司的XQR17V16反熔丝芯片(容量16Mbit),用于存放SRAM型FPGA(1-1)的配置程序,在卫星发射前固化好,上电之后默认从配置程序存储芯片PROM(1-3)中读取配置程序配置SRAM型FPGA(1-1)。
(2)在轨升级程序存放芯片EEPROM(1-4)选用2片3D-plus公司的3DEE8M08VS8190MB芯片(容量8Mbit×2片),用于卫星在轨运行时,存放在轨更新的程序。综合管理FPGA(1-2)接收地面上注的程序包加入汉明校验码之后,写入在轨升级程序存放芯片EEPROM(1-4)中(两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通)。
(3)SRAM型FPGA(1-1)选用Xilinx公司的XQR2V3000芯片,配置方式选用从并模式(Slave SelectMAP),配置口直接与综合管理FPGA(1-2)相连,由综合管理FPGA(1-2)控制所述SRAM型FPGA(1-1)的配置加载以及动态刷新。
(4)遥测遥控接口(1-5)采用RS422电平标准,选用Intersil公司的HS9-26CLV31RH-Q芯片作为RS422差分信号接收器,选用Intersil公司的HS9-26CLV32RH-Q芯片作为RS422差分信号驱动器。此RS422接口用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息。
(5)综合管理FPGA(1-2)选用Actel公司的反熔丝FPGA AX2000,用于实现以下功能:
(a)接收并响应地面遥控指令,返回系统遥测状态信息;
(b)实现接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入在轨升级程序存放芯片EEPROM(1-4)中;
(c)实现从配置存储存储芯片PROM(1-3)读数据配置加载和动态刷新SRAM型FPGA(1-1);
(d)实现从在轨升级程序存放芯片EERPOM(1-4)中读数据配置加载和动态刷新SRAM型FPGA(1-1);
(e)实现对在轨升级程序存放芯片EEPROM(1-4)的校验回写功能。
具体地,如图2所示,所述综合管理FPGA(1-2)包括如下模块:通用异步串口模块(2-1)、遥测遥控模块(2-2)、上传数据接收模块(2-3)、写EEPROM模块(2-4)、读EEPROM模块(2-5)、EEPROM纠错模块(2-6)、读PROM模块(2-7)、数据分配模块(2-8)、加载控制模块(2-9)、刷新控制模块(2-10)和数据选择模块(2-11),其中:
(1)通用异步串口模块(2-1),用于采用标准通用异步收发器(UniversalAsynchronous Receiver/Transmitter,UART)协议,实现串行数据收发功能。
(2)遥测遥控模块(2-2),用于接收并解析遥控指令包生成的相应的控制信号,送至对应的模块,对于上注程序数据包,解析包格式将数据送至上传数据接收模块(2-3)。遥测遥控模块(2-2)还收集系统的所有遥测量信息,组合在一起输出至地面控制台。
(3)上传数据接收模块(2-3),用于将上注程序数据包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPROM(1-4)的页地址,将数据与页地址信号一起送至写EEPROM模块(2-4)。
(4)写EEPROM模块(2-4),用于接收缓存的上注程序数据包数据或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4)。
(5)读EEPROM模块(2-5),用于实现对在轨升级程序存放芯片EEPROM(1-4)的读数据操作,当收到从EEPROM重新配置SRAM型FPGA(1-1)或者从EEPROM中动态刷新SRAM型FPGA(1-1)的指令时,从在轨升级程序存放芯片EEPROM(1-4)中读配置数据,控制时序按照芯片手册要求。
(6)EEPROM纠错模块(2-6),用于响应遥测遥控模块(2-2)生成的EEPROM纠错使能信号,控制写EEPROM模块(2-4)和读EEPROM模块(2-5),对写EEPROM模块(2-4)和读EEPROM模块(2-5)按页进行校验,模块工作流程图如图3所示,具体流程如下。
EEPROM纠错模块(2-6)对在轨升级程序存放芯片EEPROM(1-4)按页进行校验(每页数据128byte),图3中流程中各个步骤解释如下:
(3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3-2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能;
(3-2)纠错模块每次从在轨升级程序存放芯片EEPROM(1-4)中读取一页数据,数据读取过程中同时进行判断(3-3);
(3-3)从在轨升级程序存放芯片EEPROM(1-4)读取数据过程中,利用汉明码校验判断是否需要纠错,如果不需要纠错,则进入(3-4),否则进入(3-9);
(3-4)如果汉明校验没有错误,继续进行和校验,根据读出数据计算一个校验和,然后进行和校验判断(3-5);
(3-5)将(3-4)中计算的校验和与读出数据中的校验和字段进行对比,相同则和校验通过,进入(3-6);不相同表示则和校验不通过,转入(3-16);
(3-6)清空读出数据缓存,进入(3-7);
(3-7)判断EEPROM校验是否完成,如果在轨升级程序存放芯片EEPROM(1-4)内部数据都已经经过校验,则校验完成,进入(3-18),否则继续进行校验,进入(3-8);
(3-8)在轨升级程序存放芯片EEPROM(1-4)数据页地址加1,转(3-2)循环,进入下一页校验;
(3-9)在(3-3)中判断需要纠错后,如果错误是可以纠正的,则进入(3-10)进行纠错,否则,转入(3-16);
(3-10)通过汉明码进行纠错,将数据中的错误比特纠正后,进入(3-11);
(3-11)根据汉明码纠错以后的数据计算一个校验和,然后进行和校验判断(3-12);
(3-12)将(3-11)中计算的校验和与纠错以后数据中的校验和字段进行对比,相同则和校验通过,进入(3-13);不相同表示则和校验不通过,转入(3-16);
(3-13)将纠错以后的数据写入数据缓存中,等待读出,在(3-14)中读出数据缓存中的数据;
(3-14)读出数据缓存中的数据,读出同时进行(3-15)的操作;
(3-15)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPROM(1-4)对应地址中,写入完成后进入(3-6);
(3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2-6)立即停止对该页数据的读操作,并将该页地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该页地址转成包序号存储到错误页地址队列中,等待(3-17);
(3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPROM(1-4)存储的当前页数据中出现了无法纠正的错误,该页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该队列中读取错误的包序号并下传地面。
(7)读PROM模块(2-7),用于实现对配置程序存储芯片PROM(1-3)的读数据操作,当系统上电、收到从配置程序存储芯片PROM(1-3)重新配置SRAM型FPGA(1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据,控制时序按照芯片手册要求。
(8)数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PROM(1-3)或者在轨升级程序存放芯片EEPROM(1-4)数据对SRAM型FPGA(1-1)进行配置。
(9)加载控制模块(2-9),用于实现对SRAM型FPGA(1-1)的上电配置加载和指令配置加载,配置数据源由数据分配模块(2-8)送入。其配置步骤如下:
(9.1)上电后,或需要重新配置时。综合管理FPGA(1-2)先将SRAM型FPGA(1-1)的引脚PROG_B,INIT_B,RDWR_B拉低,此时置PROM的CE和RESET/OE无效。
(9.2)当等待时间超过设定阈值TPOR后(大于TPOR)后,综合管理FPGA(1-2)将PROG_B拉高。PROG_B拉高后,等待一段时间综合管理FPGA(1-2)将INIT_B拉高。
(9.3)INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA(1-1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/OE和CE使能。
(9.4)完成步骤(9.3)后,SRAM型FPGA(1-1)开始配置,如果中间检测到INIT_B引脚出现低电平,说明有CRC校验错误,必须回到步骤(9.1)重新配置。
(9.5)如果等待一段时间后发现INIT_B不为低,但DONE信号一直为0,表示配置不成功。那么同样回到(9.1)步骤重新配置。
(9.6)如果检测到INIT_B为高,DONE为高那么SRAM型FPGA(1-1)配置成功,可以将配置程序存储芯片PROM(1-3)的CE及RESET/OE置为无效,配置完成。
(10)刷新控制模块(2-10),用于实现在不影响系统正常工作的情况下,对SRAM型FPGA(1-1)的配置存储单元进行刷新。使SRAM型FPGA(1-1)中发生SEU的配置存储单元的存储值得以纠正,从而恢复SRAM型FPGA(1-1)原有的功能。刷新控制模块(2-10)包括三个子模块,分别为刷新文件生成模块(4-1)、刷新文件命令字ROM(4-2)和FPGA刷新端口控制模块(4-3),如图4所示,外部送入的数据源是配置数据流(从配置程序存储芯片PROM(1-3)读出的数据或者从在轨升级程序存放芯片EEPROM(1-4)中读出并经过汉明解码的数据),经过刷新文件生成模块(4-1)以后输出刷新文件,所述刷新控制模块(4-1)具体包括如下子模块:
刷新文件生成模块(4-1),用于实现在输入的配置数据流中提取刷新文件,而不需要专门的存储器件存储刷新文件,节约了资源。刷新文件和原始配置文件组成对比如图5所示。刷新文件生成模块(4-1)在收到的配置数据流中找配置同步字段,然后开始从刷新文件命令字ROM(4-2)中读取刷新文件命令头,生成刷新文件,送至FPGA刷新控制模块(4-3)输出给SRAM型FPGA(1-1)。刷新过程分两阶段,对应的刷新文件也是两个部分。第一部分的刷新文件是BRAM配置帧数据(5-4)之前的,对应图5中由(5-3)得到的(5-9)部分数据,第二部分的刷新文件是BRAM配置帧数据(5-4)之后的部分,对应图5中由(5-5)得到的(5-13)部分数据。提取两部分配置数据,分别加上刷新命令字头,对应图5中(5-8)和(5-12)部分数据,刷新填充数据,对应图5中(5-10)和(5-14)部分数据,刷新命令字尾,对应图5中(5-11)和(5-15)部分数据,生成两部分独立的刷新文件。刷新命令字头由刷新文件生成模块生成地址计数码,送至刷新文件命令字ROM读出对应的命令字,插入到刷新文件中。
刷新文件命令字ROM(4-2),共内部包含两部分存储区域,第一个区域内容为刷新起始和结束命令,由输入cmd_addr进行寻址;第二个区域内容为起始地址、配置数据量以及CRC校验值,由输入adrnumcrc_addr进行寻址。
(10.3)综合(10.1)、(10.2),FPGA刷新文件生成具体流程如图6所示,具体流程解释如下:
(6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测;
(6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作;
(6-3)对(6-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6-4),否则继续循环检测;
(6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入(6-5),否则继续计数;
(6-5)开始从刷新文件命令字ROM(4-2)中读出第一部分N个字节的刷新启动命令集(5-8),伴随数据有效信号输出到FPGA刷新端口控制模块(4-3),N字节输出完成后,进入(6-6);
(6-6)N字节的刷新启动命令集(5-8)输出完成后,无缝地将接收到的配置帧数据1(5-3)和数据有效信号输出,对应为刷新文件的配置帧数据1(5-9)和数据有效信号,输出完成后,进入(6-7);
(6-7)配置帧数据1(5-9)输出完成以后连续输出一个配置帧大小的全0填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8);
(6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5-11),第一部分刷新文件完成,进入(6-9);
(6-9)对(6-2)中接收的配置数据字节计数进行判断,计数到距配置帧数据2(5-5)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入(6-10),否则继续计数;
(6-10)~(6-13)开始第二部分刷新文件的生成,各个流程的操作分别与(6-5)~(6-8),只是对应的刷新启动命令集和配置帧数据内容对应为第二部分刷新文件中的内容。完成后进入(6-14);
(6-14)过渡阶段,标志着一次完整的刷新文件生成过程结束,进入(6-15);
(6-15)延时等待,直到距离(6-5)开始的时间等于一个刷新周期,再次进入(6-1),循环以上步骤进行周期刷新。
FPGA刷新端口控制模块(4-3),用于控制SRAM型FPGA(1-1)的配置SelectMAP口,接收到刷新文件生成模块(4-1)输出的带有效信号的刷新数据流送至SelectMAP口的数据线,同时将数据有效信号反向之后送至CS_B引脚。刷新期间,PROG信号一直为高,FPGA刷新端口控制模块(4-3)不控制PROG信号。
(11)数据选择模块(2-11),用于选择SRAM型FPGA(1-1)的配置SelectMAP接口通路,选择是由加载控制模块(2-9)接管还是刷新控制模块(2-10)接管。当系统刚上电、SRAM型FPGA(1-1)配置加载不成功或者外部送入SRAM型FPGA(1-1)重加载指令时,由加载控制模块(2-9)接管SRAM型FPGA(1-1)配置SelectMAP接口;当SRAM型FPGA(1-1)配置加载成功且外部送入刷新使能开指令后,由刷新控制模块(2-10)接管SRAM型FPGA(1-1)配置SelectMAP接口。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种SRAM型FPGA的配置、刷新与程序上注一体化系统,其特征在于,所述系统包括:SRAM型FPGA(1-1)、综合管理FPGA(1-2)、配置程序存储芯片PROM(1-3)、在轨升级程序存放芯片EEPROM(1-4)、遥测遥控接口(1-5),其中:
所述配置程序存储芯片PROM(1-3)用于存放SRAM型FPGA(1-1)的配置程序,所述配置程序在卫星发射前固化好,上电之后默认从所述配置程序存储芯片PROM(1-3)中读取配置程序配置所述SRAM型FPGA(1-1);
所述在轨升级程序存放芯片EEPROM(1-4),用于卫星在轨运行时,存放在轨更新的程序;所述在轨更新的程序,是由综合管理FPGA(1-2)接收地面上注的程序包并加入汉明校验码之后,写入所述在轨升级程序存放芯片EEPROM(1-4)的;所述在轨升级程序存放芯片EEPROM(1-4)包括两片EEPROM,两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通;
所述SRAM型FPGA(1-1)的配置方式选用从并模式(Slave Select MAP),其配置口直接与综合管理FPGA(1-2)相连,由综合管理FPGA(1-2)控制所述SRAM型FPGA(1-1)的配置加载以及动态刷新;
所述遥测遥控接口(1-5),采用RS422电平标准,包括RS422差分信号接收器和RS422差分信号驱动器,所述遥测遥控接口(1-5)用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息;
所述综合管理FPGA(1-2),用于实现以下功能:
(a)接收并响应地面遥控指令,返回系统遥测状态信息;
(b)接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入所述在轨升级程序存放芯片EEPROM(1-4)中;
(c)从所述配置程序存储芯片PROM(1-3)读数据配置加载和动态刷新SRAM型FPGA(1-1);
(d)从所述在轨升级程序存放芯片EEPROM(1-4)中读数据配置加载和动态刷新所述SRAM型FPGA(1-1);
(e)对在轨升级程序存放芯片EEPROM(1-4)的校验回写。
2.如权利要求1所述的系统,其特征在于,所述综合管理FPGA(1-2)包括如下子模块:通用异步串口模块(2-1)、遥测遥控模块(2-2)、上传数据接收模块(2-3)、写EEPROM模块(2-4)、读EEPROM模块(2-5)、EEPROM纠错模块(2-6)、读PROM模块(2-7)、数据分配模块(2-8)、加载控制模块(2-9)、刷新控制模块(2-10)和数据选择模块(2-11),其中:
所述通用异步串口模块(2-1),采用标准UART协议,用于实现串行数据收发;
所述遥测遥控模块(2-2),用于接收并解析遥控指令包生成的相应的控制信号,送至对应的模块;对于上注程序数据包,解析包格式将数据送至上传数据接收模块(2-3);遥测遥控模块(2-2)还用于收集系统的所有遥测量信息,组合在一起输出至地面控制台;
所述上传数据接收模块(2-3),用于将上注程序数据包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPROM(1-4)的页地址,将数据与页地址信号一起送至写EEPROM模块(2-4);
所述写EEPROM模块(2-4),用于接收缓存的上注程序数据包或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4);
所述读EEPROM模块(2-5),用于实现对在轨升级程序存放芯片EEPROM(1-4)的读数据操作,当收到从EEPROM重新配置SRAM型FPGA(1-1)的指令或者从EEPROM中动态刷新SRAM型FPGA(1-1)时,从在轨升级程序存放芯片EEPROM(1-4)中读配置数据;
所述EEPROM纠错模块(2-6),用于响应遥测遥控模块(2-2)生成的EEPROM纠错使能信号,控制写EEPROM模块(2-4)和读EEPROM模块(2-5),对写EEPROM模块(2-4)和读EEPROM模块(2-5)按页进行校验;
所述读PROM模块(2-7),用于实现对配置程序存储芯片PROM(1-3)的读数据操作,当系统上电、收到从配置程序存储芯片PROM(1-3)重新配置SRAM型FPGA(1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据;
所述数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PROM(1-3)或者在轨升级程序存放芯片EEPROM(1-4)数据对SRAM型FPGA(1-1)进行配置;
所述加载控制模块(2-9),用于实现对SRAM型FPGA(1-1)的上电配置加载和指令配置加载,配置数据源由数据分配模块(2-8)送入;
所述刷新控制模块(2-10),用于实现在不影响系统正常工作的情况下,对SRAM型FPGA(1-1)的配置存储单元进行刷新;使SRAM型FPGA(1-1)中发生单粒子翻转(Single EventUpset,SEU)的配置存储单元的存储值得以纠正,从而恢复SRAM型FPGA(1-1)原有的功能;
所述数据选择模块(2-11),用于选择SRAM型FPGA(1-1)的配置SelectMAP接口通路,选择是由加载控制模块(2-9)接管还是刷新控制模块(2-10)接管;当系统刚上电、SRAM型FPGA(1-1)配置加载或者外部送入SRAM型FPGA(1-1)重加载指令时,由加载控制模块(2-9)接管SRAM型FPGA(1-1)配置SelectMAP接口;当SRAM型FPGA(1-1)配置加载成功且外部送入刷新使能开指令后,由刷新控制模块(2-10)接管SRAM型FPGA(1-1)的配置SelectMAP接口。
3.如权利要求2所述的系统,其特征在于,所述刷新控制模块(2-10)包括刷新文件生成模块(4-1)、刷新文件命令字ROM(4-2)、以及FPGA刷新端口控制模块(4-3),其中:
所述刷新文件生成模块(4-1),用于实现在输入的配置数据流中提取刷新文件,刷新文件生成模块(4-1)在收到的配置数据流中找配置同步字段,然后开始从刷新文件命令字ROM(4-2)中读取刷新文件命令头,生成刷新文件,送至FPGA刷新端口控制模块(4-3)输出给SRAM型FPGA(1-1);
所述刷新文件命令字ROM(4-2),其内部包含两部分存储区域,第一个区域内容为刷新起始和结束命令,由输入cmd_addr进行寻址;第二个区域内容为起始地址、配置数据量以及CRC校验值,由输入adrnumcrc_addr进行寻址;
所述FPGA刷新端口控制模块(4-3),用于控制SRAM型FPGA(1-1)的配置SelectMAP口,接收到刷新文件生成模块(4-1)输出的带有效信号的刷新数据流送至SelectMAP口的数据线,同时将数据有效信号反向之后送至CS_B引脚,刷新期间,PROG信号一直为高,FPGA刷新端口控制模块(4-3)不控制PROG信号。
4.如权利要求2或3所述的系统,其特征在于,所述EEPROM纠错模块(2-6)对在轨升级程序存放芯片EEPROM(1-4)按页进行校验,具体检验过程如下:
(3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3-2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能;
(3-2)EEPROM纠错模块(2-6)每次从在轨升级程序存放芯片EEPROM(1-4)中读取一页数据,数据读取过程中同时进行判断(3-3);
(3-3)从在轨升级程序存放芯片EEPROM(1-4)读取数据过程中,利用汉明码校验判断是否需要纠错,如果不需要纠错,则进入(3-4),否则进入(3-9);
(3-4)如果汉明校验没有错误,继续进行和校验,根据读出数据计算一个校验和,然后进行和校验判断(3-5);
(3-5)将(3-4)中计算的校验和与读出数据中的校验和字段进行对比,相同则和校验通过,进入(3-6);不相同则表示和校验不通过,转入(3-16);
(3-6)清空读出数据缓存,进入(3-7);
(3-7)判断EEPROM校验是否完成,如果在轨升级程序存放芯片EEPROM(1-4)内部数据都已经经过校验,则校验完成,进入(3-18),否则继续进行校验,进入(3-8);
(3-8)在轨升级程序存放芯片EEPROM(1-4)数据页地址加1,转(3-2),循环进入下一页校验;
(3-9)在(3-3)中判断需要纠错后,如果错误是可以纠正的,则进入(3-10)进行纠错,否则,转入(3-16);
(3-10)通过汉明码进行纠错,将数据中的错误比特纠正后,进入(3-11);
(3-11)根据汉明码纠错以后的数据计算一个校验和,然后进行和校验判断(3-12);
(3-12)将(3-11)中计算的校验和与纠错以后数据中的校验和字段进行对比,相同则和校验通过,进入(3-13);不相同则表示和校验不通过,转入(3-16);
(3-13)将纠错以后的数据写入数据缓存中,等待读出,在(3-14)中读出数据缓存中的数据;
(3-14)读出数据缓存中的数据,读出同时进行(3-15)的操作;
(3-15)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPROM(1-4)对应地址中,写入完成后进入(3-6);
(3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2-6)停止对当前页数据的读操作,并将该当前页的地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该当前页的地址转成包序号存储到错误页地址队列中,等待(3-17);
(3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPROM(1-4)存储的当前页数据中出现了无法纠正的错误,该当前页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该错误包序号队列中读取错误的包序号并下传地面。
5.如权利要求2或3所述的系统,其特征在于,所述加载控制模块(2-9)的配置步骤如下:
(9.1)上电后,或需要重新配置时,综合管理FPGA(1-2)先将SRAM型FPGA(1-1)的引脚PROG_B,INIT_B,RDWR_B拉低,此时置配置程序存储芯片PROM(1-3)的CE和RESET/OE无效;
(9.2)当等待时间超过设定阈值TPOR后,综合管理FPGA(1-2)将PROG_B拉高;PROG_B拉高后,等待一段时间综合管理FPGA(1-2)将INIT_B拉高;
(9.3)INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA(1-1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/OE和CE使能;
(9.4)SRAM型FPGA(1-1)进行配置,如果中间检测到INIT_B引脚出现低电平,说明有CRC校验错误,回到步骤(9.1)重新配置;
(9.5)如果等待一段时间后发现INIT_B不为低,但DONE信号一直为0,表示配置不成功,同样回到(9.1)步骤重新配置;
(9.6)如果检测到INIT_B为高,DONE为高那么SRAM型FPGA(1-1)配置成功,将配置程序存储芯片PROM(1-3)的CE及RESET/OE置为无效,配置完成。
6.如权利要求3所述的系统,其特征在于,所述刷新文件生成模块(4-1)生成FPGA刷新文件的流程为:
(6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测;
(6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作;
(6-3)对(6-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6-4),否则继续循环检测;
(6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N个字节的位置时,进入(6-5),否则继续计数;N代表刷新文件启动命令集(5-8)的字节数;
(6-5)开始从刷新文件命令字ROM(4-2)中读出第一部分N个字节的刷新文件启动命令集(5-8),伴随数据有效信号输出到FPGA刷新端口控制模块(4-3),N字节输出完成后,进入(6-6);
(6-6)N字节的刷新文件启动命令集(5-8)输出完成后,无缝地将接收到的配置帧数据1(5-3)和数据有效信号输出,对应为刷新文件的配置帧数据1(5-9)和数据有效信号,输出完成后,进入(6-7);
(6-7)配置帧数据1(5-9)输出完成以后连续输出一个配置帧大小的全0填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8);
(6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5-11),第一部分刷新文件完成,进入(6-9);
(6-9)对(6-2)中接收的配置文件数据字节计数进行判断,计数到距配置帧数据2(5-5)有N个字节的位置时,进入(6-10),否则继续计数,其中,N代表刷新文件启动命令集(5-8)的字节数;
(6-10)~(6-13)开始第二部分刷新文件的生成,各个流程的操作分别与步骤(6-5)~(6-8)相同,只是对应的刷新文件启动命令集和配置帧数据内容对应为第二部分刷新文件中的内容,完成后进入(6-14);
(6-14)过渡阶段,标志着一次完整的刷新文件生成过程结束,进入(6-15);
(6-15)延时等待,直到距离(6-5)开始的时间等于一个刷新周期,再次进入(6-1),循环以上步骤进行周期刷新。
7.如权利要求1或2所述的系统,其特征在于,所述配置程序存储芯片PROM(1-3)选用Xilinx公司的XQR17V16反熔丝芯片;所述在轨升级程序存放芯片EEPROM(1-4)选用2片3D-plus公司的3DEE8M08VS8190MB芯片;所述SRAM型FPGA(1-1)选用Xilinx公司的XQR2V3000芯片;所述遥测遥控接口(1-5)选用Intersil公司的HS9-26CLV31RH-Q芯片作为RS422差分信号接收器,选用Intersil公司的HS9-26CLV32RH-Q芯片作为RS422差分信号驱动器;所述综合管理FPGA(1-2)选用Actel公司的反熔丝FPGA AX2000。
CN201410851497.8A 2014-12-30 2014-12-30 一种sram型fpga的配置、刷新与程序上注一体化系统 Active CN104484214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410851497.8A CN104484214B (zh) 2014-12-30 2014-12-30 一种sram型fpga的配置、刷新与程序上注一体化系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410851497.8A CN104484214B (zh) 2014-12-30 2014-12-30 一种sram型fpga的配置、刷新与程序上注一体化系统

Publications (2)

Publication Number Publication Date
CN104484214A CN104484214A (zh) 2015-04-01
CN104484214B true CN104484214B (zh) 2017-06-20

Family

ID=52758758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410851497.8A Active CN104484214B (zh) 2014-12-30 2014-12-30 一种sram型fpga的配置、刷新与程序上注一体化系统

Country Status (1)

Country Link
CN (1) CN104484214B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045672B (zh) * 2015-07-24 2018-07-06 哈尔滨工业大学 一种基于sram fpga的多级容错加固卫星信息处理系统
CN105653206B (zh) * 2015-12-29 2018-09-28 上海华力创通半导体有限公司 数字图像处理电路及其数据读写方法
WO2017113333A1 (zh) * 2015-12-31 2017-07-06 京微雅格(北京)科技有限公司 一种fpga电路和其配置文件处理方法
CN105679367B (zh) * 2016-01-14 2019-07-12 中国电子科技集团公司第五十八研究所 一种适用于mtm反熔丝prom的编程器
CN106154909A (zh) * 2016-06-24 2016-11-23 中国电子科技集团公司第三十八研究所 一种实时刷新装置及其方法、具有该实时刷新装置的系统
CN106293991B (zh) * 2016-08-10 2019-10-18 上海无线电设备研究所 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法
CN106843191A (zh) * 2016-12-18 2017-06-13 航天恒星科技有限公司 Fpga在轨维护方法及装置
CN106843955A (zh) * 2017-01-17 2017-06-13 西安电子科技大学 基于文件压缩及非接触式的fpga动态配置方法
CN106908811B (zh) * 2017-02-24 2019-08-09 北京空间飞行器总体设计部 一种星载gps接收机的系统级单粒子监测与防护方法
CN107678913B (zh) * 2017-09-13 2020-11-06 湖南斯北图科技有限公司 一种多功能可配置的抗单粒子辐射系统及方法
CN107957972B (zh) * 2017-10-30 2021-10-01 西安空间无线电技术研究所 一种基于fpga的在轨重构系统及方法
CN107729681A (zh) * 2017-11-06 2018-02-23 上海航天测控通信研究所 适用于在轨重构fpga的通用仿真方法和系统
CN107918545A (zh) * 2017-12-13 2018-04-17 天津光电通信技术有限公司 一种基于zynq的远程升级系统及其实现方法
CN108768442B (zh) * 2018-04-08 2021-05-11 上海航天测控通信研究所 一种高可靠通用化应答机中频处理机
CN108763148B (zh) * 2018-05-31 2021-11-30 西安微电子技术研究所 一种支持上注的容错存储器控制器
CN109445814B (zh) * 2018-09-20 2022-04-12 北京空间机电研究所 遥感相机fpga配置程序集中式管理和上注更新与动态刷新方法及电路
CN109783434B (zh) * 2018-10-25 2023-05-09 西安空间无线电技术研究所 低代价高可靠的星载单机多片sram型fpga在轨重构系统及方法
CN109522155B (zh) * 2018-10-29 2020-11-03 中国科学院长春光学精密机械与物理研究所 基于动态切换的空间应用嵌入式软件自修复系统
CN109522259B (zh) * 2018-11-12 2021-05-28 中国科学院长春光学精密机械与物理研究所 基于空间应用的在轨刷新重注成像系统
CN110196729B (zh) * 2018-11-30 2022-02-08 腾讯科技(深圳)有限公司 应用程序更新方法、设备和装置及存储介质
CN109799515A (zh) * 2018-12-17 2019-05-24 上海航天电子有限公司 遥控终端及其在轨重构方法
CN109756103B (zh) * 2018-12-27 2020-09-18 中国空间技术研究院 一种用于空间飞行验证平台的供配电控制系统及控制方法
CN109885329B (zh) * 2019-02-28 2023-04-07 新华三信息技术有限公司 一种升级方法、系统及电子设备
CN109933340B (zh) * 2019-03-04 2022-12-09 北京空间飞行器总体设计部 一种航天器eeprom基于页模式的在轨写入和自检方法
CN110704076A (zh) * 2019-10-15 2020-01-17 上海元城汽车技术有限公司 数据处理方法和装置、车载控制器及计算机可读存储介质
CN111143107B (zh) * 2019-11-13 2022-06-17 广东高云半导体科技股份有限公司 一种fpga单粒子反转校验电路和方法
CN111142962B (zh) * 2019-11-15 2020-09-18 北京理工大学 一种星载fpga的在轨重构方法及系统
CN111176908B (zh) * 2019-12-11 2023-07-14 北京遥测技术研究所 一种基于三模冗余的程序在轨加载刷新方法
CN111404750B (zh) * 2020-03-20 2022-11-01 上海航天测控通信研究所 一种高级在轨系统的集中式参数管理装置及方法
CN111506264B (zh) * 2020-04-10 2021-07-06 华中科技大学 支持灵活分块存取的虚拟多通道sdram访问方法
CN111950217B (zh) * 2020-06-29 2022-10-14 北京理工大学 Sram型fpga故障检测中关键帧地址范围定位方法
CN111653306B (zh) * 2020-07-07 2022-08-26 中国人民解放军国防科技大学 用于单端口sram的微体系结构级通用加固装置
CN112073113A (zh) * 2020-08-19 2020-12-11 北京无线电测量研究所 一种星载宽带波形产生组件和方法
CN112230970A (zh) * 2020-09-16 2021-01-15 北京遥测技术研究所 一种适合于星载xilinx v2 fpga刷新方法
CN112540559B (zh) * 2020-11-19 2021-11-23 国家卫星气象中心(国家空间天气监测预警中心) 一种程序上注人工控制方法
CN113380294A (zh) * 2021-07-13 2021-09-10 上海航天测控通信研究所 Fpga配置flash芯片抗单粒子翻转电路及方法
CN114860650A (zh) * 2022-04-22 2022-08-05 中国科学院国家空间科学中心 一种多片sram型fpga在轨配置管理装置
CN114924808B (zh) * 2022-05-12 2023-03-14 中国电子科技集团公司第二十九研究所 一种基于双份存储程序的sram型fpga在轨可靠加载方法
CN116301936B (zh) * 2023-03-03 2023-10-20 西安瑞日电子发展有限公司 一种fpga配置文件加速固化系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201549234U (zh) * 2009-07-23 2010-08-11 西安空间无线电技术研究所 一种基于sram型fpga配置、刷新一体化装置
WO2012047735A2 (en) * 2010-09-29 2012-04-12 The Regents Of The University Of California In-place resynthesis and remapping techniques for soft error mitigation in fpga
CN103678515A (zh) * 2013-11-26 2014-03-26 北京空间机电研究所 空间站可扩展和海量遥感信息处理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201549234U (zh) * 2009-07-23 2010-08-11 西安空间无线电技术研究所 一种基于sram型fpga配置、刷新一体化装置
WO2012047735A2 (en) * 2010-09-29 2012-04-12 The Regents Of The University Of California In-place resynthesis and remapping techniques for soft error mitigation in fpga
CN103678515A (zh) * 2013-11-26 2014-03-26 北京空间机电研究所 空间站可扩展和海量遥感信息处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Scrubbing的空间SRAM型FPGA抗单粒子翻转系统设计;马寅 等;《空间科学学报》;20120229(第2期);270-276页 *

Also Published As

Publication number Publication date
CN104484214A (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
CN104484214B (zh) 一种sram型fpga的配置、刷新与程序上注一体化系统
US11657857B2 (en) Memory devices having special mode access
TWI520144B (zh) 電源管理
US10976958B2 (en) Method for controlling storage device
CN105760250B (zh) 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN102543169B (zh) 统一的多级单元存储器
US8046527B2 (en) Apparatus and method for using a page buffer of a memory device as a temporary cache
CN105474319B (zh) 用于配置混合存储器模块的存储器的i/o的设备及方法
CN104239090A (zh) 一种基于fpga的卫星星务计算机在轨重构系统及方法
CN107589905A (zh) 存储器系统及其操作方法
CN104049687A (zh) 基于fpga的嵌入式立方星星务计算机及其重构方法
CN103035294A (zh) 从非易失性存储器读数据的方法及实施方法的设备和系统
CN104572384B (zh) 一种芯片多fpga验证方法
CN103325411A (zh) 一种用于fpga的抗单粒子翻转加固系统及其方法
CN101401167B (zh) 存储器装置分布式控制器系统
CN106484581A (zh) 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法
CN110347529A (zh) 用于执行错误侦测协议的存储器装置及方法
CN108139992B (zh) 访问存储设备的方法和存储设备
CN114661655A (zh) 一种星载测控数传一体机fpga程序在轨重构系统及方法
CN106776467B (zh) 用于命令接收系统的spi flash控制芯片
EP2207100B1 (en) System and method for data recovery in a disabled integrated circuit
CN1316504C (zh) 半导体存储器
CN108763148B (zh) 一种支持上注的容错存储器控制器
CN101563675A (zh) 具有高写入并行度的用于快闪存储器的列冗余
CN204695788U (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
GR01 Patent grant
GR01 Patent grant