Standard CCSDS e PUS per Sistemi Spaziali
Architettura PUS-C e CCSDS
Incastrare i dati: PUS-C in un pacchetto spaziale CCSDS
Per far viaggiare le informazioni da e verso un satellite, abbiamo bisogno di un sistema robusto e standardizzato. Immagina di dover spedire una lettera importante. La lettera stessa è il pacchetto PUS-C, che contiene le istruzioni (telecomando) o i dati raccolti (telemetria). Ma la lettera da sola non va da nessuna parte. Ha bisogno di una busta con un indirizzo. Quella busta è il Pacchetto Spaziale del , che incapsula il pacchetto PUS e si assicura che arrivi dove deve andare.
Questa struttura a strati è fondamentale. Il protocollo del Pacchetto Spaziale CCSDS gestisce il trasporto, mentre il PUS (Packet Utilization Standard) definisce il contenuto e il formato dei servizi applicativi. In pratica, il pacchetto PUS-C occupa interamente il campo dati del pacchetto spaziale CCSDS.
L'intestazione primaria: l'indirizzo sulla busta
L'intestazione primaria (Primary Header) del pacchetto CCSDS è un blocco compatto di 6 byte che contiene le informazioni di routing essenziali. I suoi campi chiave sono:
- Version Number (3 bit): Indica la versione del protocollo del pacchetto spaziale. Per PUS-C, questo valore è quasi sempre 001, che corrisponde alla versione 2 dello standard CCSDS.
- Packet Type (1 bit): Distingue tra un Telecomando (TC, valore 1) e un pacchetto di Telemetria (TM, valore 0).
- Secondary Header Flag (1 bit): Un flag che indica se è presente un'intestazione secondaria. Per i pacchetti PUS, questo è sempre impostato a 1, poiché l'intestazione PUS funge da intestazione secondaria.
- (11 bit): L'Application Process Identifier è il campo più importante per l'instradamento. È un identificatore numerico univoco che associa il pacchetto a una specifica applicazione software a bordo del satellite o a un sistema a terra. Ad esempio, l'APID 100 potrebbe essere riservato al sistema di controllo termico, mentre l'APID 250 potrebbe appartenere al software di gestione del carico utile scientifico.
Questi campi permettono al sistema di gestione dati di bordo (On-Board Data Handling, OBDH) di smistare i pacchetti in arrivo alla giusta applicazione senza dover analizzare il contenuto del pacchetto stesso. È un meccanismo di routing veloce ed efficiente.
Novità in PUS-C: più flessibilità e precisione
Lo standard PUS-C ha introdotto alcuni cambiamenti significativi rispetto alla versione precedente, PUS-A, per migliorare la flessibilità e la gestione dei dati.
Una delle principali novità è l'introduzione opzionale di un campo 'Destination ID' nell'intestazione dei pacchetti di telemetria (TM). In PUS-A, solo i telecomandi (TC) avevano un campo per specificare la sorgente e la destinazione. Ora, anche un'applicazione a bordo può inviare telemetria a una specifica applicazione a terra, non solo al sistema di controllo generale. Questo facilita la gestione di catene di comando e controllo complesse e la distribuzione dei dati a diversi team di operatori.
Un'altra aggiunta cruciale è la 'Time Reference Status' nell'intestazione dei pacchetti PUS-C. Questo campo di 4 bit fornisce informazioni sulla qualità e la fonte del tempo associato al pacchetto. Permette al sistema di terra di sapere se il timestamp è stato generato da un orologio di bordo sincronizzato con il GPS, da un orologio interno meno preciso, o se è stato estrapolato. Per l'analisi dei dati scientifici, dove la precisione temporale è tutto, questa informazione è di valore inestimabile.
Routing avanzato con ID di origine e destinazione
Mentre l'APID gestisce il routing a livello di applicazione, i campi Source ID e Destination ID (ora disponibili sia per TC che per TM in PUS-C) offrono un livello di indirizzamento più granulare. All'interno di una singola applicazione (identificata da un APID), potrebbero esistere più istanze o moduli. Questi ID permettono di indirizzare un comando o un pacchetto di dati a un modulo specifico.
Ad esempio, un satellite potrebbe avere un'applicazione per la gestione della memoria di massa (APID 300). Un comando per cancellare una partizione specifica potrebbe usare un Destination ID per distinguere tra la memoria A e la memoria B, entrambe gestite dalla stessa applicazione. Questo approccio modulare semplifica lo sviluppo del software e aumenta la flessibilità operativa della missione.
Qual è la funzione principale dell'Application Process Identifier (APID) nell'intestazione di un Pacchetto Spaziale CCSDS?
Se si riceve un pacchetto PUS-C, quale valore ci si aspetta di trovare nel campo 'Secondary Header Flag' dell'intestazione primaria del pacchetto CCSDS?
Ora che abbiamo visto come PUS-C e CCSDS lavorano insieme, sei pronto per un rapido controllo.
