星载FPGA重构方法
文献发布时间:2023-06-19 13:26:15
技术领域
本发明涉及航空航天技术领域,特别涉及一种星载FPGA重构方法。
背景技术
随着我国航天的快速发展,卫星的功能和复杂度大幅度提升。为了提高航天器的可靠性和灵活性,对星载软件也提出了更高的要求。SRAM型FPGA是目前卫星上广泛应用的器件,受任务和空间环境的影响,FPGA需要具备在轨重构功能,可对FPGA进行软件重构。当前,大部分在轨运行的FPGA可进行在轨重构,但受天地链路的影响,重构数据包可能出现丢失或被破坏的情况,导致重构数据出现错误。同时,随着卫星复杂度的提升,FPGA程序的大小也随之提升,受天地链路的限制,导致传输过程较长,增加了重构数据包出现错误的可能性,FPGA重构失败风险也随之增大。
发明内容
本发明的目的是为了克服已有技术的缺陷,提出一种星载FPGA重构方法,在重构数据的传输过程中进行逐级校验,提高重构数据传输的稳定性。
为实现上述目的,本发明采用以下具体技术方案:
本发明提供的星载FPGA重构方法,包括如下步骤:
S1、搭建星载FPGA重构系统;其中,星载FPGA重构系统包括中央处理器、SDRAM芯片、刷新配置芯片、主份NorFlash芯片和备份NorFlash芯片;
S2、将地面测控中心发送的重构数据以分段传输方式上传至中央处理器,待中央处理器完成数据校验后按序存储至SDRAM芯片;其中,中央处理器的数据校验包括如下三个方面:
(1)对上传的每段重构数据的完整性进行校验;
(2)对上传的每段重构数据中的每个重构数据包的重复性和正确性进行校验;
(3)对所有段的重构数据的有效性进行校验;
S3、通过中央处理器控制刷新配置芯片对备份NorFlash进行擦除和烧写操作,将SDRAM芯片内存储的重构数据写入备份NorFlash;
S4、中央处理器根据地面测控中心发送的重构指令,向刷新配置芯片发出寄存器修改指令,通过修改刷新配置芯片中的寄存器的值,从引导主份NorFlash芯片存储的FPGA原始数据切换为引导备份NorFlash芯片存储的重构数据。
优选地,重构数据包的格式包括数据类型、指令序列计数号及包校验和。
优选地,在对每个重构数据包的重复性和正确性进行校验的过程中,提取当前重构数据包中的数据类型、指令序列计数号及包校验和,与上一个重构数据包的数据类型、指令序列计数号及包校验和进行比较,若相一致则判定当前重构数据包重复并丢弃,若不一致则接收当前重构数据包并计算当前重构数据包的包校验和且与从当前重构数据包中提取出的包校验和进行比较,若两个包校验和相一致则判断当前重构数据包正确,对当前重构数据包中的有效重构数据进行存储。
优选地,在按序存储重构数据包的过程中,根据每个重构数据包的指令序列计数号计算每个重构数据包在SDRAM芯片中的存储位置,再将每个重构数据包中的有效重构数据存储至SDRAM芯片中对应的存储位置。
优选地,在每段重构数据上传完毕后,向中央处理器发送携带段校验和的段结束指令,当中央处理器对每段重构数据的完整性进行校验时,计算当前段重构数据的段校验和,与段结束指令携带的段校验和进行比较,若两个段校验和相一致则判定当前段重构数据完整,若两个段校验和不一致则计算丢失的重构数据包中的指令序列计数号并下传至地面测控中心,地面测控中心根据下传的指令序列计数号将丢失的重构数据包重新上传至中央处理器。
优选地,在尾段重构数据上传完毕后,向中央处理器发送携带文件校验和的文件结束指令,当中央处理器对所有段的重构数据的有效性进行校验时,计算所有段的重构数据的文件校验和并与文件结束指令携带的文件校验和进行比较,若两个文件检验和相一致判定所有段的重构数据有效。
优选地,在对备份NorFlash进行擦除和烧写操作的过程中,先通过中央处理器向刷新配置芯片发送擦除指令对备份NorFlash进行擦除,再通过中央处理器将SDRAM芯片内存储的重构数据以指令形式发送给刷新配置芯片,写入擦除的备份NorFlash中。
与现有技术相比,本发明在对FPGA进行在轨重构时进行逐级校验,避免重构数据包在传输过程中出现丢包、被破坏等错误情况,提高重构数据传输的稳定性。
附图说明
图1是根据本发明实施例提供的星载FPGA重构的结构示意图;
图2是根据本发明实施例提供的星载FPGA重构方法的流程示意图;
图3是根据本发明实施例提供的重构数据包的校验过程示意图;
图4是根据本发明实施例提供的每段重构数据的校验过程示意图;
图5是根据本发明实施例提供的所有段的重构数据的校验过程示意图;
图6是根据本发明实施例提供的重构数据包的存储过程示意图;
图7是根据本发明实施例提供的FPGA重构的流程示意图;
图8是根据本发明实施例提供的FPGA重构引导的流程示意图。
其中的附图标记包括:中央处理器1、SDRAM2、刷新配置芯片3、主份NorFlash4、备份NorFlash5、FPGA6。
具体实施方式
在下文中,将参考附图描述本发明的实施例。在下面的描述中,相同的模块使用相同的附图标记表示。在相同的附图标记的情况下,它们的名称和功能也相同。因此,将不重复其详细描述。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,而不构成对本发明的限制。
本发明实施例提供的星载FPGA重构方法,主要分为四个步骤:
一、搭建硬件系统
搭建的硬件系统为星载FPGA重构系统,该星载FPGA重构系统的结构如图1所示。星载FPGA重构系统包括中央处理器1、SDRAM2、刷新配置芯片3、主份NorFlash4和备份NorFlash5,中央处理器1用于接收地面测控中心发送的各类指令及重构数据,SDRAM2用于存储地面发送的重构数据,刷新配置芯片3用于FPGA6进行引导和重构,主份NorFlash4用于存储FPGA的原始数据,备份NorFlash5用于在重构FPGA时写入重构数据。
二、数据传输
地面测控中心通发送的各类指令和重构数据通过天地链路上传至中央处理器1,中央处理器1对上传的重构数据进行多次校验,防止重构数据包出现错误,例如丢包、被破坏等情况。通过校验的重构数据包按照序号存储至SDRAM2中对应的位置。
三、FPGA重构
本发明采用刷新配置芯片3对FPGA6进行重构,具体实现方式为:刷新配置芯片3根据中央处理器1发送的擦除指令对备份NorFlash5进行擦除和烧写,将重构数据写入备份NorFlash5。
四、FPGA重构引导
通过修改刷新配置芯片3中寄存器的指令改变引导顺序,从引导主份NorFlash4存储的原始数据改为引导备份NorFlash5存储的重构数据。
下面结合图2-图8对本发明实施例提供的星载FPGA重构方法进行详述。
图2示出了根据本发明实施例提供的星载FPGA重构方法的详细流程。
如图2所示,本发明实施例提供的星载FPGA重构方法,包括如下步骤:
S1、搭建星载FPGA重构系统;其中,星载FPGA重构系统包括中央处理器、SDRAM芯片、刷新配置芯片、主份NorFlash芯片和备份NorFlash芯片。
星载FPGA重构系统如图1及前述内容所示,故在此不再赘述。
S2、将地面测控中心发送的重构数据以分段传输方式上传至中央处理器,待中央处理器完成数据校验后按序存储至SDRAM芯片。
本发明采取分段传输的方式将重构数据通过天地链路上传至中央处理器。通过定义每段重构数据的段号,并根据软硬件对每段重构数据的大小进行自主设计。
重构数据以分包形式上传至中央处理器,所有的重构数据包构成完整的重构数据。
本发明采用三方面的校验来判断重构数据是否出现错误:
第一方面:对上传的每段重构数据中的每个重构数据包的重复性和正确性进行校验。
对每个重构数据包进行重复性和正确性的校验,能够保证中央处理器接收到数据不重复且数据正确的重构数据包。
重构数据包的格式包括数据类型、指令序列计数号和包校验和,这三个信息综合表征重构数据包的唯一性。通过比较两个重构数据包中这三个信息,就可以判断是否为重复的重构数据包,而根据包校验和可单独判断重构数据包是否正确。
图3示出了根据本发明实施例提供的重构数据包的校验过程。
如图3所示,重构数据包的重复性和正确性的校验过程,包括如下步骤:
S201、中央处理器接收上注的重构数据包。
S202、判断当前重构数据包是否重复。
将当前重构数据包的数据类型、指令序列计数号和包校验和与上一个重构数据包的数据类型、指令序列计数号和包校验和进行比较,如果一致,判定当前重构数据包与上一个重构数据包重复,执行步骤S203,如果不一致,判定当前重构数据包与上一个重构数据包不重复,执行步骤S204,判断包校验和是否正确。
S203、丢弃当前重构数据包。
S204、计算当前重构数据包的校验和。
S205、判断包校验和是否一致。
将计算的校验和与当前重构数据包中存储的包校验和进行比较,如果一致,判断当前重构数据包正确,执行步骤S206,对当前重构数据包进行存储,如果不一致,则执行S207,丢弃当前重构数据包。
S206、存储当前重构数据包。
S207、丢弃当前重构数据包。
第二方面:对上传的每段重构数据的完整性进行校验。
对每段重构数据进行完整性的校验,能够判断每段的重构数据是否存在丢包情况,如存在丢包情况,则重新上传丢失的重构数据包。
在每段重构数据上传完毕后,向中央处理器发送段结束指令,段结束指令中携带段校验和,该段校验和用于校验每段重构数据是否完整。
图4示出了根据本发明实施例提供的每段重构数据的校验过程。
如图4所示,每段重构数据的校验过程,包括如下步骤:
S21、中央处理器接收段结束指令,读取段校验和。
S22、计算该段重构数据的段校验和。
S23、判断两个段校验和是否一致。
如果两个段校验和一致,判定该段重构数据接收成功,执行步骤S24进行数据存储操作;如果两个段校验和不一致,则判定该段重构数据存在丢包情况,此时执行步骤S25。
S24、按序存储重构数据包。
S25、计算丢失的重构数据包中的指令序列计数号,下传至地面测控中心。
本发明根据重构数据包的存储状态计算丢失的重构数据包中的指令序列计数号。
S26、地面测控中心重新上传丢失的重构数据包。
地面测控中心根据下传的指令序列计数号,重新将丢失的重构数据包上传至中央处理器,再对重新上传的重构数据包逐一进行重复性和正确的校验。
第三方面:对所有段的重构数据的有效性进行校验。
在所有段的重构数据上传完毕后,向中央处理器发送文件结束指令,文件结束指令中携带文件校验和,文件校验和用于校验本次重构数据是否上传成功。
图5示出了根据本发明实施例提供的所有段的重构数据的校验过程。
如图5所示,所有段的重构数据的校验过程,包括如下步骤:
S210、中央处理器接收文件结束指令,读取文件校验和。
S220、计算所有段的重构数据的文件校验和。
S230、判断两个文件校验和是否一致。
如果两个文件校验和一致,判定完整的重构数据接收成功,执行S240,如果两个文件校验和不一致,判定完整的重构数据接收失败,执行S250。
S240、根据段号顺序对每段重构数据进行排序存储。
S250、重新上传重构数据。
本发明先对单个重构数据包进行校验,再对每段重构数据进行校验,最后对所有段的重构数据进行校验,实现对重构数据的逐级校验,避免重构数据包在传输过程中出现丢包、被破坏等错误情况,提高重构数据传输的稳定性。
对包校验和、段校验和及文件校验和的校验均为CRC校验,CRC校验为现有技术,故在此不再赘述。
本发明采取按序存储的方式存储重构数据。由于天地链路传输过程可能导致重构数据包发生丢失或错误,造成重构数据不连续,因此本发明在重构数据包的有效数据区内设计指令序列计数号,指令序列计数号表征每个重构数据包在整个重构文件中的位置。同时设计指令序列数组,用来标记重构数据包的接收状态,若重构数据包接收正确则将指令序列数组的对应位置置位。
图6示出了根据本发明实施例提供的重构数据包的存储过程。
如图6所示,重构数据包的存储过程,包括如下步骤:
S2010、提取重构数据包中的指令序列计数号。
根据该指令序列计数号计算重构数据包在SDRAM中的存储位置。
S2020、将指令序列数组中的对应位置置位。
S2030、提取重构数据包中的有效数据。
S2040、根据指令序列计数号将有效数据存储至SDRAM中对应的位置。
需要说明的是,在步骤S25中,通过查询指令序列数组,读取每包重构数据包的存储状态,计算计算丢失的重构数据包中的指令序列计数号。
S3、通过中央处理器控制刷新配置芯片对备份NorFlash进行擦除和烧写操作,将SDRAM芯片内存储的重构数据写入备份NorFlash。
图7示出了根据本发明实施例提供的FPGA重构的流程。
如图7所示,FPGA重构的流程,包括如下步骤:
S31、中央处理器向刷新配置芯片发送擦除指令。
刷新配置芯片根据该擦除指令对备份NorFlash进行擦除。
S32、判断是否擦除成功。
通过刷新配置芯片返回的遥测判断擦除是否成功,如果擦除成功,执行步骤S33,如果擦除失败,重新执行步骤S31,重复三次后如果擦除仍然失败,则本次FPGA重构失败。
S33、中央处理器将SDRAM芯片内存储的重构数据以指令形式发送给刷新配置芯片。
刷新配置芯片将重构数据写入擦除的备份NorFlash。
S34、判断FPGA重构是否成功。
在重构数据写入备份NorFlash后,中央处理器向刷新配置芯片发送校验指令,如果刷新配置芯片返回遥测正确,则判断FPGA重构成功,执行步骤S35,如果FPGA重构不成功,则返回步骤33,向备份NorFlash重新写入重构数据。
S35、标记FPGA重构成功。
S4、中央处理器根据地面测控中心发送的重构指令,向刷新配置芯片发出寄存器修改指令,通过修改刷新配置芯片中的寄存器的值,从引导主份NorFlash芯片存储的FPGA原始数据切换为引导备份NorFlash芯片存储的重构数据。
图8示出了根据本发明实施例提供的FPGA重构引导的流程。
如图8所示,系统上电默认状态为引导主份NorFlash中的原始数据,当中央处理器接收到地面测控中心发送的重构指令后,中央处理器向刷新配置芯片发出寄存器修改指令,通过修改寄存器中的寄存器的值,将引导主份NorFlash芯片存储的FPGA原始数据切换为引导备份NorFlash芯片存储的重构数据。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
以上本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所作出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
- 一种基于星间链路收发设备的星载FPGA重构系统及重构方法
- 一种星载FPGA软件在轨重构方法