一种基于AOS编码的数据传输方法 【技术领域】
本发明涉及一种数据传输方法,特别是涉及一种基于AOS编码的数据传输方法,属于通信技术领域。
背景技术
对于含有正程、逆程的载荷输入格式数据,其正程、逆程时间长度可大范围连续变化。正程数据是有效数据,逆程数据为无效数据。如完全按照CCSDS建议的AOS(Advanced Orbiting Systems)格式编码设计标准,VCDU数据单元区不分段使用,而该数据单元区的长度只能针对一种输入数据的正程数据时间长度设计为能整除的形式;当有正程、逆程时间大范围交替变化时,由于不能全部整除而频繁出现AOS传输格式中数据填充不满帧现象,这种现象说明了由于按固定数据长度设定的AOS帧只对个别整除的正程数据区块的传输效率高,对不能整除的正程数据区块的传输效率下降严重,当传输效率下降到临界状态时,会使前后帧编排出现时隙紧张,导致丢数或错打格式等故障。
为解决此类数据传输的技术瓶颈,需要AOS格式编排的设计考虑对其适应性的要求,由此提出了一种将AOS格式编排的VCDU数据的可分段使用设计方法,可以很好的解决AOS格式编排的效率下降问题。
目前没有发现与本发明类似相关技术的说明或报道,也尚未收集到国内外类似的资料。
【发明内容】
本发明的技术解决问题是:克服现有技术的不足,提供一种VCDU数据单元区分段的基于AOS编码的数据传输方法。
本发明的技术解决方案是:一种基于AOS编码的数据传输方法,通过以下步骤实现:
第一步,在FPGA中按照工作时钟频率连续生成AOS格式编排数据帧,AOS格式编排数据帧的格式为同步字、版本号、VCDU标识符、VCDU计数器、虚拟信道数据、信号域、VCDU插入区、BPDU导头、VCDU数据单元区和VCDU差错控制域,其中VCDU数据单元区分为La、Lb和L-La-Lb数据区块,BPDU导头中定义变量la和lb;
第二步,FPGA接收外部输入数据并将数据存入数据缓存器FIFO中,同时记录存入的数据量;
第三步,FPGA从FIFO中读出数据,并将数据填充到第一步生成的AOS格式编排数据帧内组帧;
(1)FPGA根据当前的FIFO的空/非空状态将数据写入到AOS格式编排程序中的VCDU数据单元区不同的数据区块中,若当前FIFO为非空,则进行(2),若当前FIFO的状态为空,则进行(5);
(2)FPGA从FIFO读出的正程数据,填充到VCDU数据单元区的La数据区块中,同时BPDU导头中的变量la记录填充的数据量,若la纪录的数据量满L字节长度后,则进入(7),如果正程数据填充完,la纪录的数据量不满L字节长度,则进入(3),L为VCDU数据单元区按字节计算的长度;
(3)正程数据结束,逆程开始,后续时间写无效数据到VCDU数据单元区的Lb数据区块中,同时变量lb记录填充的数据量,当la+lb满足L字节长度后,则进行(7),若la+lb不满L字节长度,则进入(4);
(4)逆程数据结束,新的正程开始,后续时间写新的正程数据到VCDU数据单元区的L-La-Lb数据区块中,同时从L-la-lb减计数,直到为0,进入(7);
(5)FPGA将当前逆程数据填入VCDU数据单元区的Lb数据区块中,同时变量lb记录填充的数据量,若lb纪录的数据量满足L字节长度后,则进入(7),若lb纪录的数据量不满足L时,则进入(6);
(6)逆程数据结束,正程开始,后续时间写正程数据到VCDU数据单元区的L-La-Lb数据区块中,同时开始从L-la-lb减计数,直到为0,进入(7);
(7)AOS帧格式填充数据完成,并形成差错控制域数据,一帧数据组帧完成;
第四步,将按照AOS格式编排组帧的数据传输到后续设备。
所述的VCDU数据单元区按字节计算的长度L≤1800。
本发明与现有技术相比有益效果为:
(1)本发明采用对VCDU数据单元区分段的方法,在处理当前AOS格式编排帧时,由于输入数据的逆程时间短而提前出现新的正程数据的情况,格式编排的尾部有效数据区可以继续将其写入,提高了此帧的有效数据传输效率,大量减少了数据不满帧现象,尤其适合前后输入数据的正程、逆程大范围变化地情况;
(2)本发明有效抑制AOS格式编排帧内填充有效数据的不满帧现象,保证AOS格式编排效率,使得数据处理速度始终工作在较平稳状态;
(3)本发明可适应输入数据正程、逆程的任意变化,防止格式编排出错。
【附图说明】
图1为本发明流程框图;
图2为本发明VCDU数据单元区分段示意图;
图3为本发明按照AOS格式编排数据帧组帧流程图。
【具体实施方式】
基于CCSDS建议的AOS格式编排设计标准,将AOS格式编排的VCDU数据区进行可分段使用的设计,并编写成VHDL硬件逻辑描述语言,下载到可编程器件FPGA中,由FPGA及FIFO等硬件实现对SAR数据流的AOS格式编排处理和输出的技术方案。
为适应正程、逆程时间长度可大范围连续变化的输入载荷数据的传输要求,AOS格式编排需要将其分解打包传输,AOS打包格式符合CCSDS(TheConsultative Committee for Space Data Systems)通用技术标准的要求。
本发明对VCDU数据单元区(有效载荷数据传输区)进行了设计改进,使得AOS格式编排能够完全的适应有效载荷数据正程、逆程的大范围任意连续变化。
VCDU数据区分三段使用并将标识填充在AOS格式的辅助数据内,一同下传到地面用于恢复处理。三段数据包含前段有效数据区La、中段无效数据区Lb、后段有效数据区L-La-Lb。此三段区域长度随输入数据情况变化而动态变化。
基于AOS编码的数据传输方法,如图1所示,包括如下步骤。
1、在FPGA中按照工作时钟频率连续生成AOS格式编排程序。
AOS格式编排程序格式如表1所示,包括同步字、版本号、VCDU标识符、VCDU计数器、虚拟信道数据、信号域、VCDU插入区、BPDU导头、VCDU数据单元区和VCDU差错控制域,其中VCDU数据单元区分为La、Lb和L-La-Lb数据区块,BPDU导头中定义变量la和lb。
表1 单位bit
格式的单位为bit,但AOS格式实际按字节操作,因此VCDU数据区按字节计算的长度L最大为1800,此数值可根据任务的需要进行调整。
同步字、版本号、VCDU标识符、VCDU计数器、虚拟信道数据、信号域、VCDU插入区同要传输数据的任务密切相关,根据任务不同自定义。其中VCDU标识符是对任务名称的定义,VCDU计数器记录数据帧形成的数量,虚拟信道数据是用来保存提示信息的,信号域表示数据传输的工作状态(直传、密传或明传),VCDU插入区中的导头差错控制是RS纠错编码,辅助数据插入区是与任务密切相关的提示信息。同步字、版本号、VCDU标识符、VCDU计数器、虚拟信道数据、信号域、VCDU插入区与本发明的内容并不直接相关。
例如:
同步头:1ACFFC1D
版本号“01”
VCDU标识符:
航天器标识符 “00001111” -0F
虚拟信道标识符 “010101” ——通道1
“101010” ——通道2
“111111” ——填充
VCDU计数器:3字节,记录AOS帧生成数量,为周期循环计数虚拟信道数据:2字节,由星务计算机提供。
信号域:
直传记录标志:“1”-直传;“0”-记录
加密明传标志:“1111111”-加密
“000000”-明传
VCDU插入区:
导头差错控制:使用缩短的RS(31,23)码对格式导头中的虚拟信道数据、信号域、VCDU插入区的辅助数据插入区和BPDU导头进行差错控制。共23Byte,校验位长度8Byte。可纠4个字节长度的错码。
辅助数据插入区:插入与任务密切相关的提示信息,如密钥信息、测控信息、载荷工作信息等。
为适应有效载荷数据正程、逆程的大范围连续变化,数传将AOS格式编排中的VCDU数据区设计为分段使用,使用方式详见图2和表2(BPDU导头格式编排定义)。
表2 单位bit
BPDU导头格式编排定义
说明:
IQ标识(5):用来表示不同FIFO的数据来源。
“11111”-Q标识;“00000”-I标识。
初始有效数据长度——数据区开头的有效数据的长度,la,见图2。
无效填充数据长度——数据区填充数据的长度,lb,见图2。
尾部有效数据长度——数据区尾部的有效数据的长度,L-la-lb,见图2。
通过设定VCDU数据单元区的标识la、lb变量,使得在出现有效数据不满帧的AOS格式时,载荷输入的前后两个正程数据区块能够及时的打入La区和L-La-Lb区域。
此方法能够对在处理当前AOS格式编排帧时,由于输入数据的逆程时间短,而提前出现新的正程数据的情况,格式编排的尾部有效数据区可以继续将其写入,如此提高了此帧的有效数据传输效率,大量减少了数据不满帧现象,尤其适合前后输入数据的正程、逆程大范围变化的情况。
la、lb变量填充在格式中BPDU导头区内,尾部有效数据长度由L-la-lb计算得出。
2、FPGA接收外部输入数据并将数据存入数据缓存器FIFO中,同时记录存入的数据量。
3、FPGA从FIFO中读出数据,并将数据按照生成的AOS格式编排程序组帧。具体流程图如图3所示。
(1)FPGA根据当前的FIFO的空/非空状态将数据写入到AOS格式编排程序中的VCDU数据单元区不同的数据区块中,若当前FIFO为非空,则进行(2),若当前FIFO的状态为空,则进行(5);
(2)FPGA从FIFO读出的正程数据,填充到VCDU数据单元区的La数据区块中,同时BPDU导头中的变量la记录填充的数据量,若la纪录的数据量满L字节长度后,则进入(7),如果正程数据填充完,la纪录的数据量不满L字节长度,则进入(3),L为VCDU数据单元区按字节计算的长度;
(3)正程数据结束,逆程开始,后续时间写无效数据到VCDU数据单元区的Lb数据区块中,同时变量lb记录填充的数据量,当la+lb满足L字节长度后,则进行(7),若la+lb不满L字节长度,则进入(4);
(4)逆程数据结束,新的正程开始,后续时间写新的正程有效数据到VCDU数据单元区的L-La-Lb数据区块中,同时从L-la-lb减计数,直到为0,进入(7);
(5)FPGA将当前逆程数据填入VCDU数据单元区的Lb数据区块中,同时变量lb记录填充的数据量,若lb纪录的数据量满足L字节长度后,则进入(7),若lb纪录的数据量不满足L时,则进入(6);
(6)逆程数据结束,正程开始,后续时间写有效数据到VCDU数据单元区的L-La-Lb数据区块中,同时开始从L-la-lb减计数,直到为0,进入(7);
(7)AOS帧格式生成并形成差错控制域数据,一帧数据组帧完成。
差错控制域数据是由xilinx公司VHBL语言编译软件ISE中提供的RS纠错编码中公共的IP核模块Reed-Solomon Encoder自动产生后,加到AOS帧格式中。
上述AOS格式编排工作时,可具有如下五种状态:
状态一,在当前AOS帧格式编排期间,输入的正程有效数据长度可填充满L字节,则此帧的VCDU数据区的变量la等于L,同时变量lb等于0,L-la-lb等于0;AOS格式帧为全有效数据帧。
状态二,在当前AOS帧格式编排期间,输入的逆程无效数据长度可填充满L字节,则此帧的VCDU数据区的变量la等于0,同时变量lb等于L,L-la-lb等于0;AOS格式帧为无效数据帧。
状态三,在当前AOS帧格式编排期间,首先输入的正程有效数据长度不能填充满L字节,且随后输入的逆程无效数据长度可补足L字节,则此帧的VCDU数据单元区的变量la等于正程有效数据填充的长度,同时变量lb等于逆程无效数据填充的长度,L-la-lb等于0;AOS格式帧为前半有效数据帧。
状态四,在当前AOS帧格式编排期间,首先输入的逆程无效数据长度不能填充满L字节,且随后输入的正程有效数据长度可补足L字节,则此帧的VCDU数据区的变量la等于0,同时变量lb等于逆程无效数据填充的长度,L-la-lb等于正程有效数据填充的长度;AOS格式帧为后半有效数据帧。
状态五,在当前AOS帧格式编排期间,首先前次输入的正程有效数据长度不能填充满L字节,且随后输入的逆程无效数据长度也不能填充满L字节,最后输入的新正程有效数据长度可补足L字节,则此帧的VCDU数据单元区的变量la等于前次输入的正程有效数据填充长度,同时变量lb等于逆程无效数据填充的长度,L-la-lb等于新输入的正程有效数据填充长度;AOS格式帧为过渡数据帧。
此三段区域长度随输入数据情况变化而动态变化。
4、将按照AOS格式编排程序组帧的数据传输到后续设备。
例1
AOS格式编排程序按照工作时钟频率进行连续格式生成。期间接收外部输入数据,当前正程有效数据到来时,首先将数据填入VCDU数据区的La数据区块,同时la变量计数,当满足L字节长度后,AOS帧格式生成并形成差错控制域数据,一帧AOS格式结束;如la变量不满足L时,正程数据结束,逆程开始,后续时间写无效数据到VCDU数据区的Lb数据区块,同时lb变量计数,当满足L字节长度后,AOS帧格式生成并形成差错控制域数据,一帧AOS格式结束;如逆程较短,la+lb不足L,逆程数据结束,新的正程开始,后续时间写新的正程有效数据到VCDU数据区的L-La-Lb数据区块,同时L-la-lb变量计数,直到为0,AOS帧格式生成并形成差错控制域数据,一帧AOS格式结束。
本例适于数据的逆程较短的情况,可有效抑制填充有效数据的不满帧现象,提高传输效率,防止格式编排出错。
例2
AOS格式编排程序按照工作时钟频率进行连续格式生成。期间接收外部输入数据,当前逆程无效数据到来时,首先将数据填入VCDU数据区的Lb数据区块,同时设置la变量为0,lb变量计数,当满足L字节长度后,AOS帧格式生成并形成差错控制域数据,一帧AOS格式结束;如lb变量不满足L时,逆程数据结束,正程开始,后续时间写有效数据到VCDU数据区的L-La-Lb数据区块,同时L-la-lb变量计数,直到为0,AOS帧格式生成并形成,一帧AOS格式结束。
本例适于数据的逆程较长的情况,为上例的补充,对AOS格式编排的时序要求不严格,本设计可以完全使用,但不是本发明的研究重点。
本发明的主要特点是在输入数据的正程、逆程交变时间内,能够及时将有效数据编入AOS格式中;尤其对逆程时间较短,使得AOS格式编排时序紧张的情况,AOS格式可以将当前到达的新的正程数据编排入后段有效数据区中,以最大限度提高AOS格式编码的工作效率,防止出现格式编排出错。
本发明未详细说明部分属本领域技术人员公知常识。