# SpaceWire

SpaceWire es una red de comunicación usada en naves espaciales basada en parte en el estándar de comunicaciones IEEE 1355. Es coordinado por la Agencia Espacial Europea (ESA) en colaboración con agencias espaciales internacionales, incluidas la NASA, JAXA y RKA .
Dentro de una red SpaceWire, los nodos se conectan a través de enlaces seriales punto a punto de bajo costo, baja latencia, full-duplex, y enrutadores que usan conmutación de agujero de gusano. SpaceWire cubre dos de las siete capas del modelo OSI para comunicaciones (física y enlace de datos).

## Arquitectura
### Capa física

La modulación y el formato de datos de SpaceWire generalmente siguen la codificación de datos estroboscópicos, esto es, señalización de terminación diferencial (DS-DE) parte del estándar IEEE 1355-1995. SpaceWire utiliza una comunicación asíncrona y permite velocidades de entre 2 Mbit/s y 200 Mbit/s, con una tasa de señalización inicial de 10 Mbit/s. DS-DE es preferido porque describe la modulación, los formatos de bits, el enrutamiento, el control de flujo y la detección de errores en el hardware, con poca necesidad de software. SpaceWire también tiene tasas de error muy bajas, un comportamiento determinista y una electrónica digital relativamente simple. SpaceWire reemplazó los controladores diferenciales PECL antiguos en la capa física de IEEE 1355 DS-DE por señalización diferencial de bajo voltaje (LVDS). SpaceWire también propone el uso de conectores de 9 pines aptos para uso espacial.
SpaceWire e IEEE 1355 DS-DE permiten un conjunto más amplio de velocidades para la transmisión de datos y algunas características nuevas para la tolerancia a fallos. Las funciones de toleracia a fallos permiten que los datos encuentren rutas alternativas, por lo que una nave espacial puede tener múltiples buses de datos y ser tolerante a fallas . SpaceWire también permite la propagación de interrupciones de tiempo a través de los enlaces.

### Capa de enlace

Cada carácter transferido comienza con un bit de paridad y un bit indicador de control de datos. Si el indicador de control de datos es un bit 0, sigue un carácter LSB de 8 bits. De lo contrario, uno de los códigos de control, incluido el fin de paquete (EOP).

### Capa de red

Las tramas de datos de la red tienen el siguiente aspecto:
| Byte de dirección | Byte de dirección. . . | ID de protocolo | Datos |
Se utilizan uno o más bytes de dirección para el enrutamiento. Las direcciones son físicas (0-31) o lógicas. La diferencia es que las direcciones físicas se eliminan del encabezado de la trama durante el enrutamiento, que se utiliza para el enrutamiento basado en saltos (según la ruta especificada en la misma trama). Las direcciones lógicas también se pueden eliminar, según la configuración del enrutador.

### Interconexión

Los dispositivos de hardware se pueden conectar directamente o a través de un enrutador SpaceWire. En el primer caso, generalmente se utilizan pares de dispositivos para garantizar una operación a prueba de fallas, la que sin embargo es manejada por software.
Un enrutador SpaceWire suele ser un dispositivo de tipo conmutador de barra transversal que funciona en modo de conmutación de agujero de gusano . Esto también puede limitar la velocidad de la comunicación a la velocidad común más baja. Las decisiones de enrutamiento se basan en la tabla de rutas ya programada y el contenido inicial (bytes de dirección) de la trama entrante.

## Usos

SpaceWire se utiliza en todo el mundo. Su uso comenzó principalmente en proyectos de la ESA, pero actualmente lo utilizan la NASA, JAXA, RKA y muchas otras organizaciones y empresas. Algunos proyectos de la NASA que lo utilizan incluyen el telescopio espacial James Webb, el telescopio de alerta de ráfagas Swift, el Orbitador de reconocimiento lunar, LCROSS, el satélite ambiental operativo geoestacionario (GOES-R) y el banco de pruebas SCaN. Las iniciativas de SpaceWire están siendo coordinadas entre varias Agencias Espaciales en el marco de CCSDS para extender su modelo de comunicación a las Capas de Red y Transporte del modelo OSI .
SpaceWire soporta redes y sistemas altamente tolerantes a fallas, lo cual es una de las razones de su popularidad.

## Protocolos

La ESA tiene un borrador de especificación para el ID de protocolo.
En ECSS-E-ST-50-11 se han asignado los siguientes ID de protocolo:
| ID de protocolo | Nombre | Descripción |
| 1 | Protocolo de acceso a memoria remota ( RMAP ) | se utiliza para acceder de forma remota/alterar la configuración de registro de los dispositivos |
| 2 | Protocolo de transferencia de paquetes CCSDS | un protocolo común utilizado para enviar telecomandos y recibir telemetría |
| 238 | Propuesta de Protocolo de Entrega de Datos Confiables ( RDDP ) | utilizado en GOES-R |
| 239 | Protocolo universal de transferencia en serie ( STUP ) | Utilizado en SMCS-332 ASIC |