
STD-MIL-1553
In questa nuova serie di articoli, tratterò l’argomento STD-MIL-1553 (citata per brevità come quindici-cinquantatré) illustrando i casi di test tipici. Prima di entrare nel vivo dell’argomento, credo sia utile riportare un po' di teoria sul protocollo (cerco di semplificare al massimo).
In generale, un BUS è un mezzo elettrico e un insieme di regole tramite i quali più oggetti possono comunicare tra loro condividendo il mezzo di trasmissione dati. Gli attori, interconnessi tra loro, sono di tre tipi:
- Remote Terminal (RT): qualsiasi oggetto che si interfaccia sul bus (e che non sia degli altri due tipi)
- Bus Controller (BC): è l’oggetto (unico) che comanda il gioco decidendo chi deve trasmettere, cosa deve trasmettere ed a chi (se la 1553 fosse monarchia, il BC sarebbe il suo re)
- Bus Monitor (BM): è l’oggetto che non fa assolutamente nulla e se ne sta lì buono a guardare (come se fosse il pensionato che osserva i lavori in corso però senza licenza di critica).
Le interconnessioni elettriche sono ridondate: ci sono fisicamente due BUS distinti, chiamati primario e secondario (a volte indicati con A e B). La 1553 è un BUS avionico, parte della sua robustezza deriva da questa ridondanza: se dovesse andar giù un canale ci sarebbe sempre l’altro pronto ad intervenire.
I Remote Terminal sono indirizzati tramite address (31 è riservati). Ogni RT ha una sorta di “banchi di memoria” (30 in totale; 0 e 31 sono riservati); tali banchi sono indirizzati tramite un sub-address e può contenere fino ad un massimo di 32 word.
Le comunicazioni possibili sono di due tipi:
- Dati
- Tra BC e RT
- Tra due RT
- Mode Code
Sintetizzo in un diagramma ad albero tutte le possibili comunicazioni.
Per capire la dinamica delle comunicazioni, focalizzo l’attenzione sulla trasmissione dati BC-RT. Il Bus controller invia una word (16 bit) che codifica il tipo di trasmissione richiesta (chiamata command word, in gergo command).
Il remote terminal riceve o trasmette i dati, in accordo a quando richiesto dal Bus Controller tramite la command word; in ogni caso, trasmette una word riportante il suo stato e i suoi “desideri” (status word, in gergo status).
In dettaglio, la command word contiene tutte le informazioni per definire address e subaddress del Remote Terminal; numero di word da trasmettere o ricevere.
La status word riporta come primaria informazione l’address del remote terminal e consente di fare il basilare controllo che il messaggio è stato ricevuto dal corretto destinatario. Inoltre, contiene ulteriori info che, se tutte nulle, indicano che il remote terminal non ha nulla da reclamare.
Per completezza, riporto lo scambio di informazioni nel caso in cui il Bus Controller comanda due Remote Terminal a parlarsi. In questo caso, il BC trasmette due command word contenenti gli indirizzi (e i sotto-indirizzi) dei Remote Terminal che devono, rispettivamente, trasmettere e ricevere.
Prima di chiudere, riporto due piccole note (utili in seguito):
- L’address 31 è riservato per comunicazioni broadcast (ricevono tutti i Remote Terminal)
- I subaddress 0 e 31 sono riservati ai mode code (ne parleremo).
Nel prossimo articolo di sicuro parlerò di major e minor frame ma offrirò una scorciatoia per implementare ogni comunicazione che occorre quando “siete” Bus Controller con una sola funzione de “1553 Channels”, la mia libreria dedicata al protocollo STD-MIL-1553.
Grazie per la vostra preziosissima attenzione. Se volete offrire un contributo a questa serie di articoli, potete farlo in modo semplice: con un like o una condivisione. Se avete osservazioni o domande, risponderò con piacere a tutti.
Antonio Costantino
- Accedi per poter commentare