Cubesat Space Protocol - Cubesat Space Protocol

CubeSat Space Protocol
Původní autořiAAUSAT3
VývojářiAAUSAT3, GomSpace
První vydání26.dubna 2010
Stabilní uvolnění
1.6 / 17. dubna 2020; Před 7 měsíci (2020-04-17)
NapsánoC, Krajta
Operační systémFreeRTOS, Linux, Mac OS X, Microsoft Windows
TypProtokol
LicenceGNU Lesser General Public License
webová stránkahttp://www.libcsp.org

CubeSat Space Protocol (CSP) je malý doručovací protokol na síťové vrstvě určený pro CubeSats.[Citace je zapotřebí ] Myšlenka byla vyvinuta skupinou studentů z Aalborg University v roce 2008 a dále rozvíjeny pro AAUSAT3 Mise CubeSat, která byla zahájena v roce 2013. Protokol je založen na 32bitové hlavičce obsahující informace o síťové i transportní vrstvě. Jeho implementace je navržena pro vestavěné systémy, jako je 8bitový mikroprocesor AVR a 32bitové ARM a AVR od společnosti Atmel. Implementace je napsána v jazyce C a je portována pro spuštění FreeRTOS a POSIX a pthreads - operační systémy založené na Linux. Podpora pro Mac OS X a Microsoft Okna bude k dispozici ve verzi 1.1. Třípísmenná zkratka CSP byla přijata jako zkratka pro CAN Space Protocol protože první ovladač vrstvy MAC byl napsán pro UMĚT -autobus. Fyzická vrstva byla od té doby rozšířena o několik dalších technologií, a proto byl název rozšířen na obecnější vesmírný protokol CubeSat beze změny zkratky.

Protokol a implementaci aktivně udržují studenti na Aalborg University a spin-off společnosti GomSpace. Zdrojový kód je k dispozici pod LGPL licence a hostováno dne GitHub.

Popis

CubeSat Space Protocol umožňuje distribuovaným vestavěným systémům nasadit topologii sítě orientovanou na služby.[Citace je zapotřebí ] Vrstvení CSP odpovídá stejným vrstvám jako TCP / IP Modelka. Implementace podporuje přenosový protokol orientovaný na připojení (vrstva 4), jádro routeru (vrstva 3) a několik síťových rozhraní (vrstva 1–2). Topologie orientovaná na služby usnadňuje návrh satelitních subsystémů, protože samotná komunikační sběrnice je rozhraní do jiných subsystémů. To znamená, že každý vývojář subsystému potřebuje pouze definovat servisní smlouvu a sadu čísel portů, na které bude jejich systém reagovat. Kromě toho se snižují vzájemné závislosti subsystému a redundance se snadno přidává přidáním více podobných uzlů na komunikační sběrnici.

Mezi klíčové vlastnosti patří:[Citace je zapotřebí ]

  • Jednoduchý API podobný Berkeley zásuvky.
  • Jádro routeru se statickými trasami. Podporuje transparentní přeposílání paketů např. vesmírný odkaz.
  • Podpora pro provoz bez připojení (podobně jako UDP ) a provoz orientovaný na připojení (založený na RUDP ).
  • Obslužná rutina služby, která implementuje ICMP podobné požadavky, jako je ping a stav vyrovnávací paměti.
  • Podpora zpětného provozu. To může např. být použit pro Meziprocesová komunikace mezi úkoly subsystému.
  • Volitelná podpora pro všesměrový provoz, pokud je podporována fyzickým rozhraním.
  • Volitelná podpora pro promiskuitní režim, pokud je podporována fyzickým rozhraním.
  • Volitelná podpora pro šifrované pakety s XTEA v CTR režimu.
  • Volitelná podpora pro HMAC ověřené pakety se zkrácenými SHA-1 HMAC.

Podporované operační systémy

CSP by se měl kompilovat na všech platformách, které mají nejnovější verzi gcc překladač. CSP vyžaduje podporu pro C99 funkce, jako jsou vložené funkce a určené inicializátory.

Ovladače fyzické vrstvy

CSP podporuje několik technologií fyzické vrstvy. Licencovaný zdrojový kód LGPL obsahuje implementaci fragmentujícího rozhraní CAN a ovladačů pro SocketCAN a procesory Atmel AT90CAN128, AT91SAM7A1 a AT91SAM7A3. Od verze 1.1 dále zahrnuje CSP také rozhraní pro I2C a RS-232. Rozhraní potřebují pouze implementovat funkci pro přenos paketu a vkládat přijaté pakety do zásobníku protokolu pomocí funkce csp_new_packet. CSP byl úspěšně testován s následujícími fyzickými vrstvami.

Záhlaví protokolu

Verze 1

Rozsah portů je rozdělen do tří nastavitelných segmentů. Porty 0 až 7 se používají pro obecné služby, jako je ping a stav vyrovnávací paměti, a jsou implementovány obslužnou rutinou služby CSP. Porty od 8 do 47 se používají pro služby specifické pro subsystém. Všechny zbývající porty, od 48 do 63, jsou pomíjivé porty používané pro odchozí připojení. Bity od 28 do 31 se používají k označování paketů pomocí HMAC, šifrování XTEA, záhlaví RDP a kontrolního součtu CRC32.

Záhlaví CSP 1.0+
Bitový offset31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0
0PřednostZdrojDestinaceDestinace
Přístav
Zdroj
Přístav
RezervovánoH
M
A
C
X
T
E
A
R
D
P
C
R
C
32Data (0 - 65 535 bajtů)

Reference

externí odkazy