摘要:为了使航天器上的数据源可以在同一条虚拟信道中传送, 需要对这些数据按照统一的格式封装, 我们把AOS (Advanced Orbiting Systems, 高级在轨系统) 中这种统一的格式称为空间包。AOS系统通过创建统一的信息数据流, 利用一个信道来传输各种不同的信息, 诸如实验数据、遥测、遥控等, 主要用来达成航天器与地面站之间的双向传送。本文中应用Visual C++6.0程序设计软件, 依据AOS中的空间包的格式, 对随机产生的8bit信源数据封装成空间包的过程进行了仿真设计和实现。
关键词:Visual C++; AOS; 空间包; 8bit信源;
1、AOS空间包概述
本文采用的是8bit信源数据是通过C++编程随机产生, 空间包[1]的格式如图1所示, 然后按照图1中空间包的数据单元格式进行封装, 由于包副导头和用户数据域的大小是可变的, 在本仿真中分别设定为2字节和1字节, 最后把封装好的数据包存放于文件之中。
2、AOS空间包封装的设计实现
在本仿真中, 6组8bit信源数据借助C++中的rand () 函数随机产生, 之后, 再利用向量容器, 按照AOS[2]空间包的格式进行设计。
整体的设计中, 主要分3个大部分来实现。
第一, 通过调用r a n d () 函数得到一个零到R A N D_MAX之间的伪随机整数, 然后对256进行取余操作, 其结果刚好是一组8b it信源可以表示的整数, 最后通过调用一个与Bit8信源.txt文件关联的输出流, 把该整数写入到Bit8信源.txt文件之中。
第二, 按照空间包数据单元格式, 分别将包主导头和包副导头的内容封装在向量容器一和向量容器二之中, 接着把Bit8.txt信源文件数据读取到向量容器三之中, 然后从容器三中取出1字节的数据放于向量容器四, 并擦除容器三中已取出的数据。
第三, 将容器一、容器二和容器四依次插入到向量容器五之中, 容器五便是一个AOS空间包, 然后将容器五中的内容写入到AOS空间包.txt文件之中, 不断循环第二步和第三步操作, 直至容器三中的数据被取完。最后, 8bit信源数据全部被封装成AOS空间包, 并存放于AOS空间包.txt文件之中。
图1 空间包数据单元格式
本方法的优势或特色:提高了空间包封装的效率, 更好地仿真了航天器上的数据源可以在同一条虚拟信道中数据可靠的传送[3]。
3、Visual C++中AOS空间包封装的仿真实现
基于上述方法, 借助Visual C++[4-5], 进行了本次实验, 得到的仿真结果如图2、图3所示。
图2是程序随机产生的6组8bit信源的仿真结果, 它以二进制的形式显示在文本文件之中。图3是图2中的6组8bit信源经过封装之后生成的AOS空间包的仿真结果, 由图3可以看出总共生成了6个空间包, 刚好对应图2中的6组8bit信源, 其中, 每个空间包中前6个字节是包主导头信息, 随后2字节是包副导头信息, 最后一个字节是信源信息。经过验证之后, AOS空间包的仿真结果符合格式要求且完全正确。
4、结语
通过对本文中在Visual C++软件平台下对8bit随机信源按照AOS空间包统一格式的封装设计与仿真, 经过设计与仿真之后, AOS的空间包仿真结果完全符合空间包格式要求, 并且没有出现一点错误, 证明我们的设计与仿真是完全正确的, 这样的结果达到了航天器上的数据源能够在同一条虚拟信道中传输的统一标准。
图2 6组随机产生的8bit信源的仿真结果
图3 AOS空间包的仿真结果
参考文献
[1]Tian Ye, Wang Ruonan, Jiang Yueqiu, et al.A novel multiple-channels scheduling algorithm based on timeslot optimization in the advanced orbiting systems[J].Multimedia Tools and Applications, 2017, 76 (3) :4523-4551.
[2]Tian Ye, Zhang Yanqin, Zhang Zijing.On the performance of priority-based virtual channels scheduling algorithm in packet telemetry system[J].International Journal of Computer Network and Information Security, 2011, 3 (5) :46, 53.
[3]田野, 张子敬, 张艳琴.AOS协议中自适应帧生成算法的研究.宇航学报, 2011, 32 (5) :1171-1178.
[4]肖俊宇, 吴为胜.由浅入深学C++[M].北京:电子工业出版社, 2011.
[5]谢贤芬.21天学通Visual C++[M].2版.北京:电子工业出版社, 2001.