Un peu sur les normes des communications spatiales

Un peu sur les normes des communications spatiales
Satellite Météor M1
Source : vladtime.ru

Introduction

L'exploitation des engins spatiaux est impossible sans radio communication, et dans cet article, je vais essayer d'expliquer les concepts fondamentaux qui ont servi de base aux normes dĂ©veloppĂ©es par le ComitĂ© Consultatif pour les SystĂšmes de DonnĂ©es Spatiales (Consultative Committee for Space Data Systems – CCSDS. Cette abrĂ©viation sera utilisĂ©e par la suite).

Cette publication sera principalement dédiée au niveau de la liaison, cependant, les concepts fondamentaux pour les autres niveaux seront également introduits. Cet article ne prétend en aucun cas à une description exhaustive et complÚte des normes. Vous pouvez les consulter sur site CCSDS. Cependant, elles sont trÚs difficiles à comprendre, et pour les saisir, nous avons consacré pas mal de temps, c'est pourquoi je souhaite ici fournir des informations de base, ce qui facilitera grandement la compréhension de tout le reste. Alors, commençons.

La noble mission du CCSDS

Il est possible que quelqu'un se demande pourquoi tout le monde devrait suivre des normes alors qu'il serait possible de développer son propre ensemble de protocoles de communication radio (ou sa propre norme, avec du blackjack et de nouvelles fonctionnalités), augmentant ainsi la sécurité du systÚme ?

Comme l'expérience le montre, il est plus avantageux de respecter les normes CCSDS pour plusieurs raisons :

  1. Le comitĂ© responsable de la publication des normes comprend des reprĂ©sentants de toutes les grandes agences spatiales du monde, apportant leur expĂ©rience prĂ©cieuse acquise au cours de nombreuses annĂ©es de conception et d'exploitation de diverses missions. Il serait trĂšs absurde d'ignorer cette expĂ©rience et de recommencer Ă  faire les mĂȘmes erreurs.
  2. Ces normes sont prises en charge par l'équipement existant sur le marché des stations au sol.
  3. Lors de la rĂ©solution de problĂšme, il est toujours possible de demander de l'aide Ă  des collĂšgues d'autres agences pour qu'ils effectuent une session de communication avec le vaisseau spatial depuis leur station au sol. Comme vous le voyez, les normes sont extrĂȘmement utiles, alors examinons leurs points clĂ©s.

Architecture

Les normes reprĂ©sentent un ensemble de documents reflĂ©tant le modĂšle OSI (Open System Interconnection) standard, Ă  l'exception du fait qu'au niveau de la liaison, la communautĂ© se limite Ă  la sĂ©paration entre tĂ©lĂ©mĂ©trie (canal « vers le bas » — espace - Terre) et tĂ©lĂ©mission (canal « vers le haut »).

Un peu sur les normes des communications spatiales

Examinons de plus prÚs certains niveaux, en commençant par le niveau physique et en remontant. Pour plus de clarté, nous allons considérer l'architecture du cÎté récepteur. L'émetteur en est le miroir.

Niveau physique

À ce niveau, le signal radio modulĂ© est converti en flux binaire. Les normes ici sont principalement de nature recommandative, car il est difficile de s'abstraire de la mise en Ɠuvre matĂ©rielle spĂ©cifique Ă  ce niveau. Le rĂŽle clĂ© de la CCSDS – dĂ©finir les modulations acceptables (BPSK, QPSK, 8-QAM, etc.) et donner des recommandations sur la mise en Ɠuvre des mĂ©canismes de synchronisation symbolique, de compensation du dĂ©calage Doppler, etc.

Niveau de synchronisation et de codage

Formellement, c'est un sous-niveau du niveau de liaison, mais il est souvent considéré comme un niveau distinct en raison de son importance dans le cadre des normes CCSDS. Ce niveau transforme le flux binaire en ce qu'on appelle des trames (de télémetrie ou de télécommande), dont nous parlerons plus tard. Contrairement à la synchronisation symbolique au niveau physique, qui permet d'obtenir un flux binaire correct, ici on effectue la synchronisation des trames. Examinons le chemin que les données empruntent à ce niveau (de bas en haut) :

Un peu sur les normes des communications spatiales

Cependant, avant cela, il convient de dire quelques mots sur le codage. Cette procédure est nécessaire pour détecter et/ou corriger les erreurs de bits qui surviennent inévitablement lors de l'envoi de données par canal radio. Ici, nous ne traiterons pas des procédures de décodage, mais nous recueillerons les informations nécessaires pour comprendre la logique de fonctionnement du niveau.

Il existe des codes BloquĂ©s et Continus. Les normes n'obligent pas Ă  utiliser un type de codage spĂ©cifique, mais celui-ci doit ĂȘtre prĂ©sent. Les codes continus sont appelĂ©s codes convolutifs. Avec eux, un flux binaire continu est codĂ©. Contrairement aux codes bloquĂ©s, oĂč les donnĂ©es sont divisĂ©es en blocs de code, et peuvent ĂȘtre dĂ©codĂ©es uniquement dans le cadre de blocs intacts. Un bloc de code reprĂ©sente les donnĂ©es transmises et les informations Redondantes ajoutĂ©es, nĂ©cessaires pour vĂ©rifier la bonne rĂ©ception des donnĂ©es et corriger les erreurs possibles. Les codes bloquĂ©s comprennent les cĂ©lĂšbres codes de Reed-Solomon.

Si un codage par convolution est utilisĂ©, le flux de bits arrive au dĂ©codeur dĂšs le dĂ©part. Le rĂ©sultat de son fonctionnement (tout cela, bien sĂ»r, se fait en continu) est constituĂ© de blocs de donnĂ©es CADU (channel access data unit). Cette structure est nĂ©cessaire pour la synchronisation des images. À la fin de chaque CADU, un marqueur de synchronisation (ASM - attached synch marker) est joint. Il s'agit de 4 octets connus Ă  l'avance, permettant au synchroniseur de trouver le dĂ©but et la fin du CADU. C'est ainsi que la synchronisation des images est atteinte.

L'étape suivante, optionnelle, du niveau de synchronisation et de codage est liée aux particularités du niveau physique. Il s'agit de la dérandomisation. En effet, pour atteindre une synchronisation symbolique, il est nécessaire d'effectuer des commutations fréquentes entre les symboles. Ainsi, si nous devions transmettre, par exemple, un kilooctet de données composé uniquement de uns, la synchronisation serait perdue. C'est pourquoi, lors de la transmission, les données d'entrée sont mélangées avec une séquence pseudo-aléatoire périodique afin que la densité de zéros et de uns soit uniforme.

Ensuite, le décodage des codes de bloc a lieu, et ce qui reste sera le produit final du niveau de synchronisation et de codage - la trame.

Niveau de canal

D'un cÎté, le gestionnaire du niveau de canal reçoit des trames, et de l'autre, il émet des paquets. Comme la taille des paquets n'est formellement pas limitée, il est nécessaire de les diviser en structures plus petites - des trames - pour un transfert fiable. Ici, nous examinerons deux sous-sections : une pour la télémétrie (TM) et l'autre pour les télécommandes (TC).

Télémétrie

En termes simples, ce sont les données que la station au sol reçoit du satellite. Toutes les informations transmises sont divisées en petits fragments de longueur fixe - des trames - qui contiennent les données transmises et des champs de contrÎle. Examinons la structure de la trame plus en détail :

Un peu sur les normes des communications spatiales

Et commençons par l'en-tĂȘte principal de la trame de tĂ©lĂ©mĂ©trie. Ensuite, je me permets, Ă  certains endroits, de traduire simplement les normes tout en donnant quelques explications.

Un peu sur les normes des communications spatiales

Le champ d'identifiant du canal principal (Master Channel ID) doit contenir le numéro de version de la trame et l'identifiant de l'appareil.

Chaque satellite, selon les normes CCSDS, doit avoir un identifiant unique, permettant de dĂ©terminer Ă  quel appareil appartient un fichier donnĂ©. FormulĂšrement, une demande d'enregistrement de l'appareil doit ĂȘtre soumise, et son nom, accompagnĂ© de l'identifiant, sera publiĂ© dans des sources ouvertes. Cependant, les fabricants russes ignorent souvent cette procĂ©dure, attribuant Ă  l'appareil un identifiant arbitraire. Le numĂ©ro de version du fichier aide Ă  dĂ©terminer quelle version des normes est utilisĂ©e pour lire correctement le fichier. Ici, nous examinerons uniquement la norme la plus conservatrice avec la version «0».

Le champ d'identifiant de canal virtuel (Virtual Channel ID) doit contenir le VCID du canal à partir duquel le paquet provient. Il n'y a aucune restriction sur le choix du VCID, en particulier les canaux virtuels ne sont pas nécessairement numérotés de maniÚre séquentielle.

Il est trĂšs souvent nĂ©cessaire de multiplexer les donnĂ©es transmises. Pour cela, il existe un mĂ©canisme de canaux virtuels. Par exemple, le satellite Meteor-M2 transmet une image couleur dans le spectre visible, la divisant en trois images noir et blanc – chaque couleur Ă©tant transmise dans son propre canal virtuel sous forme de paquet distinct, bien que dans la structure de ses fichiers, il y ait quelques Ă©carts par rapport aux normes.

Le champ de drapeau de contrÎle opérationnel doit indiquer la présence ou l'absence d'un champ de contrÎle opérationnel dans le fichier de télémétrie. Ces 4 octets à la fin du fichier servent à maintenir un retour d'information lors du contrÎle de la livraison des fichiers de télécommandes. Nous en parlerons un peu plus tard.

Les compteurs de fichiers principal et de canal virtuel sont des champs qui s'incrémentent d'une unité à chaque envoi de fichier. Ils servent d'indicateur que aucun fichier n'a été perdu.

Le statut des données du fichier de télémétrie est constitué de deux octets de drapeaux et de données, parmi lesquels nous examinerons seulement certains.

Un peu sur les normes des communications spatiales

Le champ de drapeau d'en-tĂȘte secondaire (Secondary Header) doit indiquer la prĂ©sence ou l'absence d'un en-tĂȘte secondaire dans le fichier de tĂ©lĂ©mĂ©trie.

Si souhaitĂ©, un en-tĂȘte supplĂ©mentaire peut ĂȘtre ajoutĂ© Ă  chaque fichier et y placer toutes les informations Ă  sa convenance.

Le champ du pointeur vers le premier en-tĂȘte (First Header Pointer), lorsque le drapeau de synchronisation est Ă  « 1 », doit contenir la reprĂ©sentation binaire de la position du premier octet du premier paquet dans le champ de donnĂ©es (Data Field) de la trame de tĂ©lĂ©mĂ©trie. La position est comptĂ©e Ă  partir de 0 dans un ordre croissant depuis le dĂ©but du champ de donnĂ©es. S'il n'y a pas de dĂ©but de paquet dans le champ de donnĂ©es de la trame de tĂ©lĂ©mĂ©trie, alors le champ du pointeur vers le premier en-tĂȘte doit avoir pour valeur dans la reprĂ©sentation binaire « 11111111111 » (cela peut se produire si un long paquet s'Ă©tend sur plus d'une trame).

Si le champ de donnĂ©es contient un paquet vide (Idle Data), alors le pointeur vers le premier en-tĂȘte doit avoir pour valeur dans la reprĂ©sentation binaire « 11111111110 ». Ce champ est utilisĂ© par le rĂ©cepteur pour synchroniser le flux. Ce champ garantit la restauration de la synchronisation mĂȘme en cas de perte de trames.

Ainsi, un paquet peut, disons, commencer au milieu de la 4Ăšme trame et se terminer au dĂ©but de la 20Ăšme. Pour trouver son dĂ©but, c'est prĂ©cisĂ©ment ce champ qui est utilisĂ©. Les paquets ont Ă©galement un en-tĂȘte qui spĂ©cifie leur longueur, donc lors de la localisation du pointeur vers le premier en-tĂȘte, le gestionnaire de niveau canal doit le lire, dĂ©terminant ainsi oĂč le paquet se terminera.
Si le champ de contrÎle des erreurs est présent, il doit se trouver dans chaque trame de télémétrie pour un canal physique spécifique tout au long de la mission.

Ce champ est calculé en utilisant la méthode CRC. La procédure doit prendre n-16 bits de la trame de télémétrie et insérer le résultat du calcul dans les 16 derniers bits.

Télécommandes

La trame de télécommande présente plusieurs différences essentielles. Parmi elles :

  1. Une structure d'en-tĂȘte diffĂ©rente
  2. Longueur dynamique. Cela signifie que la longueur de la trame n'est pas fixée rigidement, comme c'est le cas dans la télémétrie, mais peut varier en fonction des paquets transmis.
  3. MĂ©canisme de garantie de livraison des paquets. Cela veut dire que le satellite doit confirmer la rĂ©ception correcte des trames, ou demander la retransmission Ă  partir de la trame qui a pu ĂȘtre reçue avec une erreur non corrigible.

Un peu sur les normes des communications spatiales

Un peu sur les normes des communications spatiales

De nombreux champs sont dĂ©jĂ  familiers depuis l'en-tĂȘte de la trame de tĂ©lĂ©mĂ©trie. Ils ont la mĂȘme fonction, donc ici nous allons examiner uniquement les nouveaux champs.

Un bit du drapeau de contournement doit ĂȘtre utilisĂ© pour contrĂŽler la vĂ©rification des trames sur le rĂ©cepteur. Une valeur « 0 » de ce drapeau doit indiquer que cette trame est de type A et que sa vĂ©rification doit ĂȘtre effectuĂ©e conformĂ©ment au FARM. Une valeur « 1 » de ce drapeau doit indiquer au rĂ©cepteur que cette trame est de type B et doit contourner la vĂ©rification conformĂ©ment au FARM.

Ce drapeau informe le rĂ©cepteur s'il doit utiliser le mĂ©canisme de confirmation de livraison des trames appelĂ© FARM — MĂ©canisme d'acceptation et de rapport des trames.

Le drapeau de commande de contrĂŽle doit ĂȘtre utilisĂ© pour comprendre si le champ de donnĂ©es transporte une commande ou des donnĂ©es. Si le drapeau est « 0 », le champ de donnĂ©es doit contenir des donnĂ©es. Si le drapeau est « 1 », le champ de donnĂ©es doit contenir des informations de contrĂŽle pour le FARM.
Le FARM est une machine Ă  Ă©tats, dont les paramĂštres peuvent ĂȘtre configurĂ©s.

RSVD. SPARE – bits rĂ©servĂ©s.

Il semble que le CCSDS ait des plans à leur sujet à l'avenir, et pour la compatibilité descendante des versions du protocole, ces bits sont déjà réservés dans les versions actuelles de la norme.

Le champ de longueur des trames doit contenir un nombre en représentation binaire, qui est égal à la longueur de la trame en octets moins un.

Le champ de donnĂ©es de la trame doit suivre immĂ©diatement l'en-tĂȘte sans espace et contenir un entier d'octets, dont la longueur peut aller jusqu'Ă  1019 octets. Ce champ doit contenir soit un bloc de donnĂ©es de trame, soit des informations de commande. Le bloc de donnĂ©es de la trame doit contenir :

  • un entier d'octets de donnĂ©es utilisateur
  • l'en-tĂȘte de segment suivi d'un certain nombre d'octets de donnĂ©es utilisateur

Si l'en-tĂȘte est prĂ©sent, le bloc de donnĂ©es doit contenir un paquet, plusieurs paquets ou une partie de ceux-ci. Un bloc de donnĂ©es sans en-tĂȘte ne peut pas contenir des parties de paquets, mais peut contenir des blocs de donnĂ©es au format privĂ©. Il s'ensuit qu'un en-tĂȘte est requis lorsque le bloc de donnĂ©es transmis ne peut pas tenir dans une seule trame. Un bloc de donnĂ©es avec en-tĂȘte est appelĂ© segment.

Un peu sur les normes des communications spatiales

Le champ des drapeaux de deux bits doit contenir :

  • « 01 » — si la premiĂšre partie des donnĂ©es se trouve dans le bloc de donnĂ©es
  • « 00 » — si la partie mĂ©diane des donnĂ©es se trouve dans le bloc de donnĂ©es
  • « 10 » — si la derniĂšre partie des donnĂ©es se trouve dans le bloc de donnĂ©es
  • «11» — s'il n'y a pas de division et qu'un ou plusieurs paquets sont entiĂšrement placĂ©s dans le bloc de donnĂ©es.

Le champ d'identifiant MAP doit contenir des zéros si les canaux MAP ne sont pas utilisés.
Parfois, 6 bits attribuĂ©s aux canaux virtuels ne sont pas suffisants. Et s'il est nĂ©cessaire de multiplexage des donnĂ©es sur un plus grand nombre de canaux, encore 6 bits de l'en-tĂȘte du segment sont utilisĂ©s.

FARM

Examinons plus en dĂ©tail le mĂ©canisme de fonctionnement du systĂšme de contrĂŽle de livraison des trames. Ce systĂšme prĂ©voit uniquement le travail avec les trames de tĂ©lĂ©commandes en raison de leur importance (les tĂ©lĂ©mĂ©tries peuvent toujours ĂȘtre redemandĂ©es, tandis que le satellite doit entendre clairement la station au sol et toujours obĂ©ir Ă  ses ordres). Supposons donc que nous avons dĂ©cidĂ© de reprogrammer notre satellite et que nous envoyons Ă  bord un fichier binaire de 10 kilooctets. Au niveau de canal, le fichier est divisĂ© en 10 trames (0, 1, ..., 9), qui sont envoyĂ©es une par une. Une fois la transmission terminĂ©e, le satellite doit confirmer la rĂ©ception correcte du paquet ou indiquer Ă  quelle trame l'erreur s'est produite. Cette information est envoyĂ©e dans le champ de contrĂŽle opĂ©rationnel lors de la prochaine trame de tĂ©lĂ©mĂ©trie (oĂč le satellite peut Ă©galement initier l'envoi d'une trame vide (idle frame) s'il n'a rien Ă  dire). À partir des tĂ©lĂ©mĂ©tries reçues, nous nous assurons soit que tout va bien, soit que nous procĂ©dons au renvoi du message. Supposons que le satellite n'ait pas entendu la trame n°7. Cela signifie que nous lui envoyons les trames 7, 8, 9. Si aucune rĂ©ponse ne vient, le paquet est renvoyĂ© dans son intĂ©gralitĂ© encore une fois (et ainsi plusieurs fois, jusqu'Ă  ce que nous comprenions que les tentatives sont vaines).

Ci-dessous est prĂ©sentĂ©e la structure du champ de contrĂŽle opĂ©rationnel avec la description de certains champs. Les donnĂ©es contenues dans ce champ sont appelĂ©es CLCW – Communication Link Control Word.

Un peu sur les normes des communications spatiales

Comme il est assez possible de deviner la destination des champs principaux à partir de l'image, et que regarder les autres est ennuyeux, je cache la description détaillée sous un spoiler.

Décryptage des champs CLCWType de mot de contrÎle (Control Word Type) :
Pour ce type de mot de contrĂŽle, il doit contenir 0.

Version du mot de contrĂŽle (CLCW Version Number) :
Pour ce type de mot de contrĂŽle, cela doit ĂȘtre Ă©gal Ă  «00» en reprĂ©sentation binaire.

Champ de statut (Status Field) :
L'utilisation de ce champ est dĂ©terminĂ©e pour chaque mission sĂ©parĂ©ment. Il peut ĂȘtre utilisĂ© pour des amĂ©liorations locales par diffĂ©rentes agences spatiales.

Identifiant de canal virtuel (Virtual Channel Identification) :
Doit contenir l'identifiant du canal virtuel associé à ce mot de contrÎle.

Drapeau d'accĂšs au canal physique :
Ce drapeau doit fournir des informations sur l'Ă©tat de prĂ©paration du niveau physique du rĂ©cepteur. Si le niveau physique du rĂ©cepteur n'est pas prĂȘt Ă  recevoir des images, le champ doit contenir « 1 », sinon « 0 ».

Drapeau de perte de synchronisation :
Ce drapeau peut indiquer que le niveau physique fonctionne avec un faible niveau de signal et que le nombre d'images perdues est trop élevé. L'utilisation de ce champ est optionnelle, s'il est utilisé, il doit contenir « 0 » en cas de synchronisation, et « 1 » en son absence.

Drapeau de verrouillage :
Ce bit doit contenir le statut de verrouillage FARM pour chaque canal virtuel. Une valeur de « 1 » dans ce champ doit indiquer que le FARM est verrouillé et que les images seront rejetées pour chaque niveau virtuel, sinon « 0 ».

Drapeau d'attente :
Ce bit doit ĂȘtre utilisĂ© pour indiquer que le rĂ©cepteur ne peut pas traiter les donnĂ©es sur le canal virtuel spĂ©cifiĂ©. La valeur « 1 » indique que toutes les images seront rejetĂ©es sur ce canal virtuel, sinon « 0 ».

Drapeau de retransmission :
Ce drapeau doit contenir « 1 » si une ou plusieurs images de type A ont été rejetées ou si des pertes ont été détectées, nécessitant une retransmission. Le drapeau « 0 » indique qu'il n'y a pas eu d'images rejetées ni de pertes.

Valeur de la réponse :
NumĂ©ro de l'image qui n'a pas Ă©tĂ© acceptĂ©e. DĂ©terminĂ© par le compteur dans l'en-tĂȘte de la trame de tĂ©lĂ©commande.

Niveau réseau

Abordons briĂšvement ce niveau. Deux options sont possibles : soit utiliser le protocole de paquet spatial, soit encapsuler tout autre protocole dans un paquet CCSDS.

La présentation du protocole de paquet spatial est un sujet pour un article à part. Il a été conçu pour permettre aux applications de transférer des données de maniÚre transparente. Chaque application a sa propre adresse et une fonctionnalité de base pour échanger des données avec d'autres applications. Il existe également des services qui assurent le routage du trafic, le contrÎle de la livraison, etc.

L'encapsulation est plus simple et plus claire. Les normes permettent d'encapsuler dans des paquets CCSDS tout protocole en ajoutant un en-tĂȘte supplĂ©mentaire.

Un peu sur les normes des communications spatiales

OĂč l'en-tĂȘte a diffĂ©rentes significations selon la longueur du protocole encapsulĂ© :

Un peu sur les normes des communications spatiales

Ici le champ principal est la longueur. Elle peut varier de 0 Ă  4 octets. Cet en-tĂȘte doit Ă©galement indiquer le type de protocole encapsulĂ©, Ă  l'aide du tableau d'ici.

Lors de l'encapsulation IP, un autre super-ensemble est utilisé pour définir le type de paquet.
Il est nĂ©cessaire d'ajouter un autre en-tĂȘte, d'une longueur d'au moins un octet :

Un peu sur les normes des communications spatiales

OĂč le PID est un autre identifiant de protocole, pris d'ici

Conclusion

À premiĂšre vue, on pourrait penser que les en-tĂȘtes CCSDS sont extrĂȘmement redondants et que certains champs pourraient ĂȘtre supprimĂ©s. En effet, l'efficacitĂ© du canal rĂ©sultant (jusqu'au niveau rĂ©seau) est d'environ 40 %. Cependant, dĂšs qu'il est nĂ©cessaire de mettre en Ɠuvre ces normes, il devient clair que chaque champ, chaque en-tĂȘte a sa propre mission importante, dont l'ignorance entraĂźne une sĂ©rie d'ambiguĂŻtĂ©s.

Si la communautĂ© Habr manifeste un intĂ©rĂȘt pour ce sujet, je serais ravi de publier encore une sĂ©rie d'articles consacrĂ©s Ă  la thĂ©orie et Ă  la pratique de la communication spatiale. Merci de votre attention !

Sources

CCSDS 130.0-G-3 — PrĂ©sentation des protocoles de communication spatiale
CCSDS 131.0-B-2 — Synchronisation TM et codage de canal
CCSDS 132.0-B-2 — Protocole de liaison de donnĂ©es spatiales TM
CCSDS 133.0-B-1 — Protocole de paquet spatial
CCSDS 133.1-B-2 — Service d'encapsulation
CCSDS 231.0-B-3 — Synchronisation TC et codage de canal
CCSDS 232.1-B-2 Procédure d'opération en communication-1
CCSDS 401.0-B-28 SystĂšmes de frĂ©quence radio et de modulation — Partie 1 (Stations terrestres et engins spatiaux)
CCSDS 702.1-B-1 — IP sur des liaisons spatiales CCSDS

P.S.
Ne frappez pas trop fort si vous trouvez des inexactitudes. Signalez-les et elles seront corrigĂ©es 🙂

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster