掌桥专利:专业的专利平台
掌桥专利
首页

一种星载设备中FPGA单粒子翻转故障注入方法

文献发布时间:2023-06-19 12:13:22


一种星载设备中FPGA单粒子翻转故障注入方法

技术领域

本发明涉及星载设备中FPGA领域,更具体地是涉及对使用SRAM型FPGA的星载设备进行单粒子翻转故障注入的方法。

背景技术

目前,宇航级FPGA器件的主流技术有基于反熔丝和基于SRAM 两种。基于反熔丝的FPGA 采用击穿绝缘介质的方法进行编程,抗辐照能力强,但成本高、性能弱且灵活性不够;SRAM型FPGA 具有可重复配置的优点,凭借其高性能、低成本、开发快捷等优点,在星载设备中应用越来越广泛。但此种类型FPGA由于SRAM 自身的结构特性,导致其对单粒子效应十分敏感,易被单粒子打翻,从而对内部电路功能造成影响。SRAM型FPGA应用于星载设备时,需配合刷新技术和三模容错手段,来保证其运行的可靠性。

星载设备一般使用DSP作为逻辑控制和运算单元,负责核心的计算和控制任务,SRAM型FPGA作为协处理设备,实现数据采集、预处理和后处理。当SRAM型FPGA被单粒子打翻时,设备可能出现无法预知的故障。为评估单粒子效应可能对SRAM型FPGA产生的影响,通常采用故障注入的方式。故障注入的原理是对FPGA 配置文件中的帧数据进行0/1翻转来实现配置存储器内容的人为翻转,从而模拟FPGA 的单粒子翻转效应。

为减少对外部辅助硬件的依赖,通常采用FPGA内部自带的ICAP接口实现故障注入。ICAP是FPGA 提供的内部端口,可对SRAM型FPGA的配置存储器内容进行回读或重配置,能够方便地实现配置存储器内容的单比特翻转。现有方法采用ICAP接口实现故障注入时,往往还需专用的PC机软件以及外围辅助电路,需要购买额外的设备,使得故障注入系统的复杂性增加,提高了故障注入实验的门坎。

中国专利公开CN108073497A公开了一种用于星载计算机可靠性验证的故障注入方法,包括:通过卫星轨道参数计算单粒子翻转率,生成单粒子翻转故障注入表;建立星载计算机模型和故障注入器,并按照故障注入表中的内容,对星载计算机模型进行故障注入;建立故障观察器,对故障注入后的各模块的状态和输出进行跟踪;将故障注入表、故障观察器所跟踪的各模块值及相应运行结果保存于日志文件中。该方法的注入过程可控性强,星载计算机模型和故障注入模型双线程并行,可通过终端方便地控制和监测仿真进程。CN108073497A的技术方案中通过仿真,实现模拟故障注入,无法完全模拟真实硬件条件,部分与硬件相关故障可能无法通过仿真注入来实现,并且所针对对象为星载计算机CPU,无法应用于SRAM型FPGA。

中国专利公开CN108646106A公开了一种具有单粒子翻转故障注入功能的微型ICAP控制器,使用PicoBlaze作为ICAP控制器的主控制单元,接收来自重构系统的功能请求或故障注入请求指令,然后控制ICAP端口与帧故障检测单元 进行 工 作 ;I C A P 控 制器的 结 构 :由 R A M 、PicoBlaze控制器、ICAP端口、帧检测单元组成;PicoBlaze控制重配置和故障注入的整个过程;RAM受PicoBlaze控制器的控制,用于存储配置帧数据;帧检测单元用于对配置过程中的帧数据进行校验;在配置过程中,PicoBlaze接收重构系统的功能指令,解析之后完成相应功能。ICAP控制器故障注入功能不需要额外的资源,不影响重构系统的运行。该方案中使用PicoBlaze软核处理器作为注入控制,是使用FPGA的逻辑和资源搭建的一个软核CPU系统,同时ICAP注入器由FPGA本身提供,二者在进行SRAM型FPGA故障注入时,本身存在注入故障后,无法正常运行的可能,该方法未考虑在PicoBlaze软核和ICAP接口本身存在故障时,如何恢复注入流程。

发明内容

为解决上述技术问题,本发明提出了一种星载设备的单粒子翻转故障注入设备,包括:监测设备、程控电源、待测的星载设备注错单板和用作参考的星载设备参考单板;所述监测设备负责接收和监测星载设备的测试,监测设备分别与星载设备注错单板和星载设备参考单板连接;监测设备控制程控电源给星载设备注错单板和星载设备参考单板供电;星载设备注错单板和星载设备参考单板采用共用的通用硬件架构,所述的通用硬件架构采用反熔丝FPGA作为启动管理核心,所述反熔丝FPGA直接与晶振、PROM和抗辐照Flash相连,控制DSP和SRAM型FPGA执行程序加载;所述反熔丝FPGA为待测的所述SRAM型FPGA和DSP提供时钟,控制待测的所述SRAM型FPGA的配置刷新操作;所述星载设备注错单板和星载设备参考单板都通过EMIF总线与所述DSP连接。

进一步的,所述通用硬件架构中的反熔丝FPGA通过地址译码的方式开放Flash接口,DSP通过反熔丝FPGA读写所述抗辐照Flash中存储的数据和程序;所述的星载设备参考单板功能及程序与星载设备注错单板相同,同样按照监测设备指令对FPGA进行配置信息注入,但不进行逐比特翻转。

进一步的,待测的所述SRAM型FPGA内部封装ICAP接口,提供ICAP接口访问、刷新数据的时序控制;所述的SRAM型FPGA内部配置两个刷新器,两个刷新器互为备份。

进一步的,所述刷新器设置对DSP写入配置数据的校验,向所述DSP写入配置数据时同步写入数据CRC32校验,只有当配置数据和CRC32校验均匹配,刷新器才进行注入,SRAM型FPGA分别为两个刷新器配置状态寄存器。

进一步的,监测设备对所述星载设备注错单板和星载设备参考单板进行监测,判断星载设备注错单板的遥测信息中断时间达到预定时间,或在遥测信息中检测出异常,则监测设备记录异常日志信息,并控制程控电源同时对两个单板进行重启,从上次出现故障的下一个比特位置继续进行故障注入。

本发明还提供一种星载设备的单粒子翻转故障注入方法,包括以下步骤

步骤1,所述DSP在高优先级任务中接收和响应监测设备遥控指令,依据该遥控指令开启或停止注入流程;

步骤2,监测设备启动后,依据外部输入获取注入起始位置,打开电源,待确认单板正常上电后,向所述星载设备注错单板和星载设备参考单板同时发送故障注入开始指令,并持续监测两个单板状态;

步骤3,若监测设备发现两个单板中的任一个在预定时间内未更新,或显示单板发生注入故障,则控制两个单板重启,并依据日志记录,使两个单板从上一次出错位置的下一个Bit开始继续注入;

步骤4,在收到监测设备故障注入开始指令后,所述DSP从遥控指令中得到当前注入帧号,依据当前注入FPGA标识和当前注入帧号计算出当前帧在Flash中的位置,读取该帧的内容;

步骤5,所述DSP在读取完帧数据后,从固定偏移位置读取EDAC校验,对数据使用EDAC校验算法进行修正,并依据当前注入帧号和当前比特编号计算出需要打翻的Bit位置,转入步骤6;

步骤6,对于星载设备注错单板,将计算出需要打翻的Bit翻转,而对于星载设备参考单板不进行Bit翻转,之后针对本帧数据计算CRC,并对刷新器状态进行监管,在无异常的情况下,将配置数据和CRC校验一同写入ICAP刷新器接口,控制刷新器进行数据注入;

进一步的,步骤4还包括:检测当前注入帧号是否合法以及当前帧号是否为可注入帧,任一项为否则跳至下一帧,两者均为是则开始注入过程。

进一步的,步骤4还包括:对相应帧数据增加了EDAC校验,帧数据和校验数据分别按连续地址存储,校验数据位置相对于帧数据偏移预定的固定地址。

进一步的,所述的步骤6还包括:刷新器在收到注入数据时,首先计算数据CRC校验,并与DSP写入的CRC比较,当计算出的数据CRC和DSP写入的CRC校验相匹配时,才进行注入操作;当二者出现不一致时,刷新器将置位状态寄存器,提示CRC出错。

进一步的,DSP将两个刷新器状态即时反馈到遥测信息中去,由监测设备判断故障注入状态并记录异常位置,用于监测设备计算下一次注入位置。

本发明采用多种有效手段,使用一台PC机和一台程控电源结合两台相同的星载设备单板构建出简单故障注入系统,充分利用SRAM型FPGA内部ICAP接口实现故障注入,无需增加额外的专用硬件,使故障注入系统得到极大简化,降低了故障注入实验的实施难度。本发明适应较好,不仅适用于本发明提出的通用硬件架构下的星载设备,还适用于其它硬件架构下,SRAM型FPGA具备ICAP接口并可从Flash进行配置数据加载的其它类型设备。

附图说明

图1是星载设备单板通用硬件架构示意图。

图2是简易故障注入系统示意图。

图3是故障注入控制帧示意图。

图4是故障注入控制协议示意图。

图5是星载设备ICAP自动故障注入流程示意图。

具体实施方式

基于上述原因,本发明以星载设备为例,总结了一种在星载设备通用硬件架构条件下,利用ICAP接口和少量外围设备,实现SRAM型FPGA单粒子翻转故障自动注入的有效方法,该方法同样适用于具有类似硬件架构的其它设备。

本发明要解决的技术问题在于,针对使用SRAM型FPGA的星载设备,设计了一种通用硬件架构条件下,利用FPGA内部ICAP接口,结合少量外围辅助设备,进行单粒子翻转故障注入的有效方法。该方法充分利用通用硬件架构的特点,仅利用一台PC机和程控电源搭建故障注入系统,从Flash中读取FPGA配置数据,通过ICAP接口实现自动数据翻转注入,借助PC机辅助进行故障注入控制,实现了一套低成本的简易单粒子翻转故障注入系统。

本发明解决技术问题所采用不同技术手段的技术方案如下:

(1)星载设备单板通用硬件架构。星载设备单板通用架构采用反熔丝FPGA作为启动管理核心,反熔丝FPGA分别与抗幅照Flash、DSP、SRAM型FPGA以及PROM相连。外部晶振的时钟直接接入反熔丝FPGA,由反熔丝FPGA处理后,再提供给DSP和SRAM型FPGA。反熔丝FPGA负责读取Flash中的SRAM型FPGA配置文件并通过SelectMap接口执行加载,待FPGA程序加载完成后,再进行DSP程序加载。反熔丝FPGA通过地址译码的方式开放Flash接口,DSP通过反熔丝FPGA读写抗幅照Flash中的内容。与此同时,SRAM型FPGA内部封装ICAP实现,以刷新器的方式提供给DSP。为防止注入过程异常,SRAM型FPGA中实现A和B两个刷新器,二者互为备份。PROM的主要作用是在Flash程序损坏时,提供一个可启动的最小系统程序。

(2)简易故障注入系统。简易故障注入系统采用PC机作为监测设备,负责接收和监测星载设备遥测,并控制一台程控电源给星载设备供电。为检验注入效果,增加星载设备参考单板进行对比,该单板功能及程序与星载设备注错单板相同,也同样按照PC机指令,进行FPGA配置信息注入,但不进行逐比特翻转。开机后,两个单板等待PC机发送故障注入开始指令,PC机同时给出故障注入的起始位置信息。收到指令后,星载设备单板开始从Flash中读取已固化的SRAM型FPGA配置文件,从指令指示的预定位置,按帧进行注入。其中,星载设备注错单板按帧进行逐位翻转注入,而星载设备参考单板则不进行翻转,按原始正确的帧进行注入。PC机对两个单板遥测进行监测,若发现某个单板遥测信息中断达到预定时间,或在遥测信息中检测出异常,则PC机记录异常日志信息,并控制程控电源同时对两个单板进行重启,从上次出现故障的下一个比特位置继续进行故障注入。

(3)故障注入控制协议。故障注入控制协议包含故障注入开始指令、故障注入中止指令以及注入状态遥测。故障注入开始指令由PC下发,包含命令头、命令标识、当前注入FPGA标识、当前注入帧号、当前注入字编号、当前比特编号以及可选用的和校验。其中命令标识用于表示当前命令类型,对于故障注入开始指令,其值固定为0x33;当前注入FPGA标识用于表示开始故障注入的FPGA编号,编号从0开始;当前注入帧号表示帧起始位置,帧号从0开始;当前注入字编号表示在一帧中的第几个32Bit字,编号从0开始;当前比特编号代表每个32Bit字中当前翻转的Bit编号,编号从0开始。故障注入中止指令由PC下发,内容比较简单,仅包含命令帧头、命令标识以及可选用的和校验,命令标识值固定为0x55。注入状态遥测包含遥测头、遥测计数、ICAP模块状态、当前注入FPGA标识、当前注入帧号、当前注入字编号、当前比特编号以及可选用的和校验。注入状态遥测可以包含在单板遥测之中,也可以通过独立通道发送给PC机。PC机利用上述三种协议帧,对星载设备故障注入过程进行监控。

(4)ICAP自动故障注入。ICAP自动故障注入由FPGA和DSP共同完成,FPGA内部实例化ICAP接口、注入数据校验、注入数据的时序控制;DSP完成注入帧控制、读取注入配置数据帧、产生CRC校验码、写数据帧和命令字到FPGA、判断注入的状态、控制注入的启动。DSP在最低优先级的任务中,循环进行ICAP自动数据注入。在循环中,DSP先检测全局注入控制标识,若全局注入控制标识显示当前状态为停止注入状态时,本次不进行注入。若全局注入控制标识显示当前为注入状态,则DSP进一步获取当前注入FPGA标识、当前注入帧号、当前注入字编号和当前比特编号,依据当前注入FPGA标识和当前注入帧号计算出注入帧在抗幅照Flash中地址,并读取该注入帧。对于注错单板,依据当前注入字编号和当前比特编号计算出需要打翻的Bit位置,将这一个Bit翻转,而对于参考单板,则无需进行Bit翻转。二者在计算完CRC后,将配置数据和CRC校验一同写入ICAP刷新器接口,并启动注入。注错单板在注入帧的后续Bit全部翻转并注入完毕时,继续读取下一帧,重复上述流程直至所有剩余数据注入完毕,参考单板模仿这一过程,但不进行Bit翻转,而是使用原始数据进行注入。整个注入流程中,DSP还需监测ICAP接口中A和B两个刷新器的状态,当其中一个刷新器出现故障时,及时切换到另一个刷新器,同时将状态反馈至遥测信息中。

以下结合附图对本发明的具体实施方式作出详细说明。

图1是星载设备单板通用硬件架构示意图。如图所示,包括以下内容:

(1)反熔丝FPGA作为管理核心,直接与晶振、PROM和抗辐照Flash相连,控制DSP和SRAM型FPGA的程序加载,并为SRAM型FPGA和DSP提供时钟,控制SRAM型FPGA的配置刷新操作。同时,反熔丝FPGA通过EMIF总线CE2,为DSP提供访问Flash的接口;而EMIF总线CE1地址空间保留,用于DSP程序加载;

(2)SRAM型FPGA通过内部实现A和B两个刷新器,提供ICAP接口访问、刷新数据的时序控制。为验证DSP提供数据的正确性,刷新器增加对DSP写入配置数据的校验,DSP写入配置数据时,需要同步写入数据CRC32校验,只有当二者吻合,刷新器才进行注入。为方便DSP监控刷新器状态,SRAM型FPGA分别为A和B两个刷新器增加状态寄存器;

(3)DSP通过EMIF总线CE2空间,经过反熔丝FPGA中转,从抗辐照Flash中读取SRAM型FPGA的配置信息,并利用EMIF总线CE3空间控制SRAM型FPGA中的刷新器将配置数据写入相应FPGA中;

图2是简易故障注入系统。如图所示,包括以下内容:

(1)工控机PC作为系统主体对星载设备单板运行状态进行监控,并通过串口控制程序电源为单板供电;

(2)星载单板通过串口或1553B总线发送遥测并响应工控机PC遥控指令;

(3)工控机PC对星载设备注错单板和星载设备参考单板同时进行监测,并对二者发送相同的操作指令;当PC机监控到星载设备注错单板或星载设备参考单板二者其一出现遥测异常时,对二者同步进行重启复位操作,并发送遥控指令,使其可以从上一次出错位置的下一个Bit开始,继续进行注错实验;

(4)工控机PC负责记录二者遥测信息日志,用于单机注错死机后进行恢复,同时方便日后对比分析;

图3是故障注入控制帧示意图。如图所示,包括以下内容:

(1)为适应1553B收发位宽,故障注入控制帧按16Bit宽定义,且按小端序列进行收发;

(2)工控机PC通过故障注入开始指令和故障注入开始终止指令控制两个单板的注入过程,并通过故障注入遥测监测单板注入状态;

(3)工控机PC利用遥测计数可检测单板遥测有无更新,单板每发送一次遥测,遥测计数加一,当遥测计数大于65535时,计数回归到一;

(4)和校验为可选字段,当不使用和校验时,该字段填零,若使用该字段,则该字段为除帧头部及和校验字段本身以外,其它所有字段的32Bit异或和;

(5)故障注入遥测可作为单独帧向工控机PC发送,或合并到单板遥测中,作为整体遥测发送到地检软件中,由地检软件集成故障注入监控逻辑功能,一并处理。

ICAP模块状态16Bit中,低8Bit为注入器A状态,高8Bit为注入器B状态。

图4是故障注入控制协议。如图所示,包括以下内容:

(1)星载设备单板DSP在高优先级任务接收和响应工控机PC遥控指令,依据PC指令开启或停止注入流程;

(2)工控机PC软件启动后,依据外部输入获取注入起始位置,使用串口命令打开电源,待确认单板正常上电后,向两个单板同时发送故障注入开始指令,并持续监测两个单板状态

(3)若工控机PC发现两个单板其中任一份遥测在预定时间内未更新,或遥测显示单板发生注入故障,则使用串口控制电源上两个单板重启,并依据日志记录,使两个单板从上一次出错位置的下一个Bit开始继续注入;

图5是星载设备ICAP自动故障注入流程示意图。如图所示,包括以下内容:

(1)整个流程图以Virtex-II FPGA为例进行说明。依据手册,Virtex-II FPGA配置文件共包含1804个配置帧,每帧包含166个字。其中,第1288至1671帧(从0开始记)为BRAM配置数据帧,注入后将影响BRAM中现存数据,进而影响FPGA功能,因此不可注入;

(2)在收到工控机PC故障注入开始指令后,星载设备DSP从遥控指令中得到当前注入帧号,先检测当前帧号是否合法、是否为可注入帧,若不是则跳至下一帧,若是则开始注入过程。依据当前注入FPGA标识和当前注入帧号计算出当前帧在Flash中位置,读取该帧的内容;

(3)设计考虑Flash内容可能会出错,因此对相应帧数据增加了EDAC校验,帧数据和校验数据分别按连续地址存储,校验数据位置相对于帧数据偏移固定地址;

(4)星载设备DSP在读取完帧数据后,再从固定偏移位置读取EDAC校验,对数据使用EDAC校验算法进行修正,并依据当前注入字编号和当前比特编号计算出需要打翻的Bit位置;

(5)对于注错单板,将这一个Bit翻转,而对于参考单板,则无需进行Bit翻转,之后针对本帧数据计算CRC,并对刷新器状态进行监管,在无异常的情况下,将配置数据和CRC校验一同写入ICAP刷新器接口,控制刷新器进行数据注入;

(6)为防止DSP误写数据,刷新器在收到注入数据时,首先计算数据CRC校验,并与DSP写入的CRC比较,只有二者匹配时,才会进行注入操作。当二者出现不一致时,刷新器将置状态寄存器,提示CRC出错。因此星载设备DSP需要将A和B两个刷新器状态即时反馈到遥测信息中去,便于工控机PC迅速判断注入故障。

实施效果

(1)提出了一种星载设备的通过硬件架构,该架构已广泛运用于多个型号在轨单机,已经过实际在轨运行检验,能确保单机长期稳定运行。该架构条件下,SRAM型FPGA具备ICAP接口并可从Flash进行配置数据加载,具备进行ICAP故障注入的基础条件;

(2)一台PC机和一台程控电源结合两台相同的星载设备单板构建出简单故障注入系统,无需增加额外的专用硬件,极大简化了故障注入系统的硬件,降低了故障注入实验的实施难度;

(3)在现有各型号单机中得到广泛应用,对FPGA单子效应研究起到了极大促进作用。

最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

相关技术
  • 一种星载设备中FPGA单粒子翻转故障注入方法
  • 一种星载设备中FPGA单粒子翻转故障注入方法
技术分类

06120113212841