Lite om standarder för rymdkommunikation

Lite om standarder för rymdkommunikation
Meteor Satellite M1
KĂ€lla: vladtime.ru

Introduktion

AnvĂ€ndningen av rymdteknik Ă€r omöjlig utan radiokommunikation, och i denna artikel kommer jag att försöka förklara de grundlĂ€ggande idĂ©erna som ligger till grund för standarderna som utvecklats av det Internationella konsultativa kommittĂ©n för rymdsystem för datakommunikation (Consultative Committee for Space Data Systems – CCSDS. Förkortningen CCSDS kommer att anvĂ€ndas hĂ€refter).

Denna publikation kommer frÀmst att handla om kanalnivÄn, men grundlÀggande begrepp för andra nivÄer kommer ocksÄ att introduceras. Artikeln gör inget ansprÄk pÄ att ge en fullstÀndig och uttömmande beskrivning av standarderna. Du kan bekanta dig med dem pÄ webbplats CCSDS. Men de Àr mycket svÄra att förstÄ, och för att förstÄ dem har vi lagt ner en hel del tid, dÀrför vill jag hÀr ge grundlÀggande information som gör det mycket lÀttare att förstÄ allt annat. SÄ, lÄt oss börja.

Den Àdla uppgiften CCSDS

Kanske har nÄgon stÀllt sig frÄgan: varför ska alla hÄlla sig till standarder, nÀr man kan utveckla sin egen proprietÀra protokollstack för radiokommunikation (eller sin egen standard, med blackjack och nya funktioner), vilket skulle öka systemets sÀkerhet?

Som erfarenhet visar Àr det fördelaktigare att följa CCSDS-standarder av följande skÀl:

  1. I kommittén som ansvarar för publiceringen av standarderna ingick representanter frÄn alla stora rymdorganisationer i vÀrlden, som bidrog med sin ovÀrderliga erfarenhet frÄn mÄnga Ärs design och drift av olika uppdrag. Det skulle vara mycket dumt att ignorera denna erfarenhet och Äterigen trampa i samma fotspÄr.
  2. Dessa standarder stöds av den redan existerande marknadsutrustningen för markstationer.
  3. Vid felsökning kan man alltid be kollegor frÄn andra organisationer om hjÀlp för att de ska genomföra en kommunikationssession med enheten frÄn sin markstation. Som du ser Àr standarder en mycket anvÀndbar sak, sÄ lÄt oss ta en nÀrmare titt pÄ deras viktigaste punkter.

Arkitektur

Standarderna utgör en samling dokument som Ă„terspeglar den vanliga OSI-modellen (Open System Interconnection), med undantag för att pĂ„ kanalnivĂ„n begrĂ€nsas gemensamheten till uppdelningen mellan telemetri (nedĂ„triktad kanal – rymd – jord) och telekommandon (uppĂ„triktad kanal).

Lite om standarder för rymdkommunikation

LÄt oss titta pÄ vissa nivÄer i mer detalj, börja med den fysiska och gÄ uppÄt. För att göra det mer tydligt kommer vi att se pÄ arkitekturen av mottagarsidan. Den överförande sidan utgör en spegelbild av den.

Fysisk nivÄ

PĂ„ denna nivĂ„ sker omvandlingen av den modulering av radiosignalen till en bitström. Standarderna hĂ€r Ă€r huvudsakligen vĂ€gledande, eftersom det Ă€r svĂ„rt att abstrahera frĂ„n den specifika hĂ„rdvaruimplementationen. HĂ€r spelar CCSDS en nyckelroll – att definiera tillĂ„tna moduler, sĂ„som BPSK, QPSK, 8-QAM osv., och ge vissa rekommendationer om implementeringen av mekanismer för symbolsynkronisering, kompensering av Dopplerskift och liknande.

Synkroniserings- och kodningsnivÄ

Formellt sett Àr det ett delnivÄ inom kanalnivÄn, men det framhÀvs ofta som en egen nivÄ pÄ grund av dess betydelse inom CCSDS-standarderna. Denna nivÄ omvandlar bitströmmen till sÄ kallade ramar (telemetri eller telekommandon), som vi kommer att diskutera senare. Till skillnad frÄn den symbolsynkronisering som sker pÄ den fysiska nivÄn, vilken gör att vi fÄr en korrekt bitström, utförs hÀr ramsynkronisering. LÄt oss titta pÄ vÀgen som data passerar pÄ denna nivÄ (nedifrÄn och upp):

Lite om standarder för rymdkommunikation

Men innan vi gör det Àr det vÀrt att nÀmna nÄgra ord om kodning. Denna procedur Àr nödvÀndig för att upptÀcka och/eller korrigera bitfel som oundvikligen uppstÄr vid sÀndning av data över radiokanalen. HÀr kommer vi inte att diskutera avkodningsprocedurer, utan endast fÄ information som Àr nödvÀndig för att förstÄ logiken i hur nivÄn fungerar framöver.

Koder kan vara block- eller kontinuerliga. Standarderna tvingar inte fram anvÀndning av en specifik typ av kodning, men den mÄste som sÄdan finnas. Kontinuerliga koder Àr konvolutionskoder. De anvÀnds för att koda en kontinuerlig bitström. Till skillnad frÄn blockkoder, dÀr data delas upp i kodblock och kan bara dekodas inom hela block. Ett kodblock representerar de överförda data och den tillagda redundanta informationen som krÀvs för att kontrollera korrekt mottagande av data och rÀtta till eventuella fel. Bland blockkoderna finns de berömda Reed-Solomon-koderna.

Om konvolutionskodning anvĂ€nds, kommer bitströmmen frĂ„n början att gĂ„ till dekodern. Resultatet av dess arbete (allt detta sker förstĂ„s kontinuerligt) blir CADU-block (channel access data unit). Denna struktur Ă€r nödvĂ€ndig för ram-synkronisering. I slutet av varje CADU kopplas en synkroniseringsmarkör (ASM – attached synch maker) till. Detta Ă€r fyra förutbestĂ€mda byte, vilket synkroniseraren anvĂ€nder för att hitta början och slutet av CADU. SĂ„ nĂ„s ram-synkronisering.

Det nÀsta valfria steget i synkroniserings- och kodningsnivÄn Àr kopplat till egenskaperna hos den fysiska nivÄn. Detta kallas derandomisering. Anledningen Àr att för att uppnÄ symbolsynkronisering krÀvs frekventa vÀxlingar mellan symboler. Om vi till exempel skulle överföra ett kilobyte data som enbart bestÄr av ettor, skulle synkroniseringen gÄ förlorad. DÀrför blandas de inkommande data under överföringen med en periodisk pseudorandom sekvens för att fördela nollor och ettor jÀmnt.

DĂ€refter sker avkodning av blockkoder, och det som Ă„terstĂ„r blir den slutliga produkten av synkronisering- och kodningsnivĂ„n – en ram.

KanalnivÄ

Å ena sidan tar kanallagret emot ramar, och Ă„ andra sidan ger det ut paket. Eftersom paketens storlek formellt inte Ă€r begrĂ€nsad, mĂ„ste de delas upp i mindre strukturer – ramar – för att sĂ€kerstĂ€lla pĂ„litlig överföring. HĂ€r kommer vi att titta pĂ„ tvĂ„ delavsnitt: en för telemetri (TM) och en för telekommandon (TC).

Telemetri

Enklare sagt, detta Ă€r de data som markstationen fĂ„r frĂ„n KAs. All överförd information delas upp i smĂ„ fragment av fast lĂ€ngd – ramar, som innehĂ„ller de överförda data och hjĂ€lpkonton. LĂ„t oss titta nĂ€rmare pĂ„ ramstrukturen:

Lite om standarder för rymdkommunikation

Och vi börjar med huvudhuvudet av telemetriramen. Vid vissa tillfÀllen kommer jag att översÀtta standarderna, samtidigt som jag ger nÄgra förklaringar.

Lite om standarder för rymdkommunikation

FÀltet för identifiering av huvudkanalen (Master Channel ID) ska innehÄlla versionsnumret pÄ ramen och identifieraren för enheten.

Varje KA, enligt CCSDS-standarder, mÄste ha sin egen unika identifierare som gör det möjligt att bestÀmma vilket instrument en given ram tillhör. Formellt mÄste en registreringsansökan för instrumentet lÀmnas in, och dess namn, tillsammans med identifieraren, kommer att publiceras i öppna kÀllor. Dock ignorerar ofta ryska tillverkare denna procedur och tilldelar instrumentet en godtycklig identifierare. Versionsnumret pÄ ramen hjÀlper till att bestÀmma vilken version av standarderna som anvÀnds för att korrekt lÀsa ramen. HÀr kommer vi endast att behandla den mest konservativa standarden med version "0".

I fÀltet för identifieraren av den virtuella kanalen (Virtual Channel ID) ska VCID för den kanal frÄn vilken paketet kom finnas. Det finns inga begrÀnsningar för valet av VCID, och virtuella kanaler behöver inte nödvÀndigtvis numreras sekventiellt.

Det uppstÄr ofta ett behov av att multiplexa de överförda uppgifterna. För detta finns en mekanism för virtuella kanaler. Till exempel överför satelliten Meteor-M2 en fÀrgbild i det synliga spektrumet, genom att dela den i tre svartvita - varje fÀrg överförs i sin egen virtuella kanal som ett separat paket, Àven om det i strukturen av dess ramar finns vissa avvikelser frÄn standarderna.

FÀltet för flaggan för operativ kontroll ska vara en indikator pÄ nÀrvaron eller frÄnvaron av fÀltet för operativ kontroll i telemetriramen. Dessa 4 byte i slutet av ramen anvÀnds för att upprÀtthÄlla Äterkoppling vid kontroll av leveransen av telekommandons ramar. Vi kommer att prata om dem lite senare.

RÀknare för huvud- och virtuell kanal Àr fÀlt som ökas med ett vid sÀndning av varje ram. De fungerar som en indikator pÄ att ingen ram har gÄtt förlorad.

Statusen för datan i telemetriramen bestÄr av ytterligare tvÄ byte av flaggor och data, av vilka vi endast kommer att granska nÄgra.

Lite om standarder för rymdkommunikation

FÀltet för flaggan för sekundÀr rubrik (Secondary Header) ska vara en indikator pÄ nÀrvaron eller frÄnvaron av en sekundÀr rubrik (Secondary Header) i telemetriramen.

Om sÄ önskas kan en sekundÀr rubrik lÀggas till varje ram och dÀr kan alla typer av data placeras efter eget val.

FÀltet för pekare till första rubriken (First Header Pointer), nÀr synkroniseringsflaggan Àr "1", ska innehÄlla den binÀra representationen av positionen för den första oktetten i det första paketet i datafÀltet (Data Field) för telemetrikadret. Positionen rÀknas frÄn 0 i stigande ordning frÄn början av datafÀltet. Om det inte finns nÄgot början pÄ paketet i datafÀltet för telemetrikadret, ska pekaren till första rubriken ha vÀrdet i binÀr representation "11111111111" (detta kan hÀnda om ett lÄngt paket strÀcker sig över mer Àn en ram).

Om datafÀltet innehÄller ett tomt paket (Idle Data), ska pekaren till första rubriken ha vÀrdet i binÀr representation "11111111110". Genom detta fÀlt ska mottagaren synkronisera strömmen. Detta fÀlt garanterar ÄterstÀllning av synkronisering Àven om ramar missas.

Det vill sÀga att paketet kan, till exempel, börja i mitten av den 4:e ramen och sluta i början av den 20:e. För att hitta dess början anvÀnds just detta fÀlt. Paket har ocksÄ en rubrik dÀr dess lÀngd anges, sÄ nÀr pekaren till första rubriken hittas, ska lÀnknivÄhanteraren lÀsa den, vilket pÄ sÄ sÀtt bestÀmmer var paketet slutar.
Om fÀltet för felkontroll Àr nÀrvarande, ska det ingÄ i varje telemetrikadr för en viss fysisk kanal under hela uppdraget.

Detta fÀlt berÀknas genom att anvÀnda CRC-metoden. Proceduren ska ta n-16 bitar av telemetrikadr och infoga resultatet av berÀkningen i de sista 16 bitarna.

Telekommandon

Telekommandots ram har flera betydande skillnader. Bland dem:

  1. En annan struktur för rubriker
  2. Dynamisk lÀngd. Det betyder att lÀngden pÄ ramen inte Àr faststÀllt hÄrt, som det görs i telemetrin, utan kan Àndras beroende pÄ de överförda paketen.
  3. Mekanism för att garantera paketleverans. Det vill sÀga att det ska bekrÀftas av KA efter mottagandet av korrektheten vid mottagandet av ramar, eller begÀra omleverans frÄn den ram som kan ha mottagits med en oförbÀtterlig fel.

Lite om standarder för rymdkommunikation

Lite om standarder för rymdkommunikation

MÄnga fÀlt Àr redan bekanta för oss frÄn rubriken för telemetrikadr. De har samma syfte, sÄ hÀr kommer vi att diskutera endast nya fÀlt.

En bit av flaggan för omdirigering ska anvÀndas för att kontrollera ramverifieringen pÄ mottagaren. VÀrdet "0" för denna flagga ska indikera att denna ram Àr av typ A och att dess verifiering ska genomföras enligt FARM. VÀrdet "1" för denna flagga ska indikera för mottagaren att denna ram Àr av typ B och ska kringgÄ verifieringen enligt FARM.

Denna flagga informerar mottagaren om huruvida mekanismen för bekrĂ€ftelse av ramleverans, kallad FARM — Frame Acceptance and Reporting Mechanism, ska anvĂ€ndas.

Kontrollflaggans flagga ska anvÀndas för att förstÄ om datapaketet transporterar ett kommando eller data. Om flaggan Àr "0", ska datapaketet innehÄlla data. Om flaggan Àr "1", ska datapaketet innehÄlla kontrollinformation för FARM.
FARM Àr en finit automat vars parametrar kan anpassas.

RSVD. SPARE – reserverade bitar.

Det verkar som om CCSDS har planer för dem i framtiden, och för att sÀkerstÀlla bakÄtkompatibilitet har de redan reserverat dessa bitar i de nuvarande versionerna av standarden.

FÀltet för ramlÀngd ska innehÄlla ett nummer i bitform som motsvarar lÀngden pÄ ramen i oktetter minus ett.

Datapaketet efter ramen ska följa efter headern utan mellanrum och innehÄlla ett helt antal oktetter som maximalt kan vara 1019 oktetter. Detta fÀlt ska innehÄlla antingen ett datapaket eller kontrollinformation. Datapaketet ska innehÄlla:

  • ett helt antal oktetter av anvĂ€ndardata
  • segmentheadern och följande hela antal oktetter av anvĂ€ndardata

Om headern Àr nÀrvarande, ska datapaketet innehÄlla ett paket, en mÀngd paket eller en del av dem. Ett datapaket utan header kan inte innehÄlla delar av paket, men kan innehÄlla datapaket av privat format. Detta innebÀr att headern krÀvs nÀr det överförda datapaketet inte fÄr plats i en enda ram. Ett datapaket som har en header kallas ett segment.

Lite om standarder för rymdkommunikation

FÀltet för flaggor med tvÄ bitar ska innehÄlla:

  • "01" — om första delen av data finns i datapaketet
  • "00" — om den medelstora delen av data finns i datapaketet
  • "10" — om den sista delen av data finns i datapaketet
  • "11" — om det inte finns nĂ„gon uppdelning och en eller flera paket placeras helt i datablocket.

MAP-ID-fÀltet ska innehÄlla nollor om MAP-kanaler inte anvÀnds.
Ibland rÀcker inte 6 bitar som avsatts för virtuella kanaler. Om det Àr nödvÀndigt att multiplexera data pÄ fler kanaler anvÀnds ytterligare 6 bitar frÄn segmenthuvudet.

FARM

LĂ„t oss titta nĂ€rmare pĂ„ mekanismen för hur systemet för övervakning av ramleverans fungerar. Detta system Ă€r endast avsett att hantera telekommandon pĂ„ grund av deras vikt (telemetri kan alltid begĂ€ras igen, men satelliten mĂ„ste höra markstationen tydligt och alltid lyda dess kommandon). Anta att vi har beslutat att flasha om vĂ„r satellit och skickar en binĂ€r fil pĂ„ 10 kilobyte till dess ombord. PĂ„ lĂ€nknivĂ„ delas filen upp i 10 ramar (0, 1, 
, 9), som skickas upp en i taget. NĂ€r överföringen Ă€r klar mĂ„ste satelliten bekrĂ€fta att paketet mottagits korrekt, eller rapportera vilket ram som det intrĂ€ffade ett fel pĂ„. Denna information skickas i fĂ€ltet för operativ övervakning i den nĂ€rmaste telemetriramen (eller sĂ„ kan satelliten initiera överföring av en tom ram (idle frame) om den inte har nĂ„got att sĂ€ga). Baserat pĂ„ den mottagna telemetrin antingen bekrĂ€ftar vi att allt Ă€r bra, eller sĂ„ gĂ„r vi vidare med att omförsĂ€nda meddelandet. Anta att satelliten inte hörde ram #7. DĂ„ skickar vi ram 7, 8 och 9. Om inget svar kommer skickas paketet om i sin helhet igen (och sĂ„ vidare flera gĂ„nger, tills vi förstĂ„r att försöken varit fruktlösa).

Nedan presenteras strukturen för fĂ€ltet för operativ övervakning med beskrivning av vissa fĂ€lt. Data som ingĂ„r i detta fĂ€lt kallas CLCW – Communication Link Control Word.

Lite om standarder för rymdkommunikation

Eftersom man ganska lÀtt kan gissa syftet med de grundlÀggande fÀlten frÄn bilden och andra Àr trÄkiga att titta pÄ, döljer jag den detaljerade beskrivningen bakom en spoiler.

Dekryptering av CLCW-fÀltTyp av kontrollord (Control Word Type):
För denna typ av kontrollord mÄste det innehÄlla 0.

Versionsnummer för kontrollord (CLCW Version Number):
För denna typ av kontrollord ska det vara "00" i bitsystemet.

StatusfÀlt (Status Field):
AnvÀndningen av detta fÀlt definieras separat för varje uppdrag. Det kan anvÀndas för lokala förbÀttringar av olika rymdbyrÄer.

Identifikator för virtuell kanal (Virtual Channel Identification):
MÄste innehÄlla identifieraren för den virtuella kanal som detta kontrollord Àr kopplat till.

Åtkomstflagga för den fysiska kanalen:
Flaggan ska ge information om den fysiska nivÄn hos mottagaren Àr redo. Om den fysiska nivÄn hos mottagaren inte Àr redo att ta emot paket ska fÀltet innehÄlla "1", annars "0".

Synkroniseringsfel-flagga:
Flaggan kan indikera att den fysiska nivÄn fungerar vid dÄlig signalstyrka och antalet avvisade paket Àr för högt. AnvÀndning av detta fÀlt Àr valfritt, om det anvÀnds bör det innehÄlla "0" vid synkronisering och "1" vid avsaknad av synkronisering.

Blockeringsflagga:
Denna bit ska innehÄlla status för FARM-blockeringen för varje virtuell kanal. VÀrdet "1" i detta fÀlt ska indikera att FARM Àr blockerat och att paket kommer att avvisas för varje virtuell nivÄ, annars "0".

VĂ€ntande flagga:
Denna bit ska anvÀndas för att indikera att mottagaren inte kan bearbeta detta pÄ den angivna virtuella kanalen. VÀrdet "1" innebÀr att alla paket kommer att avvisas pÄ denna virtuella kanal, annars "0".

Ompekarflagga:
Denna flagga ska innehÄlla "1" om ett eller flera paket av typ A har avvisats eller om det har upptÀckts förluster, vilket innebÀr att ompekning Àr nödvÀndig. Flaggan "0" indikerar att det inte har funnits nÄgra avvisade paket eller förluster.

SvarsvÀrde:
Numret pÄ paketet som inte mottogs. BestÀms av rÀknaren i paketets kommandohuvud.

NÀtverksnivÄ

Lite om detta nivÄ ocksÄ. HÀr finns det tvÄ alternativ: antingen anvÀnda rymdpaketprotokollet eller inkapsla nÄgot annat protokoll i ett CCSDS-paket.

Översikt över rymdpaketprotokollet – ett Ă€mne för en separat artikel. Det Ă€r utformat sĂ„ att sĂ„ kallade applikationer kan sömlöst utbyta data. Varje applikation har sin egen adress och en grundlĂ€ggande funktion för datakommunikation med andra applikationer. Det finns ocksĂ„ tjĂ€nster som hanterar trafikdirigering, leveranskontroll etc.

Med inkapsling Àr det enklare och tydligare. Standarderna ger möjlighet att inkapsla vilket protokoll som helst i CCSDS-paket genom att lÀgga till en extra header.

Lite om standarder för rymdkommunikation

DÀr rubriken har olika betydelser beroende pÄ lÀngden av det inkapslade protokollet:

Lite om standarder för rymdkommunikation

HĂ€r Ă€r huvudfĂ€ltet – lĂ€ngden pĂ„ lĂ€ngden. Den kan variera frĂ„n 0 till 4 byte. I detta huvudfĂ€llt mĂ„ste typen av det inkapslade protokollet anges med hjĂ€lp av tabellen hĂ€rifrĂ„n.

Vid inkapsling av IP anvÀnds en annan överbyggnad för att definiera typen av paket.
Det Àr nödvÀndigt att lÀgga till ytterligare en rubrik, med en lÀngd av minst ett oktett:

Lite om standarder för rymdkommunikation

DÀr PID Àr en annan protokollidentifierare, hÀmtad hÀrifrÄn

Slutsats

Vid första anblick kan det verka som att CCSDS-rubrikarna Àr extremt överflödiga och att vissa fÀlt skulle kunna utelÀmnas. Faktiskt ligger effektiviteten hos den resulterande kanalen (upp till nÀtverksnivÄ) runt 40 %. Men sÄ fort det blir nödvÀndigt att implementera dessa standarder blir det tydligt att varje fÀlt, varje rubrik har sitt viktiga syfte, vars ignorering leder till en rad oklarheter.

Om hub-communityn visar intresse för detta Àmne skulle jag gÀrna publicera en rad artiklar som Àr dedikerade till teorin och praktiken av rymdkommunikation. Tack för uppmÀrksamheten!

KĂ€llor

CCSDS 130.0-G-3 — Översikt över rymdkommunikationsprotokollen
CCSDS 131.0-B-2 — TM-synkronisering och kanal kodning
CCSDS 132.0-B-2 — TM RymddatalĂ€nkprotokoll
CCSDS 133.0-B-1 — Rymd paketprotokoll
CCSDS 133.1-B-2 — InkapslingstjĂ€nst
CCSDS 231.0-B-3 — TC-synkronisering och kanal kodning
CCSDS 232.1-B-2 Kommunikationsoperationsprocedur-1
CCSDS 401.0-B-28 Radiofrekvens och modulering System — Del 1 (Jordstationer och rymdfarkoster)
CCSDS 702.1-B-1 — IP över CCSDS rymdlĂ€nkar

P.S.
SlĂ„ inte för hĂ„rt om du hittar nĂ„gra fel. Rapportera dem, sĂ„ kommer de att rĂ€ttas till 🙂

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster