Câteva despre standardele de comunicare spațială

Câteva despre standardele de comunicare spațială
Satelitul Meteor M1
Sursa: vladtime.ru

Introducere

Funcționarea tehnologiei spațiale este imposibilă fără comunicații radio, iar în acest articol voi încerca să explic principalele idei care au stat la baza standardelor elaborate de Comitetul consultativ internațional pentru sistemele de date spațiale (CCSDS. Această abreviere va fi folosită mai jos) .

Această postare se va concentra în primul rând pe stratul de legătură de date, dar vor fi introduse și concepte de bază pentru alte straturi. Acest articol nu se pretinde în niciun caz a fi o descriere amănunțită și completă a standardelor. O puteți vizualiza la On-line CCSDS. Cu toate acestea, ele sunt foarte greu de înțeles și am petrecut mult timp încercând să le înțelegem, așa că aici vreau să ofer informații de bază, având în vedere că va fi mult mai ușor de înțeles orice altceva. Deci, să începem.

Misiune nobilă a CCSDS

Poate cineva are o întrebare: de ce ar trebui să adere toată lumea la standarde dacă vă puteți dezvolta propriul stack de protocoale radio proprietar (sau propriul standard, cu blackjack și funcții noi), crescând astfel securitatea sistemului?

După cum arată practica, este mai profitabil să adere la standardele CCSDS din următoarele motive:

  1. Comitetul responsabil cu publicarea standardelor include reprezentanți ai fiecărei agenții aerospațiale importante din lume, aducând o experiență neprețuită dobândită de-a lungul multor ani de proiectare și operare a diferitelor misiuni. Ar fi foarte absurd să ignorăm această experiență și să le calci din nou pe grebla.
  2. Aceste standarde sunt susținute de echipamentele stației de la sol deja existente pe piață.
  3. Când depanați orice problemă, puteți solicita oricând ajutor de la colegii din alte agenții, astfel încât aceștia să poată efectua o sesiune de comunicare cu dispozitivul de la stația lor de la sol. După cum puteți vedea, standardele sunt un lucru extrem de util, așa că să ne uităm la punctele lor cheie.

Arhitectură

Standardele sunt un set de documente care reflectă cel mai comun model OSI (Open System Interconnection), cu excepția faptului că la nivelul legăturii de date comunitatea se limitează la împărțirea în telemetrie (downlink - spațiu - Pământ) și telecomenzi (uplink).

Câteva despre standardele de comunicare spațială

Să ne uităm la unele dintre niveluri mai detaliat, începând cu cel fizic și trecând în sus. Pentru o mai mare claritate, vom lua în considerare arhitectura părții receptoare. Cel care transmite este imaginea sa în oglindă.

Strat fizic

La acest nivel, semnalul radio modulat este convertit într-un flux de biți. Standardele de aici sunt în principal de natură consultativă, deoarece la acest nivel este dificil să faceți abstracție de la implementarea specifică a hardware-ului. Aici, rolul cheie al CCSDS este de a defini modulațiile acceptabile (BPSK, QPSK, 8-QAM etc.) și de a oferi câteva recomandări privind implementarea mecanismelor de sincronizare a simbolurilor, compensarea Doppler etc.

Sincronizare și nivel de codare

În mod oficial, este un substrat al stratului de legătură de date, dar este adesea separat într-un strat separat datorită importanței sale în cadrul standardelor CCSDS. Acest strat convertește fluxul de biți în așa-numitele cadre (telemetrie sau telecomenzi), despre care vom vorbi mai târziu. Spre deosebire de sincronizarea simbolurilor la nivelul fizic, care vă permite să obțineți fluxul de biți corect, aici se realizează sincronizarea cadrelor. Luați în considerare calea pe care o parcurg datele la acest nivel (de jos în sus):

Câteva despre standardele de comunicare spațială

Cu toate acestea, înainte de asta, merită să spuneți câteva cuvinte despre codificare. Această procedură este necesară pentru a găsi și/sau corecta erorile de biți care apar inevitabil la trimiterea datelor pe un canal radio. Aici nu vom lua în considerare procedurile de decodare, ci vom obține doar informațiile necesare pentru a înțelege logica ulterioară a nivelului.

Codurile pot fi blocate sau continue. Standardele nu impun utilizarea unui anumit tip de codificare, dar acesta trebuie să fie prezent ca atare. Codurile continue includ coduri convoluționale. Ele sunt folosite pentru a codifica un flux continuu de biți. Acest lucru este în contrast cu codurile bloc, în care datele sunt împărțite în blocuri de cod și pot fi decodificate numai în blocuri complete. Blocul de cod reprezintă datele transmise și informațiile redundante atașate necesare pentru verificarea corectitudinii datelor primite și corectarea eventualelor erori. Codurile bloc includ celebrele coduri Reed-Solomon.

Dacă se utilizează codificarea convoluțională, fluxul de biți intră în decodor de la început. Rezultatul muncii sale (toate acestea, desigur, se întâmplă continuu) sunt blocuri de date CADU (unitatea de date de acces la canal). Această structură este necesară pentru sincronizarea cadrelor. La sfârșitul fiecărui CADU există un dispozitiv de sincronizare atașat (ASM). Aceștia sunt 4 octeți cunoscuți în prealabil, prin care sincronizatorul găsește începutul și sfârșitul CADU-ului. Acesta este modul în care se realizează sincronizarea cadrelor.

Următoarea etapă opțională a stratului de sincronizare și codare este asociată cu particularitățile stratului fizic. Aceasta este derandomizare. Faptul este că pentru a realiza sincronizarea simbolurilor, este necesară comutarea frecventă între simboluri. Deci, dacă transmitem, să zicem, un kilobyte de date constând în întregime din unele, sincronizarea se va pierde. Prin urmare, în timpul transmisiei, datele de intrare sunt amestecate cu o secvență pseudo-aleatorie periodică, astfel încât densitatea zerourilor și a unuurilor să fie uniformă.

Apoi, codurile bloc sunt decodificate, iar ceea ce rămâne este produsul final al nivelului de sincronizare și codificare - un cadru.

Stratul de legătură de date

Pe de o parte, procesorul stratului de legătură primește cadre, iar pe de altă parte emite pachete. Deoarece dimensiunea pachetelor nu este limitată în mod formal, pentru transmiterea lor fiabilă este necesară descompunerea lor în structuri mai mici - cadre. Aici ne vom uita la două subsecțiuni: separat pentru telemetrie (TM) și telecomenzi (TC).

telemetrie

Mai simplu spus, acestea sunt datele pe care stația terestră le primește de la navă spațială. Toate informațiile transmise sunt împărțite în fragmente mici de lungime fixă ​​- cadre care conțin date transmise și câmpuri de servicii. Să aruncăm o privire mai atentă asupra structurii cadrului:

Câteva despre standardele de comunicare spațială

Și să începem considerația noastră cu antetul principal al cadrului de telemetrie. În plus, îmi voi permite să traduc pur și simplu standardele în unele locuri, oferind câteva clarificări pe parcurs.

Câteva despre standardele de comunicare spațială

Câmpul Master Channel ID trebuie să conțină numărul versiunii cadrului și identificatorul dispozitivului.

Fiecare navă spațială, conform standardelor CCSDS, trebuie să aibă propriul său identificator unic, prin care, având un cadru, se poate determina cărui dispozitiv îi aparține. Formal, este necesară depunerea unei cereri de înregistrare a dispozitivului, iar numele acestuia, împreună cu identificatorul acestuia, vor fi publicate în surse deschise. Cu toate acestea, producătorii ruși ignoră adesea această procedură, atribuind un identificator arbitrar dispozitivului. Numărul versiunii cadrului ajută la determinarea ce versiune a standardelor este utilizată pentru a citi corect cadrul. Aici vom lua în considerare doar cel mai conservator standard cu versiunea „0”.

Câmpul Virtual Channel ID trebuie să conţină VCID-ul canalului de la care provine pachetul. Nu există restricții privind alegerea VCID; în special, canalele virtuale nu sunt neapărat numerotate secvenţial.

Foarte des este nevoie de multiplexarea datelor transmise. În acest scop, există un mecanism de canale virtuale. De exemplu, satelitul Meteor-M2 transmite o imagine color în intervalul vizibil, împărțind-o în trei alb-negru - fiecare culoare este transmisă pe propriul canal virtual într-un pachet separat, deși există o anumită abatere de la standardele din structura cadrelor sale.

Câmpul de semnalizare Operational Control trebuie să fie un indicator al prezenței sau absenței câmpului Operational Control în cadrul de telemetrie. Acești 4 octeți de la sfârșitul cadrului servesc pentru a oferi feedback atunci când controlează livrarea cadrelor de telecomandă. Vom vorbi despre ele puțin mai târziu.

Contoarele de cadre ale canalului principal și virtual sunt câmpuri care sunt incrementate cu unul de fiecare dată când este trimis un cadru. Serviți ca un indicator că nici un cadru nu a fost pierdut.

Starea datelor din cadrul de telemetrie este încă doi octeți de steaguri și date, dintre care ne vom uita doar la câțiva.

Câteva despre standardele de comunicare spațială

Câmpul de semnalizare Antet secundar trebuie să fie un indicator al prezenței sau absenței unui antet secundar în cadrul de telemetrie.

Dacă doriți, puteți adăuga un antet suplimentar la fiecare cadru și puteți plasa orice date acolo la discreția dvs.

Câmpul First Header Pointer, când indicatorul de sincronizare este setat la „1”, va conține o reprezentare binară a poziției primului octet al primului pachet din câmpul de date al cadrului de telemetrie. Poziția se numără de la 0 în ordine crescătoare de la începutul câmpului de date. Dacă nu există un început al pachetului în câmpul de date al cadrului de telemetrie, atunci indicatorul către primul câmp de antet trebuie să aibă valoarea în reprezentare binară „11111111111” (acest lucru se poate întâmpla dacă un pachet lung este răspândit pe mai mult de un cadru ).

Dacă câmpul de date conține un pachet gol (Date inactiv), atunci indicatorul către primul antet ar trebui să aibă valoarea în reprezentare binară „11111111110”. Folosind acest câmp, receptorul trebuie să sincronizeze fluxul. Acest câmp asigură că sincronizarea este restabilită chiar dacă cadrele sunt abandonate.

Adică, un pachet poate, să zicem, să înceapă la mijlocul celui de-al 4-lea cadru și să se termine la începutul celui de-al 20-lea. Acest câmp este folosit pentru a-și găsi începutul. Pachetele au, de asemenea, un antet care specifică lungimea acestuia, așa că atunci când este găsit un pointer către primul antet, procesorul stratului de legătură trebuie să-l citească, determinând astfel unde se va termina pachetul.
Dacă este prezent un câmp de control al erorilor, acesta trebuie să fie conținut în fiecare cadru de telemetrie pentru un anumit canal fizic pe parcursul misiunii.

Acest câmp este calculat folosind metoda CRC. Procedura trebuie să ia n-16 biți din cadrul de telemetrie și să introducă rezultatul calculului în ultimii 16 biți.

echipele TV

Cadrul de comandă TV are câteva diferențe semnificative. Printre ei:

  1. Structură diferită a titlurilor
  2. Lungime dinamică. Aceasta înseamnă că lungimea cadrului nu este setată rigid, așa cum se face în telemetrie, dar poate varia în funcție de pachetele transmise.
  3. Mecanism de garantare a livrării pachetelor. Adică, nava spațială trebuie, după ce a primit-o, să confirme corectitudinea recepției cadrelor sau să solicite redirecționarea de la un cadru care ar fi putut fi primit cu o eroare incorectă.

Câteva despre standardele de comunicare spațială

Câteva despre standardele de comunicare spațială

Multe câmpuri ne sunt deja familiare din antetul cadrului de telemetrie. Au același scop, așa că aici vom lua în considerare doar noile domenii.

Un bit din indicatorul de bypass trebuie utilizat pentru a controla verificarea cadrului la receptor. O valoare de „0” pentru acest indicator indică faptul că cadrul este un cadru de tip A și trebuie verificat conform FARM. O valoare de „1” pentru acest flag ar trebui să indice receptorului că acest cadru este un cadru de tip B și ar trebui să ocolească verificarea FARM.

Acest flag informează receptorul dacă să folosească un mecanism de confirmare a livrării cadrelor numit FARM - Mecanism de acceptare și raportare a cadrelor.

Indicatorul de comandă de control trebuie utilizat pentru a înțelege dacă câmpul de date transportă o comandă sau date. Dacă indicatorul este „0”, atunci câmpul de date trebuie să conțină date. Dacă indicatorul este „1”, atunci câmpul de date trebuie să conțină informații de control pentru FARM.
FARM este o mașină cu stări finite ai cărei parametri pot fi configurați.

RSVD. SPARE – biți rezervați.

Se pare că CCSDS are planuri pentru ele în viitor și, pentru compatibilitatea cu versiunile de protocol, au rezervat acești biți deja în versiunile actuale ale standardului.

Câmpul pentru lungimea cadrului trebuie să conţină un număr în reprezentare pe biţi care este egal cu lungimea cadrului în octeţi minus unu.

Câmpul de date cadru trebuie să urmeze antetul fără spații și să conțină un număr întreg de octeți, care poate fi de maximum 1019 octeți lungime. Acest câmp trebuie să conțină fie bloc de date cadru, fie informații despre comandă de control. Blocul de date cadru trebuie să conțină:

  • număr întreg de octeți de date utilizator
  • antet de segment urmat de un număr întreg de octeți de date utilizator

Dacă este prezent un antet, atunci blocul de date trebuie să conțină un pachet, un set de pachete sau o parte a unui pachet. Un bloc de date fără antet nu poate conține părți din Pachete, dar poate conține blocuri de date în format privat. De aici rezultă că un antet este necesar atunci când blocul de date transmis nu se încadrează într-un cadru. Un bloc de date care are un antet se numește segment

Câteva despre standardele de comunicare spațială

Câmpul de steaguri pe doi biți trebuie să conțină:

  • „01” - dacă prima parte a datelor se află în blocul de date
  • „00” - dacă partea din mijloc a datelor se află în blocul de date
  • „10” - dacă ultima parte de date se află în blocul de date
  • „11” - dacă nu există diviziune și unul sau mai multe pachete se încadrează în întregime în blocul de date.

Câmpul ID MAP trebuie să conțină zerouri dacă canalele MAP nu sunt utilizate.
Uneori, 6 biți alocați canalelor virtuale nu sunt de ajuns. Și dacă este necesară multiplexarea datelor pe un număr mai mare de canale, se folosesc alți 6 biți din antetul segmentului.

FERMĂ

Să aruncăm o privire mai atentă asupra mecanismului de funcționare a sistemului de control al livrării personalului. Acest sistem prevede doar lucrul cu cadre de telecomenzi datorită importanței lor (telemetria poate fi oricând solicitată din nou, iar nava spațială trebuie să audă clar stația de la sol și să respecte întotdeauna comenzile acesteia). Așadar, să presupunem că decidem să reîncărcăm satelitul nostru și să îi trimitem un fișier binar de 10 kiloocteți. La nivel de link, fișierul este împărțit în 10 cadre (0, 1, ..., 9), care sunt trimise în sus unul câte unul. Când transmisia este finalizată, satelitul trebuie să confirme corectitudinea recepției pachetului sau să raporteze în ce cadru a apărut eroarea. Aceste informații sunt trimise câmpului de control operațional în cel mai apropiat cadru de telemetrie (Sau nava spațială poate iniția transmiterea unui cadru inactiv dacă nu are nimic de spus). Pe baza telemetriei primite, fie ne asigurăm că totul este în regulă, fie procedăm la retrimiterea mesajului. Să presupunem că satelitul nu a auzit cadrul #7. Aceasta înseamnă că îi trimitem cadrele 7, 8, 9. Dacă nu există niciun răspuns, întregul pachet este trimis din nou (și așa mai departe de mai multe ori până ne dăm seama că încercările sunt zadarnice).

Mai jos este structura câmpului de control operațional cu o descriere a unor câmpuri. Datele conținute în acest câmp se numesc CLCW - Communication Link Control Word.

Câteva despre standardele de comunicare spațială

Deoarece puteți ghici cu ușurință din imagine care este scopul câmpurilor principale, iar celelalte sunt plictisitoare de privit, ascund descrierea detaliată sub un spoiler

Explicația câmpurilor CLCWTip cuvânt de control:
Pentru acest tip, cuvântul de control trebuie să conțină 0

Versiunea cuvântului de control (numărul versiunii CLCW):
Pentru acest tip, cuvântul de control trebuie să fie egal cu „00” în reprezentarea biților.

Câmp de stare:
Utilizarea acestui câmp este determinată pentru fiecare misiune separat. Poate fi folosit pentru îmbunătățiri locale de către diverse agenții spațiale.

Identificarea canalului virtual:
Trebuie să conțină identificatorul canalului virtual căruia îi este asociat acest cuvânt de control.

Indicatorul de acces la canalul fizic:
Steagul trebuie să ofere informații despre pregătirea stratului fizic al receptorului. Dacă stratul fizic al receptorului nu este pregătit pentru a primi cadre, atunci câmpul trebuie să conțină „1”, altfel „0”.

Indicatorul de eșec de sincronizare:
Indicatorul poate indica faptul că stratul fizic funcționează la un nivel de semnal slab și numărul de cadre respinse este prea mare. Utilizarea acestui câmp este opțională; dacă este utilizat, trebuie să conțină „0” dacă sincronizarea este disponibilă și „1” dacă nu este.

Steagul de blocare:
Acest bit va conține starea de blocare FARM pentru fiecare canal virtual. O valoare de „1” în acest câmp ar trebui să indice că FARM este dezactivată și cadrele vor fi eliminate pentru fiecare strat virtual, în caz contrar, „0”.

Așteptați steag:
Acest bit va fi utilizat pentru a indica faptul că receptorul nu poate procesa date pe canalul virtual specificat. O valoare de „1” indică faptul că toate cadrele vor fi eliminate pe acest canal virtual, altfel „0”.

Steagul înainte:
Acest indicator trebuie să conțină un „1” dacă unul sau mai multe cadre de tip A au fost eliminate sau au fost găsite goluri, deci este necesară retrimiterea. Steagul „0” indică faptul că nu s-au pierdut cadre sau sărituri.

Valoarea răspunsului:
Număr de cadru care nu a fost primit. Determinat de contorul din antetul cadrului de telecomandă

stratul de rețea

Să atingem puțin acest nivel. Există două opțiuni aici: fie utilizați protocolul de pachete spațiale, fie încapsulați orice alt protocol în pachetul CCSDS.

O prezentare generală a protocolului de pachete spațiale este un subiect pentru un articol separat. Este conceput pentru a permite așa-numitelor aplicații să facă schimb de date fără probleme. Fiecare aplicație are propria sa adresă și funcționalitate de bază pentru schimbul de date cu alte aplicații. Există și servicii care direcționează traficul, controlează livrarea etc.

Cu încapsulare totul este mai simplu și mai clar. Standardele fac posibilă încapsularea oricăror protocoale în pachete CCSDS prin adăugarea unui antet suplimentar.

Câteva despre standardele de comunicare spațială

Unde antetul are semnificații diferite în funcție de lungimea protocolului care este încapsulat:

Câteva despre standardele de comunicare spațială

Aici câmpul principal este lungimea lungimii. Poate varia de la 0 la 4 octeți. Tot în acest antet trebuie să indicați tipul de protocol încapsulat folosind tabelul prin urmare.

Încapsularea IP utilizează un alt add-on pentru a determina tipul de pachet.
Trebuie să adăugați încă un antet, lung de un octet:

Câteva despre standardele de comunicare spațială

Unde PID este un alt identificator de protocol luat prin urmare

Concluzie

La prima vedere, poate părea că anteturile CCSDS sunt extrem de redundante și unele câmpuri ar putea fi eliminate. Într-adevăr, eficiența canalului rezultat (până la nivelul rețelei) este de aproximativ 40%. Cu toate acestea, de îndată ce apare necesitatea implementării acestor standarde, devine clar că fiecare domeniu, fiecare rubrică are propria sa misiune importantă, ignorând ceea ce duce la o serie de ambiguități.

Dacă habrasociety își va manifesta interesul pentru acest subiect, voi fi bucuros să public o serie întreagă de articole dedicate teoriei și practicii comunicațiilor spațiale. Vă mulțumim pentru atenție!

surse

CCSDS 130.0-G-3 — Prezentare generală a protocoalelor de comunicații spațiale
CCSDS 131.0-B-2 – Sincronizare TM și codificare canal
CCSDS 132.0-B-2 - TM Space Data Link Protocol
CCSDS 133.0-B-1 - Protocolul de pachete spațiale
CCSDS 133.1-B-2 - Serviciul de încapsulare
CCSDS 231.0-B-3 - Sincronizarea TC și codificarea canalelor
CCSDS 232.1-B-2 Procedura de operare a comunicațiilor-1
CCSDS 401.0-B-28 Sisteme de radiofrecvență și modulație - Partea 1 (Stații terestre și nave spațiale)
CCSDS 702.1-B-1 - IP prin legături spațiale CCSDS

PS
Nu lovi prea tare dacă descoperi inexactități. Raportați-le și se vor repara :)

Sursa: www.habr.com

Adauga un comentariu