本发明涉及航天系统原始数据处理,尤其涉及一种aos帧有效数据提取方法、装置、电子设备及介质。
背景技术:
1、随着人类探索宇宙空间需求的不断扩大,各国发射了大量的航天器用于对地观测和深空探测,产生了大量不同种类、不同大小的观测数据需要传回地面进行处理。以高分辨光学成像卫星为例,每天观测获取传输到地面的载荷原始观测数据达3tb。针对航天器数据种类多、码速率差异大等特点,空间数据系统咨询委员会(consultative committee forspace data systems,ccsds)制定了高级在轨系统(advanced orbit system,aos)协议标准用于空-空、空-地数据传输与处理。
2、航天器对地数据传输过程中,由于设备故障,雷电、雨雪等干扰,会导致载荷数据传输失败、数据误码、丢帧等问题。本领域技术人员通过对设备性能、帧同步、译码等技术的研究,目前航天器遥测、数传误码率已经优于10-7,即每10,000,000比特中,通过对地数传、帧同步、译码纠错处理之后最多有1个比特存在误码。然而,在现有aos帧数据有效数据提取处理技术中,当crc校验失败后,采取直接丢弃处理的策略。以aos帧长为1024字节、bpdu位流数据区长度为848字节为例,若星地传输过程中,vcdu主导头、vcdu插入域、vcdu数据单元、vcdu差错控制域某几个比特因为信号干扰导致跳变,经过帧同步、解扰、译码处理之后仍然未完全纠正导致后续crc校验失败,现有技术将丢弃整个aos帧数据,导致航天器实际遥测、数传误码率达到10-4,造成大量载荷有效数据损失,对后续数据处理进行带来了巨大的困难。因此,当crc校验未通过时,如何最大限度保留并提取vcdu数据单元有效数据是本领域技术人员亟需解决的技术问题。
技术实现思路
1、鉴于上述问题,本发明提供了一种aos帧有效数据提取方法,以解决现有技术aos帧数据修复中丢失数据的问题。
2、本发明的第一个方面提供了一种aos帧有效数据提取方法,包括:
3、获取原始码流aos帧数据,根据aos帧格式校验所述原始码流aos帧数据,将通过校验的有效aos帧存储至对应虚拟信道的有效aos帧数据缓存堆栈,将不通过校验的异常aos帧存储至对应虚拟信道的格式异常aos帧数据缓存堆栈;
4、按aos帧计数将所述有效aos帧数据缓存堆栈中的有效aos帧排序,识别aos帧计数异常跳变;
5、从所述格式异常aos帧数据缓存堆栈获取至少一个所述异常aos帧,修复后按aos帧计数插入对应虚拟信道排序后的有效aos帧数据缓存堆栈,所述异常aos帧的aos帧计数补偿所述aos帧计数异常跳变;
6、从排序后的所述有效aos帧数据缓存堆栈提取载荷数据帧,根据载荷数据帧格式校验的所述载荷数据帧,将校验通过的载荷有效数据帧存入对应虚拟信道的载荷有效数据缓存堆栈,将校验不通过的载荷异常数据帧存入对应虚拟信道的异常bpdu数据缓存堆栈;
7、根据载荷帧计数判断所述载荷有效数据缓存堆栈内的载荷有效数据帧是否丢帧,当所述载荷有效数据帧存在丢帧时,从对应虚拟信道的所述异常bpdu数据缓存堆栈获取补偿丢帧的载荷异常数据帧,对所述载荷异常数据帧进行修复处理,并按载荷帧计数插入所述载荷有效数据帧。
8、根据本发明的实施例,所述获取原始码流aos帧数据,根据aos帧格式校验所述原始码流aos帧数据,将通过校验的有效aos帧存储至对应虚拟信道的有效aos帧数据缓存堆栈,将不通过校验的异常aos帧存储至对应虚拟信道的格式异常aos帧数据缓存堆栈包括:
9、根据aos帧格式,利用帧同步头逐比特搜索所述原始码流aos帧数据,获取第一个通过格式校验的有效aos帧,记录位置p0,并按虚拟信道标识存储到对应的有效aos帧数据缓存堆栈;
10、判断从p0+(n-1)l位置提取的第n帧原始码流aos帧数据是否通过crc校验,l表示所述原始码流aos帧数据的帧长度;
11、若校验通过,按虚拟信道标识存储所述第n帧原始码流aos帧数据到对应的有效aos帧数据缓存堆栈;
12、若校验失败,从p0+(n-1)l位置逐比特搜索所述原始码流aos帧数据,获取第一个通过格式校验的原始码流aos帧数据,记录位置p1,并按虚拟信道标识存储到对应的有效aos帧数据缓存堆栈;
13、提取所述原始码流aos帧数据中p0+(n-1)l~p1-1位置的异常aos帧构成异常数据块,存储所述异常aos帧到对应虚拟信道的格式异常aos帧数据缓存堆栈;
14、设置p0=p1,重复上述步骤,直到所有原始码流aos帧数据处理完成。
15、根据本发明的实施例,所述按aos帧计数将所述有效aos帧数据缓存堆栈中的有效aos帧排序,识别aos帧计数异常跳变包括:
16、按aos帧计数将所述有效aos帧数据缓存堆栈中的有效aos帧排序;
17、若所述有效aos帧数据缓存堆栈中第k-i帧、第k帧、第k+1帧和k+1+i帧的aos帧计数nk-i、nk、nk+1和nk+1+i满足nk-nk-i=i和nk+1+i-nk+1=i,判断skip=nk+1-nk是否等于1,其中,i≥3;
18、若skip=1,则所述第k帧和所述第k+1帧之间aos帧计数连续,未发生跳变;
19、若skip≠1,则所述第k帧和所述第k+1帧之间发生跳变;
20、判断所述第k+1帧的vcdu主导头信号域是否包含帧计数跳变标识;
21、若所述第k+1帧的vcdu主导头信号域包含帧计数跳变标识,判断帧计数跳变标识是否标识星上跳变;若未标识星上跳变,则所述第k帧和所述第k+1帧之间发生异常跳变,丢失了skip-1帧或2size-nk+nk+1-1帧aos帧,size为vcdu主导头中vcdu计数器的比特个数;否则,所述第k帧和所述第k+1帧之间是正常跳变;
22、若所述第k+1帧的vcdu主导头信号域不包含帧计数跳变标识,判断第k-i帧~第k+i帧在所述原始码流aos帧数据中的位置pk-i和pk+i(10≤i≤100)之间是否存在所述异常数据,若不存在,则所述第k帧和所述第k+1帧之间是正常跳变;否则,所述第k帧和所述第k+1帧之间发生异常跳变,其中,
23、若nk+1>nk,则虚拟信道的第k帧和第k+1帧之间丢失了skip-1帧;
24、若nk+1<nk,则虚拟信道的第k帧和第k+1帧之间有可能存在大面积丢帧,最大丢帧数为2size-nk+nk+1-1。
25、根据本发明的实施例,所述从所述格式异常aos帧数据缓存堆栈获取至少一个所述异常aos帧,修复后按aos帧计数插入对应所述虚拟信道排序后的有效aos帧数据缓存堆栈包括:
26、若第k帧和所述第k+1帧之间存在异常跳变,根据虚拟信道aos帧格式和所述第k帧主导头信息,生成帧计数为nk+i的有效aos帧的正确的同步头和vcdu主导头,其中,当nk+1>nk,1≤i≤skip-1,skip=nk+1-nk;当nk+1<nk,1≤i≤nk+1-1或nk+1≤i≤2size-1,所述有效aos帧数据缓存堆栈中的第k帧和第k+1帧之间存在aos帧计数异常跳变,nk表示所述第k帧的aos帧计数,nk+1表示所述第k+1帧的aos帧计数;
27、以正确同步头和vcdu主导头作为帧计数为nk+i的有效aos帧的特征码,逐比特匹配搜索对应虚拟信道的所述格式异常aos帧数据缓存堆栈;
28、若在所述格式异常aos帧数据缓存堆栈中第j个异常数据块的jm位置,满足biterrornumjm≤biterrornumthreshold,则提取位置为jm~jm+l-1区域的异常aos帧,并修改其vcdu主导头异常比特位为正确比特值,所述异常数据块由所述格式异常aos帧数据缓存堆栈中连续异常跳变的异常aos帧构成,biterrornumjm为jm位置的异常比特位个数,biterrornumthreshold为异常比特位个数阈值,l为所述原始码流aos帧数据的帧长度;
29、对修复后的所述异常aos帧进行aos帧格式校验,其中,
30、若格式校验通过,则将修复后的所述异常aos帧作为帧计数为nk+i的有效aos帧插入到所述有效aos帧数据缓存堆栈中,并删除所述第j个异常数据块中位置为jm~jm+l-1区域数据;
31、若格式校验未通过,而且biterrornumjm==0,则将修复后的所述异常aos帧作为帧计数为nk+i的有效aos帧插入到所述有效aos帧数据缓存堆栈中,并标识修复后的所述异常aos帧的vcdu插入域、vcdu数据单元和vcdu位差错控制域存在误码,并删除所述第j个异常数据块中位置为jm~jm+l-1区域数据;
32、若格式校验未通过,而且biterrornumjm≠0,记录所述异常aos帧在第j个异常数据块中的位置jm和该位置异常比特位个数biterrornumjm;
33、重复上述步骤,修复所述格式异常aos帧数据缓存堆栈中所有仅在vcdu主导头存在误码的异常aos帧,按aos帧计数将修复后的所述异常aos帧插入排序后的所述有效aos帧数据缓存堆栈。
34、根据本发明的实施例,所述若格式校验未通过,而且biterrornumjm≠0,所述方法还包括:
35、逐比特搜索对第j个异常数据块,获得其中biterrornumjm最小的位置jm;
36、提取位置为jm~jm+l-1区域的异常aos帧,并修改vcdu主导头异常比特位为正确比特值,将修复后的所述异常aos帧作为帧计数为nk+i的有效aos帧插入到排序后的所述有效aos帧数据缓存堆栈,同时标识该帧的同步头、vcdu主导头、vcdu插入区、vcdu数据和vcdu位差错控制域均可能存在误码,并删除所述第j个异常数据块中位置为jm~jm+l-1区域数据。
37、根据本发明的实施例,所述从排序后的所述有效aos帧数据缓存堆栈提取载荷数据帧,根据载荷数据帧格式校验的所述载荷数据帧,将校验通过的载荷有效数据帧存入对应虚拟信道的载荷有效数据缓存堆栈,将校验不通过的载荷异常数据帧存入对应虚拟信道的异常bpdu数据缓存堆栈包括:
38、提取所述有效aos帧数据缓存堆栈中的aos帧,若所述aos帧为密态数据,对所述aos帧进行解密处理,所述aos帧包括有效aos帧和修复后的异常aos帧;
39、判断所述aos帧的帧计数是否异常跳变,若跳变,则给跳变的aos帧按虚拟信道aos帧格式生成正确的同步头和vcdu主导头,同时vcdu插入区、vcdu数据和vcdu位差错控制域数据设置为0;
40、按虚拟信道aos帧帧计数自增顺序,逐帧提取所述aos帧的vcdu数据单元的bpdu位流数据区数据;
41、根据虚拟信道载荷数据帧格式,利用帧同步头逐比特搜索所述bpdu位流数据区数据,获取第一个通过载荷数据帧格式校验的载荷有效数据帧,记录位置vp0,并按虚拟信道标识存储到对应虚拟信道的载荷有效数据缓存堆栈;
42、取所述bpdu位流数据区数据的位置的数据帧作为第n帧载荷数据帧,1<k≤n,vkl表示所述bpdu位流数据区数据中第k帧载荷数据帧的帧长度;
43、判断第n帧载荷数据帧是否通过载荷数据帧格式校验;
44、若校验通过,按虚拟信道标识存储第n帧载荷数据帧到对应虚拟信道的载荷有效数据缓存堆栈,同时记录帧计数vn和位置vpn;
45、若校验未通过,则从所述bpdu位流数据区数据的位置逐比特搜索获取第一个通过格式校验的载荷有效数据帧,记录位置vp1,并按虚拟信道标识存储到对应虚拟信道的载荷有效数据缓存堆栈,存储所述bpdu位流数据区数据的位置的载荷异常数据帧到异常bpdu数据缓存堆栈;
46、重复上述步骤,直到所述有效aos帧数据缓存堆栈中所有aos帧的载荷数据帧处理完成。
47、根据本发明的实施例,所述根据载荷帧计数判断所述载荷有效数据缓存堆栈内的载荷有效数据帧是否丢帧,当所述载荷有效数据帧存在丢帧时,从对应虚拟信道的所述异常bpdu数据缓存堆栈获取补偿丢帧的载荷异常数据帧,对所述载荷异常数据帧进行修复处理,并按载荷帧计数插入所述载荷有效数据帧包括:
48、判断所述载荷有效数据缓存堆栈中的载荷有效数据帧是否存在丢帧现象,其中,若vk=vk-i+i,vk+i=vk+1+i-1,vskip=vk+1-vk≠1,δl=vpk+1-vpk-vkl,δl/vl≥vskip-1,则在所述载荷有效数据缓存堆栈的第vk帧和vk+1帧之间存在丢帧,vk、vk-i、vk+i和vk+1分别表示第k帧、第k-i帧、第k+i帧和第k+1帧载荷有效数据帧的载荷帧计数,vkl为第k帧载荷有效数据帧的最小帧长度,vl为虚拟信道载荷有效数据最小帧长度,vpk和vpk+1分别表示第k帧和第k+1载荷有效数据帧在所属aos帧的bpdu位流数据区数据中的位置,i>2;
49、当vk+1>vk时,根据载荷帧计数为vk和vk+1的载荷有效数据帧的解析结果生成帧计数为vk+ii帧载荷有效数据帧的可插值确定的信息,并根据帧格式,利用同步头、载荷帧计数和可插值确定的信息,生成载荷帧计数为vk+ii的载荷有效数据帧的搜索特征码,1≤ii≤vskip-1;
50、利用所述搜索特征码,逐比特匹配搜索所述异常bpdu数据缓存堆栈中的载荷异常数据帧,所述载荷异常数据帧为第k帧和第k+1帧载荷有效数据帧所属aos帧的bpdu位流数据区数据中vpk+vkl~vpk+1位置之间的数据;
51、若在vpk+vkl~vpk+1位置之间,所述bpdu位流数据区数据中vpx位置匹配后满足vbiterrornum<vbiterrornumthreshold,提取vpx~vpx+vvk+iil-1位置的数据帧为载荷帧计数为vk+ii的载荷异常数据帧,按所述搜索特征码进行修复,vpk+vkl≤vpx<vpx+vl≤vpk+1,vbiterrornum为匹配后异常比特个数,vbiterrornumthreshold为虚拟信道有效数据阈值,vvk+iil表示载荷帧计数为vk+ii的载荷异常数据帧的帧长度;
52、判断修复后的载荷帧计数为vk+ii的载荷异常数据帧是否通过载荷数据帧格式校验;
53、若通过格式校验,则将载荷帧计数为vk+ii的载荷异常数据帧按载荷帧计数插入到所述载荷有效数据缓存堆栈,同时在所述异常bpdu数据缓存堆栈中删除vpx~vpx+vvk+iil-1之间的数据;
54、若未通过格式校验,记录载荷帧计数为vk+ii的载荷异常数据帧在所述异常数据缓存堆栈可能的位置vpx位置和异常比特个数vbiterrornum;
55、完成vpk+vkl~vpk+1之间所有丢帧的数据的可能位置及异常比特个数的搜索,若从中提取载荷帧计数为vk+ii和vk+ii+1的载荷异常数据帧满足vpvk+ii+vlvk+ii=vpvk+ii+1,则在vpvk+ii位置提取载荷帧计数为vk+ii的载荷异常数据帧,并按生成的搜索特征码进行修复,修复后按载荷帧计数插入到载荷有效数据缓存堆栈,并标志其异常,同时在所述异常bpdu数据缓存堆栈中删除vpx~vpx+vvk+iil-1之间的数据,vpvk+ii+1为载荷帧计数为vk+ii+1的载荷异常数据的位置;
56、重复上述步骤,直至vk+1>vk时载荷帧计数为vk和vk+1的载荷有效数据帧之间的丢帧修补完成;
57、当vk+1>vk时,丢帧修补完成后,若vpk+vkl~vpk+1之间还存在vj块不完全为0的载荷异常数据帧,且若在vj块前后分别提取了载荷帧计数为vvj1和vvj2的数据,vvj1<vvj2,vvj2-vvj1=jj,且(vpvj2-vpvj1)/vl==jj,则按载荷帧计数顺序,强制按正确的帧同步头、载荷帧计数、及可插值确定信息,修复第vj块数据为第vvj1+1~vvj2-1之间的数据,并按帧计数顺序插入到对应虚拟信道的载荷有效数据缓存堆栈,并标识数据帧异常;
58、当vk+1<vk时,根据载荷帧计数为vk-ki~vk的载荷有效数据帧的解析结果生成第vk+ii帧数据可插值确定的信息,根据载荷帧计数为vk+1~vk+1+ki的载荷有效数据帧的数据解析结果生成第vk+1-ii帧数据可插值确定的信息,根据帧格式,利用同步头、载荷帧计数和可插值确定的信息,生成第vk+ii帧和vk+1-ii帧的搜索特征码,其中1≤ii≤δl/vl,ki≥2,1≤ii≤vskip-1;
59、根据当vk+1>vk时利用搜索特征码逐比特匹配搜索所述异常bpdu数据缓存堆栈中的载荷异常数据帧的方法,完成丢帧修补。
60、本发明的第二个方面提供了一种aos帧有效数据提取装置,包括:
61、原始码流分类模块,用于获取原始码流aos帧数据,根据aos帧格式校验所述原始码流aos帧数据,将通过校验的有效aos帧存储至对应虚拟信道的有效aos帧数据缓存堆栈,将不通过校验的异常aos帧存储至对应虚拟信道的格式异常aos帧数据缓存堆栈;
62、有效帧排序模块,用于按aos帧计数将所述有效aos帧数据缓存堆栈中的有效aos帧排序,识别aos帧计数异常跳变;
63、异常aos帧修复模块,用于从所述格式异常aos帧数据缓存堆栈获取至少一个所述异常aos帧,修复后按aos帧计数插入对应虚拟信道排序后的所述有效aos帧数据缓存堆栈,所述异常aos帧的aos帧计数补偿所述aos帧计数异常跳变;
64、载荷数据提取模块,用于从排序后的所述有效aos帧数据缓存堆栈提取载荷数据帧,根据载荷数据帧格式校验的所述载荷数据帧,将校验通过的载荷有效数据帧存入对应虚拟信道的载荷有效数据缓存堆栈,将校验不通过的载荷异常数据帧存入对应虚拟信道的异常bpdu数据缓存堆栈;
65、载荷丢帧修复模块,用于根据载荷帧计数判断所述载荷有效数据缓存堆栈内的载荷有效数据帧是否丢帧,当所述载荷有效数据帧存在丢帧时,从对应虚拟信道的所述异常bpdu数据缓存堆栈获取补偿丢帧的载荷异常数据帧,对所述载荷异常数据帧进行修复处理,并按载荷帧计数插入所述载荷有效数据帧。
66、本发明的第三个方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面中的任一项所述aos帧有效数据提取方法中的各个步骤。
67、本发明的第四个方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面中的任一项aos帧有效数据提取方法中的各个步骤。
68、在本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:
69、相比现有技术aos帧数据crc校验不通过之后直接丢弃相比,本发明实施例提供的aos帧有效数据提取方法能够最大限度的修复、保留有效数据。