CubeSat Space Protocol ( CSP ) es un pequeño protocolo de entrega de capa de red diseñado para CubeSats . [ cita requerida ] La idea fue desarrollada por un grupo de estudiantes de la Universidad de Aalborg en 2008, y desarrollada aún más para la misión AAUSAT3 CubeSat que se lanzó en 2013. El protocolo se basa en un encabezado de 32 bits que contiene información de la capa de red y de transporte. . Su implementación está diseñada para sistemas embebidos como el microprocesador AVR de 8 bits y el ARM y AVR de 32 bits de Atmel. La implementación está escrita en C y está adaptada para ejecutarse en FreeRTOS y POSIX y pthreads-sistemas operativos basados en Linux . La compatibilidad con Mac OS X y Microsoft Windows estará disponible en la versión 1.1. El acrónimo de tres letras CSP se adoptó como abreviatura de CAN Space Protocol porque el primer controlador de capa MAC se escribió para CAN - bus . Desde entonces, la capa física se ha ampliado para incluir varias otras tecnologías y, por lo tanto, el nombre se amplió al Protocolo espacial CubeSat más general sin cambiar la abreviatura.
Autor (es) original (es) | AAUSAT3 |
---|---|
Desarrollador (es) | AAUSAT3 , GomSpace |
Versión inicial | 26 de abril de 2010 |
Lanzamiento estable | 1.6 / 17 de abril de 2020 |
Escrito en | C , Python |
Sistema operativo | FreeRTOS , Linux , Mac OS X , Microsoft Windows |
Tipo | Protocolo |
Licencia | Licencia pública general reducida GNU |
Sitio web | http://www.libcsp.org |
Los estudiantes de la Universidad de Aalborg y la empresa derivada GomSpace mantienen activamente el protocolo y la implementación . El código fuente está disponible bajo una licencia LGPL y alojado en GitHub .
Descripción
El protocolo espacial CubeSat permite que los sistemas integrados distribuidos implementen una topología de red orientada a servicios. [ cita requerida ] La estratificación de CSP corresponde a las mismas capas que el modelo TCP / IP . La implementación admite un protocolo de transporte orientado a la conexión (Capa 4), un núcleo de enrutador (Capa 3) y varias interfaces de red (Capa 1–2). Una topología orientada a servicios facilita el diseño de subsistemas de satélite, ya que el bus de comunicación en sí mismo es la interfaz con otros subsistemas. Esto significa que cada desarrollador de subsistemas solo necesita definir un contrato de servicio y un conjunto de números de puerto a los que responderá su sistema. Además, las interdependencias de los subsistemas se reducen y la redundancia se agrega fácilmente agregando múltiples nodos similares al bus de comunicación.
Las características clave incluyen: [ cita requerida ]
- API simple similar a los sockets de Berkeley .
- Núcleo de enrutador con rutas estáticas. Admite el reenvío transparente de paquetes a través de, por ejemplo, enlace espacial.
- Soporte para operación sin conexión (similar a UDP ) y operación orientada a conexión (basada en RUDP ).
- Controlador de servicios que implementa solicitudes similares a ICMP , como ping y estado del búfer.
- Soporte para tráfico loopback. Esto se puede utilizar, por ejemplo, para la comunicación entre procesos entre tareas del subsistema.
- Soporte opcional para tráfico de difusión si es compatible con la interfaz física.
- Soporte opcional para el modo promiscuo si lo admite la interfaz física.
- Soporte opcional para paquetes encriptados con XTEA en modo CTR .
- Soporte opcional para paquetes autenticados HMAC con SHA-1 HMAC truncado .
Sistemas operativos compatibles
CSP debería compilarse en todas las plataformas que tengan una versión reciente del compilador gcc . CSP requiere soporte para características de C99 como funciones en línea e inicializadores designados.
Controladores de la capa física
CSP admite varias tecnologías de capa física. El código fuente con licencia LGPL contiene una implementación de una interfaz CAN fragmentada y controladores para SocketCAN y los procesadores Atmel AT90CAN128, AT91SAM7A1 y AT91SAM7A3. A partir de la versión 1.1, CSP también incluye interfaces para I2C y RS-232 . Las interfaces solo necesitan implementar una función para transmitir un paquete e insertar los paquetes recibidos en la pila de protocolos con la función csp_new_packet. La CSP se ha probado con éxito con las siguientes capas físicas.
- LATA
- I2C
- RS-232 usando el protocolo KISS [1]
- CCSDS 131.0-B-1-S [2] /131.0-B-2 [3] protocolo de enlace de espacio
- TCP / IP
Encabezado de protocolo
Versión 1
El rango de puertos se divide en tres segmentos ajustables. Los puertos 0 a 7 se utilizan para servicios generales como ping y estado del búfer, y son implementados por el controlador de servicios CSP. Los puertos del 8 al 47 se utilizan para servicios específicos del subsistema. Todos los puertos restantes, del 48 al 63, son puertos efímeros que se utilizan para conexiones salientes. Los bits del 28 al 31 se utilizan para marcar paquetes con HMAC, cifrado XTEA, encabezado RDP y suma de comprobación CRC32.
Desplazamiento de bits | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | dieciséis | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Prioridad | Fuente | Destino | Puerto de destino | Puerto de origen | Reservado | H M A C | X T E A | R D P | C R C | ||||||||||||||||||||||
32 | Datos (0 - 65,535 bytes) |
Referencias
- ^ http://www.ax25.net/kiss.aspx
- ^ https://public.ccsds.org/Pubs/131x0b1s.pdf
- ^ https://public.ccsds.org/Pubs/131x0b2ec1s.pdf
enlaces externos
- Sitio web del proyecto y alojamiento de código fuente
- Universidad de Aalborg, Actividades satélite para estudiantes
- Universidad de Aalborg, AAUSAT3 : el primer cubesat de AAU en utilizar CSP
- GomSpace ApS