Cubesat Space Protocol - Cubesat Space Protocol
Původní autoři | AAUSAT3 |
---|---|
Vývojáři | AAUSAT3, GomSpace |
První vydání | 26.dubna 2010 |
Stabilní uvolnění | 1.6 / 17. dubna 2020 |
Napsáno | C, Krajta |
Operační systém | FreeRTOS, Linux, Mac OS X, Microsoft Windows |
Typ | Protokol |
Licence | GNU Lesser General Public License |
webová stránka | http://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.
- FreeRTOS - Testováno na AVR8, AVR32 a ARM7.
- Linux - Testováno na x86, x86-64 a Blackfin.
- Mac OS X
- Microsoft Windows
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.
- UMĚT
- I2C
- RS-232 pomocí KISS[1] protokol
- CCSDS 131.0-B-1-S[2]/131,0-B-2[3] protokol meziprostoru
- TCP / IP
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.
Bitový offset | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Přednost | Zdroj | Destinace | Destinace Přístav | Zdroj Přístav | Rezervováno | H M A C | X T E A | R D P | C R C | ||||||||||||||||||||||
32 | Data (0 - 65 535 bajtů) |
Reference
externí odkazy
- Hosting webových stránek projektu a zdrojového kódu
- Aalborg University, Satelitní satelitní aktivity studentů
- Aalborg University, AAUSAT3 - první AAU cubesat, který používá CSP
- GomSpace ApS