一种提高小卫星星载固态存储器存储效率的方法
【专利摘要】本发明涉及一种提高小卫星星载固态存储器存储效率的方法,针对固态存储器较低存储效率的问题,提出了一种新的方法,固态存储器记录数据时,通过提取帧同步,判断当前AOS帧虚拟信道标识,若为数据填充帧,不记录到存储器中;若为有效数据帧,剔除每一帧中固定数据部分,例如帧同步头、版本号、航天器标识符、虚拟信道标识符以及尚未进行编码的信道编码校验码部分,读出数据时,根据对AOS帧作的标注数据,完全恢复出AOS帧数据,该方法仅记录AOS帧中的有效数据,极大的提高了固态存储器的存储效率。
【专利说明】
一种提高小卫星星载固态存储器存储效率的方法
技术领域
[0001]本发明涉及一种提高小卫星星载固态存储器存储效率的方法,特别是基于小卫星分辨率高,星载固态存储器写入数据率高,存储容量受限的情况。
【背景技术】
[0002]小卫星有效载荷数据的分辨率越来越高,量化位数越来越多,幅宽越来越宽,使得有效载荷输出的数据量呈几何级数增加,这对星载固态存储器的存储容量和存储效率提出了新的要求。
[0003]卫星将一部分有效载荷数据经压缩编码器进行数据压缩后,连同另一部分不需要压缩的有效载荷数据一并送至数据处理器。数据处理器将两部分有效载荷数据按照CCSDS建议的AOS标准进行组帧,最后将数据帧存储在固态存储器中,固态存储器读出数据时,将帧数据送给数据处理器进行后续信道编码和加扰处理等。固态存储器的记录和读出数据的信息流如图1所示。
[0004]数据帧一般包括帧同步头、版本号、航天器标识符、虚拟信道标识符、虚拟信道计数器、信道编码校验码等部分。AOS数据帧的示意图如图2所示。
[0005]帧同步头、版本号、航天器标识符、虚拟信道标识符为固定码字。信道编码在数传处理器中进行编码,编码的数据是固态存储器读出的数据帧,因此,记录到固态存储器中的信道编码校验码为信道编码前的无效数据。有效载荷数据区存放各路有效载荷数据。虚拟信道标识包括有效载荷I标识、有效载荷2标识、有效载荷3标识、…、有效载荷η标识以及无效填充数据标识。示意图如图3所示。
[0006]目前,记录到固态存储器中的数据帧包括各种有效载荷的数据帧和无效数据帧。数据处理器组帧时,在空闲时候插入无效数据填充帧,确保输出恒定速率的帧数据。有效数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符等固定码字,以及信道编码校验码预留区部分占用了 AOS帧中的很多资源,使得帧效率大大降低。如果将上述所有数据均记录到固态存储器中,使得固态存储器的存储效率大大降低,浪费了星载有限的数据存储资源。
【发明内容】
[0007]本发明的目的在于克服现有技术的上述缺陷,提供一种提高小卫星星载固态存储器存储效率的方法,该方法有效延长了记录有效数据的时间,缩短了读取固态存储器中数据的时间,显著提高了固态存储器的存储效率。
[0008]本发明的上述目的主要是通过如下技术方案予以实现的:
[0009]—种提高小卫星星载固态存储器存储效率的方法,固态存储器包括记录数据模块、数据存储区和读出数据模块,具体实现方法如下:
[0010](I)、记录数据模块实时接收AOS数据帧,并实时对AOS数据帧提取帧同步,若提取到帧同步,则进入步骤(2);若未提取到帧同步,则重复步骤(I);[0011 ] (2)、记录数据模块判断当前AOS数据帧的帧虚拟信道标识VCDU,若当前AOS数据帧为有效数据帧,则进入步骤(3);若当前AOS数据帧为数据填充帧,则不记录到固态存储器中;
[0012](3)、记录数据模块判断当前AOS数据帧的虚拟信道计数器Count连续性,即判断当前AOS数据帧的虚拟信道计数器Count的计数相比上一个AOS数据帧的虚拟信道计数器Count的计数的增量是否为I,若增量不为I,则判断Count不连续,进入步骤(4);若增量为I,则判断Count连续,进入步骤(5);
[0013](4)、保留当前AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器不连续性标识Mark二进制码“O”,并将当前AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中;
[0014](5)、保留当前AOS数据帧之前与其最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器连续性标识Mark 二进制码“I”,并将所述Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中;
[0015](6)、存储数据时,记录数据模块剔除记录在缓存区中的当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符和信道编码校验码预留区,并将所述帧同步头、版本号、航天器标识符、虚拟信道标识符及其位数、信道编码校验码预留区的位数发送给读出数据模块,将剔除上述内容后的当前AOS数据帧和虚拟信道计数器Count的值按照存储区地址依次存储到数据存储区中,所述虚拟信道计数器Count的值为步骤(4)或步骤(5)中的虚拟信道计数器Count的值;
[0016](7)、读出数据时,读出数据模块从数据存储区中读出当前AOS数据帧,恢复当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符和信道编码校验码预留区,然后对Mark的值进行判断,若Mark值为“O”,直接将Count的值输出,作为当前AOS数据帧的虚拟信道计数器Count值;若Mark值为“I”,根据所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和存储区的地址增量计算出当前AOS数据帧的Count的值输出。
[0017]在上述提高小卫星星载固态存储器存储效率的方法中,所述步骤(I)中若连续搜索到N个AOS数据帧的同步头均为设定的同步头,则判断提取到帧同步,否则,判断未提取到帧同步;若判断提取到帧同步后,继续对接收到的AOS数据帧的同步头进行搜索,若连续M个AOS数据帧未搜索到设定的同步头,则判断未提取到帧同步;所述N、M均为正整数。
[0018]在上述提高小卫星星载固态存储器存储效率的方法中,步骤(2)中若当前AOS数据帧的帧虚拟信道标识VCDU的值为“101010”,则判断为数据填充帧。
[0019]在上述提高小卫星星载固态存储器存储效率的方法中,步骤(7)中将所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值与存储区的地址增量求和即得到当前AOS数据帧的Count的值。
[0020]本发明与现有技术相比具有如下有益效果:
[0021](I)、本发明针对固态存储器较低存储效率的问题,提出了一种新的方法,固态存储器记录数据时,通过提取帧同步,判断当前AOS帧虚拟信道标识,若为数据填充帧,不记录到存储器中;若为有效数据帧,剔除每一帧中固定数据部分,例如帧同步头、版本号、航天器标识符、虚拟信道标识符以及尚未进行编码的信道编码校验码部分,读出数据时,根据对AOS帧作的标注数据,完全恢复出AOS帧数据,该方法仅记录AOS帧中的有效数据,极大的提高了固态存储器的存储效率;
[0022](2)、本发明方法有效提高固态存储器的存储效率,延长了记录有效数据的时间,充分利用星上有限的存储资源,由于记录到固态存储器中的数据只有AOS数据帧中的有效数据部分,提高了读取数据的效率,缩短了读取数据的时间,在卫星有限的过境时间内,可以传输更多的有效数据。
【附图说明】
[0023]图1为固态存储器的记录和读出数据的信息流;
[0024]图2为AOS数据帧的示意图;
[0025]图3为虚拟信道标识示意图;
[0026]图4为本发明记录到固态存储器中的数据情形图;
[0027]图5为本发明固态存储器原理框图;
[0028]图6为本发明提高固态存储器存储效率方法的实现流程图;
[0029]图7为本发明实施例中数据帧示意图1;
[0030]图8为本发明实施例中数据帧示意图2。
【具体实施方式】
[0031]下面结合附图和具体实施例对本发明作进一步详细的描述:
[0032]如图4所示为本发明记录到固态存储器中的数据情形图,图5所示为本发明固态存储器原理框图,本发明固态存储器包括记录数据模块、数据存储区和读出数据模块,本发明提高小卫星星载固态存储器存储效率的方法具体包括如下步骤:
[0033](I )、记录数据模块实时接收AOS数据帧,并实时对AOS数据帧提取帧同步,若提取到帧同步,则进入步骤(2);若未提取到帧同步,则重复步骤(I);
[0034]该步骤中若连续搜索到N个AOS数据帧的同步头均为设定的同步头,则判断提取到帧同步,否则,判断未提取到帧同步;若判断提取到帧同步后,继续对接收到的AOS数据帧的同步头进行搜索,若连续M个AOS数据帧未搜索到设定的同步头,则判断未提取到帧同步。所述N、M均为正整数,且3<N<6,1 SMS3。
[0035](2)、记录数据模块判断当前AOS数据帧的帧虚拟信道标识VCDU,若当前AOS数据帧为有效数据帧,则进入步骤(3);若当前AOS数据帧为数据填充帧,则不记录到固态存储器中;
[0036](3)、记录数据模块判断当前AOS数据帧的虚拟信道计数器Count连续性,即判断当前AOS数据帧的虚拟信道计数器Count的计数相比上一个AOS数据帧的虚拟信道计数器Count的计数的增量是否为I,若增量不为I,则判断Count不连续,进入步骤(4);若增量为I,则判断Count连续,进入步骤(5);
[0037](4)、保留当前AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器不连续性标识Mark二进制码“O”,并将当前AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中;
[0038](5)、保留当前AOS数据帧之前与其最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器连续性标识Mark 二进制码“I”,并将所述Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中;
[0039](6)、存储数据时,记录数据模块剔除记录在缓存区中的当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符和信道编码校验码预留区,并将所述帧同步头、版本号、航天器标识符、虚拟信道标识符及其位数、信道编码校验码预留区的位数发送给读出数据模块,将剔除上述内容后的当前AOS数据帧和虚拟信道计数器Count的值按照存储区地址依次存储到数据存储区中,所述虚拟信道计数器Count的值为步骤(4)或步骤(5)中的虚拟信道计数器Count的值;
[0040](7)、读出数据时,读出数据模块从数据存储区中读出当前AOS数据帧,恢复当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符、和信道编码校验码预留区,然后对Mark的值进行判断,若Mark值为“O”,直接将Count的值输出,作为当前AOS数据帧的虚拟信道计数器Count值;若Mark值为“I”,根据所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和存储区的地址增量计算出当前AOS数据帧的Count的值输出。即将所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值与存储区的地址增量求和即得到当前AOS数据帧的Count的值。如图6所示为本发明提高固态存储器存储效率方法的实现流程图。
[0041 ] 实施例1
[0042](I)、对输入的AOS数据帧进行帧同步提取,具体实现方法如下:将输入的AOS数据帧进行并串变换,然后按照串行码流的先后顺序与同步头“1ACFFC1D”的二进制码“00011010110011111111110000011101”进行异或运算,然后统计运算后的结果Value;为避免误提取帧同步,要求连续两帧的帧同步提取间隔的bi t数为AOS数据帧的长度1024bi ts ;若Value>2,则认为未发现AOS数据帧;若Value < 2,则认为已经找到一帧AOS数据帧,此时将统计连续发现AOS数据帧个数的计数器FindCount+Ι,若FindCount = 5时,则认为已经完成帧同步提取,进入同步锁定状态,禁止计数器FindCount且保持计数器当前值5,同时使能并清零连续丢失AOS数据帧个数的计数器LostCount,继续对输入的AOS数据帧按照1024bits的间隔进行异或运算,若Value>2jljLostCount+l ;当LostCount>3时,进入同步失锁状态,禁止计数器LostCount,且保持计数器当前值3,同时使能并清零连续发现AOS数据帧个数的计数器FindCount。若处于同步锁定状态,则进入步骤(2);若处于同步失锁状态,则重复步骤(I)。
[0043](2)、判断当前AOS数据帧虚拟信道标识V⑶U,若为数据填充帧,不记录到固态存储器中;例如:AOS数据帧中共有5路虚拟信道数据,即有效载荷I为二进制码“000001”、有效载荷2为二进制码“000010”、有效载荷3为二进制码“000011”、有效载荷4为二进制码“000100”、有效载荷5为二进制码“000101”和填充帧为二进制码“101010” ;若VCDU =“101010”,则为数据填充帧,不记录到固态存储器中。若V⑶U在“101010”,则为有效数据帧,进入步骤(3)。
[0044]载荷送来的数据率会随着数据的行周期进行变化,最小行周期时数据率最大,最大行周期时数据率最小。例如,行周期范围为0.1ms?0.2ms,假定最小行周期0.1ms时无数据填充帧,那么最大行周期0.2ms时数据填充帧的比例为0.1/0.2 = 50%,可见在行周期较大时,数据填充帧所占的比重较大,剔除数据填充帧可以大大提高固态存储器的存储效率。
[0045](3)、如图7所示,以有效载荷I的AOS数据帧为例进行说明,其虚拟信道标识VCDU为二进制码“000001”;记录数据模块判断当前AOS数据帧的虚拟信道计数器Count连续性;假定上一个AOS数据帧的虚拟信道计数器Count的值为20,若当前AOS数据帧的虚拟信道计数器Count的值为30,贝Ij认为Count不连续,进入步骤(4),假定上一个AOS数据帧的虚拟信道计数器Count的值为9,若当前AOS数据帧的虚拟信道计数器Count的值为10,认为Count连续,进入步骤(5)。其它路有效载荷处理过程同理。
[0046](4)、如图7所示,保留当前AOS数据帧的Count的值为30,在AOS数据帧的末尾增加Mark为O的标识;将AOS数据帧的虚拟信道计数器Count为30的值和当前AOS数据帧记录在记录数据模块的缓存区中。
[0047](5)、如图7所示,保留当前AOS数据帧之前与其最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值,S卩Count为8的值,在当前AOS数据帧的末尾增加Mark标识,Mark值为I;将当前AOS数据帧及AOS数据帧的虚拟信道计数器Count为8的值记录在记录数据模块的缓存区中;Count值从9到20的AOS数据帧同理,Count值从31到80的AOS数据帧同理。
[0048](6)、如图8所示,存储数据时,记录数据模块剔除当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符的内容和各部分所占的bit位数,剔除信道编码校验码预留区所占的bit位数,并将剔除部分的内容和所占的bit位数发送给读出数据模块,将记录在缓存区中(4)和(5)的AOS数据帧和虚拟信道计数器Count的值按照存储区地址存储到数据存储区中;不同虚拟信道的数据分区记录到各自的存储区中,即有效载荷I数据记录在MEMl中、有效载荷2数据记录在MEM2中、有效载荷3数据记录在MEM3中、有效载荷4数据记录在MEM4中和有效载荷5数据记录在MEM5中。
[0049]例如:同步头为32bit,版本号为2bit,航天器标识符为Sbit,虚拟信道标识符为6bit,虚拟信道计数器为24bit,信道编码校验码预留区为1024bit和AOS帧长为8192bit,一帧中无效数据总量为32+2+8+6+24+1024= 1096bit,无效数据所占比例约为1096/8192 =13.38%,剔除帧中无效数据部分可以提高固态存储器的存储效率约为13.38%。
[0050](7)、读出数据时,读出数据模块从数据存储区中读出当前AOS数据帧,恢复当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符各部分的内容和所占的bit位数,恢复信道编码校验码预留区所占的bit位数,然后按照存储区中的地址依次对虚拟信道计数器连续性标识Mark进行判断,若Mark值为“O”,直接将Count的值输出,作为当前AOS数据帧的虚拟信道计数器Count值,例如直接将Count的值为30输出;若Mark值为T,根据最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和存储区MEM的地址增量计算出当前AOS数据帧的Count的值输出,即根据Count的值为8与存储区MEM的地址增量2,8+2 = 10,将Count的值为10输出。
[0051 ] (8)、将恢复后的AOS数据帧输出给后端设备数据处理器进行信道编码和加扰处理等操作。
[0052]以上所述,仅为本发明最佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
[0053]本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
【主权项】
1.一种提高小卫星星载固态存储器存储效率的方法,其特征在于:所述固态存储器包括记录数据模块、数据存储区和读出数据模块,具体实现方法如下: (1)、记录数据模块实时接收AOS数据帧,并实时对AOS数据帧提取帧同步,若提取到帧同步,则进入步骤(2);若未提取到帧同步,则重复步骤(I); (2)、记录数据模块判断当前AOS数据帧的帧虚拟信道标识VCDU,若当前AOS数据帧为有效数据帧,则进入步骤(3);若当前AOS数据帧为数据填充帧,则不记录到固态存储器中; (3)、记录数据模块判断当前AOS数据帧的虚拟信道计数器Count连续性,即判断当前AOS数据帧的虚拟信道计数器Count的计数相比上一个AOS数据帧的虚拟信道计数器Count的计数的增量是否为I,若增量不为I,则判断Count不连续,进入步骤(4);若增量为I,则判断Count连续,进入步骤(5); (4)、保留当前AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器不连续性标识Mark二进制码“O”,并将当前AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中; (5)、保留当前AOS数据帧之前与其最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值,在当前AOS数据帧的末尾增加虚拟信道计数器连续性标识Mark 二进制码“I”,并将所述Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和当前AOS数据帧记录在记录数据模块的缓存区中; (6)、存储数据时,记录数据模块剔除记录在缓存区中的当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符和信道编码校验码预留区,并将所述帧同步头、版本号、航天器标识符、虚拟信道标识符及其位数、信道编码校验码预留区的位数发送给读出数据模块,将剔除上述内容后的当前AOS数据帧和虚拟信道计数器Count的值按照存储区地址依次存储到数据存储区中,所述虚拟信道计数器Count的值为步骤(4)或步骤(5)中的虚拟信道计数器Count的值; (7)、读出数据时,读出数据模块从数据存储区中读出当前AOS数据帧,恢复当前AOS数据帧中的帧同步头、版本号、航天器标识符、虚拟信道标识符和信道编码校验码预留区,然后对Mark的值进行判断,若Mark值为“O”,直接将Count的值输出,作为当前AOS数据帧的虚拟信道计数器Count值;若Mark值为“I”,根据所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器Count的值和存储区的地址增量计算出当前AOS数据帧的Count的值输出。2.根据权利要求1所述的一种提高小卫星星载固态存储器存储效率的方法,其特征在于:所述步骤(I)中若连续搜索到N个AOS数据帧的同步头均为设定的同步头,则判断提取到帧同步,否则,判断未提取到帧同步;若判断提取到帧同步后,继续对接收到的AOS数据帧的同步头进行搜索,若连续M个AOS数据帧未搜索到设定的同步头,则判断未提取到帧同步;所述N、M均为正整数。3.根据权利要求1所述的一种提高小卫星星载固态存储器存储效率的方法,其特征在于:所述步骤(2)中若当前AOS数据帧的帧虚拟信道标识VCDU的值为“101010”,则判断为数据填充帧。4.根据权利要求1所述的一种提高小卫星星载固态存储器存储效率的方法,其特征在于:所述步骤(7)中将所述最接近的Mark二进制码为“O”的AOS数据帧的虚拟信道计数器 Count的值与存储区的地址增量求和即得到当前AOS数据帧的Count的值。
【文档编号】G06F3/06GK105867849SQ201610184553
【公开日】2016年8月17日
【申请日】2016年3月28日
【发明人】刘志佳, 张敬, 张敬一, 石雷, 郭琪, 李鹏飞, 马红军, 丁笑云, 蔺祥宇, 欧民, 辛保礼
【申请人】航天东方红卫星有限公司