流星M1卫星
资料来源:vladtime.ru
介绍
没有无线电通信,空间技术的运行是不可能的,在本文中,我将尝试解释构成国际空间数据系统咨询委员会(CCSDS。下面将使用该缩写)制定的标准基础的主要思想。 。
本文将主要关注数据链路层,但也会介绍其他层的基本概念。本文绝不是对标准的彻底和完整的描述。您可以在以下位置查看:
CCSDS的崇高使命
也许有人会有疑问:如果可以开发自己专有的无线电协议栈(或者自己的标准,具有二十一点和新功能),从而提高系统的安全性,为什么每个人都应该遵守标准呢?
实践表明,遵守 CCSDS 标准更有利可图,原因如下:
- 负责发布这些标准的委员会包括来自世界上每个主要航空航天机构的代表,带来了多年来设计和运行各种任务所获得的宝贵经验。如果忽视这次经历,再次踩他们的耙子,那就太荒唐了。
- 这些标准得到市场上已有地面站设备的支持。
- 在排除任何问题时,您可以随时向其他机构的同事寻求帮助,以便他们可以从地面站与设备进行通信会话。正如您所看到的,标准是一个非常有用的东西,所以让我们看看它们的要点。
建筑
这些标准是反映最常见的 OSI(开放系统互连)模型的一组文件,但在数据链路级别,通用性仅限于分为遥测(下行链路 - 空间 - 地球)和远程命令(上行链路)。
让我们更详细地了解一些级别,从物理级别开始逐步向上。为了更清楚起见,我们将考虑接收方的架构。发射的是它的镜像。
物理层
在此级别,调制的无线电信号被转换为比特流。这里的标准本质上主要是建议性的,因为在这个级别上很难从硬件的具体实现中抽象出来。在这里,CCSDS的关键作用是定义可接受的调制(BPSK、QPSK、8-QAM等),并就符号同步机制、多普勒补偿等的实现给出一些建议。
同步和编码级别
形式上,它是数据链路层的子层,但由于其在 CCSDS 标准中的重要性,通常被分为单独的层。该层将比特流转换为所谓的帧(遥测或远程命令),我们将在稍后讨论。与物理层的符号同步不同,符号同步可以让您获得正确的比特流,而这里执行的是帧同步。考虑数据在此级别所采取的路径(从下到上):
然而,在此之前,值得先谈谈编码。该过程对于查找和/或纠正通过无线电信道发送数据时不可避免地发生的比特错误是必要的。这里我们不会考虑解码过程,而只会获取理解该级别的进一步逻辑所需的信息。
代码可以是块的或连续的。标准并不强制使用特定类型的编码,但它必须如此存在。连续码包括卷积码。它们用于对连续比特流进行编码。这与块代码相反,块代码将数据分为代码块并且只能在完整的块内解码。代码块表示传输的数据以及验证接收数据的正确性和纠正可能的错误所必需的附加冗余信息。分组码包括著名的里德-所罗门码。
如果使用卷积编码,比特流从头开始进入解码器。其工作结果(当然,所有这些都是连续发生的)是 CADU(通道访问数据单元)数据块。该结构对于帧同步是必要的。每个 CADU 的末尾都有一个附加的同步生成器 (ASM)。这些是预先已知的 4 个字节,同步器通过它们找到 CADU 的开头和结尾。这就是实现帧同步的方式。
同步和编码层的下一个可选阶段与物理层的特性相关。这就是去随机化。事实上,为了实现符号同步,符号之间的频繁切换是必要的。因此,如果我们传输完全由 XNUMX 组成的 XNUMX KB 数据,同步就会丢失。因此,在传输过程中,输入数据与周期性伪随机序列混合,使得XNUMX和XNUMX的密度是均匀的。
接下来,块码被解码,剩下的是同步和编码级别的最终产物——帧。
数据链路层
链路层处理器一方面接收帧,另一方面发出数据包。由于数据包的大小没有正式限制,为了保证数据包的可靠传输,有必要将它们分解为更小的结构 - 帧。在这里,我们将看两个小节:分别用于遥测(TM)和远程命令(TC)。
遥测
简单来说,这就是地面站从航天器接收到的数据。所有传输的信息都分为固定长度的小片段 - 包含传输数据和服务字段的帧。让我们仔细看看框架结构:
让我们从遥测帧的主标题开始考虑。此外,我将允许自己简单地翻译一些地方的标准,并在此过程中做出一些澄清。
主通道 ID 字段必须包含帧版本号和设备标识符。
根据CCSDS标准,每个航天器都必须有自己唯一的标识符,通过这个标识符,有一个框架,就可以确定它属于哪个设备。正式而言,需要提交申请来注册该设备,并且其名称及其标识符将在开源中发布。然而,俄罗斯制造商经常忽略这一程序,为设备分配任意标识符。框架版本号有助于确定使用哪个版本的标准,以便正确读取框架。这里我们只考虑版本“0”的最保守标准。
虚拟通道 ID 字段必须包含数据包来自的通道的 VCID。 VCID的选择没有限制;特别是,虚拟通道不一定按顺序编号。
很多时候需要对传输的数据进行多路复用。为此,就有了虚拟通道的机制。例如,Meteor-M2卫星传输可见光范围内的彩色图像,将其分为三个黑白图像——每种颜色都在单独的数据包中在自己的虚拟通道中传输,尽管与标准中的标准存在一些偏差。其框架结构。
操作控制标志字段应指示遥测帧中是否存在操作控制字段。帧末尾的这 4 个字节用于在控制遥控命令帧的传送时提供反馈。我们稍后再讨论它们。
主通道帧计数器和虚拟通道帧计数器是每次发送帧时加一的字段。充当没有丢失一帧的指示器。
遥测帧数据状态是另外两个字节的标志和数据,我们将仅查看其中的几个。
辅助标头标志字段必须指示遥测帧中是否存在辅助标头。
如果您愿意,您可以向每个帧添加额外的标头,并自行决定在其中放置任何数据。
当同步标志设置为 1 时,第一个报头指针字段应包含遥测帧数据字段中第一个数据包的第一个八位字节位置的二进制表示。位置从数据字段的开头开始按升序从 0 开始计数。如果遥测帧的数据字段中没有数据包的开头,则指向第一个标头的指针字段必须具有二进制表示形式的值“11111111111”(如果一个长数据包分布在多个帧上,则可能会发生这种情况)。
如果数据字段包含空数据包(空闲数据),则指向第一个标头的指针应具有二进制表示形式的值“11111111110”。使用该字段,接收方必须同步流。该字段确保即使帧丢失也能恢复同步。
也就是说,一个数据包可以从第 4 帧的中间开始,到第 20 帧的开头结束。该字段用于查找其开头。数据包还有一个指定其长度的标头,因此当找到指向第一个标头的指针时,链路层处理器必须读取它,从而确定数据包的结束位置。
如果存在错误控制字段,则它必须包含在整个任务中特定物理通道的每个遥测帧中。
该字段使用CRC方法计算。该过程必须获取遥测帧的 n-16 位并将计算结果插入到最后 16 位中。
电视队
TV 命令帧有几个显着的差异。他们之中:
- 不同的标题结构
- 动态长度。这意味着帧长度不是像遥测中那样严格设置的,而是可以根据传输的数据包而变化。
- 数据包传送保证机制。也就是说,航天器在接收到帧后必须确认帧接收的正确性,或者请求转发可能接收到的存在不可纠正错误的帧。
从遥测帧头中我们已经熟悉了许多字段。它们具有相同的目的,因此这里我们仅考虑新字段。
必须使用旁路标志的一位来控制接收器处的帧检查。该标志的值“0”表示该帧是 A 类帧并且必须根据 FARM 进行验证。该标志的值为“1”应向接收器指示该帧是 B 类帧并且应绕过 FARM 检查。
该标志通知接收方是否使用称为 FARM - 帧接受和报告机制的帧传送确认机制。
必须使用控制命令标志来了解数据字段是否传输命令或数据。如果标志为“0”,则数据字段必须包含数据。如果标志为“1”,则数据字段必须包含FARM的控制信息。
FARM是一个有限状态机,其参数是可以配置的。
RSVD。 SPARE——保留位。
CCSDS 似乎对未来有计划,并且为了协议版本的向后兼容性,他们已经在标准的当前版本中保留了这些位。
帧长度字段必须包含一个位表示的数字,该数字等于八位字节的帧长度减一。
帧数据字段必须跟在标头后面,且不带空格,并且包含整数个八位位组,长度最大为 1019 个八位位组。该字段必须包含帧数据块或控制命令信息。帧数据块必须包含:
- 用户数据八位字节的整数
- 段头后跟整数个用户数据八位位组
如果存在标头,则数据块必须包含一个数据包、一组数据包或数据包的一部分。没有标头的数据块不能包含部分数据包,但可以包含私有格式数据块。由此可见,当传输的数据块不适合一帧时,就需要标头。具有标头的数据块称为段
两位标志字段必须包含:
- “01” - 如果数据的第一部分位于数据块中
- “00” - 如果数据的中间部分在数据块中
- "10" - 如果最后一条数据在数据块中
- “11” - 如果没有划分并且一个或多个数据包完全适合数据块。
如果不使用 MAP 通道,则 MAP ID 字段必须包含零。
有时分配给虚拟通道的 6 位是不够的。如果需要将数据复用到更多数量的通道上,则使用段头中的另外 6 位。
农场
让我们仔细看看人员输送控制系统的运作机制。由于其重要性,该系统仅提供遥控命令帧的使用(遥测总是可以再次请求,并且航天器必须清楚地听到地面站并始终遵守其命令)。因此,假设我们决定重新刷新卫星,并向其发送一个 10 KB 大小的二进制文件。在链路层,文件被分为10个帧(0、1、…、9),一帧一帧地向上发送。当传输完成后,卫星必须确认数据包接收的正确性,或者报告哪一帧发生了错误。该信息被发送到最近的遥测帧中的操作控制字段(或者航天器如果无话可说,可以启动空闲帧的传输)。根据收到的遥测数据,我们要么确保一切正常,要么继续重新发送消息。我们假设卫星没有听到第 7 帧。这意味着我们向他发送帧 7、8、9。如果没有响应,则再次发送整个数据包(依此类推多次,直到我们意识到尝试是徒劳的)。
下面是操作控制字段的结构以及一些字段的描述。该字段中包含的数据称为 CLCW - 通信链路控制字。
由于你可以很容易地从图片中猜出主要字段的用途,而其他字段看起来很无聊,所以我将详细描述隐藏在剧透下
CLCW 字段的解释控制字类型:
对于该类型,控制字必须包含 0
控制字版本(CLCW 版本号):
对于这种类型,控制字在位表示中必须等于“00”。
状态字段:
该字段的使用是针对每个任务单独确定的。可用于各个航天机构的局部改进。
虚拟通道标识:
必须包含与该控制字关联的虚拟通道的标识符。
物理通道访问标志:
该标志必须提供有关接收器物理层准备情况的信息。如果接收器的物理层未准备好接收帧,则该字段必须包含“1”,否则为“0”。
同步失败标志:
该标志可以指示物理层在较差的信号电平下操作并且被拒绝的帧的数量太高。该字段的使用是可选的;如果使用,则如果同步可用,则该字段必须包含“0”,如果不可用,则必须包含“1”。
阻塞标志:
该位应包含每个虚拟通道的 FARM 锁定状态。该字段中的值“1”应指示 FARM 被禁用,并且将为每个虚拟层丢弃帧,否则为“0”。
等待标志:
该位用于指示接收器无法处理指定虚拟通道上的数据。值为“1”表示该虚拟通道上的所有帧都将被丢弃,否则为“0”。
转发标志:
如果一个或多个 A 类帧已被丢弃或已发现间隙,则该标志应包含“1”,因此需要重新发送。 “0”标志表示没有丢帧或跳帧。
响应值:
未收到的帧号。由遥控命令帧头中的计数器确定
网络层
让我们稍微谈谈这个层面。这里有两个选择:要么使用空间数据包协议,要么将任何其他协议封装在 CCSDS 数据包中。
空间数据包协议的概述是另一篇文章的主题。它旨在允许所谓的应用程序无缝地交换数据。每个应用程序都有自己的地址和与其他应用程序交换数据的基本功能。还有一些服务可以路由流量、控制交付等。
通过封装,一切都变得更简单、更清晰。该标准使得通过添加附加标头将任何协议封装到 CCSDS 数据包中成为可能。
根据封装协议的长度,标头具有不同的含义:
这里主要的字段是长度的长度。它可以从 0 到 4 个字节变化。此外,在此标头中,您必须使用表指示封装协议的类型
IP 封装使用另一个附加组件来确定数据包的类型。
您需要再添加一个标头,一个八位字节长:
其中 PID 是另一个协议标识符
结论
乍一看,CCSDS 标头似乎极其冗余,并且某些字段可以被丢弃。事实上,由此产生的通道(直到网络级别)的效率约为 40%。然而,一旦需要实施这些标准,就会发现每个领域、每个标题都有自己的重要使命,忽视这一点会导致许多含糊之处。
如果哈布拉协会对这个主题表现出兴趣,我将很高兴发表一系列专门讨论空间通信理论和实践的文章。感谢您的关注!
来源
PS
如果发现任何不准确的地方,请不要太用力。报告它们,它们将被修复:)
来源: habr.com