论文部分内容阅读
SRAM型FPGA以性价比高、开发周期短及可重复编程的优势被广泛应用于航空航天领域。由于SRAM型FPGA属于单粒子敏感器件,在宇宙空间高能粒子辐射下,容易发生单粒子翻转(Single Event Upset,SEU),出现电路信号紊乱,严重时可造成系统功能错误甚至导致系统崩溃。然而,国外宇航级FPGA对我国实行禁运,商用现货FPGA器件抗辐射能力达不到航空航天的抗辐射要求,因此本文研究商用FPGA的抗辐射技术。CAN总线是重要的星载数据总线,其可靠性和安全性对星载平台通信系统至关重要,因而需要对基于FPGA的CAN接口控制逻辑电路进行抗SEU容错研究。本文在分析SEU对FPGA的不同结构产生不同影响的基础上,结合CAN接口控制逻辑,对实现的接口电路进行结构划分,将其分解成常用的寄存器结构,FIFO结构及状态机结构。针对相应的电路结构,采用不同的抗SEU容错策略。对寄存器结构采用高可靠的三模冗余方法进行Verilog级三模冗余;考虑到FIFO结构是连续的数据块,因此采用检错纠错技术(Error Detect And Correction,EDAC)方法进行容错来提高系统的可靠性;状态机通常是FPGA逻辑电路的核心组成部分,采用双端口RAM与EDAC相结合的方法来提高其可靠性。针对FPGA+SJA1000的CAN接口控制方案和以上三种容错策略,本文基于商用Cyclone FPGA设计并实现了CAN接口容错电路。同时,为了对容错系统的功能进行验证和容错有效性进行评价,设计了SEU故障注入器模拟SEU故障。实验测试表明本文提出的方法有效的减少SEU导致的错误,实现了系统电路纠正1位错误的功能;EDAC电路部分,实现了纠正1位错误,检测两位错误的功能。本文提出的三种容错方法是通用的容错方法,不但可以应用于CAN接口电路的抗SEU容错设计,也可用于其它基于FPGA的容错电路设计。因此本文提出的方法对提高基于FPGA的抗SEU容错电路的可靠性具有重要意义。