Tutorials - Elettronica

 

 

La conversione AD


FREQUENZA DI CAMPIONAMENTO

Un segnale analogico è continuo nel tempo e la sua conversione digitale corrisponde ad un flusso discreto di dati. La frequenza con cui i valori sono campionati è chiamata sampling rate del convertitore.
Il concetto è che un segnale che varia con continuità in una banda limitata può essere campionato e poi riprodotto esattamente dai valori tempo discreti con un algoritmo di interpolazione, se la frequenza di campionamento è almeno pari al doppio della banda del segnale (Teorema di Nyquist-Shannon). 

Un circuito d'ingresso detto sample/hold (S/H) svolge questo compito - in generale si usa un condensatore per immagazzinare la tensione del segnale da misurare e un interruttore elettronico per disconnettere il condensatore dall'ingresso e passarlo al convertitore vero e proprio. Molti ADC realizzati su circuiti integrati dispongono del sottosistema di S/H internamente, ma esistono intergrati specifici per questa applicazione.
Il funzionamento è il seguente:

  • si applica l' ingresso del S/H alla tensione di misura e lo si mantiene collegato per un tempo sufficiente alla carica del condensatore di sample
  • a questo punto si disconnette il condensatore dall' ingresso e lo si collega all' ADC

In sostanza l' ADC converte non il valore della tensione di ingresso in un dato istante, ma la sua "copia" presente nel condensatore.

Questa procedura è necessaria in quanto un ADC, per quanto veloce, non può effettuare una conversione istantanea. Allora è facile capire il valore d'ingresso deve necessariamente rimanere costante durante il tempo in cui il convertitore esegue la conversione (chiamato tempo di conversione o conversion time). Se la tensione di ingresso varia durante la conversione, ad esempio per successive approssimazioni, è chiaro che il valore del risultato finale non avrebbe senso.

In altre parole, avendo a che fare con grandezze variabili, va tenuto presente che convertire un valore analogico in uno digitale vuol dire "campionarlo", ovvero prelevarne un "campione" con una cadenza adeguata. Il tempo di acquisizione della tensione da parte del S/H si chiama tempo di campionamento (sample time).
Il sample rate, ovvero quante conversioni sono possibili in una certa unità di tempo dipende sia dal sample time, sia dal tempo impiegato dal convertitore per fornire il risultato digitale.
Questo tempo può essere critico o fondamentale per varie applicazioni, ovvero quelle in cui è necessario seguire le variazioni del segnale di ingresso, sopratutto allo scopo di riprodurlo.

Ne abbiamo un esempio con una pellicola cinematografica:  se i fotogrammi ripresi si succedono ogni 10 millisecondi, questo è più che adeguato per far si che l' occhio percepisca l' immagine proiettata come in movimento, ma vuol anche dire che tra un fotogramma ed il successivo quanto è successo nella realtà è andato perso.
Occorrerà dunque che la cadenza del "campionamento" avvenga in modo adeguato al fenomeno che si vuole osservare. Con un esempio, se vogliamo seguire una corsa ad ostacoli, una normale ripresa con fotogrammi che si succedono ogni decina di millisecondi è adeguata; ma se vogliamo seguire il percorso di un proiettile, occorrerà una velocità di campionamento molto maggiore. 
Quindi, se voglio seguire un segnale lento, occorre una cadenza di campionamento lento. Se devo seguire un segnale in veloce variazione, il campionamento dovrà essere proporzionalmente veloce per non perdere momenti significativi dell' evento.

Al limite, se devo valutare una grandezza statica, oppure la misura è in relazione ad altri eventi, possono non occorrere frequenze di campionamento particolari, ma bastare il campionamento nel momento in cui ci serve il dato. 

Come abbiamo detto, in generale, possiamo considerare che il tempo base della conversione sia costituito da due componenti:

  • tempo di campionamento
  • tempo di conversione

A queste, però, va aggiunti

  • il tempo necessario all' assestamento del sistema, valutabile in funzione del clock e, sopratutto, 
  • il tempo necessario al processore per avviare il processo e per recuperare il dato digitale in uscita: è facile comprende che ogni operazione del processore coinvolge una o più istruzioni, ognuna delle quali richiede un certo tempo, che dipende dal clock principale della CPU.

Se il clock a cui lavora il processore non influisce sulla velocità della conversione, influisce invece sulle operazioni "collaterali" alla conversione, per cui maggiore è la velocità del clock del processore, minore sarà il tempo necessario a svolgere una istruzione e minore quindi sarà il tempo necessario per le operazioni di settaggio e di avvio dell' ADC e per la lettura dei risultati.
Da notare che la conversione di un ADC SAR è praticamente "automatica" ed una volta avviata procede da sola senza bisogno di alcun controllo da parte del processore, cadenzata dal clock applicato; però, il recupero del dato in uscita richiede che si tenga in qualche modo sotto controllo il flag EOC e, una volta trovatolo attivo, si effettui la lettura del dato. Una gestione in polling dell' evento richiede un minimo numero di istruzioni, ma impegna il processore, mentre una gestione in interrupt lo lascia libero per altre attività, ma risente della latenza tipica. Anche le operazioni di caricare in accumulatore il risultato della conversione, trasferire i dati in memoria, azzerare il flag per la conversione successiva, ecc, sono pure esse da considerare. 
Ed è evidente che maggiore sarà la velocità del clock principale del processore, minori saranno questi tempi, ma maggiore il consumo energetico. 


A questo riguardo va ricordato, a scanso di equivoci, che il clock del SAR e quello del processore possono essere differenti, anche quando derivano dallo stesso generatore di clock. Solitamente quello della conversione è una frazione di quello della CPU.
Ovvero, ad esempio, il clock della CPU in un PIC potrà essere 40 MHz, ma il clock del modulo ADC non potrà superare i 625 kHz.

Inoltre va considerato che, in generale, il processore si troverà a dover fare molte cose, di cui la gestione della conversione AD è una delle tante e questo può presentare ostacoli nel raggiungimento reale di rate di conversione elevati
A questo proposito, i microcontroller dotati di convertitori veloci hanno in corrispondenza una gestione complessa della memoria: dove non sono implementati veri sistemi di DMA, si ricorre a registri FIFO che possono accumulare automaticamente i risultati di più conversioni AD, consentendo al micro di "raccoglierli" nel momento più opportuno.


 

 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 14/09/11 .