STD-MIL-1553 #2
In questo articolo vediamo come implementare i test funzionali 1553 con la UUT che si comporta da Remote Terminal.
Implementeremo quattro casi di test funzionali, supponendo che la nostra unità sotto test si comporti da Remote Terminal e risponda all’indirizzo 5 e subaddress 10 e 11 rispettivamente per ricevere e trasmettere. I casi che tratteremo sono:
- Verifica che la UUT sia in grado di inviare una o più word
- Verifica che la UUT sia in grado di ricevere una o più word
- Verifica che la UUT sia in grado di rispondere ai “modecode”
- Verifica che la UUT sia in grado di intercettare errori di trasmissione
Indipendentemente dal caso trattato, utilizzeremo la funzione “1553_BC” della mia libreria “1553 channel”.
PRIMO CASO: richiedere alla UUT di inviarci una o più word e valutare la sua Status Word.
Supponiamo che le word da ricevere siano 3. Valorizziamo i parametri di ingresso della funzione 1553_BC come segue:
- RT address: address pari a 5 e subaddress pari a 11
- Resource: CH1 e Primary Bus (per trasmettere dal relativo BUS)
- Count: il numero delle word che vogliamo ricevere, in questo caso 3
- Tutti gli altri parametri impostati con i valori di default
Mandiamo in esecuzione la funzione ed al completamento otteniamo i seguenti valori:
- RXdata: le word richieste così come sono state ricevute (nell’esempio: A, B e C in esadecimale)
- StatusWord: la status word inviataci dal Remote Terminal interrogato, decodificata campo per campo. La stessa viene riproposta anche nella formattazione numerica, stringa e booleana.
- Counters: se va tutto bene riporta nel campo msg il valore 1 e nel campo err il valore 0.
SECONDO CASO: trasmettere alla UUT una o più word e valutare la sua Status Word.
Supponiamo di voler inviare quattro word (1, 2, 3 e 4). Valorizziamo come segue:
- RT address e resource: come il caso precedente
- Count: zero; questa volta non chiediamo dati al RT
- TXData: riempita a piacere con le word che vogliamo trasmettere, in questo caso le quattro word dal valore 1, 2, 3 e 4
- Tutti gli altri parametri rimangono con i loro valori di default
Mandiamo in esecuzione la funzione ed al completamento otteniamo i seguenti valori:
- RXdata: vuoto; RT non trasmette nulla
- StatusWord e counters: come il caso precedente
TERZO CASO: trasmettere alla UUT un “modecode”.
I modecode sono particolari messaggi (command word) che il Bus Controller può inviare per invocare i comandi definiti dallo stesso standart 1553. Per esempio, uno di questi è “repeat last command” tramite il quale chiediamo al Remote Terminal di inviarci l’ultimo comando ricevuto. Usiamo sempre 1553_BC e valorizziamo i parametri così:
- RT address: il sottocampo address riporta l’indirizzo del Remote Terminal mentre subaddress deve valere zero (ricordate dal primo articolo che il subaddress è riservato? Lo è per questa ragione)
- Count: con subaddress zero, non indica più il numero delle word che vogliamo ricevere; riporta la codifica del modecode da inviare (in questo caso, 18 per il comando repeat last command)
- Tutti gli altri parametri rimangono con i loro valori di default
Mandiamo in esecuzione la funzione ed al completamento otteniamo i seguenti valori:
- RXdata: riporta l’ultima command word ricevuta dal Remote Terminal
- StatusWord e counters: come il caso precedente
QUARTO CASO: trasmettere alla UUT un messaggio errato.
Spesso è richiesta la verifica del comportamento a seguito di un messaggio mal formattato, per esempio con un errore sul bit di parità. Anche questo caso può esser gestito dalla funzione 1553_BC al seguente modo:
- RT address: 5 per address, 10 per subaddress (è il BC a trasmettere word)
- Count: zero: non chiediamo word al Remote Terminal
- Err type e spec: rispettivamente 3, per selezionare l’errore di parità e 1 per inserire l’errore nella prima word
- Tutti gli altri parametri rimangono con i loro valori di default
Mandiamo in esecuzione la funzione ed al completamento otteniamo i seguenti valori:
- StatusWord: come nei casi precedenti ma con la segnalazione di message error
Riepilogando, occorre una sola funzione per implementare i quattro casi d’uso. 1553_BC può esser utilizzata in sequenza automatica (per esempio tramite Test Stand di National Instruments), come funzione nelle vostre applicazioni e singolarmente. I precedenti casi possono esser verificati anche manualmente tramite pannello interattivo messo a disposizione del modulo “1553 channel”.
Nel prossimo articolo illustrerò cosa abbiamo fatto nei “piani bassi” del driver scheda 1553 installata sul PC del banco di test (parleremo di minor e major frame…).
Grazie per la vostra lettura. Ogni vostro intervento è sempre gradito, risponderò a tutti.
Antonio Costantino
- Accedi per poter commentare