El Protocolo Espacial CubeSat ( CSP ) es un pequeño protocolo de entrega de capa de red diseñado para CubeSats . La idea fue desarrollada por un grupo de estudiantes de la Universidad de Aalborg en 2008 y perfeccionada para la misión CubeSat AAUSAT3 , lanzada en 2013. El protocolo se basa en una cabecera de 32 bits que contiene información de las capas de red y transporte. Su implementación está diseñada para sistemas embebidos como el microprocesador AVR de 8 bits y los procesadores ARM y AVR de 32 bits de Atmel. La implementación está escrita en C y se ha adaptado para ejecutarse en FreeRTOS , Zephyr y sistemas operativos basados en POSIX y pthreads , como Linux . El acrónimo de tres letras CSP se adoptó como abreviatura de Protocolo Espacial CAN porque el primer controlador de capa MAC se escribió para el bus CAN . Desde entonces, la capa física se ha ampliado para incluir otras tecnologías, por lo que el nombre se extendió al más general Protocolo Espacial CubeSat sin cambiar la abreviatura.
El protocolo y su implementación siguen siendo mantenidos activamente por Johan de Claville Christiansen, Space Inventor, GomSpace y Space Cubics. [ 1 ] El código fuente está disponible bajo una licencia MIT y alojado en GitHub .
Descripción
El protocolo espacial CubeSat permite que los sistemas embebidos distribuidos implementen una topología de red orientada a servicios. La estructura en capas 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 (Capas 1 y 2). Una topología orientada a servicios facilita el diseño de subsistemas satelitales, ya que el bus de comunicación actúa como interfaz con otros subsistemas. Esto significa que cada desarrollador de subsistema solo necesita definir un contrato de servicio y un conjunto de números de puerto en los que su sistema responderá. Además, se reducen las interdependencias entre subsistemas y se puede agregar fácilmente redundancia mediante la incorporación de múltiples nodos similares al bus de comunicación.
Las características principales incluyen:
- API sencilla similar a los sockets de Berkeley .
- Núcleo de enrutador con rutas estáticas. Admite el reenvío transparente de paquetes, por ejemplo, a través de SpaceLink.
- Soporte tanto para operación sin conexión (similar a UDP ) como para operación orientada a la conexión (basada en RDP ). [ 2 ]
- Controlador de servicio que implementa solicitudes similares a ICMP , como ping y estado del búfer.
- Compatibilidad con tráfico de bucle invertido. Esto puede utilizarse, por ejemplo, para la comunicación entre procesos, entre tareas de subsistemas.
- Soporte opcional para tráfico de difusión si la interfaz física lo admite.
- Soporte opcional para el modo promiscuo si la interfaz física lo admite.
- Soporte opcional para paquetes cifrados con XTEA en modo CTR .
- Soporte opcional para paquetes autenticados con HMAC SHA-1 truncado .
Sistemas operativos compatibles
CSP debería compilarse en todas las plataformas que tengan una versión reciente del compilador gcc . CSP requiere compatibilidad con 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 contiene una implementación de una interfaz CAN de fragmentación 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. CSP se ha probado con éxito sobre las siguientes capas:
Encabezado del protocolo
Versión 1
El rango de puertos se divide en tres segmentos ajustables. Los puertos del 0 al 7 se utilizan para servicios generales como ping y estado del búfer, y son implementados por el gestor 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 utilizados 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 CRC-32.
Versión 2
Referencias
- ↑ https://github.com/libcsp/libcsp/blob/develop/AUTHORS
- ↑ "La pila de protocolos" . El protocolo espacial Cubesat . Consultado el 4 de junio de 2025 .
- ↑ "TM Sincronización y codificación de canales CCSDS 131.0-B-1 Libro Azul" (PDF) . Septiembre de 2003. Consultado el 9 de diciembre de 2022 .
- ↑ "TM Sincronización y codificación de canales Norma recomendada CCSDS 131.0-B-2" (PDF) . Agosto de 2011. Consultado el 9 de diciembre de 2022 .
- ↑ "Procesamiento de información y comunicaciones digitales en un satélite modular" .
Enlaces externos
- Sitio web del proyecto y alojamiento del código fuente
- Universidad de Aalborg, Actividades Satélite para Estudiantes
- Universidad de Aalborg, AAUSAT3: el primer nanosatélite de la AAU en utilizar CSP.
- GomSpace ApS
- inventor espacial
- Integración del protocolo espacial Cubesat en el entorno multimisión de GSOC.
- protocolos de la capa de transporte
- CubeSats