• Non ci sono risultati.

Richieste di servizio

Nel documento Misure Elettroniche (pagine 184-188)

12.2 Comandi dello standard IEEE-488

12.2.2 Richieste di servizio

Come abbiamo gi`a accennato, parlando del comando SRQ, che i vari de-vice possono effettuare una richiesta di servizio. La linea SRQ `e gestita in wired-or, dunque `e sufficiente che un singolo device faccia richiesta al fine di attivarla. Ci possono essere diverse motivazioni per un device per fare una richiesta di servizio: fornire dati, annunciare anomalie, o cose del genere. Purtroppo ci manca un dettaglio notevole, ossia il fatto che la linea SRQ pu`o solo dire al controllore che vi `e una richiesta di servizio, ma senza sapere precisamente da quale device arriva. Ci`o che si deve effettuare `e una proce-dura in grado di individuare lo strumento che ha richiesto il servizio. Questa operazione si effettua mediante un tipo di interrogazione, detto polling, dei vari dispositivi. Lo standard IEEE-488 prevede due tipi di polling, ossia il polling seriale, ed il polling parallelo.

Polling seriale

Il polling seriale effettua una richiesta serialmente, sequenzialmente, ad og-ni device, un indirizzo per volta. Ciascun dispositivo che effettua una SRQ `e in grado di abilitare un bit, indicante se `e avvenuta o meno una richi-esta di servizio. Gli altri bit sono in grado eventualmente, a seconda del dispositivo, di indicare cose diverse: una cosa ad esempio potrebbe essere l’eventuale motivazione per la richiesta di servizio. La procedura di polling seriale dunque procede cos`ı: prima di tutto il controllore invia il comando universale multilinea SPE, abilitando il polling seriale; ciascuno dei byte di stato dei vari device mediante una scansione sequenziale viene letto ed in-terpretato, in modo da poter riconoscere quali dispositivi han effettuato la SRQ: ogni dispositivo, uno per volta, viene assegnato come parlatore, mentre

il controllore come ricevitore; il parlatore trasmetter`a il proprio status byte al ricevitore, che stabilir`a, leggendo il settimo bit (contenente le informazioni sull’eventuale inoltramento di una richiesta SRQ), se `e stato effettivamente l’attuale parlatore ad aver richiesto. Una volta rilevato il corretto dispositivo, viene iniziata una fase di comunicazione allo scopo di determinare il motivo della richiesta, ed attivare procedure di servizio della richiesta. Si termina dunque, mediante SPD, la procedura di polling seriale.

Polling parallelo

L’inconveniente del polling seriale `e la lentezza: esiste dunque un’alternati-va all’accesso sequenziale a ciascuno dei dispositivi indirizzati al bus, ossia il polling parallelo: in un singolo step, si interrogano contemporaneamente tutti i dispositivi, rilevando immediatamente quale sia (o quali siano). Con-siderando il fatto abbiamo 8 linee, ipotizzando che per ogni linea vi sia al pi`u uno strumento; ciascuna linea pu`o essere o meno attivata (ossia assume val-ori 1 o 0 rispettivamente se `e stato chiesto o meno un servizio dal dispositivo sulla tal linea).

Andiamo un po’ pi`u nei dettagli: prima di tutto il controllore abilita i dispositivi all’interrogazione mediante parallel polling, inviando prima il comando PPC (che configura secondo polling parallelo i device), e poi PPE (abilitante effettivamente il parallel polling); in quest’ultimo comando, sono contenuti negli ultimi tre bit gli indirizzi delle varie linee di comando (da 0 a 7, dal momento che ci sono otto linee son sufficienti tre bit per esprimerle tutte), ed il sense della risposta (si introduce come quart’ultimo bit un 1 o uno 0, a seconda se vogliamo che il dispositivo richiedente servizio risponda rispettivamente con 1 o 0). Il controllore, una volta abilitata la possibilit`a di effettuare un polling, abilitando contemporanealmente la linea ATN e la linea EOI, effettuer`a l’identificazione (rivedere la descrizione del comando EOI): questa varr`a come interrogazione a tutti i dispositivi abilitati al polling parallelo, che resituiranno un bit, per un totale di un byte (8 bit) ricevuti. Interpretando questo byte, il controllore potr`a identificare quale linea ha effettivamente avanzato la richiesta, e cos`ı individuare chi ha mandato la SRQ.

Una volta terminata l’interrogazione, si deve terminare la procedura di polling parallelo mandando il comando PPU, in grado di deconfigurare i device riguardo questo tipo di interrogazione.

Capitolo 13

Analizzatore di stati logici

Progettare circuiti elettronici digitali o sistemi hardware/software non `e asso-lutamente semplice: molto spesso il progettista potrebbe commettere errori di vario genere, sia nella progettazione dell’hardware, che nell’integrazione tra hardware e software. Non solo: sistemi elettronici di questo genere sono soggetti ad una certa usura, per vari motivi; queste sono le cause che hanno portato alla necessit`a di ideare uno strumento elettronico in grado di analiz-zare lo stato digitale di un determinato sistema elettronico: l’analizzatore di stati logici.

Un sistema digitale, data l’essenzialit`a delle informazioni trasportate ed utilizzate per la determinazione di risultati (esclusivamente bit, ossia combi-nazioni di uni e zeri), utilizza molti fili per la trasmissione delle informazioni; il fatto che si abbia a che fare con informazioni transitorie, sia per quanto riguarda i dati regolari trasmessi che le anomalie, e il fatto che non si punti pi`u a studiare pochi segnali complessi, quanto un grosso numero di segnali binari, rende inadatto l’uso di strumenti classici, quali quelli utilizzati per i circuiti analogici. Sar`a dunque necessario un nuovo tipo di strumento, pi`u adatto al genere di esigenze introdotte da circuiti di tipo digitale.

Parlando di logic analyzer, o analizzatore di stati logici, spostiamo dunque notevolmente le nostre richieste rispetto a quelle che avevamo con uno qualunque dei dispositivi finora analizzati: non ci interessa pi`u effettuare misure accu-rate di tensione, o di corrente, dal momento che ci interessa esclusivamente valutare se un bit vale 0 o 1, interpretando se i livelli sono High o Low.

Potremmo pensare all’analizzatore di stati logici come una sorta di os-cilloscopio digitale, concettualmente parlando, ma molto pi`u specializzato: esso deve avere un numero molto elevato di ingressi, al fine di poter acquisire molti dati, relativi a molte differenti linee, per esempio nel caso di circuiti integrati, in modo da definire correttamente lo stato del circuito; deve essere in grado di interpretare un valore di tensione con risoluzione 1 bit: deve

es-sere quindi in grado di distinguere semplicemente 1 da 0. Dati n di questi ingressi, deve dunque essere in grado di presentare in uscita una sequenza di n stati logici, o di bit, o mnemonici legati ad un certo stato di bit: dal momento che trattiamo di fatto circuiti digitali, potrebbe risultare utile colle-gare, secondo convenzioni, determinate sequenze di bit con dei nomi, in grado di permetterci di riconoscerle facilmente; questi nomi vengono comunemente detti mnemonici. Dal momento che dobbiamo analizzare stati, in diversi momenti, servir`a una memoria molto grossa, in grado di immagazzinare un grosso numero di dati (e quindi di stati); servir`a infine una certa versatilit`a, nella scelta delle configurazioni di trigger, in modo da definire in modo molto versatile finestre temporali di osservazione dei dati. Serve una buona ver-satilit`a anche sotto il punto di vista delle funzioni utilizzabili, dal momento che in sistemi digitali potrebbero presentarsi anomalie di diverso tipo, come extra-bit dovuti a transizioni di un ingresso durante lo stesso periodo di clock (glitch).

13.1 Struttura e funzioni

L’analizzatore di stati logici come gi`a detto rappresenta una specializzazione di un oscilloscopio digitale: alla base di tutto vi sar`a un sistema di sonde e comparatori, in grado di rilevare in diversi punti del circuito diversi stati, e codificarli in una codifica binaria (1 o 0); questi valori verranno campionati, ed inseriti in una memoria tipo FIFO (ossia un registro a scorrimento); es-sendo FIFO, una volta riempita la memoria, verranno esplusi i primi valori inseriti, ed il contenuto di memoria continuer`a, di qui, ad aggiornarsi. Es-istono sostanzialmente due modalit`a di funzionamento di un analizzatore di stati logici:

• Modalit`a serie: si acquisisce il segnale su di un’unica linea, e cos`ı si

campionano i valori su di una stessa linea, acquisendo n campioni ed ottenendo in uscita una singola parola di n elementi, contenente gli n stati della linea studiata;

• Modalit`a parallelo: viene effettuata un’acquisizione molteplice su N

linee, in modo da ottenere N parole rappresentanti gli stati di N li-nee del circuito (dando quindi, volendo, un’idea pi`u ampia rispetto alla modalit`a serie di quello che sia lo stato del circuito); `e molto pi`u utilizzata, normalmente, della modalit`a serie.

Altra classificazione delle modalit`a di funzionamento di un analizzatore di stati logici viene effettuata in base al dominio di funzionamento dello strumento: esistono infatti, sotto questo punto di vista, due possibilit`a:

• Dominio del tempo (modalit`a timing); • Dominio dei dati (modalit`a data).

Nel documento Misure Elettroniche (pagine 184-188)