微型星敏感器抗单粒子翻转设计和验证
2024-01-08王燕清杜伟峰占晓敏钟金凤
王燕清,杜伟峰,金 荷,占晓敏,钟金凤,张 磊
(上海航天控制技术研究所,上海 201109)
0 引言
星敏感器是一种以恒星作为测量参考基准的空间姿态敏感器,是迄今为止航天器上姿态测量精度最高的敏感器,具有实时捕获姿态信息且不随时间产生漂移等优点,在对地遥感、深空探测、空间攻防等航天应用中具有重要的战略意义[1-2]。随着以美国星链(Starlink)为代表的互联网星座卫星的发展,卫星需要星敏感器满足轻小型、高精度、低成本、批量化、生产周期短的技术要求[3],因此微型星敏感器的电路系统需要选用高集成度、小封装的电子元器件。在半导体电荷存储器,如静态随机存储器(SRAM)[4]和动态随机存储器(RAM)[5]中,高能离子入射会在MOS 晶体管的阱区和源漏端引发电子-空穴对,产生的寄生电流会使存储单元比特状态改变,导致单粒子翻转(SEU)错误;且随着器件的特征尺寸越来越小,以往大尺寸器件中不明显的效应(如单粒子效应)显得愈发突出而成为新的器件损伤因素[6-12]。
目前针对SEU 现象采取的防护措施包括硬件设计和软件设计两方面。文献[13]提出的单粒子效应防护措施主要包括加强元器件选用控制、软硬件冗余设计以及关键器件限流等,需要对选用的低等级元器件在地面通过辐照试验进行测定;然而辐照试验周期长、费用高,因此,在商业航天中考虑到低成本和快速研制需求,微型星敏感器选用了大量低等级元器件,并不适合采取上述防护措施。文献[14]提出的抗SEU 可靠性设计认为,选用抗SEU 器件,配置刷新芯片进行回读刷新和定时刷新等是解决SEU 的根本办法。但是抗SEU 器件、配置刷新芯片价格昂贵,且体积较大,不能满足微型星敏感器的小型化设计和成本控制要求。文献[15]提出的抗SEU 技术采用传统的DSP+FPGA 架构,增加反熔丝元器件作为检测和逻辑译码单元,通过回读对比功能进行监控和处理。该方法主要依靠反熔丝元器件的高可靠性保证,但受成本和体积约束,同样不适用于微型星敏感器。
本文从微型星敏感器的电路框架硬件平台和器件选用的特点出发,根据星敏感器工作流程,给出了流程监控状态字实时检测软件运行状态的方案;同时对于SRAM 区运行的程序和寄存于Flash中的程序进行比对和校正,通过向姿轨控分系统提供统计分类复位次数和产品状态字的方式由系统用户进行综合诊断干预,旨在快速有效地发现和解决SEU 问题。
1 某星敏感器在轨SEU 现象
SEU 现象的发生与空间天然辐射环境和卫星运行区域有关[13]。某星座卫星为太阳同步轨道卫星,轨道高度500~800 km。2023 年2 月下旬,在太阳风暴和地球磁场的相互作用下,该星座卫星上的微型星敏感器在相近的时间段内相继出现SEU 导致在轨工作异常的现象,无法正常为航天器提供准确的姿态数据,在整星对星敏感器断电、上电重启后恢复了正常工作。星敏感器故障现象和数据表现如表1 所示。
表1 某卫星上微型星敏感器在轨SEU 故障现象和数据表现Table 1 In-orbit SEU fault and data performance of micro star sensors on a satellite
2 电路架构和软件工作流程
微型星敏感器采用传统的DSP+FPGA 架构[16],其中:FPGA 采用MICROSEMI 公司的Flash 型器件,抗SEU 能力较强;DSP 采用TI 公司的TMS320XX系列器件。微型星敏感器的应用软件在ISSI 公司的SRAM 中运行,而SRAM 中容易发生SEU 现象。考虑到微型星敏感器主要应用于商业航天,不适合选用高等级元器件,因此需要通过软件设计增强器件发生SEU 时星敏感器检测和恢复的能力,从而提高整机的可靠性。为此,需对微型星敏感器应用软件的工作流程进行梳理。星敏感器可在星跟踪和全天识别两种模式间切换,正常工作时99.9%的情况下处于星跟踪模式,其流程如图1 所示。
图1 星敏感器星跟踪流程Fig.1 Star tracking process of a star sensor
从图1 可以发现,星跟踪模式下,软件功能模块包括:角速率估计;四元数和光轴指向估计;星矢量之和的计算;二分查找;查找视场内的导航星;计算导航星在星敏感器坐标系下的坐标;反算导航星在探测器像面上的坐标;姿态解算。
软件在SRAM 中运行;当发生SEU 时,功能模块数据错误将使工作流程出现混乱。因此,通过对正常工作流程的实时监控可以及时发现流程异常、诊断SEU 问题。
3 抗单粒子翻转方法
3.1 软件流程监控
结合第2 章对微型星敏感器电路架构和软件工作流程的分析,为提高器件发生SEU 时的检测和恢复能力,需要增强软件和FPGA 产品的可靠性。为了监测SEU 发生时刻及在软件流程中的位置,增加软件对星敏感器全天识别与星跟踪流程各个模块的自主检测功能,以便实时发现SEU 现象并进行自主复位;同时上报系统用户,通过系统级保护恢复机制来提高系统的抗SEU 能力和可靠性。
采用流程监控字方式,开辟一个监控寄存器,用于软件运行流程监控(功能类似看门狗),监控功能仅在星敏感器正常工作模式(即全天识别模式和星跟踪模式)下运行,其流程如图2 所示。
图2 星敏感器软件运行流程监控Fig.2 Flow monitoring for software running of a star sensor
正常工作模式下,软件运行时依次向FPGA写入监控字(全天识别或星跟踪模式下),由FPGA检测写入寄存器中的监控字是否完整正确:若写入的监控字在设定的安全时间内不更新或不符合上述流程监控规则时,判定软件运行流程异常,同时,FPGA 对软件进行复位,流程监控复位次数加1。
3.2 程序比对检测
微型星敏感器受到空间辐射影响会发生SEU,出现应用软件运行异常,因此需要对软件进行实时检测和校正。微型星敏感器的应用软件、导航星库、标定参数和坏像元参数均存储3 份(A、B、C)于Flash 中,且这3 份数据完全一致。DSP 地址空间中,程序Flash 的起始地址为0x000000。
应用软件、导航星库、标定参数和坏像元参数在Flash 存储器中的存储要求见表2。
表2 微型星敏感器程序Flash 数据存储要求Table 2 Flash data storage requirements for micro star sensor program
微型星敏感器上电后,应用软件、导航星库、标定参数和坏像元参数依次从Flash 加载至程序SRAM中运行,SRAM 存储空间为1 Mbyte×16 bit。DSP 地址空间中,程序SRAM 的主程序段地址为0x400000至0x441000。
程序比对检测流程如图3 所示。应用软件在执行每帧图像周期的全天识别模式或星跟踪模式过程中,向FPGA 寄存器写入监控字,之后分别读取Flash 中的A、B、C 份和程序SRAM 软件,并将上述4 份软件写入FPGA 的块RAM 中,完成后软件再向FPGA 寄存器写入对应的监控字。FPGA 得到检测通知并进行软件比对,比对原则为:FPGA 将Flash 中的3 份软件进行三取二比对,并将三取二结果与程序SRAM 软件进行比对,若比对结果存在不一致,则FPGA 对DSP 器件进行复位,应用软件重新从Flash 加载至程序SRAM 中,程序比对复位次数加1。完成上述流程后,开始下一轮比对检测。
图3 程序比对检测流程Fig.3 Flowchart for software comparison and testing
3.3 分类复位计数
微型星敏感器设置3 种复位方式,用于对流程监控、程序比对和看门狗超时复位次数进行统计,同时为用户诊断提供参考。其中,系统复位主要是为了防止应用程序跑飞或者死循环,当DSP 长时间不向FPGA 发送喂狗信号或者FPGA 监控字寄存器长时间不更新时,FPGA 对DSP 进行复位,软件重新从Flash 加载至程序SRAM 中,看门狗超时复位次数加1。DSP 对分类复位计数只读。微型星敏感器设置的状态字分类复位计数寄存器为32 位寄存器,各位的定义见表3。
表3 微型星敏感器状态字分类复位计数寄存器位定义Table 3 Definition of classified reset count of status word for micro star sensors
4 测试试验验证
为了验证第2 章所述通过分类复位计数来诊断SEU 故障方法的有效性,需要人为制造错误来模拟在轨SEU 事件:第一种方法是开发单粒子效应模拟软件,通过在轨编程模拟单粒子效应逐次随机更改程序SRAM 中的1 bit 数据;第二种方法是通过仿真器,分别修改程序中使用的恒星库、角距库、坏像元以及标定参数等重要数据,模拟产品中这些数据被单粒子破坏的情况。
4.1 流程监控、程序比对、看门狗超时测试
通过上述在轨编程和仿真器修改数据的测试方法人为制造数据错误后,触发星敏感器的流程监控错误、程序比对错误或看门狗超时从而触发软件复位操作,通过观察遥测数据包中分类复位计数寄存器的内容,可以统计各类复位情况。微型星敏感器程序Flash 数据存储要求如表4 所示。
表4 微型星敏感器程序Flash 数据存储要求Table 4 Flash data storage requirements for micro star sensor program
从测试结果分析,星敏感器通过流程监控、程序比对、看门狗超时复位等可以对SEU 造成的故障进行自我诊断和恢复,有效避免类似在轨数据异常情况的发生。
4.2 星库变量、坏像元、标定参数数据维护测试
该测试项目用于测试星敏感器应用软件利用Flash 中烧录的星库、坏像元和标定参数信息,对程序SRAM 中星库变量、坏像元、标定参数等重要数据进行校验,对SRAM 中被破坏的数据进行自动恢复。
通过仿真器模拟产品中重要数据被单粒子破坏后数据维护的测试情况如表5 所示。从表中可以看出,通过仿真器将程序中使用的恒星库、角距库、坏像元以及标定参数等重要数据进行修改来模拟数据被单粒子破坏的情况,最终被破坏的数据均成功恢复为正确值,表明在轨出现SEU 数据错误时,可以被自动维护修正。
表5 星库变量、坏像元、标定参数数据维护测试Table 5 Maintenance and testing of library, bad pixel data, and calibration parameters
5 结束语
本文针对微型星敏感器在轨SEU 引起的异常现象,基于商业卫星微型星敏感器的元器件低成本、小封装等特点,从电路架构和软件工作流程出发,设计了软件流程监控、程序比对检测、看门狗超时复位等软件增强设计来提高器件的抗SEU 能力,并通过地面修改相关参数或者随机生成错误的方式进行模拟验证。分析测试数据,表明该方案对于SEU 产生的故障可以及时发现、有效恢复,从出现故障到发现故障的时间<19 s,从发现故障到恢复星敏感器姿态正常输出的时间<0.2 s,是原先需要地面判断和控制所需时间的千分之一。同时,该方案可为地面基站遥测控制范围外的航天器发生故障时的自主恢复提供有效保证,提高了微型星敏感器的在轨可靠性,也为航天飞行器的其他单机产品提供了一种新的抗SEU 解决方案。
后续将开展地面SEU 环境试验,进一步验证该SEU 解决方案的有效性。