• Non ci sono risultati.

Capitolo IX: Resistenza all’ambiente spaziale

IX.4: Progetto di un prototipo

Stabilite le caratteristiche di questo nuovo sistema, si è proceduto alla loro implementazione nel circuito elettrico. Partendo dallo schema originario del microcontrollore, lo si è adattato perché fosse compatibile con i nuovi requisiti pur mantenendo le stesse funzionalità. Nella figura IX.7, si vede lo schema composto dai tre microcontrollori uguali, ognuno dotato del suo connettore per la programmazione, del suo clock e dei collegamenti già presenti nello schema precedente. Alcuni pin rimasti liberi, poi, sono stati utilizzati per creare lo Status Channel e il Master Channel secondo i criteri descritti in precedenza.

Figura IX.7: Schema dei tre microcontrollori con le funzioni di master e checkers

formato da più linee: 6 linee di I/O, associate ad altrettanti interrupt, sono utilizzate per comunicare tra un microcontrollore e l’altro lo stato di ognuno di essi, ossia la loro condizione di master, checkers oppure offline. Altre dodici linee (quattro per ogni microcontrollore), poi, sono collegate al risolutore di conflitti per comunicare i risultati delle votazioni.

Al di là dei messaggi inviati tramite il Master Channel, le linee dedicate allo Status Channel permettono quindi l’invio di quattro diversi stati per quel che riguarda la funzione del dispositivo all’interno del sistema e di sedici messaggi differenti per quel che riguarda invece la comunicazione con il risolutore di conflitti. In quest’ultimo caso, i messaggi più importanti saranno del tipo:

- accordo con i risultati di tutti i dispositivi - disaccordo con il risultato del master - richiesta di reset hardware

- richiesta di offline

Gli altri sei slot rimasti liberi saranno utilizzati per messaggi che si renderanno necessari durante lo sviluppo del software.

Per quel che riguarda invece le due linee di collegamento di ogni microcontrollore con gli altri dispositivi, i messaggi implementati saranno:

- stato offline - stato checkers - stato master

- richiesta di diventare master

In questo modo, con un numero minimo di linee, sono state poste le basi per tutti i tipi di organizzazione e di interazioni descritte nel paragrafo precedente.

Come detto, ognuno dei singoli microcontrollori può richiedere o può essere obbligato a subire un reset hardware in seguito alle decisioni dei checkers. Ogni dispositivo, quindi, è dotato di una alimentazione indipendente dagli altri, controllata dal circuito in figura IX.8.

Figura IX.8: Circuito di alimentazione di ogni singolo microcontrollore

Tramite la linea Enablen, dove n è l’indice del microcontrollore, il risolutore di conflitti può abilitare o disabilitare l’alimentazione di ognuno degli altri microcontrollori.

Tutte le linee di I/O dei microcontrollori devono poi essere unite e, allo stesso tempo, protette dalle interferenze che possono causare altri dispositivi in errore. Una resistenza, quindi, svolge la doppia funzione di evitare corto circuiti tra linee con uscita alta e linee con uscita bassa ed impedire che dispositivi offline vengano alimentati in maniera parassita dagli altri dispositivi in funzione.

Tutti i carichi collegati alle linee di I/O sono ad alta impedenza –gate di mosfet, in generale: la presenza della resistenza non genera quindi problemi nella capacità di pilotaggio dei dispositivi delle altre schede da parte dei microcontrollori.

La stessa cosa, tuttavia, non si può dire per i segnali PWM.

Queste uscite sono utilizzate per impostare la corrente dei magnetotorquer e la velocità di rotazione dei motori e la presenza di una resistenza di elevato valore può portare alla degradazione del segnale o al suo smorzamento per i duty cycle più brevi.

Figura IX.10: Circuito di unione delle linee PWM dei microcontrollori

Il circuito in figura IX.10 rappresenta una soluzione a questo problema, inserendo un buffer tra il punto di unione di tutte le uscite dei microcontrollori e l’invio dei segnali PWM alle varie periferiche. Questo buffer svolge quindi due funzioni: da una parte rafforza il segnale facendo in modo che i dispositivi lo ricevano come se fosse uscito direttamente dai microcontrollori, e dall’altra ripristina i valori di tensione corretti del segnale.

La tensione all’uscita, infatti, sarebbe stata uguale ad un terzo della tensione nominale. Questo deriva dal fatto che i segnali PWM sono segnali estremamente veloci generati in hardware e praticamente impossibili da sincronizzare tra i tre dispositivi. Tentare di generare lo stesso segnale su tutti e tre i microcontrollori avrebbe portato ad un segnale finale praticamente inutilizzabile, data

la inevitabile mancanza di sincronismo tra il clock di ognuno dei tre dispositivi e i ritardi ineliminabili durante l’elaborazione dei dati. Di conseguenza, solo il master attiverà l’uscita PWM, mentre gli altri dispositivi resteranno in attesa. Le due linee non attive, quindi, renderanno il circuito di unione delle uscite un partitore di tensione, riducendo la tensione finale del segnale. La presenza del buffer, invece, consente di riportarlo ai valori nominali.

Anche la porta seriale utilizzata per comunicare con l’esterno è soggetta agli stessi requisiti di ridondanza di tutti gli altri sistemi: anche in questo caso le linee sono unite tramite resistenze e, nuovamente, solo il master attiverà la trasmissione di dati verso l’esterno per poter rispettare le strette tempistiche di trasmissione del segnale. Non è stato necessario, tuttavia, inserire alcun buffer come si vede dal circuito riportato in figura IX.11: i microcontrollori, infatti, possono disabilitare la porta di trasmissione mettendola in uno stato di alta impedenza, evitando quindi di influenzare la linea ad essa collegata.

Figura IX.11: Circuito delle linee di comunicazione seriale

Completamente nuova, invece, è la parte relativa al risolutore di conflitti.

Si tratta di un quarto microcontrollore, anch’esso dotato del suo sistema di programmazione, alimentato direttamente dalla linea principale di alimentazione, collegato alle linee di stato degli altri dispostivi.

Da qui partono le linee di controllo delle alimentazioni dei singoli microcontrollori, così come quelle per il reset software. Su queste è stato inserito uno switch che permette di lasciarle libere, dato che in fase di programmazione devono essere sotto il controllo del programmatore.

Una porta seriale indipendente permette al microcontrollore di comunicare con l’esterno per interfacciarsi con un eventuale programma di controllo e per effettuare simulazioni, imponendo la presenza di errori relativi ai vari dispositivi e verificando il comportamento del sistema.

Si può obiettare che questo microcontrollore sia suscettibile all’ambiente spaziale esattamente come gli altri tre e, di conseguenza, non è adatto per svolgere questa funzione. L’osservazione è senza dubbio fondata e in un esemplare di volo le funzioni svolte da questo dispositivo dovrebbero essere inserite all’interno di una PLD, di una FPGA o utilizzando componenti sufficientemente affidabili. Nel caso del prototipo in questione, è necessario avere un controllo maggiore su ciò che accade e la soluzione migliore è rappresentata da un microcontrollore, mentre una volta che si siano eliminate le funzioni utili per lo sviluppo del sistema e di debug, i compiti esclusivi del resolver sono abbastanza semplici ed implementabili con logica combinatoria.

Partendo da questo schema è stato quindi disegnato un circuito stampato.

La quantità di componenti e la natura innovativa e sperimentale del dispositivo ne rendono le dimensioni incompatibili con quelle del sistema di controllo realizzato. Tuttavia, il circuito è stato realizzato con una interfaccia della stessa forma e dimensione della scheda originale di controllo digitale, in modo da potersi inserire all’interno del sistema di controllo d’assetto sostituendola. La figura IX.13 mostra il circuito stampato finale.