一种sram型fpga的配置、刷新与程序上注一体化系统的制作方法

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

【技术领域】
[0001]本发明属于电子设备可靠性设计技术和宇航应用【技术领域】,更具体地,涉及一种静态随机存储器(Static Random Access Memory, SRAM)型现场可编程门阵列(Field-Programmable Gate Array,FPGA)的配置、刷新与程序上注一体化的电路与方法。

【背景技术】
[0002]SRAM型FPGA因其高密度以及高性能,已经成为目前市场上应用最广泛的FPGA之一,由于其可重复编程以及可重复配置的特性,近些年来在航天领域开始体现其应用价值,并获得越来越广泛的应用。由于SRAM型FPGA是敏感器件,在轨使用时处于空间辐照环境,空间高能粒子会对器件产生一系列影响,包括总剂量效应(Total 1nizing DoseEffects, TID)和单粒子效应(Single Event Effects, SEE)等,而SEE中的单粒子翻转(Single Event Upset, SEU)对SRAM型器件的影响尤为明显,会造成器件内部电路异常而无法正常工作,所以必须考虑单粒子翻转问题,相应的技术研宄也越来越多。
[0003]现有技术中已有一些相关的方法,以下对一些已经发表的专利进行分析:
[0004](I) 一种SRAM型FPGA SEU运行中修复的方法
[0005]此专利采用定时动态刷新(洗涤)的方式,从可编程只读存储器(ProgrammableRead-Only Memory, PROM)中提取刷新文件写入FPGA中,使用反熔丝FPGA控制SRAM型FPGAVirtex5刷新。在上电之后,对Virtex5进行全局配置,配置成功后定时刷新Virtex5。
[0006]但是此专利存在以下不足:
[0007](a)不能用指令控制重配,重配置需要硬复位或者断电重启;
[0008](b)不能用指令开关刷新使能,上电配置成功即开始刷新;
[0009](c)不能根据星上环境灵活调整动态刷新周期;
[0010](d)不具备在轨升级能力。
[0011](2) 一种基于SRAM型FPGA配置、刷新一体化装置
[0012]此专利使用Actel公司的RT1020F芯片控制刷新Xilinx公司的XQR2V3000芯片。此专利将配置与刷新结合,事先将刷新的文件生成好固化在PROM中,配置与刷新文件分区存储,使用相同的配置接口时序,由RT1020F芯片控制片选数据来确定是重配置还是刷新。
[0013]但是此专利存在以下不足:
[0014](a)配置与刷新文件分区存放,对存储空间要求较大,不具灵活性;
[0015](b)无程序上注电路,不具备在轨升级能力。
[0016]还有一种用于FPGA的抗单粒子翻转加固系统及其方法、一种抗SRAMFPGA器件SEU的电路及方法等相关专利都存在类似的不足。


【发明内容】

[0017]鉴于现有技术的以上缺陷,本发明提供了一种SRAM型FPGA配置、刷新与程序上注一体化系统,其目的在于实现SRAM型FPGA上电全局配置、缓解空间辐照环境中运行的SRAM型FPGA内部SEU影响和功能在轨升级,具备外存储器空间需求小,灵活性好,实时性高的特点。
[0018]为了实现上述目的,本发明提供了一种SRAM型FPGA的配置、刷新与程序上注一体化系统,所述系统包括:SRAM型FPGA(1-1)、综合管理FPGA(1_2)、配置程序存储芯片PROM(l_3)、在轨升级程序存放芯片电可擦除只读存储器(Electrically ErasableRead-Only Memory, EEPROM) (1-4)、遥测遥控接口(1-5),其中:
[0019]所述配置程序存储芯片PROM (1-3)用于存放SRAM型FPGA (1_1)的配置程序,所述配置程序在卫星发射前固化好,上电之后默认从所述配置程序存储芯片PR0M(l-3)中读取配置程序配置所述SRAM型FPGA(1-1);
[0020]所述在轨升级程序存放芯片EEPR0M(1_4),用于卫星在轨运行时,存放在轨更新的程序;所述在轨更新的程序,是由综合管理FPGA(l-2)接收地面上注的程序包并加入汉明校验码之后,写入所述在轨升级程序存放芯片EEPR0M(l-4)的;所述在轨升级程序存放芯片EEPR0M(l-4)包括两片EEPR0M,两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通;
[0021]所述SRAM型FPGA(1-1)的配置方式选用从并模式(Slave Select MAP),其配置口直接与综合管理FPGA (1-2)相连,由综合管理FPGA (1-2)控制所述SRAM型FPGA (1_1)的配置加载以及动态刷新;
[0022]所述遥测遥控接口(1-5),采用RS422电平标准,包括RS422差分信号接收器和RS422差分信号驱动器,所述遥测遥控接口(1-5)用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息;
[0023]所述综合管理FPGA (1-2),用于实现以下功能:
[0024](a)接收并响应地面遥控指令,返回系统遥测状态信息;
[0025](b)接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入所述在轨升级程序存放芯片EEPORM(1-4)中;
[0026](c)从所述配置存储芯片PR0M(1_3)读数据配置加载和动态刷新SRAM型FPGA(1-1);
[0027](d)从所述在轨升级程序存放芯片EERP0M(1_4)中读数据配置加载和动态刷新所述 SRAM 型 FPGA(1-1);
[0028](e)对在轨升级程序存放芯片EEPROM(1-4)的校验回写。
[0029]本发明的一个实施例中,所述综合管理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),其中:
[0030]所述通用异步串口模块(2-1),采用标准UART协议,用于实现串行数据收发;
[0031]所述遥测遥控模块(2-2),用于接收并解析遥控指令包生成的相应的控制信号,送至对应的模块;对于上注程序数据包,解析包格式将数据送至上传数据接收模块(2-3);遥测遥控模块(2-2)还用于收集系统的所有遥测量信息,组合在一起输出至地面控制台;
[0032]所述上传数据接收模块(2-3),用于将上注程序包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPROM(1-4)的页地址,将数据与页地址信号一起送至EEPROM写模块(2_4);
[0033]所述写EEPROM模块(2_4),用于接收缓存的上注程序包数据或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4);
[0034]所述读EEPROM模块(2_5),用于实现对在轨升级程序存放芯片EEPROM (1_4)的读数据操作,当收到从EEPROM重新配置SRAM型(1_1) FPGA的指令或者从EEPROM中动态刷新SRAM型FPGA(1-1)时,从在轨升级程序存放芯片EEPROM(1_4)中读配置数据;
[0035]所述EEPROM纠错模块(2_6),用于响应遥测遥控模块(2_2)生成的EEPROM纠错使能信号,控制写EEPROM模块(2-4)和读EEPROM模块(2_5),对写EEPROM模块(2_4)和读EEPROM模块(2-5)按页进行校验;
[0036]所述读PROM模块(2-7),用于实现对配置程序存储芯片PR0M(1_3)的读数据操作,当系统上电、收到从配置程序存储芯片PROM (1-3)重新配置SRAM型FPGA (1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据;
[0037]所述数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PROM(1-3)或者在轨升级程序存放芯片EEPROM(1-4)数据对SRAM型FPGA(1-1)进行配置;
[0038]所述加载控制模块(2-9),用于实现对SRAM型FPGA(1-1)的上电配置加载和指令配置加载,配置数据源由数据分配模块(2-8)送入;
[0039]所述刷新控制模块(2-10),用于实现在不影响系统正常工作的情况下,对SRAM型FPGA(1-1)的配置存储单元进行刷新;使SRAM型FPGA (1-1)中发生SEU的配置存储单元的存储值得以纠正,从而恢复SRAM型FPGA(1-1)原有的功能;
[0040]所述数据选择模块(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 接口。
[0041]本发明的一个实施例中,所述刷新控制模块(2-10)包括刷新文件生成模块(4-1)、刷新文件命令字ROM(4-2)、以及FPGA刷新端口控制模块(4_3),其中:
[0042]所述刷新文件生成模块(4-1),用于实现在输入的配置数据流中提取刷新文件,刷新文件生成模块(4-1)在收到的配置数据流中找配置同步字段,然后开始从刷新文件命令字ROM(4-2)中读取刷新文件命令头,生成刷新文件,送至FPGA刷新端口控制模块(4_3)输出给FPGA ;
[0043]所述刷新文件命令字ROM (4-2),其内部包含两部分存储区域,第一个区域内容为刷新起始和结束命令,由输入cmd_addr进行寻址;第二个区域内容为起始地址、配置数据量以及CRC校验值,由输入adrnumcrc_addr进行寻址;
[0044]所述FPGA刷新端口模块(4-3),用于控制SRAM型FPGA (1_1)的配置SelectMAP口,接收到刷新文件生成模块(4-1)输出的带有效信号的刷新数据流送至SelectMAP 口的数据线,同时将数据有效信号反向之后送至CS_B引脚,刷新期间,PROG信号一直为高,FPGA刷新端口控制模块(4-3)不控PROG信号。
[0045]本发明的一个实施例中,所述EEPROM纠错模块(2_6)对在轨升级程序存放芯片EEPROM(1-4)按页进行校验,具体检验过程如下:
[0046](3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3_2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能;
[0047](3-2)纠错模块每次从在轨升级程序存放芯片EEPR0M(1_4)中读取一页数据,数据读取过程中同时进行判断(3-3);
[0048](3-3)从在轨升级程序存放芯片EEPR0M(1_4)读取数据过程中,利用汉明码校验判断是否需要纠错,如果不需要纠错,则进入(3-4),否则进入(3-9);
[0049](3-4)如果汉明校验没有错误,继续进行和校验,根据读出数据计算一个校验和,然后进行和校验判断(3-5);
[0050](3-5)将(3-4)中计算的校验和与读出数据中的校验和字段进行对比,相同则和校验通过,进入(3-6);不相同表示则和校验不通过,转入(3-16);
[0051](3-6)清空读出数据缓存,进入(3-7);
[0052](3-7)判断EEPROM校验是否完成,如果在轨升级程序存放芯片EEPR0M(1_4)内部数据都已经经过校验,则校验完成,进入(3-18),否则继续进行校验,进入(3-8);
[0053](3-8)在轨升级程序存放芯片EEPROM (1-4)数据页地址加1,转(3_2),循环进入下一页校验;
[0054](3-9)在(3-3)中判断需要纠错后,如果错误是可以纠正的,则进入(3_10)进行纠错,否则,转入(3-16);
[0055](3-10)通过汉明码进行纠错,将数据中的错误比特纠正后,进入(3-11);
[0056](3-11)根据汉明码纠错以后的数据计算一个校验和,然后进行和校验判断(3-12);
[0057](3-12)将(3-11)中计算的校验和与纠错以后数据中的校验和字段进行对比,相同则和校验通过,进入(3-13);不相同表示则和校验不通过,转入(3-16);
[0058](3-13)将纠错以后的数据写入数据缓存中,等待读出,在(3-14)中读出数据缓存中的数据;
[0059](3-14)读出数据缓存中的数据,读出同时进行(3-15)的操作;
[0060](3-15)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPROM(1-4)对应地址中,写入完成后进入(3-6);
[0061](3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2-6)停止对该页数据的读操作,并将该页地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该页地址转成包序号存储到错误页地址队列中,等待(3-17);
[0062](3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPR0M(1_4)存储的当前页数据中出现了不能纠正的错误,该页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该队列中读取错误的包序号并下传地面。
[0063]本发明的一个实施例中,所述加载控制模块(2-9)的配置步骤如下:
[0064](9.1)上电后,或需要重新配置时,综合管理FPGA(l-2)先将SRAM型FPGA(1_1)的引脚PROG_B,INIT_B,RDWR_B拉低,此时置配置程序存储芯片PROM (1-3)的CE和RESET/0E无效;
[0065](9.2)当等待时间超过设定阈值TPOR后,综合管理FPGA(1_2)将PR0G_B拉高;PR0G_B拉高后,等待一段时间综合管理FPGA (1-2)将INIT_B拉高;
[0066](9.3) INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA (1_1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/0E和CE使能;
[0067](9.4) SRAM型FPGA (1-1)进行配置,如果中间检测到INIT_B引脚出现低电平,说明有CRC校验错误,回到步骤(9.1)重新配置;
[0068](9.5)如果等待一段时间后发现INIT_B不为低,但DONE信号一直为0,表示配置不成功,同样回到(9.1)步骤重新配置;
[0069](9.6)如果检测到INIT_B为高,DONE为高那么SRAM型FPGA(1-1)配置成功,将配置程序存储芯片PROM (1-3)的CE及RESET/0E置为无效,配置完成。
[0070]本发明的一个实施例中,所述FPGA刷新文件生成模块(4-1)生成FPGA刷新文件的流程为:
[0071](6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测;
[0072](6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作;
[0073](6-3)对¢-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6_4),否则继续循环检测;
[0074](6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N (N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入¢-5),否则继续计数;
[0075](6-5)开始从刷新文件命令字ROM(4-2)中读出第一部分N个字节的刷新启动命令集(5-8),伴随数据有效信号输出到FPGA刷新端口控制模块(4-3),N字节输出完成后,进入(6-6);
[0076](6_6)N字节的刷新启动命令集(5-8)输出完成后,无缝地将接收到的配置帧数据1(5-3)和数据有效信号输出,对应为刷新文件的配置帧数据1(5-9)和数据有效信号,输出完成后,进入(6-7);
[0077](6-7)配置帧数据I (5-9)输出完成以后连续输出一个配置帧大小的全O填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8);
[0078](6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5_11),第一部分刷新文件完成,进入出-9);
[0079](6-9)对(6-2)中接收的配置数据字节计数进行判断,计数到距配置帧数据2(5-5)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入¢-10),否则继续计数;
[0080](6-10)?(6-13)开始第二部分刷新文件的生成,各个流程的操作分别与(6_5)?(6-8),只是对应的刷新启动命令集和配置帧数据内容对应为第二部分刷新文件中的内容。完成后进入(6_14);
[0081](6-14)过渡阶段,标志着一次完整的刷新文件生成过程结束,进入(6-15);
[0082](6-15)延时等待,直到距离(6-5)开始的时间等于一个刷新周期,再次进入(6-1),循环以上步骤进行周期刷新。
[0083]本发明的一个实施例中,所述配置程序存储芯片PROM(l_3)选用Xilinx公司的XQR17V16反熔丝芯片;所述在轨升级程序存放芯片EEPR0M(l-4)选用2片3D_plus公司的3DEE8M08VS8190MB 芯片;所述 SRAM 型 FPGA(1-1)选用 Xilinx 公司的 XQR2V3000 芯片;所述遥测遥控接口(1-5)选用Intersil公司的HS9-26CLV3IRH-Q芯片作为RS422差分信号接收器,选用Intersil公司的HS9-26CLV32RH-Q芯片作为RS422差分信号驱动器;所述综合管理FPGA (1-2)选用Actel公司的反熔丝FPGAAX2000。
[0084]和以往传统技术相比,本发明所提出的SRAM型FPGA的配置、刷新与程序上注一体化系统具有以下有益效果:
[0085](I)物理上增加了在轨升级程序存放芯片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能力;
[0086](2)由于系统中增加了遥测遥控模块,可以通过地面遥测遥控指令的方式,综合管理FPGA可以控制SRAM型FPGA从配置程序存储芯片PROM或者在轨升级程序存放芯片EEPROM中配置和刷新,并且可以设置SRAM型FPGA刷新开启或关闭以及刷新周期,对SRAM型FPGA进行动态刷新,可以减少回读所需时间及资源消耗,并且根据星上辐照环境来灵活调节刷新周期,可以在保证不影响SRAM型FPGA正常工作的条件下,达到降低系统功耗的有益效果;
[0087](3)刷新控制模块能够在从配置程序存储芯片PROM或者在轨升级程序存放芯片EEPROM读出原始配置数据的时序下,配合从刷新文件命令字ROM中读出数据,通过数据替换的方式,把原始配置数据的配置启动命令集、BRAM配置帧数据、填充数据和配置结束命令集替换为刷新文件命令字ROM中读出的相应字段,从配置文件中生成刷新文件,不需要设置专门用于存储刷新文件的外存储器,取得了减少存储空间,降低板上布线复杂度和节约物理空间的效果;
[0088](4)总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于配置、刷新可遥控,刷新文件从配置文件提取生成,内部程序可升级,取得了提升抗SEU能力、减小存储需求、控制灵活性好、电路功能可升级等一系列的有益效果。

【专利附图】

【附图说明】
[0089]图1是本发明的硬件电路连接图;
[0090]图2是本发明中综合管理FPGA内部电路模块框图;
[0091]图3是本发明中EEPROM纠错模块工作流程图;
[0092]图4是本发明中刷新控制模块组成示意图;
[0093]图5是本发明中SRAM型FPGA配置文件和刷新文件对比图;
[0094]图6是本发明中SRAM型FPGA刷新文件生成流程图。

【具体实施方式】
[0095]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0096]如图1所示,本发明提供了一种SRAM型FPGA的配置、刷新与程序上注一体化系统,所述系统包括:SRAM型FPGA (1-1)、综合管理FPGA (1_2)、配置程序存储芯片PROM(1_3)、在轨升级程序存放芯片EEPORM(1-4)、遥测遥控接口(1-5),具体地:
[0097](I)配置程序存储芯片PROM(1-3)选用Xilinx公司的XQR17V16反熔丝芯片(容量16Mbit),用于存放SRAM型FPGA(1-1)的配置程序,在卫星发射前固化好,上电之后默认从配置程序存储芯片PROM(1-3)中读取配置程序配置SRAM型FPGA(1-1)。
[0098](2)在轨升级程序存放芯片EEPROM(1-4)选用2片3D_plus公司的3DEE8M08VS8190MB芯片(容量8Mbit X 2片),用于卫星在轨运行时,存放在轨更新的程序。综合管理FPGA(l-2)接收地面上注的程序包加入汉明校验码之后,写入在轨升级程序存放芯片EEPR0M(l-4)中(两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通)。
[0099](3) SRAM型FPGA(1-1)选用Xilinx公司的XQR2V3000芯片,配置方式选用从并模式(Slave SelectMAP),配置口直接与综合管理FPGA (1-2)相连,由综合管理FPGA (1_2)控制所述SRAM型FPGA(1-1)的配置加载以及动态刷新。
[0100](4)遥测遥控接口(1-5)采用RS422电平标准,选用Intersil公司的HS9-26CLV31RH-Q芯片作为RS422差分信号接收器,选用Intersil公司的HS9-26CLV32RH-Q芯片作为RS422差分信号驱动器。此RS422接口用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息。
[0101](5)综合管理FPGA(l-2)选用Actel公司的反熔丝FPGA AX2000,用于实现以下功會K:
[0102](a)接收并响应地面遥控指令,返回系统遥测状态信息;
[0103](b)实现接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入在轨升级程序存放芯片EEPROM (1-4)中;
[0104](c)实现从配置存储存储芯片PROM(l-3)读数据配置加载和动态刷新SRAM型FPGA(1-1);
[0105](d)实现从在轨升级程序存放芯片EERP0M(1_4)中读数据配置加载和动态刷新SRAM 型 FPGA(1-1);
[0106](e)实现对在轨升级程序存放芯片EEPROM(1-4)的校验回写功能。
[0107]具体地,如图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),其中:
[0108](I)通用异步串口模块(2-1),用于采用标准通用异步收发器(UniversalAsynchronous Receiver/Transmitter, UART)协议,实现串行数据收发功能。
[0109](2)遥测遥控模块(2-2),用于接收并解析遥控指令包生成的相应的控制信号,送至对应的模块,对于上注程序数据包,解析包格式将数据送至上传数据接收模块(2-3)。遥测遥控模块(2-2)还收集系统的所有遥测量信息,组合在一起输出至地面控制台。
[0110](3)上传数据接收模块(2-3),用于将上注程序包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPROM(1-4)的页地址,将数据与页地址信号一起送至EEPROM写模块(2_4)。
[0111](4)写EEPROM模块(2_4),用于接收缓存的上注程序包数据或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4)。
[0112](5)读EEPROM模块(2_5),用于实现对在轨升级程序存放芯片EEPROM (1_4)的读数据操作,当收到从EEPROM重新配置SRAM型FPGA(1-1)或者从EEPROM中动态刷新SRAM型FPGA(1-1)的指令时,从在轨升级程序存放芯片EEPROM(1-4)中读配置数据,控制时序按照芯片手册要求。
[0113](6)EEPROM纠错模块(2_6),用于响应遥测遥控模块(2_2)生成的EEPROM纠错使能信号,控制写EEPROM模块(2-4)和读EEPROM模块(2_5),对写EEPROM模块(2_4)和读EEPROM模块(2-5)按页进行校验,模块工作流程图如图3所示,具体流程如下。
[0114]EEPROM纠错模块(2_6)对在轨升级程序存放芯片EEPR0M(1_4)按页进行校验(每页数据128byte),图3中流程中各个步骤解释如下:
[0115](3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3_2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能;
[0116](3-2)纠错模块每次从在轨升级程序存放芯片EEPR0M(l-4)中读取一页数据,数据读取过程中同时进行判断(3-3);
[0117](3-3)从在轨升级程序存放芯片EEPR0M(1_4)读取数据过程中,利用汉明码校验判断是否需要纠错,如果不需要纠错,则进入(3-4),否则进入(3-9);
[0118](3-4)如果汉明校验没有错误,继续进行和校验,根据读出数据计算一个校验和,然后进行和校验判断(3-5);
[0119](3-5)将(3-4)中计算的校验和与读出数据中的校验和字段进行对比,相同则和校验通过,进入(3-6);不相同表示则和校验不通过,转入(3-16);
[0120](3-6)清空读出数据缓存,进入(3-7);
[0121](3-7)判断EEPROM校验是否完成,如果在轨升级程序存放芯片EEPR0M(1_4)内部数据都已经经过校验,则校验完成,进入(3-18),否则继续进行校验,进入(3-8);
[0122](3-8)在轨升级程序存放芯片EEPR0M(l-4)数据页地址加1,转(3_2)循环,进入下一页校验;
[0123](3-9)在(3-3)中判断需要纠错后,如果错误是可以纠正的,则进入(3_10)进行纠错,否则,转入(3-16);
[0124](3-10)通过汉明码进行纠错,将数据中的错误比特纠正后,进入(3-11);
[0125](3-11)根据汉明码纠错以后的数据计算一个校验和,然后进行和校验判断(3-12);
[0126](3-12)将(3-11)中计算的校验和与纠错以后数据中的校验和字段进行对比,相同则和校验通过,进入(3-13);不相同表示则和校验不通过,转入(3-16);
[0127](3-13)将纠错以后的数据写入数据缓存中,等待读出,在(3-14)中读出数据缓存中的数据;
[0128](3-14)读出数据缓存中的数据,读出同时进行(3-15)的操作;
[0129](3-15)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPROM(1-4)对应地址中,写入完成后进入(3-6);
[0130](3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2-6)立即停止对该页数据的读操作,并将该页地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该页地址转成包序号存储到错误页地址队列中,等待(3-17);
[0131](3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPR0M(1_4)存储的当前页数据中出现了无法纠正的错误,该页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该队列中读取错误的包序号并下传地面。
[0132](7)读PROM模块(2_7),用于实现对配置程序存储芯片PROM (1_3)的读数据操作,当系统上电、收到从配置程序存储芯片PROM (1-3)重新配置SRAM型FPGA (1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据,控制时序按照芯片手册要求。
[0133](8)数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PROM(1-3)或者在轨升级程序存放芯片EEPR0M(l-4)数据对SRAM型FPGA(1-1)进行配置。
[0134](9)加载控制模块(2-9),用于实现对SRAM型FPGA(1-1)的上电配置加载和指令配置加载,配置数据源由数据分配模块(2-8)送入。其配置步骤如下:
[0135](9.1)上电后,或需要重新配置时。综合管理FPGA(1-2)先将SRAM型FPGA(1-1)的引脚PR0G_B,INIT_B,RDWR_B拉低,此时置PROM的CE和RESET/0E无效。
[0136](9.2)当等待时间超过设定阈值TPOR后(大于TP0R)后,综合管理FPGA(1_2)将PR0G_B拉高。PR0G_B拉高后,等待一段时间综合管理FPGA(1_2)将INIT_B拉高。
[0137](9.3) INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA(1-1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/0E和CE使能。
[0138](9.4)完成步骤(9.3)后,SRAM型FPGA(H)开始配置,如果中间检测到INIT_B引脚出现低电平,说明有CRC校验错误,必须回到步骤(9.1)重新配置。
[0139](9.5)如果等待一段时间后发现INIT_B不为低,但DONE信号一直为0,表示配置不成功。那么同样回到(9.1)步骤重新配置。
[0140](9.6)如果检测到INIT_B为高,DONE为高那么SRAM型FPGA(1_1)配置成功,可以将配置程序存储芯片PROM (1-3)的CE及RESET/0E置为无效,配置完成。
[0141](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)具体包括如下子模块:
[0142]刷新文件生成模块(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读出对应的命令字,插入到刷新文件中。
[0143]刷新文件命令字ROM(4-2),共内部包含两部分存储区域,第一个区域内容为刷新起始和结束命令,由输入cmd_addr进行寻址;第二个区域内容为起始地址、配置数据量以及CRC校验值,由输入adrnumcrc_addr进行寻址。
[0144](10.3)综合(10.1)、(10.2),FPGA刷新文件生成具体流程如图6所示,具体流程解释如下:
[0145](6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测;
[0146](6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作;
[0147](6-3)对(6-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6_4),否则继续循环检测;
[0148](6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N (N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入¢-5),否则继续计数;
[0149](6-5)开始从刷新文件命令字ROM(4-2)中读出第一部分N个字节的刷新启动命令集(5-8),伴随数据有效信号输出到FPGA刷新端口控制模块(4-3),N字节输出完成后,进入(6-6);
[0150](6_6)N字节的刷新启动命令集(5-8)输出完成后,无缝地将接收到的配置帧数据1(5-3)和数据有效信号输出,对应为刷新文件的配置帧数据1(5-9)和数据有效信号,输出完成后,进入(6-7);
[0151](6-7)配置帧数据I (5-9)输出完成以后连续输出一个配置帧大小的全O填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8);
[0152](6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5_11),第一部分刷新文件完成,进入出-9);
[0153](6-9)对(6-2)中接收的配置数据字节计数进行判断,计数到距配置帧数据2(5-5)有N(N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入¢-10),否则继续计数;
[0154](6-10)?(6-13)开始第二部分刷新文件的生成,各个流程的操作分别与(6_5)?(6-8),只是对应的刷新启动命令集和配置帧数据内容对应为第二部分刷新文件中的内容。完成后进入(6_14);
[0155](6-14)过渡阶段,标志着一次完整的刷新文件生成过程结束,进入(6-15);
[0156](6-15)延时等待,直到距离(6-5)开始的时间等于一个刷新周期,再次进入(6-1),循环以上步骤进行周期刷新。
[0157]FPGA刷新端口控制模块(4-3),用于控制SRAM型FPGA (1-1)的配置SelectMAP 口,接收到刷新文件生成模块(4-1)输出的带有效信号的刷新数据流送至SelectMAP 口的数据线,同时将数据有效信号反向之后送至CS_B引脚。刷新期间,PROG信号一直为高,FPGA刷新端口控制模块(4-3)不控制PROG信号。
[0158](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 接口。
[0159]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种SRAM型FPGA的配置、刷新与程序上注一体化系统,其特征在于,所述系统包括:SRAM型FPGA(1-1)、综合管理FPGA(1_2)、配置程序存储芯片PROM(1_3)、在轨升级程序存放芯片EEPORM(1-4)、遥测遥控接口 (1-5),其中: 所述配置程序存储芯片PROM(1-3)用于存放SRAM型FPGA(1-1)的配置程序,所述配置程序在卫星发射前固化好,上电之后默认从所述配置程序存储芯片PR0M(l-3)中读取配置程序配置所述SRAM型FPGA(1-1); 所述在轨升级程序存放芯片EEPR0M(l-4),用于卫星在轨运行时,存放在轨更新的程序;所述在轨更新的程序,是由综合管理FPGA(l-2)接收地面上注的程序包并加入汉明校验码之后,写入所述在轨升级程序存放芯片EEPR0M(l-4)的;所述在轨升级程序存放芯片EEPROM(1-4)包括两片EEPR0M,两片EEPROM采用深度扩展的连接方式,数据线与地址线共用,通过片选信号CE来选通; 所述SRAM型FPGA(1-1)的配置方式选用从并模式(Slave Select MAP),其配置口直接与综合管理FPGA(l-2)相连,由综合管理FPGA(1-2)控制所述SRAM型FPGA(1_1)的配置加载以及动态刷新; 所述遥测遥控接口(1-5),采用RS422电平标准,包括RS422差分信号接收器和RS422差分信号驱动器,所述遥测遥控接口(1-5)用于接收外部发送过来的遥控指令,同时下传系统当前的遥测状态信息; 所述综合管理FPGA(l-2),用于实现以下功能: (a)接收并响应地面遥控指令,返回系统遥测状态信息; (b)接收地面上传的SRAM型FPGA(1-1)程序数据包,解析包格式并加入校验码之后写入所述在轨升级程序存放芯片EEPORM (1-4)中; (c)从所述配置存储芯片PROM(1-3)读数据配置加载和动态刷新SRAM型FPGA (1-1); (d)从所述在轨升级程序存放芯片EERP0M(l-4)中读数据配置加载和动态刷新所述SRAM 型 FPGA(1-1); (e)对在轨升级程序存放芯片EEPROM(1-4)的校验回写。
2.如权利要求1所述的系统,其特征在于,所述综合管理FPGA(l-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),用于将上注程序包中的数据解析,加入汉明校验码,同时对每包数据计算一个和校验,并根据上注程序数据包序号映射计算在轨升级程序存放芯片EEPR0M(l-4)的页地址,将数据与页地址信号一起送至EEPROM写模块(2_4); 所述写EEPROM模块(2-4),用于接收缓存的上注程序包数据或者EEPROM纠错模块(2-6)送入的校验纠错之后的数据,加入汉明编码之后写入在轨升级程序存放芯片EEPROM(1-4); 所述读EEPROM模块(2-5),用于实现对在轨升级程序存放芯片EEPROM (1-4)的读数据操作,当收到从EEPROM重新配置SRAM型(1_1) FPGA的指令或者从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),用于实现对配置程序存储芯片PR0M(l-3)的读数据操作,当系统上电、收到从配置程序存储芯片PR0M(l-3)重新配置SRAM型FPGA(1-1)的指令或者从配置程序存储芯片PROM(1-3)中动态刷新SRAM型FPGA(1-1)时,从配置程序存储芯片PROM(1-3)中读配置数据; 所述数据分配模块(2-8),用于实现对配置以及刷新数据源的选取,选择信号由遥测遥控模块(2-2)送入,控制选择使用配置程序存储芯片PR0M(l-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 接口。
3.如权利要求1或2所述的系统,其特征在于,所述刷新控制模块(2-10)包括刷新文件生成模块(4-1)、刷新文件命令字ROM(4-2)、以及FPGA刷新端口控制模块(4_3),其中: 所述刷新文件生成模块(4-1),用于实现在输入的配置数据流中提取刷新文件,刷新文件生成模块(4-1)在收到的配置数据流中找配置同步字段,然后开始从刷新文件命令字ROM(4-2)中读取刷新文件命令头,生成刷新文件,送至FPGA刷新端口控制模块(4_3)输出给 FPGA ; 所述刷新文件命令字R0M(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.如权利要求1或2所述的系统,其特征在于,所述EEPROM纠错模块(2_6)对在轨升级程序存放芯片EEPROM(1-4)按页进行校验,具体检验过程如下: (3-1)判断EEPROM EDAC使能是否打开,如果使能打开,进入下一步(3_2),开始EEPROM数据纠正过程;否则,继续循环判断EDAC使能; (3-2)纠错模块每次从在轨升级程序存放芯片EEPR0M(l-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)用页写模式把缓存中读出的数据写入到在轨升级程序存放芯片EEPR0M(l-4)对应地址中,写入完成后进入(3-6); (3-16)如果一次汉明编码中出现了两位及两位以上错误,此时EEPROM纠错模块(2_6)停止对该页数据的读操作,并将该页地址转成包序号存储到错误页地址队列中,或者在一页数据和校验对比不通过时,同样将该页地址转成包序号存储到错误页地址队列中,等待(3-17); (3-17)流程一旦进入(3-17)步骤,说明在轨升级程序存放芯片EEPROM(1-4)存储的当前页数据中出现了无法纠正的错误,该页数据只能通过地面上传才能得以更新;EEPROM纠错模块(2-6)则将该页的起始地址转换成序号,并将包序号写入错误包序号队列中;遥测遥控模块从该队列中读取错误的包序号并下传地面。
5.如权利要求1或2所述的系统,其特征在于,所述加载控制模块(2-9)的配置步骤如下: (9.1)上电后,或需要重新配置时,综合管理FPGA(l-2)先将SRAM型FPGA(1-1)的引脚PR0G_B,INIT_B,RDWR_B拉低,此时置配置程序存储芯片PROM (1_3)的CE和RESET/0E无效; (9.2)当等待时间超过设定阈值TPOR后,综合管理FPGA (1-2)将PR0G_B拉高;PR0G_B拉高后,等待一段时间综合管理FPGA (1-2)将INIT_B拉高; (9.3) INIT_B拉高后,等待几个CLK时钟周期,将SRAM型FPGA(1-1)的CS_B接取反后的配置数据有效信号,同时将配置程序存储芯片PROM(1-3)的RESET/0E和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/0E置为无效,配置完成。
6.如权利要求1或2所述的系统,其特征在于,所述FPGA刷新文件生成模块(4-1)生成FPGA刷新文件的流程为: (6-1)循环检测刷新使能,检测到刷新使能开则进入(6-2),否则继续循环检测; (6-2)开始刷新过程,刷新文件生成模块(4-1)开始接收从配置程序存储芯片PROM(1-3)或在轨升级程序存放芯片EEPROM(1-4)中连续读出配置文件数据,并同时进行(6-3)及后续操作; (6-3)对¢-2)中连续读出数据中进行序列检测,判断读出数据中是否有启动命令序列AA995566,检测到启动命令后进入(6_4),否则继续循环检测; (6-4)检测到启动命令后,开始对读出数据字节进行计数,计数到距配置帧数据1(5-3)有N (N代表刷新文件启动命令集(5-8)的字节数)个字节的位置时,进入¢-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)输出完成以后连续输出一个配置帧大小的全O填充数据(5-10)及其数据有效信号,输出完成后,无缝切换到(6-8); (6-8)从刷新文件命令字ROM(4-2)中读出第一部分刷新结束命令集(5-11),第一部分刷新文件完成,进入出-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),循环以上步骤进行周期刷新。
7.如权利要求1或2所述的系统,其特征在于,所述配置程序存储芯片PR0M(l-3)选用Xilinx公司的XQR17V16反熔丝芯片;所述在轨升级程序存放芯片EEPR0M(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(l-2)选用Actel公司的反熔丝FPGA AX2000。
【文档编号】G06F9/445GK104484214SQ201410851497
【公开日】2015年4月1日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】颜露新, 张天序, 颜钊, 吴康, 陈立群, 钟胜 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1