基于CCSDS标准的卫星数据处理软件设计

2015-01-17 05:46
电子设计工程 2015年1期
关键词:标识符译码遥测

马 苗 , 朱 岩

(1.中国科学院大学 北京 100190;2.中国科学院空间科学与应用研究中心 北京 100190)

近年来,我国空间技术发展迅速,在轨航天器呈现出如下特点:数量大、数据多、运行姿态多、通信速率高、飞行程序复杂等。这对飞行器的体系结构、数据处理与传输提出了更高的需求[1]。

为了增大空间飞行器的测控覆盖范围,提高飞行安全性,充分利用有限的空间资源,降低空间飞行成本,更为了促进广泛的国际合作交流,空间数据系统咨询委员会(CCSDS)建立了一整套空间数据系统的标准。其中,遥测和遥控技术建议定义了数据传输的格式和方式;遥控建议定义了地面至航天器的指令信息传输的标准数据单元;分包遥测建议定义了航天器至地面的遥测信息传输的标准数据单元;高级在轨系统建议定义了地面和高级空间系统间的指令和遥测信息传输的标准数据单元[2-3]。

CCSDS系统采用动态数据管理的方式,使用不同的虚拟信道时分复用主信道,增强了信源的自主性和灵活性,有效提高了信道带宽的利用率[4-5]。

文中基于CCSDS遥测遥控标准建议的数据格式,详细介绍了某卫星数传系统数据处理软件的设计与实现。

1 系统概述

在实际卫星通信系统中,发送端先根据CCSDS分包遥测的规定,将多个信源产生的多路数据组织为长度不同的源包,再经信源编码后,分别选取不同的服务方式以生成虚拟信道传输帧,每个虚拟信道对应一个虚拟信道标识符(Virtual Channel Identifier,VCID)。多个虚拟信道传输帧时分复用同一个物理信道,根据需求选择当前需要传输的虚拟信道帧。该传输帧经过信道编码、加扰、加帧同步码后,形成物理信道访问单元(Channel Access Data Unit,CADU),再进行物理层的基带、中频和射频处理,最后送入物理信道进行传输。相应地在接收端,首先将接收到的信号进行射频、中频和基带处理,得到二进制串行码流,然后对二进制码流进行帧同步处理、去扰、信道解码,提取出可用的传输帧。之后,数据处理软件根据传输帧中的VCID将不同虚拟信道的帧区分开,并根据该传输帧在发送端采取的服务类型,将帧中的有效数据提取出来,即为源包格式的数据,再经过对源包格式的解析,提取出最终的有效数据交给相应的用户[6]。如图 1所示为实际卫星通信系统的数据处理流程。

该数据处理软件要完成的任务是实现图 1中的数据解帧解包的全过程,包括:帧同步、去扰、RS译码、解帧、解包等步骤,最终得到原始数据,从而验证数传系统组帧组包和数据下传的正确性。此外,为了实现软件的灵活性、可复用性,以使其应用于多种卫星的数据处理需求,软件设计需要增加

图1 卫星通信系统数据处理流程Fig.1 Data processing flow of the satellite communication system

2 软件模块设计

本系统使用Microsoft Visual Studio 2010开发,类型为MFC应用程序。应用程序采用模块化设计,大致分为4个模块:配置项模块、解帧模块、解包模块、界面显示模块。本节将通过流程图的形式介绍该卫星数据处理软件各个模块的设计。

2.1 配置项模块

为了提高软件的生产效率,提高软件质量、提高互操作性和减少系统维护量,设置了多种可配置项。

大致分为两种配置文件。第一个是对CCSDS数据格式的配置文件,如虚拟信道数目,虚拟信道名称,虚拟信道标识符,每个虚拟信道下的应用过程数目,应用过程名称,应用过程标识符。该配置文件主要采用CMap数据结构来存储。这些配置在同一个型号任务中基本保持不变,因此,只需在程序初始化时读取,而程序执行过程中对配置文件的修改无效。另一个配置文件是处理过程中的一些选项和生成的解析报告文件的存放位置。如是否去扰,是否RS译码,是否产生详细日志等。这些配置的修改较为频繁,因此在程序运行当中可通过配置选项对话框多次修改,及时生效。

2.2 解帧模块

图2 数据处理流程Fig.2 Data processing flow

CCSDS建议的传输帧格式如表1所示。传送帧是由帧同步码、帧主导头、帧数据域及RS校验填充4部分组成的长度固定的数据块,也就是通常型号任务中航天器上遥测系统下传的帧结构数据流。传输帧主导头又由版本号、航天器标识符、虚拟信道标识符等8部分组成。帧数据域中是按照一定规则置入数据包,这里的数据包就是按照CCSDS源包结构的定义规则构成的。数据源包过长时需要分段。分段使各个数据源能够较均匀地、分时交替地占有物理信道,避免长数据垄断信道的现象发生[7]。

解一帧的处理流程如图 3所示。首先进行帧同步,找到帧同步码。由于一帧的长度是固定的512字节,若一帧结束后也是帧同步码,则这一帧的长度是对的,就可以进行之后的去扰、RS译码等解析操作;若不是帧同步码,则认为前面这一帧是错误的,记录下它的位置即可,不必进行后面的解析。

表1 CCSDS传输帧格式Tab.1 CCSDStransmission frame format

2.2.1 帧同步处理

帧同步处理就是从数据流中定位并提取同步码的过程。首先找到帧同步码,如此才能确定一个帧的位置。由于接收端是按位流来接收数据,接收到的数据可能存在一定的位偏移,因此需要将数据进行循环移位来查找同步码。

图3 解帧流程图Fig.3 Deframing flowchart

2.2.2 去扰处理

为了保证信道的转变密度,避免长时间出现“0”或“1”,组帧时用伪随机序列h(x)=x8+x7+x5+x3+1与除同步码以外的每一位进行异或,这称之为“加扰”。因为A⊕0=A,A⊕A=0,异或操作具有结合性,假设原始数据为D,用来加扰的伪随机序列为K,加扰后的数据为P,则P⊕K=(D⊕K)⊕K=D⊕(K⊕K)=D⊕0=D。因此,解帧时就需要用同样的伪随机序列再次与除同步码以外的每一位进行异或,从而恢复原数据[8]。

2.2.3 RS编译码

为降低传输中的误码干扰与增强纠错能力,需要对数据域的数据进行信道编码。信道编码采用两级数据交织和CCSDS规定的标准纠错码方式,即RS(255,223)编码。它可纠正16字节的错误。

本项目中,数据编码采用如下的流程:首先把数据分为222字节的奇偶两路,每一路分别填充一个字节构成223字节;然后经过 RS(255,233)编码器,对编码后的数据进行两级交织;最后重新组装成数据帧,将原来虚拟填充部分换成同步码,将剩余的字节分成VCDU导头、VCDU数据域和RS校验符号。图4所示为CCSDS标准建议的数据流RS编码流程。发射端采用这种编码方式,接收端的RS译码流程与编码相反。

图4 数据流的RS编码流程Fig.4 RScoding process of the data stream

2.2.4 解析帧格式

经过去扰、RS译码后,即可开始解析。解析内容包括:版本号、航天器标识符、虚拟信道标识符等是否正确;虚拟信道传输帧计数是否连续;信道分路,根据虚拟信道标识符,把B-PDU数据域存储到不同的文件中,以供后面解包处理使用。同时,记录下每种虚拟信道的传输帧个数、RS译码错误计数等信息。

2.3 解包模块

将同一个虚拟信道的数据域组合在一起,即是源包格式的数据。每个虚拟信道又分为多种应用过程,根据应用过程标识符来区分,源包结构如表 2所示。遥测源包由同步码、主导头、时间码、E_PDU数据域组成,主导头又由版本号、类型、副导头标志等7部分组成。解包的过程与解帧类似,但不需要去扰、译码。此外,传输帧长度是固定的512字节,而包长度则不固定,需要根据“包数据长度”的2个字节来确定包长。解包的过程可分为如下的4个步骤:

1)找到包同步码,根据主导头中的“包数据长度”字段确定包长;

2)根据包长,判断包尾后面是否为包同步码:若是包同步码,转步骤3);若不是包同步码,转步骤4);

3)判断版本号、类型、副导头标志等是否正确,包序列计数是否连续;根据应用过程标识符,分别把E-PDU数据域存储到不同的文件中,转步骤1;

4)记录下这个错包,向后继续查找包同步码,转步骤1)。

表2 源包数据结构Tab.2 The packet data structure

在本实际项目中,某特定应用过程的源包结构中还有一层数据格式,即E-PDU数据域中的数据,其格式如图5所示。在解包过程中,还需对该特定数据进行CRC校验。

图5 E-PDU数据域中的数据格式Fig.5 Data format of the E-PDU data field

2.4 界面显示模块

界面显示模块负责将解帧、解包过程中的信息及时更新显示出来。当打开应用程序时,根据配置项模块显示参数列表;数据处理时提示处理日志信息,同时利用MFC自带的定时器定时更新统计数据,比如文件处理进度、RS译码错误计数、帧计数不连续次数、正确包计数等信息。

由于数据处理过程占用CPU较多,若整个程序只用一个线程,在处理数据时点击界面则会响应缓慢,甚至无响应。因此,程序采用多线程,界面显示作为主线程,开始数据处理时新建一个线程,专门负责解帧解包等操作。

3 测试与验证

在VS2010环境下,软件设计采用MFC编程。之所以不使用VC6.0,是因为当文件大小超过4G时,必须用_fseeki64函数,而不能用一般的fseek函数,VC6.0不支持_fseeki64函数。

程序的处理结果分为两种,一是数据类文件,二是报告类文件。其中,数据类文件有4种:1)frm文件,该类文件是将原始文件按虚拟信道标识符区分所生成的帧格式的文件;2)frd文件,该类文件是将对应的.frm文件中每一帧的B_PDU数据域的数据取出来而生成的文件,为源包格式;3)pkg文件,该类文件是将每个.frd文件按应用过程标识符区分所生成的源包格式的文件;4)pkd文件,该类文件是将对应的.pkg文件中每一源包的E_PDU数据域的数据取出来而生成的文件,无格式,是真正的有效数据。报告类文件包括:解帧报告、解包报告、RS译码报告、CRC校验报告等。解帧、解包报告中记录被解析的文件名、错误帧/包的位置信息、无效帧/包的个数、帧/包计数不连续的个数、正确的帧/包的个数等。RS译码报告记录解帧时RS译码的相关错误信息。CRC校验报告记录解包时对特定数据进行CRC校验时的相关错误信息。

举例说明,CCSDS数据格式配置文件如图6所示,共有4种信道,每个信道又分为几种应用过程。其中,填充信道的数据只是作为填补带宽所用,不区分应用过程,因此不需要进行解包处理。经过本软件处理后,生成的数据类文件如图7所示。

图6 CCSDS数据格式配置Fig.6 CCSDSdata format configuration

以A1_信道_Frame_20140217-130915.frm文件为例,它的内容如图 8所示,帧同步码为“1ACFFC1D”,可以看出是由多个512字节的传输帧组成。

4 结束语

对CCSDS数据的解析是验证数传系统组帧、组包、传输等功能的重要途径。本数据处理软件已成功应用于某型号卫星数传系统的测试工作中。后期待改进的工作有:使解帧、解包可以并行处理,从而提高处理速度。

图7 解析后生成的数据文件Fig.7 The data files generated by parsing

图8 A1信道的帧数据文件Fig.8 The frame data files of A1 channel

[1]张丽萍.CCSDS在我国航天领域的应用展望 [J].飞行器测控学报,2011(30):1-4.ZHANGLi-ping.Prospect of application of CCSDSin China[J].Journal of Spacecraft TT&CTechnology,2011(30):1-4.

[2]扬奕飞,丛波,李强.CCSDS标准在新一代航天测控系统中的应用研究[J].电讯技术,2007,47(5):166-168.YANG Yi-fei,CONG Bo,LI Qiang.Application of CCSDS standard in new space TT&C systems[J].Telecommunication Engineering,2007,47(5):166-168.

[3]张琛,李爱红,张尔杨.CCSDS遥测遥控空间数据系统通信协议及其应用[J].航天返回与遥感,2004,25(2):23-28.ZHANGChen,LIAi-hong,ZHANGEr-yang.CCSDStelemetry/telecommand space data systems protocols and their applications[J].Spacecraft Recovery&Remote Sensing,2004,25(2):23-28.

[4]张源.CCSDS数据地面接收系统软件设计[J].遥测遥控,2008,29(3):1-5.ZHANG Yuan.Design of CCSDS ground data acquisition system software[J].Journal of Telemetry,Tracking and Command,2008,29(3):1-5.

[5]杜国明,陈逢田.CCSDS遥测包处理分析[J].航天器工程,2007,16(5):110-114.DU Guo-ming,CHEN Feng-tian.Analysis of CCSDStelemetry packet processing[J].Spacecraft Engineering,2007,16(5):110-114.

[6]王森.卫星高速CCSDS数据的软件处理过程改进研究[D].北京:北京航空航天大学,2010.

[7]杜冬梅.航天器CCSDS遥测数据包处理方法研究 [J].电讯技术,2007,47(2):176-180.DU Dong-mei.Processing method of the telemetry data packet for spacecrafts[J].Telecommunication Engineering,2007,47(2):176-180.

[8]易茂祥,张浩,郭红卫,等.m-序列数据扰码技术及其在SATA中的应用[J].微电子学,2012,42(4):502-505.YI Mao-xiang,ZHANG Hao,GUO Hong-wei,et al.m-Sequence data scrambling and its application to SATA interface[J].Microelectronic,2012,42(4):502-505.

猜你喜欢
标识符译码遥测
基于底层虚拟机的标识符混淆方法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
基于区块链的持久标识符系统①
远程控制式遥测地面站关键技术研究
基于WPF的遥测CAS信息实时监控系统设计开发
自适应模糊PID控制的遥测方舱温度调节方法
从霍尔的编码译码理论看弹幕的译码
浅谈如何提高遥测状态估计合格率
科研人员唯一标识符的理论研究现状剖析