哈尔滨工业大学学报  2018, Vol. 50 Issue (2): 178-183  DOI: 10.11918/j.issn.0367-6234.201706176
0

引用本文 

刘光辉, 周军, 孙菲. 皮纳卫星数据存储系统设计与在轨验证[J]. 哈尔滨工业大学学报, 2018, 50(2): 178-183. DOI: 10.11918/j.issn.0367-6234.201706176.
LIU Guanghui, ZHOU Jun, SUN Fei. Design and in-orbit verification of data storage system for nano-pico satellites[J]. Journal of Harbin Institute of Technology, 2018, 50(2): 178-183. DOI: 10.11918/j.issn.0367-6234.201706176.

基金项目

国家自然科学基金重点项目(61231016)

作者简介

刘光辉(1983—),男,博士,助理研究员;
周军(1966—),男,教授,博士生导师

通信作者

刘光辉, liuguanghui@nwpu.edu.cn

文章历史

收稿日期: 2017-06-27
皮纳卫星数据存储系统设计与在轨验证
刘光辉1,2, 周军1,2, 孙菲1     
1. 西北工业大学 航天学院, 西安 710072;
2. 陕西省微小卫星工程实验室(西北工业大学), 西安 710072
摘要: 为提高皮纳卫星数据存储系统性能和可靠性,提出了一种基于3种介质的“三级数据存储+三模容错架构”存储系统策略.首先,基于对星载存储介质的现状和故障特性分析,选择存储器件;然后对文件系统操作流程进行详细研究,提出错误来源;由此提出了采用ECC纠错、冗余备份和电流保护的方法提高系统可靠性;提前预分配文件空间,建立环形数据存储结构,以减少FS操作复杂性,降低错误率;结合RAM、FRAM、SD卡(secure digital card, SDC)三者的优点,采用三级数据存储策略来提高存储速度和故障容错能力;最后,通过地面实验测试,在1 MB总数量时,数据写入速度提高约4.7倍,任一SDC异常或者系统突然断电均不影响系统正常工作,数据丢失≤1帧,故障切换时间≤10 ms.卫星在轨运行过程中,FS、文件和介质均工作正常,且未影响其他系统工作.地面实验和在轨验证结果表明,数据存储系统方案有效可行,系统可靠性和读写性能均能满足卫星系统的任务需求.
关键词: 皮纳卫星     数据存储     SD卡     文件系统     三级缓存    
Design and in-orbit verification of data storage system for nano-pico satellites
LIU Guanghui1,2, ZHOU Jun1,2, SUN Fei1     
1. School of Astronautics, Northwestern Polytechnical University, Xi'an 710072, China;
2. Shaanxi Engineering Laboratory for Microsatellite(Northwestern Polytechnical University), Xi'an 710072, China
Abstract: A storage strategy based on "three-level data storage, three-mode fault-tolerant structure" is proposed to improve the performance and the reliability of the data storage system for nano-pico satellites. Firstly, the storage device is selected based on the analysis of the onboard storage media and fault characteristics. After analyzing the error sources of the file system, a scheme combining the ECC error correction, the redundancy backup and the current protection is applied to improve the reliability of the system. The file space is pre-allocated and a ring data storage structure is established to reduce errors and decrease the operating complexity for the file system. Finally, taking the advantages of RAM, FRAM and SD card, a three-level data storage method is utilized to improve the storage speed and the fault tolerance. writing speed increases by about 4.7 times when the data size is 1 MB, and the SDC abnormality or abrupt power-off of the system can not affect the system; in addition, the fault switching time is less than or equal to 10 ms when the fault switching time is less than or equal to 1 frame. In orbit operation process, all the FS, files and the storage media work well. The ground test and the in-orbit operation show that the proposed data storage strategy is feasible, and the system reliability and the performance of data reading and writing can meet the mission requirements of satellite system.
Key words: nano-pico satellites     data storage     SDC     FS     three-level data storage    

皮纳卫星具有成本低、研制周期短、风险小、技术集成度高等优点,基于此成为近几年来的研究热点[1-2].由于卫星在轨状态、科学实验等产生数据仅能在过境时进行数据回放到地面,数据存储系统作为关键部分,性能与可靠性都关系到地面数据的获取,直接决定空间任务的成败.

皮纳卫星相对于大、小卫星存储方式,受到资源等方面约束多,如功耗、体积与质量等,难以实现独立的存储系统,除非本身即为技术验证的载荷,如Delfi-n3Xt卫星载荷Splash[3],多以星载计算机(on-board computer, OBC)兼顾完成,存储器件主要是SDC或者MicroSDC(简称SDC).卫星数据存储系统与地面常规存储方式的区别为工作环境极为恶劣严苛,易导致SDC数据存储出现问题.如RAX-2 CubeSat[4]在轨期间曾发生不能初始化、读和写操作SDC的故障;Xiphos Systems公司[5]在轨运行多个设备中的SDC发生故障.因此对存储系统的可靠性等方面提出极高要求[6-8].部分文献在SDC抗辐射特性方面研究,如Kingsbury等[9]对Delkin公司工业级SDC型号SE02SAMHL进行了Cobalt-60总剂量测试,实验结果是该SDC能够承受24 krad(Si)辐射;Joshua等[5]对SDC复现在轨故障并探索防护技术进行多次地面辐射测试试验, 或从FS系统方面进行优化[10-11]; 王凤阳等[12]将文件管理分摊在星载处理器和存储控制模块中, 处理器负责文件信息管理,存储模块完成数据操作.该方案需要专用的存储模块,且占用OBC资源很大, 不适合集成程度高、资源紧张的皮纳卫星系统.

本文主要围绕皮纳卫星星载数据存储系统进行研究,通过分析星上存储介质和FS的产生错误的原因,提出了一种基于3种介质的“三级数据存储+三模容错架构”高性能文件数据存储系统方案.地面性能和故障实验测试结果,系统性能提高,故障容错能力加强.经“翱翔一号”立方卫星在轨验证,系统工作正常,文件数据状态良好.地面实验和在轨运行结果表明系统方案的可行性和正确性.

1 星载存储介质现状与器件选择 1.1 星载存储介质现状

卫星用于存储介质有磁带、磁盘、DRAM和NAND FLASH(简称FLASH)等,其中磁带机质量和体积巨大,机械单元易发生故障;磁盘与磁光盘仅开展实验研究,两者都有转动部件,可靠性差,且质量和体积大;DRAM作为固态存储介质之一,读写速度极快,但因断电易失性,需要备用电池,功耗高,不适用于皮纳卫星;FLASH作为固态存储介质之一,具有存储密度高,约8 GB/die,非易失性等优点,广泛应用于卫星数据存储;FRAM (Ferroelectric RAM)、MRAM(Magnetoresistive RAM)等非易失性RAM具有读写速度极快、抗辐射的优点,但存储密度低,约4 MB/die [13],不适合大容量存储.

1.2 星载存储器件选择

本文选择SDC作为数据存储器件,期望通过与FRAM联合使用,充分发挥两种介质的优点,使存储系统具备大容量和高速数据读写能力.

1.2.1 FRAM特性

FRAM采用铁电质膜用作电容器来存储数据,具有ROM和RAM的特点,在高速读写、耐久性、低功耗和抗辐射方面具有优势.由于FRAM介质天然具有抗辐射和抗磁化的特性,故在空间环境下对单粒子翻转免疫, 但其内置控制器依然会发生单粒子翻转现象.

1.2.2 SDC特性

虽然FLASH具有很多优点,但是使用过程中仍需要实现:1)寿命受到擦写次数限制,需要进行写平衡;2)坏块管理和动态回收;3)位翻转问题需要进行ECC纠错.因此在使用过程需要专用FLASH FS,占用OBC资源多.SDC本质上是以FLASH作为介质的器件,内部增加了Flash Translation Layer(FTL)控制器,封装小,接口相对简单,支持SPI总线接口,可以和微处理器直连,易于管理.SDC内部结构如图 1所示,分为FTL控制器和FLASH两部分[14].发射过程苛刻的力学环境、运行过程电源过流过压、辐射总剂量超标、单粒子翻转或闭锁以及其他因素,都可能造成SDC故障,如SDC损坏,不能访问;读写次数过多导致扇区损坏;FTL控制器单粒子翻转;FLASH介质也会发生位翻转;FTL固件程序存储区也容易损坏,造成指令执行失效等故障.

图 1 SDC内部结构 Figure 1 SD memory card architecture
2 FS操作流程

星载数据存储系统存储数据种类多,飞行时间很长,如直接读写SDC的方式进行数据存储,数据管理复杂并使用缺乏灵活性.为了满足空间越来越复杂的存储和数据传输需求,需要一种能够对数据进行文件化管理的FS.

FS的选择从3个方面考虑:1)保证数据存储的性能,较高的文件数据读写速度,减少资源过度开销;2)避免反复读写对FLASH寿命影响;3)能够保证FS的可靠性,如防止突然断电或系统崩溃造成数据损失或错误.

对于SDC而言,由于内部已有专门的FTL控制器,故不需要专用的FLASH FS,避免了写平衡和坏块管理等功能的CPU和内存资源开销.FAT(file allocation table) FS作为广泛应用的FS[15],也方便在测试阶段时直接在个人计算机和OBC之间交换数据,其结构见表 1.

表 1 FAT FS结构 Table 1 Organization of a FAT volume

由于FAT FS最初设计对象为桌面计算机,因此应用在星载嵌入式系统时其可靠性和读写性能变差.数据操作流程详细分析如下:FS数据写入时先判断当前簇分配的剩余空间是否满足数据大小要求,如不能满足要求则FAT表 1重新分配簇后再写入数据,完成后更新对应目录项中文件大小和修改时间等元数据,最后更新FAT表 2.一次数据原子(atomic)操作需要同时完成两个FAT表、目录和文件数据的3部分内容,导致读写性能下降,特别是易产生碎片导致读写速度进一步下降,并且可靠性差.例如系统突然断电、操作系统跑飞等,可能导致上述三者未全部更改完成,写入数据的不确定状态可能造成数据丢失、文件丢失.严重时FAT表受到损害,包括簇丢失、不同文件指向同一FAT记录项导致交叉错误等问题.

表 2 读写性能实验测试结果 Table 2 The test result of R/W performance experiment
3 数据存储系统设计

星载数据存储系统集成到OBC中实现,总体结构如图 2所示,主要由处理器(含CPU、RAM和外设控制器)、FRAM组、SDC组、板上电源以及限流保护开关组成.通过对比处理器内RAM、FRAM和SDC三者优缺点,不同介质实现不同的作用:RAM不具有非易失性,用于实时数据缓存;FRAM速度极快、容量小,用于存储关键的数据参数,如在轨参数等;SDC速度低、大容量,用于存储卫星平台和载荷产生数据.处理器与FRAM、SDC之间均采用SPI总线进行通讯.根据产生故障来源不同分别采用不同的技术措施:对于单粒子闭锁引起的FRAM和SDC故障,通过外加电流限流保护开关进行防护,属于已有比较成功的解决方案;对于辐射总剂量引起的故障,选用有在轨成功飞行经历的工业级FRAM和SDC,尽管所选FRAM和SDC地面测试结果表明其抗辐射特性满足总剂量要求,但依然通过三模冗余备份的容错结构提高系统可靠性,以防止其他非预期因素导致的故障发生;对于单粒子翻转引起数据位错误,一方面通过SDC内部ECC进行纠错,另一方面采用三模表决进行纠错.

图 2 星载数据存储系统结构框图 Figure 2 The block diagram of onboard data storage system

所选元器件均为具有飞行经验的COTS(Commercial off the Shelf Components),其中关键部分器件如下:

1) 处理器.由于星务系统主要负责任务调度和数据管理,本文选用具备良好任务调度能力的ARMv7内核298 DMPIS汽车级处理器,其内置带ECC的256 KB数据RAM,支持单位错误校正和双位错误检测;

2) FRAM.选用FRAM,容量128 KB×8,可读写次数1014,在不高于65 ℃数据保持期高于151 a,数据写入无延迟,40 MHz总线频率;

3) SDC.根据文献[6, 9]资料可知,基于SLC(single-level cell)技术的FLASH相对于MLC(multi-level cell)可靠性高,故选用SLC型SDC,容量2 GB,FLASH块擦除/烧写次数为100 000次,在该擦写次数下数据保持期高于1 a,支持BCH ECC纠错:40 b/1 KB.

4 文件数据存储方法

根据FAT FS和SDC的特点,结合三模容错架构,提出一种基于3种介质的三级文件数据存储方法,从文件数据管理和数据存储方法两个层面来提高数据存储的可靠性和读写速度,如图 3所示.

图 3 三级存储机制数据流 Figure 3 The data flow of three-level data storage system
4.1 数据存储方法

在存储数据量一定情况下,通过加大一次写入数据量,减小SDC读写操作次数,即可以提高数据读写速度,也可以提高文件操作可靠性.根据不同介质的特性,形成一种RAM内数据帧、FRAM内数据段、SDC内文件的三级数据管理与存储机制.其写入过程为:RAM仅作为OBC实时测量和计算产生数据缓冲,采样数据经编码后成一帧数据;FRAM内存储由N个数据槽组成的数据段,每个槽内对应一帧数据,RAM在数据帧的帧头加序号与时间戳,帧尾加校验后即存入槽中,并修改对应文件信息的槽相关参数;SDC上文件为由数据段组成环形数据结构,待FRAM数据段的槽满后马上写入文件对应的位置,最后修改文件信息参数.文件数据读取过程与写入相反,不再赘述.由于SDC FTL控制器对内部FLASH的数据操作是以PAGE为单位进行读写,以BLOCK为单位进行擦除的.为进一步提高数据读写速度,在SDC读写时,数据段大小等于SECTOR(PAGE)的整倍数,除减少读写次数外,还可以减少内部FLASH的操作.

RAM通过处理器内置的ECC纠错防止单粒子翻转,FRAM采用三模表决方式来防止数据错误,SDC采用三模数据存储,但在读出时只读其中一片SDC,如读过程SDC内部ECC报错,则读取其他SDC同一位置数据.通过三级存储+三模冗余相结合加强了系统可靠性.

4.2 文件数据管理

FAT FS实现简单,通用性强,但存在易产生碎片导致读写速减慢,可靠性也差等问题.NTFS等日志式FS能够提高数据可靠性,但日志作为最常用的部分需要记录详细的读写操作,不断的读写FLASH极易导致硬件故障,并且对FLASH损耗较大,严重影响FLASH寿命, 而从损坏的日志中恢复数据会导致更多的数据损坏.

为提高可靠性,尽可能避免FAT FS同时对FAT表、目录项和数据三者操作可能造成文件数据故障.根据卫星平台和载荷记录数据等要求,提前在SDC上分别生成对应的文件,并按照记录数据长度合理的预先分配文件空间,避免了数据操作时再次分配FAT表中簇和更改目录项中文件长度,同时禁用因修改时间和日期项对目录项的数据操作.由此提高了文件数据操作的可靠性和速度.文件数据管理以数据段为单位读写操作文件,文件内部按照环形数据结构方式进行存储.读写时如超出文件长度则指向零位置开始操作.并建立对应文件的数据段写入、读取和删除的位置指针以及最后修改时间与日期等文件信息参数,存储在FRAM中,防止数据断电后丢失.因为文件信息修改在数据操作之后,防止了突然断电等异常造成文件错误.

5 实验结果与在轨验证

为验证系统方案正确性,本文基于FAT32 FS,设计并实现了数据存储系统飞行样机,如图 4所示.通过地面实验测试存储系统性能与故障容错能力,检验整个系统可行性,并最终作为“翱翔一号”2U立方卫星OBC的数据存储子系统进行在轨试验验证.

图 4 数据存储系统飞行样机 Figure 4 The flight prototype of data storage system
5.1 性能测试实验

性能测试主要考验FS性能指标,与文件数量、大小无关,因此只创建一个文件,数据文件总长256 MB,记录间隔0.5 s,SDC和FRAM的SPI总线速率分别为20、40 MHz.按照三级数据存储和数据帧直接存储SDC两种思路分别进行1 MB总数据量的写入和读取实验(写入为3片SDC同时操作,读出为单片SDC操作).实验存储方法分别采用:1)三级存储、数据段=10 KB、数据槽=256 B、数据帧=235 B;2)三级存储、数据段=5 KB、数据槽=256 B、数据帧=235 B;3)直接存储、数据帧=256 B; 4)直接存储、数据帧=512 B.每种方法各完成10次测试,并统计对比实验结果.写入时间测试实验结果如图 5所示,读取时间测试实验结果如图 6所示,图中自左向右依次为方法1~4.表 2为10次实验均值时间.

图 5 写入实验测试结果 Figure 5 The test result of writing performance experiment
图 6 读取实验测试结果 Figure 6 The test result of reading performance experiment

通过对比实验结果,可知采用三级文件数据存储方法写入速度提高约4.7倍,即使相对于整扇区512 B写入也提高了2.5倍,并且写入速度会随数据段长度变大而加快.但是数据读取时,读取单片SDC的速度变化不大,并且读取长度等于一个扇区时速度最快.

5.2 故障容错实验 5.2.1 任一SDC故障

1) 实验方法.在数据操作(读取/写入)时,突然拔掉其中一片卡,观察数据操作是否依旧正常,是否和预期一致.

2) 实验结果.通过实验测试得到以下结果: a)数据写入.数据写入正常,由3片SDC写入变为2片SDC操作,与预期一致;b)数据读取.数据读取发现异常,SDC切换间隔≤10 ms,未影响数据读取等操作.

5.2.2 系统突然断电

1) 实验方法.在数据操作(读取/写入)时,突然给整个系统断电,观察每个文件和FRAM数据记录情况.文件是否损坏、数据是否丢失、数据存在FRAM、SDC、以及文件信息情况.

2) 实验结果.通过实验测试可知,文件未损坏,数据丢失≤1数据帧,仅发生在帧生成后未及时写入FRAM时刻,未造成系统文件数据混乱,并且发生次数与总试验次数比为1/100,概率低.

5.3 在轨运行验证

2017年4月18日,该数据存储系统作为OBC子单元随“翱翔1号”2U卫星,搭载宇宙神5运载火箭(Atlas5)/天鹅座货运飞船发射到国际空间站,并于5月26日释放部署.在轨运行至今,数据存储系统已经开始记录科学单元和平台状态数据,已存储数据量超过1.5 MB.存储系统在工作过程中,3片FRAM和SDC运行均正常,FS运行良好,文件未出现故障;存储系统运行过程中,其他各子系统工作均正常,即存储系统未影响到其他系统运行.运行结果表明,在轨空间环境下,基于三模冗余容错架构的三级文件数据存储方法可行有效,满足星上任务需求.

6 结论

1) 本文通过分析多种存储介质的特性以及FS工作流程后,提出了一种“三模容错架构和三级数据存储”文件数据存储系统方案,满足了皮纳卫星的数据存储高可靠和高性能需求.

2) 结合RAM、FRAM、SDC 3种介质的特点,采用三级数据存储策略,在三模冗余硬件结构的基础上,提前预分配文件空间,建立环形数据存储结构,以减少FS操作复杂性,降低FS错误率,提高了数据存储故障容错能力和系统存储读写速度.

3) 地面性能和故障实验测试结果表明:数据写入速度相对于直接数据存储提高约4.7倍;任一SDC发生故障或异常或者系统突然断电均不会造成文件损坏,数据丢失≤1帧,读取SDC数据时故障切换时间≤10 ms.搭载“翱翔一号”卫星入轨工作后,运行过程中,FS、文件和介质均工作正常,且未影响其他系统工作.

4) 地面实验和在轨运行结果表明, 所采用的数据存储系统方案有效可行,系统可靠性和读写性能均得到提高,能够满足卫星系统的数据存储任务需求.

参考文献
[1]
Sciencemag org. Breakthrough of the year 2014[J]. Science, 2014, 346(6216): 1444-1449. DOI: 10.1126/science.346.6216.1444
[2]
陈雪芹, 王峰, 耿云海, 等. 敏捷小卫星姿态控制律和操纵律一体化设计[J]. 哈尔滨工业大学学报, 2012, 44(1): 7-11.
CHEN Xueqin, WANG Feng, GENG Yunhai, et al. Integrated attitude control algorithm and steering law for agile small satellites[J]. Journal of Harbin Institute of Technology, 2012, 44(1): 7-11. DOI: 10.11918/j.issn.0367-6234.2012.01.002
[3]
Eoportal. Delfi-n3Xt (Delfi Triple CubeSat NeXt) mission[EB/OL]. [2017-06-01]. https://directory.eoportal.org/web/eoportal/satellite-missions/d/delfi-n3xt.
[4]
SPRINGMANN J C, KEMPKE B P, CUTLER J W, et al. Development and initial operations of the RAX-2 CubeSat[C]//Proceedings of the 4S(Small Satellites Systems Services) Symposium. Portoroz, Slovenia: ESA/CNES, 2012.
[5]
LAMORIE J, RICCI F. MicroSD operational experience and fault-mitigation techniques[C]//Proceedings of the 29th Annual AIAA/USU Conference on Small Satellites. [S. l. ]: DigitalCommons@USU, 2015.
[6]
许浩, 李向阳, 刘泳. 星载嵌入式文件系统技术研究及实现[J]. 航天器工程, 2007, 16(5): 41-46.
XU Hao, LI Xiangyang, LIU Yong. Investigation and implementation of embedded file system technology for space application[J]. Spacecraft Engineering, 2007, 16(5): 41-46. DOI: 10.3969/j.issn.1673-8748.2007.05.008
[7]
STRAUSS K F. Memory technologies and data recorder design[C]// Proceedings of the IEEE Aerospace Conference. Big Sky, MT: IEEE, 2009: 1-18. DOI: 10.1109/aero.2009.4839509.
[8]
FABIANO M, FURANO G. NAND flash storage technology for mission-critical space applications[J]. IEEE Aerospace & Electronic Systems Magazine, 2013, 28(9): 30-36. DOI: 10.1109/maes.2013.6617096
[9]
KINGSBURY R, SCHMIDT F, CAHOY K, et al. TID tolerance of popular cubesat components[C]// 2013 IEEE Radiation Effects Data Workshop. San Francisco, CA: IEEE, 2013: 1-4. DOI: 10.1109/redw.2013.6658220.
[10]
Innovative Solutions in Space. ISIS On Board Computer[EB/OL]. [2017-05-08]. https://www.isispace.nl/product/on-board-computer.
[11]
PIETER J B. The design and development of an ADCS OBC for a CubeSat[D]. Cape Town: Stellenbosch University, 2011.
[12]
中国航天科技集团公司第五研究院第五一三研究所. 一种星载高速文件管理系统[P]. 中国: CN103646063B. 2016. 08. 17.
[13]
Cypress Semiconductor Corporation. F-RAM (Nonvolatile Ferroelectric RAM)[EB/OL]. [2017-06-01]. http://www.cypress.com/products/fram-nonvolatile-ferroelectric-ram.
[14]
SD Specifications. Part 1: Physical Layer Simplified Specification Version 4. 10[S]. San Ramon: SD Card Association, 2013.
[15]