低代价高可靠的星载单机多片SRAM型FPGA在轨重构系统及方法与流程

文档序号:17721295发布日期:2019-05-22 02:11阅读:233来源:国知局
低代价高可靠的星载单机多片SRAM型FPGA在轨重构系统及方法与流程

本发明属于星载电子系统抗辐射加固技术领域。



背景技术:

sram型fpga具有资源丰富、性能优异并且可以反复编程的特点,在星载电子设备中广泛使用。一方面,sram型fpga中数量巨大的配置存储区在空间环境中容易发生单粒子翻转,因此在轨应用时必须采用“三模冗余+定时刷新”技术。另一方面,sram型fpga可以反复编程的特性为卫星发射后在轨维护提供了技术途径,通过采用在轨重构技术可以实现星载电子设备的故障修复或功能升级。当前,已有部分航天器成功应用sram型fpga在轨重构技术实现了在轨故障修复。但是,传统的sram型fpga在轨重构方法要求同时存储原始配置数据和重构配置数据,存储资源开销较大。特别是随着系统复杂度的增加,sram型fpga器件规模和配置数据也在不断增大,对星上存储带来很大压力。本发明提出了一种低代价高可靠的星载单机多片sram型fpga在轨重构方法,可用于以深空探测为代表的即要求重量功耗体积小,又要求可靠性高的星载单机,实现在轨重构和抗单粒子翻转能力提升。本发明涉及的背景技术主要包括:

1、sram型fpga器件架构

sram型fpga包含大量的可编程逻辑资源,如可编程逻辑块、可编程io、bram、dsp和布线资源等。可编程逻辑资源实现的功能和连接关系由配置存储区确定。用户通过向配置存储区写入配置数据即可使fpga实现一定的功能。因此,sram型fpga可以看作由可编程资源和配置存储区组成的两层结构,可编程资逻辑源与配置存储区的关系如图1所示:

sram型fpga的配置数据存储在片外存储器中,上电后通过将配置数据加载到sram型fpga中的配置存储区中使其开始工作。

2、sram型fpga重构技术

sram型fpga是一种可以反复编程的器件,其功能由配置数据决定。利用这个特点,在卫星发射后,通过向sram型fpga中写入新的配置数据,就可以实现在轨重构。根据配置数据存储方式的不同,可以分为预置型在轨重构和上注型在轨重构。预置型在轨重构是指用于重构的配置数据在卫星发射前已在航天器上存储好,实施在轨重构时只需要地面发送重构指令即可。上注型在轨重构是指用于重构的配置数据在卫星发射前还没有确定,实施在轨重构时地面需要先将重构配置数据发送至星上设备,然后发送重构指令实施重构。

两种重构方法比较而言,预置型在轨重构实施简单,但是灵活性不足;上注型在轨重构实施较为复杂,但是灵活性更好。因此,目前上注型在轨重构是航天器普遍采用的在轨重构方法。

随着星上单机数字处理功能越来越复杂,一台单机往往采用多片sramfpga作为核心数字处理器件。传统的多片sram型fpga在轨重构系统一般采用n组原始配置数据存储器prom,每组包含m片prom,用于存储上电后默认加载的原始配置数据;采用重构配置数据存储器flash,用于存储用于在轨重构的重构配置数据

原始配置数据是星载单机上电后默认加载的配置数据,也是单机异常后用于重加载的配置数据,存储要求是非易失和高可靠,因此一般采用prom。prom是可编程只读存储器,掉电后数据不会丢失,并且属于单粒子翻转免疫器件,可以保证配置数据的完整性和正确性。但是prom容量较小,对于规模较大的sram型fpga,需要多片prom级联才能存储一个sram型fpga的配置数据。

多片prom级联时,所有prom的数据管脚d[0:7]、时钟管脚clk和使能/复位管脚oe/reset做复用处理,汇聚后连接到sram型fpga的selectmap口,但是第一片prom的片选管脚ce连接到sram型fpga的done管脚,而第二片rpom的片选管脚ce连接到第一片rpom的ceo管脚,以此类推。当第一片prom的数据读完后,其ceo信号由高变低,使第二片prom的片选信号有效,开始读取第二片prom的数据,以此类推,直至最后一片rpom数据读取完毕。以两片rpom为例,联使用时的连接关系如图2所示。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提出了一种低代价高可靠的星载单机多片sram型fpga在轨重构系统及方法。

本发明的技术解决方案是:一种低代价高可靠的星载单机多片sram型fpga在轨重构系统,包括用户功能配置数据存储器flash、重构接口配置数据存储器prom、在轨重构控制电路、外部重构接口电路和多片待重构sram型fpga;

从多片待重构sram型fpga中选取一片作为重构接口fpga,在重构接口fpga内构建外部重构接口电路;

外部重构接口电路用于接收地面上注的重构用户功能配置数据和重构指令,将接收的重构用户功能配置数据和重构指令生成重构遥测数据包并发送至在轨重构控制电路;同时将星上的重构遥测信息下传给地面;

重构接口配置数据存储器prom,用于存储重构接口fpga的重构接口功能配置数据;

用户功能配置数据存储器flash中设置不同的空间分别与每个待重构sram型fpga相对应,用于预先存储每个待重构sram型fpga的原始用户功能配置数据或者存储在轨重构时使用的重构用户功能配置数据;

在轨重构控制电路根据地面遥控指令的控制,负责与重构接口电路之间的通信、重构配置数据的存储以及待重构sram型fpga的加载和刷新。

优选的,所述的外部重构接口电路负责接收地面上注的重构配置数据及指令,并对其进行校验,校验结果正确则将重构配置数据及指令转发至在轨重构控制电路,不正确则向地面返回校验错误信息,通知地面重新上注;同时接收在轨重构控制电路发来的重构遥测信息,打包发送至地面。

优选的,所述的在轨重构控制电路通过下述方式实现:

卫星在轨开机后,在轨重构控制电路默认从用户功能配置数据存储器flash中读取原始用户功能配置数据对所有待重构fpga进行上电加载,加载成功后在轨重构控制电路转入刷新模式,周期性从用户功能配置数据存储器flash中读取原始用户功能配置数据对待重构fpga进行刷新;

地面需要对待重构fpga进行重构时,在轨重构控制电路根据接收的指令从重构接口配置数据存储器rpom中读取重构接口配置数据对重构接口fpga进行配置,使重构接口fpga从用户功能模式切换至重构接口模式,并且在配置成功后,周期性从重构接口配置数据存储器prom中读取重构接口配置数据对重构接口fpga进行刷新;

接收由外部重构接口电路转发的通过星地链路上注的待重构sram型fpga的重构用户功能配置数据,并写入用户功能配置数据存储器flash,覆盖掉原始用户功能配置数据;利用上述方式处理所有需要重构的sram型fpga的重构用户功能配置数据,包括重构接口fpga;

在轨重构控制电路根据地面发送的指令从用户功能配置数据存储器flash中读取重构用户功能配置数据对待重构fpga进行配置,使得待重构fpga从原始用户功能切换为重构用户功能;

最后,在待重构fpga配置成功后,周期性从用户功能配置数据存储器flash中读取重构用户功能配置数据对待重构fpga进行刷新。

优选的,所述的在轨重构控制电路包括内部重构接口模块、加载刷新管理模块、prom读控制模块、flash读写控制模块;

内部重构接口模块接收外部重构接口模块发来的通过校验的重构配置数据和指令,并将重构配置数据转发至flash读写控制模块,将重构指令转发至加载刷新管理模块;此外,内部重构接口模块负责生成重构遥测信息并发送给外部重构接口模块;

flash读写控制模块将重构用户功能配置数据根据flash器件的接口时序要求写入用户功能配置数据存储器flash;根据加载刷新管理模块的指令从flash中读取用户功能配置数据并发送至加载刷新管理模块;

加载刷新管理模块根据接收的重构指令发送指令至flash读写控制模块,或者在刷新模式周期性的发送指令至flash读写控制模块;按照待重构fpga器件配置存储区访问接口的时序要求产生控制信号,将重构用户功能配置数据写入待重构fpga的配置存储区,实现fpga上电加载、fpga刷新和fpga在轨重构。

优选的,所述的在轨重构控制电路还包括edac编码模块和edac校验模块;

由edac编码模块先将内部重构接口模块发出的重构用户功能配置数据进行edac编码,生成校验值;然后再将重构用户功能配置数据和校验值一起发送给flash读写控制模块;

edac校验模块对flash读写控制模块发送至加载刷新管理模块的重构用户功能配置数据和校验值进行校验,检测到单比特错误时,纠正错误后将正确数据输出给加载刷新管理模块;检测到两比特错误时,产生中断指示发送给加载刷新管理模块,由加载刷新管理模块根据中断指示信号控制待重构fpga的加载及刷新操作。

优选的,用户功能配置数据存储器flash中各个待重构fpga对应的存储空间分为两部分,前面3/4存储空间用于存储重构用户功能配置数据,后面1/4存储空间用于存储校验值。

优选的,所述的加载刷新管理模块根据edac校验模块发送的中断指示信号控制待重构fpga的加载及刷新操作具体通过下述方式实现:

在加载过程中,如果接收到中断指示信号表明某片待重构fpga出现两比特错误,则终止当次加载,等待预设的时间后,重新进行记载:即重新重新发送指令至flash读写模块,flash读写模块重新从flash中读取用户功能配置数据至edac校验模块;若连续预设的次数加载均不成功即均接收到中段指示信号,则不再对该片fpga进行加载,同时向地面报告错误信息;

在刷新过程中,如果某片待重构fpga出现两比特错误,则终止当次刷新,刷新间隔到后,再次刷新;如果该fpga连续预设的次数出现两比特错误,则不再对该fpga进行刷新,同时向地面报告错误信息。8、根据权利要求4或5所述的系统,其特征在于:所述的在轨重构控制电路采用asic或反熔丝fpga器件实现。

优选的,所述的外部重构接口电路采用三模冗余技术及动态刷新技术进行加固设计以提升抗单粒子翻转能力。

一种低代价高可靠的星载单机多片sram型fpga在轨重构方法,通过下述方式实现:

第一步、在卫星发射前,选定一片待重构fpga作为重构接口fpga,实现外部重构接口模块功能,并将其重构接口配置数据固化于prom中,同时将所有n片待重构fpga的原始用户功能配置数据固化于flash中的对应空间;

第二步、卫星发射后,单机开机默认从flash中读取原始用户功能配置数据依次对n片fpga进行加载,n片sram型fpga的原始用户功能配置数据全部加载完成后,单机开始正常工作,并进入刷新模式;

第三步、需要实施在轨重构时,首先确定需要在轨重构的对象,在地面生成在轨重构对象的重构用户功能配置数据;

第四步、星上切换至在轨重构模式,地面通过发送遥控指令使得重构接口fpga加载prom中存储的重构接口功能配置数据,实现在轨重构接口电路功能,建立星地之间的上注通道,并在配置成功后周期性从prom读取配置数据对重构接口fpga进行刷新;

第五步、地面通过星地链路将在轨重构对象的重构用户功能配置数据上注至星上数字处理单机,此时数字处理单机中的重构接口fpga负责接收地面上注的重构用户功能配置数据并转发给在轨重构控制电路,最终写入在轨重构对象对应的flash空间中并覆盖空间中原有数据;

第六步、如果其它sram型fpga也需要重构,重复第五步将重构用户功能配置数据写入对应的flash存储空间,直到所有需要重构sram型fpga对应的flash存储空间都完成更新;

第七步、地面发送开始重构指令使在轨重构控制电路从flash中读取重构用户功能配置数据依次加载至对应的sram型fpga,实现n片sram型fpga的功能更新,从而实现星载数字处理单机的在轨功能重构;

第八步、重构完成后,在轨重构控制电路进入刷新模式,周期性地从flash读取数据对待重构sram型fpga进行刷新。

本发明与现有技术相比有益效果为:

针对以多片sram型pga为核心的数字处理单机,首先将存储原始配置数据的rpom存储器由多组减为一组实现存储资源低开销;然后将重构接口模块划分为外部重构接口模块和内部重构接口模块,其中外部重构接口模块采用一片待重构fpga实现,并进行三模冗余及定时刷新加固设计,既保证了接口电路的可靠性,也提升了接口电路的灵活性,内部重构接口模块在在轨重构电路中实现,一般采用asic或反熔fpga,可以实现设计固化,提升模块成熟度和复用性;其次选择单粒子翻转免疫的prom存储器存储重构接口fpga的配置数据,确保重构上注通道的可靠性;接下来对flash存储器中的重构配置数据进行edac编码及校验,提升数据可靠性;最后在轨重构控制电路通过加载及刷新策略提升的待重构fpga的可靠性,策略包括两比特错误错误终止加载或刷新和一片待重构fpga最多进行预设次数的加载或刷新。

本发明具有低代价、高可靠性的特点,特别适用于以深空探测为代表的即要求重量功耗体积小,又要求可靠性高的星载单机,实现在轨重构和抗单粒子翻转能力提升。

附图说明

图1为sram型fpga可编程资源与配置存储区关系示意图;

图2为prom级联连接关系示意图;

图3本发明多片sram型fpga在轨重构系统架构示意图;

图4为本发明用户功能配置数据存储器flash存储空间示意图;

图5为本发明方法流程图。

具体实施方式

下面结合附图及实例对本发明作详细说明。

如图3所示,本发明系统包括用户功能配置数据存储器flash、重构接口配置数据存储器prom、在轨重构控制电路、外部重构接口电路和多片待重构sram型fpga;

从多片待重构sram型fpga中选取一片作为重构接口fpga,在重构接口fpga内构建外部重构接口电路;

外部重构接口电路(图3中的外部重构接口模块)用于接收地面上注的重构用户功能配置数据和重构指令,并对其进行校验,校验结果正确则将重构配置数据及指令转发至内部重构接口模块,不正确则向地面返回校验错误信息,通知地面重新上注;同时接收内部重构接口模块发来的重构遥测信息,打包发送至地面。

重构接口配置数据存储器采用单粒子翻转免疫的prom,用于存储重构接口fpga的重构接口功能配置数据;

用户功能配置数据存储器采用flash,用于预先存储每个待重构sram型fpga的原始用户功能配置数据或者存储在轨重构时使用的重构用户功能配置数据;重构配置数据存储器存储空间与sram型fpga的对应关系可以通过在轨重构控制电路根据用户需要灵活设计,也就是说任意一个重构配置数据存储器存储空间可以对应任意一片sram型fpga。

在轨重构控制电路根据地面遥控指令的控制,负责与重构接口电路之间的通信、重构配置数据的存储以及待重构sram型fpga的加载和刷新。一般采用asic或反熔丝fpga等高可靠器件实现。

卫星在轨开机后,在轨重构控制电路默认从用户功能配置数据存储器flash中读取原始用户功能配置数据对所有待重构fpga进行上电加载,加载成功后在轨重构控制电路转入刷新模式,周期性从用户功能配置数据存储器flash中读取原始用户功能配置数据对待重构fpga进行刷新;

地面需要对待重构fpga进行重构时,在轨重构控制电路根据从外部重构接口模块发送的指令从重构接口配置数据存储器rpom中读取重构接口配置数据对重构接口fpga进行配置,使重构接口fpga从用户功能模式切换至重构接口模式,并且在配置成功后,周期性从重构接口配置数据存储器prom中读取重构接口配置数据对重构接口fpga进行刷新;

接收由外部重构接口电路转发的通过星地链路上注的待重构sram型fpga的重构用户功能配置数据,并写入用户功能配置数据存储器flash,覆盖掉原始用户功能配置数据;利用上述方式处理所有需要重构的sram型fpga的重构用户功能配置数据,包括重构接口fpga;

在轨重构控制电路根据地面发送的指令从用户功能配置数据存储器flash中读取重构用户功能配置数据对待重构fpga进行配置,使得待重构fpga从原始用户功能切换为重构用户功能;

最后,在待重构fpga配置成功后,周期性从用户功能配置数据存储器flash中读取重构用户功能配置数据对待重构fpga进行刷新。

具体的,在轨重构控制电路包括内部重构接口模块、加载刷新管理模块、prom读控制模块、flash读写控制模块;

内部重构接口模块接收外部重构接口模块发来的通过校验的重构配置数据和指令,并将重构配置数据转发至flash读写控制模块,将重构指令转发至加载刷新管理模块;此外,内部重构接口模块负责生成重构遥测信息并发送给外部重构接口模块;

flash读写控制模块将重构用户功能配置数据根据flash器件的接口时序要求写入用户功能配置数据存储器flash;根据加载刷新管理模块的指令从flash中读取用户功能配置数据并发送至加载刷新管理模块;

加载刷新管理模块根据接收的重构指令发送指令至flash读写控制模块,或者在刷新模式周期性的发送指令至flash读写控制模块;按照待重构fpga器件配置存储区访问接口的时序要求产生控制信号,将重构用户功能配置数据写入待重构fpga的配置存储区,实现fpga上电加载、fpga刷新和fpga在轨重构。

为了确保flash存储器中重构配置数据的正确性,在轨重构控制电路还包括edac编码模块和edac校验模块;

由edac编码模块先将内部重构接口模块发出的重构用户功能配置数据进行edac编码,每32位重构配置数据生成8比特校验位;然后再将重构用户功能配置数据和校验值一起发送给flash读写控制模块;edac编码多项式如下:

e.d0=d0^d4^d6^d7^d8^d9^d11^d14^d17^d18^d19^d21^d26^d28^d29^d31

e.d1=d0^d1^d2^d4^d6^d8^d10^d1.2^d16^d17^d18^d20^d22^d24^d26^d28

e.d2=d0^d3^d4^d7^d9^d10^d13^d15^d16^d19^d20^d23^d25^d26^d29^d31

e.d2=~e.d2

e.d3=d0^d1^d5^d6^d7^d11^d12^d13^d16^d17^d21^d22^d23^d27^d28^d29

e.d3=~e.d3

e.d4=d2^d3^d4^d5^d6^d7^d14^d15^d18^d19^d20^d21^d22^d23^d30^d31

e.d5=d8^d9^d10^d11^d12^d13^d14^d15^d24^d25^d26^d27^d28^d29^d30^d31

e.d6=d0^d1^d2^d3^d4^d5^d6^d7^d24^d25^d26^d27^d28^d29^d30^d31

e.d7=0

edac编码模块产生的校验位和配置数据一起按字节写入用户功能配置数据存储器flash。flash中各个待重构fpga对应的存储空间分为两部分,前面3/4存储空间用于存储配置数据,后面1/4存储空间用于存储校验值。flash存储空间分配如图4所示。

edac校验模块对flash读写控制模块发送至加载刷新管理模块的重构用户功能配置数据和校验值进行校验,对于32比特数据而言具备纠正单比特错误和检测两比特错误的能力。edac模块检测到单比特错误时,直接纠正错误并将正确的配置数据发送给加载刷新管理模块;检测到两比特错误时,产生中断指示发送给加载刷新管理模块,由加载刷新管理模块根据中断指示信号控制待重构fpga的加载及刷新操作。

加载刷新控制电路根据edac校验模块发送的中断指示信号控制待重构fpga的加载及刷新操作。在加载过程中,如果某片待重构fpga出现两比特错误,则终止当次加载,等待1秒中后重新对该片fpga进行加载,最多加载3次,连续3次加载均不成功,则不再对该片fpga进行加载,只对其余待重构fpga进行加载,同时向地面报告错误信息,地面可以对加载失败的fpga重新上注用户功能配置数据。在刷新过程中,如果某片待重构fpga出现两比特错误,则终止当次刷新,刷新间隔到后,再次刷新;如果该fpga连续三次出现两比特错误,则不再对该fpga进行刷新,只对其余待重构fpga进行刷新,同时向地面报告错误信息,地面可以对刷新失败的fpga重新上注用户功能配置数据。

重构接口电路设计存在两个方面的需求:第一、可靠性,作为重构数据和指令的星地通道,如果重构接口电路出现故障,将造成单机重构功能丧失的严重后果;第二、灵活性,由于不同型号所采用的星地重构通道往往在数据带宽、接口形式、重构数据协议等方面存在不同,因此重构接口电路需要适应不同的应用要求。本发明外部重构接口电路采用三模冗余技术及动态刷新技术进行加固设计以提升抗单粒子翻转能力。

图5给出了本发明在轨重构流程,具体步骤如下:

第一步、假设在卫星发射前将第一片sram型fpga的重构接口功能配置数据固化于prom中,同时将第n个(n=1,2,3…n)sram型fpga的原始用户功能配置数据固化于对应的flash(重构配置数据存储器与sram型fpga的对应关系由用户定义)。

第二步、卫星发射后,单机开机默认从flash加载,n片sram型fpga的原始用户功能配置数据全部加载完成后,单机开始正常工作,并进入刷新模式;

第三步、需要实施在轨重构时,首先确定需要在轨重构的对象(此处以sramfpga-2为例),在地面生成sramfpga-2的重构用户功能配置数据;

第四步、星上切换至在轨重构模式,地面通过发送遥控指令使得sramfpga-1加载prom中存储的重构接口功能配置数据,实现在轨重构接口电路功能;

第五步、地面通过星地链路将在轨重构对象sramfpga-2的重构用户功能配置数据上注至星上数字处理单机,此时数字处理单机中的sramfpga-1作为重构接口电路使用,负责接收地面上注的重构数据并转发给在轨重构控制电路,最终写入sramfpga-2对应的flash中。

第六步、如果其它sram型fpga也需要重构,重复第五步将重构用户功能配置数据写入对应的flash,直到所有需要重构sram型fpga对应的flash都完成更新;

第七步、地面发送指令使在轨重构控制电路从flash中读取新的配置数据加载至各个sram型fpga,实现n片sram型fpga的功能更新,从而实现星载数字处理单机的在轨功能重构;

第八步、开启sram型fpga刷新,周期性地从flash读取数据对待重构sram型fpga进行刷新。

本发明未详细说明部分属于本领域技术人员公知常识。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1