Ein bisschen über Weltraumkommunikationsstandards

Bild
Satellitenmeteor M1
Quelle: vladtime.ru

Einführung


Der Betrieb der Weltraumtechnologie ist ohne Funkkommunikation nicht möglich. In diesem Artikel werde ich versuchen, die Grundideen zu erläutern, die die Grundlage für die vom Beratenden Ausschuss für Weltraumdatensysteme (CCSDS) entwickelten Standards bildeten. Diese Abkürzung wird im Folgenden verwendet.

Diese Veröffentlichung widmet sich hauptsächlich der Kanalebene, es werden jedoch auch grundlegende Konzepte für andere Ebenen vorgestellt. In keiner Weise Anspruch auf eine gründliche und vollständige Beschreibung der Normen zu erheben. Sie finden es auf der CCSDS- Website . Sie sind jedoch sehr schwer wahrzunehmen, und um sie zu verstehen, haben wir viel Zeit verbracht. Deshalb möchte ich hier grundlegende Informationen geben, mit denen ich viel einfacher umgehen kann. Also fangen wir an.

Die edle Mission von CCSDS


Vielleicht hatte jemand eine Frage: Warum sollte sich jeder an Standards halten, wenn Sie Ihren eigenen proprietären Protokollprotokollstapel (oder Ihren eigenen Standard mit Blackjack und neuen Funktionen) entwickeln und so die Sicherheit des Systems erhöhen können?

Wie die Praxis zeigt, ist es aus folgenden Gründen rentabler, die CCSDS-Standards einzuhalten:

  1. Dem für die Veröffentlichung der Standards zuständigen Ausschuss gehörten Vertreter aller großen Luft- und Raumfahrtagenturen der Welt an, die ihre unschätzbaren Erfahrungen aus der langjährigen Planung und Durchführung verschiedener Missionen einbrachten. Es wäre sehr lächerlich, diese Erfahrung zu ignorieren und erneut auf ihren Rechen zu treten.
  2. Diese Standards werden durch bereits auf dem Markt befindliche Bodenstationsgeräte unterstützt.
  3. Bei der Fehlerbehebung können Sie sich jederzeit an Kollegen anderer Agenturen wenden, um Hilfe zu erhalten, damit diese von ihrer Bodenstation aus eine Kommunikationssitzung mit dem Gerät durchführen können.

Architektur


Standards sind eine Sammlung von Dokumenten, die das gängigste OSI-Modell (Open System Interconnection) widerspiegeln, mit der Ausnahme, dass sich die Community auf Kanalebene auf die Unterteilung in Telemetrie (Down-Channel - Space-Earth-Kanal) und Telecommands (Up-Channel) beschränkt.



Betrachten Sie einige Ebenen genauer, angefangen bei der physischen bis hin zur Aufwärtsbewegung. Zur besseren Übersichtlichkeit betrachten wir die Architektur der Hostseite. Der Sender ist sein Spiegelbild.

Körperliche Ebene


Auf dieser Ebene wird das modulierte Funksignal in einen Bitstrom umgewandelt. Die Standards hier sind meist empfehlenswerter Natur, da es auf dieser Ebene schwierig ist, von einer bestimmten Implementierung von Eisen zu abstrahieren. Hier besteht die Schlüsselrolle von CCSDS darin, die zulässigen Modulationen (BPSK, QPSK, 8-QAM usw.) zu bestimmen und einige Empfehlungen zur Implementierung von Symbolsynchronisationsmechanismen, Doppler-Verschiebungskompensation usw. zu geben.

Synchronisierungs- und Codierungsstufe


Formal ist es eine Unterschicht der Datenverbindungsschicht, wird jedoch aufgrund seiner Bedeutung im Rahmen der CCSDS-Standards sehr oft als separate Schicht zugewiesen. Diese Ebene wandelt den Bitstrom in sogenannte Frames (Telemetrie oder Telecommands) um, über die wir später sprechen werden. Im Gegensatz zur Zeichensynchronisation auf physischer Ebene, mit der Sie den richtigen Bitstrom erhalten, wird hier die Rahmensynchronisation durchgeführt. Betrachten Sie den Pfad, den Daten auf dieser Ebene (von unten nach oben) zurücklegen:



Vorher lohnt es sich jedoch, ein paar Worte zur Codierung zu sagen. Dieses Verfahren ist erforderlich, um Bitfehler zu finden und / oder zu korrigieren, die beim Senden von Daten über Funk unvermeidlich sind. Hier werden wir keine Decodierungsprozeduren betrachten, sondern nur die Informationen erhalten, die zum Verständnis der weiteren Logik des Pegels erforderlich sind.

Codes sind blockweise und fortlaufend. Standards erzwingen nicht die Verwendung einer bestimmten Art von Codierung, müssen jedoch als solche vorhanden sein. Die kontinuierlichen umfassen Faltungscodes (Faltungscodes). Mit ihnen wird ein kontinuierlicher Bitstrom codiert. Im Gegensatz zu Blockcodes, bei denen Daten in Codeblöcke (Codeblock) unterteilt sind und nur als Teil ganzer Blöcke dekodiert werden können. Der Codeblock besteht aus den übertragenen Daten und den angehängten redundanten Informationen, die erforderlich sind, um die Richtigkeit der Daten zu überprüfen und mögliche Fehler zu korrigieren. Zu den Blockcodes gehören die berühmten Reed-Solomon-Codes.

Wenn eine Faltungscodierung verwendet wird, geht der Bitstrom von Anfang an zum Decodierer. Das Ergebnis seiner Arbeit (all dies geschieht natürlich kontinuierlich) sind CADU-Dateneinheiten (Channel Access Data Unit). Diese Struktur ist für die Rahmensynchronisation erforderlich. Am Ende jeder CADU befindet sich ein Synchronisationsmarker (ASM - Attached Synch Maker). Dies sind 4 im Voraus bekannte Bytes, anhand derer der Synchronisierer den Anfang und das Ende der CADU findet. Auf diese Weise wird eine Rahmensynchronisation erreicht.

Die nächste optionale Betriebsstufe der Synchronisations- und Codierungsschicht ist den Merkmalen der physikalischen Schicht zugeordnet. Das ist Derandomisierung. Tatsache ist, dass zum Erreichen der Symbolsynchronisation ein häufiges Umschalten zwischen Symbolen erforderlich ist. Wenn wir also beispielsweise ein Kilobyte Daten übertragen, die ausschließlich aus Einheiten bestehen, geht die Synchronisation verloren. Daher werden während der Übertragung die Eingabedaten mit einer periodischen Pseudozufallssequenz gemischt, so dass die Dichte von Nullen und Einsen gleichmäßig ist.

Als nächstes werden Blockcodes decodiert, und was bleibt, wird das Endprodukt des Synchronisations- und Codierungspegelrahmens sein.

Kanalebene


Einerseits empfängt der Link-Layer-Handler Frames und andererseits erzeugt er Pakete. Da die Größe von Paketen formal nicht begrenzt ist, ist es für ihre zuverlässige Weiterleitung erforderlich, sie in kleinere Strukturen - Frames - aufzuteilen. Hier betrachten wir zwei Unterabschnitte: getrennt für Telemetrie (TM) und Telekommunikationsbefehle (TC).

Telemetrie


Einfach ausgedrückt sind dies die Daten, die die Bodenstation vom Raumschiff empfängt. Alle übertragenen Informationen sind in kleine Fragmente fester Länge unterteilt - Frames, die die übertragenen Daten und Servicefelder enthalten. Betrachten Sie die Rahmenstruktur genauer:



Und wir beginnen unsere Betrachtung mit dem Haupttitel des Telemetrierahmens. Außerdem werde ich mir an einigen Stellen erlauben, die Standards einfach zu übersetzen und gleichzeitig einige Klarstellungen zu geben.



Das Feld der Kennung des Hauptkanals (Master Channel ID) muss die Versionsnummer des Frames und die Kennung des Geräts enthalten.

Jedes Raumfahrzeug muss gemäß den CCSDS-Standards eine eigene eindeutige Kennung haben, anhand derer mit einem Rahmen bestimmt werden kann, zu welchem ​​Fahrzeug es gehört. Formal ist es erforderlich, die Registrierung des Geräts zu beantragen, und sein Name wird zusammen mit der Kennung in Open Source veröffentlicht. Russische Hersteller ignorieren dieses Verfahren jedoch häufig und weisen dem Gerät eine beliebige Kennung zu. Die Versionsnummer des Frames hilft zu bestimmen, welche Version der Standards zum korrekten Lesen des Frames verwendet wird. Hier betrachten wir nur den konservativsten Standard mit der Version "0".

Die ID des virtuellen Kanals muss die VCID des Kanals enthalten, von dem das Paket stammt. Es gibt keine Einschränkungen bei der Auswahl der VCID, insbesondere werden virtuelle Kanäle nicht unbedingt fortlaufend nummeriert.

Sehr oft besteht die Notwendigkeit, die übertragenen Daten zu multiplexen. Hierfür gibt es einen virtuellen Kanalmechanismus. Zum Beispiel überträgt der Meteor-M2-Satellit ein Farbbild im sichtbaren Bereich und teilt es in drei Schwarz-Weiß-Bilder auf - jede Farbe wird in ihrem virtuellen Kanal als separates Paket übertragen, obwohl es einige Abweichungen von den Standards in der Struktur seiner Rahmen gibt.

Das Feld Operational Control-Flag sollte ein Indikator für das Vorhandensein oder Fehlen des Felds Operational Control im Telemetrierahmen sein. Diese 4 Bytes am Ende des Rahmens dienen dazu, die Rückmeldung bei der Überwachung der Zustellung von Telekommunikationsrahmen aufrechtzuerhalten. Wir werden etwas später darüber sprechen.

Die Frame-Zähler des Haupt- und des virtuellen Kanals sind Felder, die beim Senden jedes Frames um eins erhöht werden. Sie dienen als Indikator dafür, dass kein Frame verloren gegangen ist.

Der Status von Telemetrie-Rahmendaten beträgt zwei weitere Bytes an Flags und Daten, von denen wir nur einige betrachten werden.



Das Flag-Feld des sekundären Headers (sekundärer Header) sollte ein Indikator für das Vorhandensein oder Fehlen des sekundären Headers (sekundärer Header) im Telemetrierahmen sein.

Falls gewünscht, können Sie jedem Frame einen zusätzlichen Header hinzufügen und dort nach eigenem Ermessen Daten platzieren.

Das Feld des Zeigers auf den ersten Header (First Header Pointer) mit dem Wert des Synchronisationsflags „1“ muss die binäre Darstellung der Position des ersten Oktetts des ersten Pakets im Datenfeld des Telemetrierahmens enthalten. Die Position wird ab dem Beginn des Datenfeldes in aufsteigender Reihenfolge von 0 an gezählt. Wenn im Datenfeld des Telemetrierahmens kein Paketanfang vorhanden ist, sollte das Feld des Zeigers auf den ersten Header einen Wert in der Binärdarstellung „11111111111“ haben (dies kann passieren, wenn sich ein langes Paket auf mehr als einen Rahmen erstreckt).

Wenn das Datenfeld ein leeres Paket enthält (Idle Data), muss der Zeiger auf den ersten Header einen Wert in der Binärdarstellung "11111111110" haben. In diesem Feld sollte der Empfänger den Stream synchronisieren. Dieses Feld garantiert die Wiederherstellung der Synchronisation auch beim Überspringen von Frames.

Das heißt, ein Paket kann in der Mitte des 4. Frames beginnen und am Anfang des 20. Frames enden. Um seinen Anfang zu finden, dient dieses Feld nur. Pakete haben auch eine Überschrift, in der ihre Länge registriert ist. Wenn also ein Zeiger auf die erste Überschrift gefunden wird, sollte der Handler auf Verbindungsebene diese lesen und so bestimmen, wo das Paket enden wird.
Wenn ein Fehlerkontrollfeld angezeigt wird, sollte es in jedem Telemetrierahmen für einen bestimmten physischen Kanal während der gesamten Mission enthalten sein.

Dieses Feld wird mit der CRC-Methode berechnet. Die Prozedur sollte n-16 Bits des Telemetrierahmens akzeptieren und das Berechnungsergebnis in die letzten 16 Bits einfügen.

Telecommands


Der Telecommand-Frame weist mehrere signifikante Unterschiede auf. Unter ihnen:

  1. Unterschiedliche Header-Struktur
  2. Dynamische Länge. Dies bedeutet, dass die Rahmenlänge nicht starr eingestellt ist, wie dies bei der Telemetrie der Fall ist, sondern abhängig von den übertragenen Paketen variieren kann.
  3. Mechanismus zur Garantie der Paketzustellung. Das heißt, das Raumfahrzeug muss nach dem Empfang den korrekten Empfang von Rahmen bestätigen oder eine Weiterleitung von dem Rahmen anfordern, die mit einem nicht korrigierbaren Fehler empfangen werden könnte.





Viele Felder sind uns bereits aus dem Telemetrie-Frame-Header bekannt. Sie haben den gleichen Zweck, daher betrachten wir hier nur neue Felder.

Ein Bit des Bypass-Flags sollte verwendet werden, um die Rahmenprüfung am Empfänger zu überwachen. Der Wert „0“ dieses Flags sollte anzeigen, dass dieser Frame ein Frame vom Typ A ist, und sollte gemäß FARM überprüft werden. Der Wert „1“ dieses Flags sollte dem Empfänger anzeigen, dass dieser Rahmen ein Rahmen vom Typ B ist, und die Prüfung gemäß FARM umgehen.

Dieses Flag informiert den Empfänger darüber, ob der Frame Delivery-Bestätigungsmechanismus namens FARM - Frame Acceptance and Reporting Mechanism verwendet werden soll.

Das Steuerbefehlsflag sollte verwendet werden, um zu verstehen, ob das Datenfeld den Befehl oder die Daten transportiert. Wenn das Flag "0" ist, sollte das Datenfeld Daten enthalten. Wenn das Flag "1" ist, sollte das Datenfeld die Steuerinformationen für die FARM enthalten.
FARM ist eine Zustandsmaschine, deren Parameter konfiguriert werden können.

RSVD. SPARE - reservierte Bits.

Es scheint, dass CCSDS Pläne für die Zukunft hat und für die Abwärtskompatibilität von Protokollversionen diese Bits bereits in aktuellen Versionen des Standards reserviert haben.

Das Feld für die Rahmenlänge sollte eine Zahl in der Bitdarstellung enthalten, die der Rahmenlänge in Oktetten minus eins entspricht.

Das Rahmendatenfeld sollte dem Header ohne Lücken folgen und eine ganzzahlige Anzahl von Oktetten enthalten, die maximal 1019 Oktette betragen kann. Dieses Feld muss entweder einen Block mit Rahmendaten oder Informationen aus einem Steuerbefehl enthalten. Der Rahmendatenblock muss enthalten:

  • Oktett-Integer-Benutzerdaten
  • Segmentheader gefolgt von einem ganzzahligen Oktett von Benutzerdaten

Wenn ein Header bereitgestellt wird, sollte der Datenblock ein Paket, viele Pakete oder einen Teil davon enthalten. Ein Datenblock ohne Header kann keine Teile von Paketen enthalten, aber er kann Datenblöcke eines privaten Formats enthalten. Daraus folgt, dass der Header benötigt wird, wenn der übertragene Datenblock nicht in einen Rahmen passt. Ein Datenblock mit einem Header wird als Segment bezeichnet.



Ein Zwei-Bit-Flag-Feld sollte enthalten:

  • "01" - wenn sich der erste Teil der Daten im Datenblock befindet
  • "00" - wenn sich der mittlere Teil der Daten im Datenblock befindet
  • "10" - wenn sich das letzte Datenelement im Datenblock befindet
  • "11" - wenn keine Teilung vorliegt und ein oder mehrere Pakete im gesamten Datenblock abgelegt werden.

Das MAP-Identifizierungsfeld muss Nullen enthalten, wenn keine MAP-Kanäle verwendet werden.
Manchmal reichen 6 Bits, die virtuellen Kanälen zugewiesen sind, nicht aus. Wenn Sie Daten auf eine größere Anzahl von Kanälen multiplexen müssen, werden weitere 6 Bits aus dem Segmentheader verwendet.

Bauernhof


Lassen Sie uns den Funktionsmechanismus des Kontrollsystems für die Personalabgabe genauer betrachten. Dieses System sieht nur die Arbeit mit Telekommunikationspersonal im Hinblick auf deren Bedeutung vor (Telemetrie kann immer wieder angefordert werden, und das Raumschiff muss die Bodenstation deutlich hören und immer seinen Befehlen gehorchen). Nehmen wir also an, wir haben beschlossen, unseren Satelliten erneut zu starten und eine 10-Kilobyte-Binärdatei an Bord zu senden. Auf Kanalebene ist die Datei in 10 Frames (0, 1, ..., 9) unterteilt, die einzeln nach oben gesendet werden. Wenn die Übertragung abgeschlossen ist, muss das Raumfahrzeug den korrekten Empfang des Pakets bestätigen oder melden, auf welchem ​​Rahmen ein Fehler aufgetreten ist. Diese Informationen werden an das Betriebssteuerungsfeld im nächsten Telemetrierahmen gesendet (oder das Raumfahrzeug kann die Übertragung eines leeren Rahmens (Leerlaufrahmens) initiieren, wenn es nichts zu sagen hat). Basierend auf der empfangenen Telemetrie stellen wir entweder sicher, dass alles in Ordnung ist, oder senden die Nachricht erneut. Angenommen, der Satellit hat Frame Nr. 7 nicht gehört. Also senden wir die Frames 7, 8, 9. Wenn es keine Antwort gibt, wird das Paket erneut vollständig gesendet (und so weiter mehrmals, bis wir verstehen, dass die Versuche erfolglos sind).

Nachfolgend finden Sie die Struktur des Bereichs der Betriebssteuerung mit einer Beschreibung einiger Bereiche. Die in diesem Feld enthaltenen Daten werden als CLCW - Communication Link Control Word bezeichnet.



Da es durchaus möglich ist, aus dem Bild den Zweck der Hauptfelder zu erraten, während das Betrachten der anderen langweilig ist, verstecke ich die detaillierte Beschreibung unter dem Spoiler

CLCW-Felder dekodieren
Art des Steuerworts (Steuerworttyp):
Für diese Art von Steuerwort sollte 0 enthalten sein

Steuerwortversion (CLCW-Versionsnummer):
Für diese Art von Steuerwort sollte in der Bitdarstellung gleich "00" sein.

Statusfeld:
Die Verwendung dieses Feldes wird für jede Mission separat festgelegt. Es kann für lokale Verbesserungen von verschiedenen Raumfahrtagenturen verwendet werden.

Identifizierung des virtuellen Kanals:
Muss die Kennung des virtuellen Kanals enthalten, dem dieses Steuerwort zugeordnet ist.

Physischer Kanalzugriffsflag:
Das Flag sollte Informationen über die Bereitschaft der physischen Schicht des Empfängers liefern. Wenn die physische Ebene des Empfängers nicht zum Empfangen von Frames bereit ist, sollte das Feld "1" enthalten, andernfalls "0".

Sync Failure Flag:
Das Flag kann anzeigen, dass die physikalische Schicht mit einem schlechten Signalpegel arbeitet und die Anzahl der zurückgewiesenen Rahmen zu hoch ist. Die Verwendung dieses Feldes ist optional. Wenn es verwendet wird, sollte es bei vorhandener Synchronisation "0" und bei fehlender Synchronisation "1" enthalten.

Sperrflagge:
Dieses Bit muss den FARM-Sperrstatus für jeden virtuellen Kanal enthalten. Der Wert "1" in diesem Feld sollte anzeigen, dass die FARM gesperrt ist und Frames für jede virtuelle Ebene gelöscht werden, andernfalls "0".

Warteflagge:
Dieses Bit sollte verwendet werden, um anzuzeigen, dass der Empfänger das auf dem angegebenen virtuellen Kanal angegebene nicht verarbeiten kann. Der Wert "1" gibt an, dass alle Frames auf diesem virtuellen Kanal verworfen werden, andernfalls "0".

Versandflagge:
Dieses Flag muss "1" enthalten, wenn ein oder mehrere Frames vom Typ A verworfen wurden oder Lücken gefunden wurden. Daher ist ein erneutes Senden erforderlich. Das Flag „0“ zeigt an, dass keine Frames und Auslassungen verworfen wurden.

Antwortwert:
Die Nummer des Frames, der nicht empfangen wurde. Sie wird durch den Zähler im Header des Telecommands-Frames bestimmt.

Netzwerkschicht


Ein kleiner Touch auf dieser Ebene. Hier sind zwei Optionen möglich: Verwenden Sie entweder das Space-Packet-Protokoll oder kapseln Sie ein anderes Protokoll in das CCSDS-Paket.

Eine Überprüfung des Space-Packet-Protokolls ist ein Thema für einen separaten Artikel. Es wurde so erstellt, dass die sogenannten Anwendungen Daten nahtlos austauschen können. Jede Anwendung verfügt über eine eigene Adresse und grundlegende Funktionen für den Datenaustausch mit anderen Anwendungen. Es gibt auch Dienste, die den Verkehr leiten, die Zustellungskontrolle durchführen usw.

Mit der Kapselung ist alles einfacher und verständlicher. Standards ermöglichen es, jedes Protokoll in CCSDS-Paketen zu kapseln, indem ein zusätzlicher Header hinzugefügt wird.



Wenn der Header je nach Länge des gekapselten Protokolls unterschiedliche Bedeutungen hat:



Hier ist das Hauptfeld die Längenlänge. Sie kann zwischen 0 und 4 Byte variieren. Auch in diesem Header müssen Sie den Typ des gekapselten Protokolls anhand der Tabelle von hier angeben .

Bei der Kapselung von IP wird ein anderes Add-In verwendet, um den Pakettyp zu bestimmen.
Sie müssen einen weiteren Header hinzufügen, beginnend mit einem Oktett:



Wobei PID eine andere Protokollkennung ist, die von hier übernommen wird

Fazit


Auf den ersten Blick scheinen die CCSDS-Header extrem redundant zu sein, und einige Felder werden möglicherweise verworfen. In der Tat beträgt die Effizienz des resultierenden Kanals (bis zur Netzwerkebene) etwa 40%. Sobald es jedoch notwendig wird, diese Standards umzusetzen, wird klar, dass jedes Feld, jede Überschrift seine eigene wichtige Aufgabe hat, deren Ignorieren zu einer Reihe von Unklarheiten führt.

Wenn die Wohngemeinschaft Interesse an diesem Thema zeigt, werde ich gerne eine ganze Reihe von Artikeln veröffentlichen, die sich mit Theorie und Praxis der Weltraumkommunikation befassen. Vielen Dank für Ihre Aufmerksamkeit!

Quellen


CCSDS 130.0-G-3 - Übersicht über die Weltraumkommunikationsprotokolle
CCSDS 131.0-B-2 - TM-Synchronisation und Kanalcodierung
CCSDS 132.0-B-2 - TM-
Raumdatenverbindungsprotokoll
CCSDS 133.0 -B-1 - Raumpaketprotokoll CCSDS 133.1- B-2 - Verkapselungsdienst
CCSDS 231.0-B-3 - TC-Synchronisation und Kanalcodierung
CCSDS 232.1-B-2 Kommunikationsbetriebsverfahren-1
CCSDS 401.0-B-28 Hochfrequenz- und Modulationssysteme - Teil 1 (Erdstationen und Raumfahrzeuge)
CCSDS 702.1-B-1 - IP über CCSDS-Space-Links

PS
Schlagen Sie nicht hart, wenn Sie Ungenauigkeiten feststellen. Melde sie und sie werden behoben :)

Source: https://habr.com/ru/post/de458884/


All Articles