一种适用商业卫星的FPGA多备份程序加载方法及装置与流程

文档序号:25585697发布日期:2021-06-22 17:00阅读:227来源:国知局
一种适用商业卫星的FPGA多备份程序加载方法及装置与流程

本发明属于计算机领域,特别涉及一种适用商业卫星的fpga多备份程序加载方法及装置。



背景技术:

未来10年全球将发射7000颗小卫星,卫星按照其应用分为通信卫星、遥感卫星、导航卫星,遥感卫星主要分布在低轨(400-1000km)。目前大多数卫星的测控、数传、导航数据处理单元等采用fpga+cpu的灵活架构。然而宇宙中存在各种辐射射线,使得高性能fpga系统受太空射线影响而产生单粒子效应的概率大大提高,并且器件的集成度越高,单粒子效应的影响就越显著,这严重影响和制约着航天电子仪器设备的正常工作。

常规航天级fpga可靠性措施采用控制器fpga,采用selectmap加载方式,所用控制器一般为acltel公司反熔丝或者flash结构fpga或者专用fpga加载控制芯片(如上海复旦微电子公司抗辐射回读刷新芯片jfmrs01rh)。这种系统过于庞大,且价格昂贵,成本在2万人民币以上,同时需要额外功耗1w以上,不适合商业航天的应用。



技术实现要素:

本发明针对现有技术中存在的技术问题,提供一种适用商业卫星的fpga多备份程序加载方法及装置,采用多个存储单元,使用arm处理器来选择存储单元,在部分存储单元异常时,仍能保证fpga正常加载,不影响任务执行,同时在fpga程序运行异常时,可以通过使用cpu监控办法,控制fpga重新加载,具有成本低、功耗小的优点。

本发明采用的技术方案是:一种适用商业卫星的fpga多备份程序加载方法,包括以下步骤:

步骤1:arm处理器控制fpga单元加电,同时向选择单元发送片选使能信号,向fpga单元发送加载控制信号;

步骤2:fpga单元向选择单元发送片选信号;选择单元向对应的存储单元发送片选信号;

步骤3:fpga单元读取该存储单元的信息,进行加载:若加载成功,向arm处理器发送加载完成指示信号;若加载未成功,等待一段时间;

步骤4:arm处理器开始监控fpga单元状态;若一段时间内,arm处理器未收到fpga单元发送的遥测信息,arm处理器控制fpga单元断电,并重复步骤1,选择另一个存储单元用于fpga单元加载。

优选的,每次步骤1中,arm处理器发出的片选使能信号不同。

本发明采用的技术方案还是:一种适用商业卫星的fpga多备份程序加载装置,包括选择单元和存储单元,

所述存储单元与fpga单元连接,所述存储单元用于存储fpga单元的配置代码;所述存储单元的数量不止一个;

所述选择单元分别与存储单元、fpga单元和arm处理器连接,所述选择单元用于根据arm处理器和fpga单元的信号,选择一个存储单元用于fpga单元的加载。

优选的,所述选择单元包括若干通道,每个通道均与fpga单元、arm处理器和存储单元连接。

优选的,所述通道的结构均相同,每个通道对应一个存储单元。

优选的,所述通道为缓冲门。

优选的,所述存储单元的数量为2-4个。

优选的,所述存储单元均采用串行flash存储芯片,所述选择单元采用四总线缓冲门。

优选的,串行flash存储芯片的型号为n25q128,2脚、3脚、5脚、7脚、6脚接fpga单元;四总线缓冲门的型号为sn74alvc125pw,每个通道的管脚oe接arm处理器,输出y端口接串行flash存储芯片的1脚,输入a端口接fpga单元。

与现有技术相比,本发明所具有的有益效果是:

1.本发明在电路上只需要增加一个总线复用芯片、2个或更多的存储芯片(存储备份程序),即可实现程序多备份加载功能。无需复杂的fpga加载专用控制芯片,所需额外功耗很小,适用于商业航天领域。

2.本发明配置控制arm只需3个普通io口,适用单片机实现,例如stm32系列。

3.本发明通过arm实现系统fpga监控功能,若fpga工作异常可自动切换选择其它fpga存储器,并重新加载fpga程序。本发明采用多个代码存储器,每个存储器存储代码可以一样也可以不一样。

4.本发明的fpga配置采用masterspi模式,无需采用复杂的selectmap加载方式,总线宽度支持x1,x2,x4。适用于xilinx公司7系列fpga,如xc7a200t/xc7k325t等。

5.本发明所用arm为工业级产品,但具备长期飞行经历,且通过看门狗电路防止单粒子翻转导致的程序跑飞。

附图说明

图1为本发明实施例的加载装置的结构框图;

图2为本发明实施例的加载方法的流程图;

图3为本发明实施例的加载装置的电路图;

图4为本发明实施例的加载过程的流程图。

图中,1-选择单元,2-存储单元,3-fpga单元,4-arm处理器。

具体实施方式

为使本领域技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作详细说明。

本发明的实施例提供了一种适用商业卫星的fpga多备份程序加载装置,如图1所示,其包括选择单元1和存储单元2。所述存储单元2与fpga单元3连接,所述存储单元2用于存储fpga单元3的配置代码;所述存储单元2的数量为三个;所述选择单元1分别与存储单元2、fpga单元3和arm处理器4连接,所述选择单元1用于根据arm处理器4和fpga单元3的信号,选择一个存储单元2用于fpga单元3的加载。所述选择单元1包括三通道,每个通道均与fpga单元3、arm处理器4和存储单元2连接。所述通道的结构均相同,每个通道对应一个存储单元2。

本发明的实施例提供了还一种适用商业卫星的fpga多备份程序加载方法,如图2所示,包括以下步骤:

步骤1:arm处理器4向选择单元1的三个通道分别发送片选使能信号1-3,片选使能信号1-3中只有一个有效,同时向fpga单元3发送加载控制信号prom;

步骤2:fpga单元3向选择单元1的三个通道发送片选信号;选择单元1的三个通道向对应的存储单元2发送片选信号;

步骤3:fpga单元3读取该存储单元2的信息,进行加载:若加载成功,fpga单元3向arm处理器4发送加载完成指示信号done;若加载未成功,等待一段时间;

步骤4:arm处理器4开始监控fpga单元3状态,arm处理器4持续接收fpga单元3发送的遥测信息;若一段时间内,arm处理器4未收到fpga单元3发送的遥测信息,arm处理器4控制fpga单元3断电,并重复步骤1,arm处理器4发出与前次不同的片选使能信号,选择另一个存储单元2用于fpga单元3加载。

以fpga单元3采用xilinx公司fpga芯片xc7a200t-2fbg484为例介绍电路设计,电路结构如图3所示。其中fpga芯片的配置管脚m0,m1,m2配置状态为100,即选择masterspi模式。

fpga配置代码的存储单元2为三个,选用三片相同的串行flash存储芯片(图中u2,u3,u4),型号为n25q128,厂家为镁光。

3个串行flash存储芯片的电源vcc(8脚),时钟输入(6脚),数据线d0-d4(2脚、3脚、5脚、7脚)均连接在一块,并与fpga芯片相连。3个串行flash存储芯片片选输入端分别接总线复用芯片选用sn74alvc125pw的输出端口y。

选择单元1采用四总线缓冲门sn74alvc125pw,其具有一个空闲的通道,其余三个通道功能为:当使能管脚oe为低时,输出y端口与输入a端口一样。若使能管脚oe为高,输出y端口为高阻状态。

四总线缓冲门sn74alvc125pw的使能管脚由arm芯片控制。默认端口1有效,即en_qspi1为低。同一时刻en_qspi1、en_qspi2、en_qspi3只有一个为低,另2个为高。en_qspi为低,对应的串行flash存储芯片被选作为fpga加载存储flash。3个flash的片选(qspi_cs_b1-qspi_cs_b3)分别接其3个通道的y端口,3个a端口均接fpga输出的qspi_cs_b信号。qspi_cs_b1-qspi_cs_b3和qspi_cs_b均接4.7k上拉电阻。

本实施例的额外成本低,总造价不足20元,额外功率消耗不足0.1w,额外面积约7mm*6mm,特别适用于商业航天卫星。

本实施例所采用的fpga多备份程序加载方法,如图4所示,包括以下步骤:

步骤1:arm处理器4上电后初始化;向选择单元1发送片选使能信号:en_qspi1、en_qspi2、en_qspi3,状态为011,选择flash存储芯片u2为fpga单元3的加载flash;同时向fpga单元3发送加载控制信号:program_b低脉冲信号;

步骤2:fpga单元3向选择单元1发送片选信号:qspi_cs_b;选择单元1向flash存储芯片u2发送片选信号:qspi_cs_b1;

步骤3:fpga单元3读取该flash存储芯片u2的信息,进行加载:arm处理器4等待fpga单元3加载完成done信号拉高,若拉高说明fpga单元3加载正常,arm处理器4程序运行进入main函数,并开始监控fpga单元3状态。如果fpga单元3加载完成done信号20s一直不拉高,说明fpg单元a加载失败,arm处理器4程序运行也进入main函数,并开始监控fpga状态;

步骤4:正确情况下(fpga单元3正常加载)fpga单元3每1s均会通过串口给arm处理器4发送遥测信息,如果连续60sarm处理器4未收到fpga单元3的遥测信息,则将fpga单元3电源断电。同时arm处理器4通过选择en_qspi1、en_qspi2、en_qspi3状态为101,选择flash存储芯片u3为fpga单元3的加载flash。给fpga单元3一个program_b低脉冲信号,fpga单元3重新加载,同时arm处理器4进入监控状态。若fpga单元3仍然加载失败,arm处理器4通过选择en_qspi1、en_qspi2、en_qspi3状态为110,重新选择选择flash存储芯片u4重新加载fpga。如此循环。

多备份程序烧录方法:

1.对于烧录相同代码步骤:

a.使用isedesignsuite14.7软件将所需verilog/vhdl代码生成bit文件。

b.使用impact将bit文件转化为mcs文件。

c.使用arm处理器4选择flash存储芯片u2,并使用impact将mcs烧入flash存储芯片u2中。

d.使用arm处理器4选择flash存储芯片u3,并使用impact将mcs烧入flash存储芯片u3中。

e.使用arm处理器4选择flash存储芯片u4,并使用impact将mcs烧入flash存储芯片u4中。

f.烧录工作完成。

2.对于烧录不同代码步骤:

a.使用isedesignsuite14.7软件将所需verilog/vhdl代码1生成bit文件1。

b.使用impact将bit文件转化为mcs1文件。

c.使用isedesignsuite14.7软件将所需verilog/vhdl代码2生成bit文件2。

d.使用impact将bit文件转化为mcs2文件。

e.使用isedesignsuite14.7软件将所需verilog/vhdl代码3生成bit文件3。

f.使用impact将bit文件转化为mcs3文件。

g.其中代码1,代码2,代码3,可以是3个种不同代码,或者只有2种不同代码。

h.使用arm处理器4选择flash存储芯片u2,并使用impact将mcs1烧入flash存储芯片u2中。

i.使用arm处理器4选择flash存储芯片u3,并使用impact将mcs2烧入flash存储芯片u3中。

j.使用arm处理器4选择flash存储芯片u4,并使用impact将mcs3烧入flash存储芯片u4中。

k.烧录工作完成。

以上通过实施例对本发明进行了详细说明,但所述内容仅为本发明的示例性实施例,不能被认为用于限定本发明的实施范围。本发明的保护范围由权利要求书限定。凡利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,在本发明的实质和保护范围内,设计出类似的技术方案而达到上述技术效果的,或者对申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖保护范围之内。

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