STD-MIL-1553
03 Oct

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).

 

Illustrazione 1

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.

 

Illustrazione 2
 

 

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.

 

Illustrazione 3

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.

 

Illustrazione 5

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).

 

Illustrazione 6
 

In dettaglio, la command word contiene tutte le informazioni per definire address e subaddress del Remote Terminal; numero di word da trasmettere o ricevere.

Illustrazione 6

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.

Illustrazione 6

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.

Illustrazione 6

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