La risoluzione della conversione AD.
La risoluzione di un ADC è la variazione minima del
segnale di ingresso in grado di determinare la variazione del codice digitale di
uscita.
Dipende direttamente dal numero di bit del codice di uscita e per tale motivo
viene fornita come numero dei bit del codice di uscita.
Abbiamo detto che maggiore è il numero dei comparatori, maggiore è la
finezza tra un gradino ed il successivo. E a volte può essere necessario che la conversione da analogico a digitale
sia effettuata con una elevata precisione. Ad esempio, una bilancia pesa persone
potrà essere precisa al grammo, ma la bilancia di un farmacista che realizza
ricette di medicamenti dovrà essere precisa almeno mille volte di più.
Se immaginiamo una scala, quanto maggiore sarà il numero dei gradini, tanto
minore sarà l' altezza di ognuno e tanto maggiormente la scala si approssimerà
ad un piano inclinato.
Quindi, se ho a disposizione un numero maggiore di comparatori, potrò apprezzare
una differenza minore tra i vari passi della conversione.
range di misura |
risoluzione |
in bit |
potenze di 2 |
frazione del range di misura
apprezzabile (1 bit) |
0- 5V
|
8 bit |
28= 256 |
5 / 256 = 19,53 mV |
10 bit |
210= 1024 |
5 / 1024 = 4.88 mV |
12 bit |
212= 4096 |
5 / 4096 = 1.22 mV |
Si hanno così convertitori AD a 6, 8, 10, 12, 14, 16, 24 e più bit.
All' interno dei microcontroller embedded, generalmente i convertitori ADC sono
del genere SAR, ad approssimazioni successive ed hanno risoluzione compresa tra 8 e 12
bit, più che adeguata all' impiego previsto per questi dispositivi,
ovvero l' automatizzazione di processi limitati.
Volendo risoluzioni maggiori occorrerà utilizzare ADC esterni, tenendo presente
che elevate risoluzioni richiederanno elevata potenza di calcolo per le
elaborazioni successive, cosa spesso al di fuori della destinazione di un
microcontroller embedded.
La ragione per cui i valori della risoluzione sono multipli di due è quella
già accennata, ovvero la necessità di codificare il risultato della
conversione per l' impiego in sistemi che fanno uso di matematica binaria,
ovvero in base 2.
Risoluzione
[bit] |
Equivalente
decimale |
Massimo valore |
binario |
esadecimale |
6 |
64 |
1000000 |
40 |
8 |
256 |
11111111 |
FF |
10 |
1024 |
1111111111 |
3FF |
12 |
4096 |
111111111111 |
FFF |
14 |
16384 |
11111111111111 |
3FFF |
16 |
65536 |
1111111111111111 |
FFFF |
24 |
16777216 |
111111111111111111111111 |
FFFFFF |
Va considerato con attenzione il fatto che se,
teoricamente, la conversione sarebbe estendibile all' infinito, in pratica
questo non è possibile, sia per ragioni di costo, sia per ragioni di velocità
di esecuzione, sia perchè tanto più la definizione è elevata, tanto più
sarà necessario tenere conto del rumore elettrico che si genera nei dispositivi
elettronici e delle imperfezioni nel segnale da misurare che potrebbero falsare
la misura.
E quanto maggiore è la risoluzione voluta, tanto più critico sarà il circuito
della sezione analogica, in cui l' assenza assoluta di ripple nelle tensioni di
riferimento, l' uso di masse separate per la sezione analogica e quella digitale
e l' implementazione di una serie di precauzioni specifiche, sono cose
indispensabili per ottenere una misura sensata nelle frazioni più piccole.
Riferendosi ad un fondo scala di 10V:
Risoluzione
[bit] |
Equivalente
decimale |
Definizione di uno step (1bit) |
6 |
64 |
156 mV |
8 |
256 |
39,065 mV |
10 |
1024 |
9.76 mV |
12 |
4096 |
2.44 mV |
14 |
16384 |
0.61 mV |
16 |
65536 |
0.15 mV |
24 |
16777216 |
0.00059 mV |
E' evidente che per ottenere conversioni sensate a più di 12 bit occorre che
le componenti di disturbo del segnale di ingresso siano molto al di sotto del
millivolt se non del microvolt, il che rende non semplici circuitalmente i front
end per convertitori del genere.
Una conversione a 24 bit, che avrà l' ampiezza di uno step dell' ordine dei
microvolt, in un circuito reale richiederà una delicata e precisa realizzazione,
anche solo dei circuiti stampati, per far si che rumore e disturbi sovrapposti
al segnale rientrino in questo range (il che non è semplice...). Senza
considerare che il segnale stesso facilmente potrà essere affetto da disturbi
di entità ben maggiore della risoluzione. E potrà richiedere complessi
algoritmi nelle elaborazioni successive del risultato della conversione per
correggere il problema.
Così, nella pratica, la risoluzione di un convertitore viene limitata dal rapporto tra
il segnale ed il rumore elettrico sovrapposto (rapporto segnale/rumore - S/N ratio)
al segnale in ingresso.
E, sfortunatamente, il rumore elettrico è praticamente
sempre presente, anche solo a causa della vicinanza di altri circuiti elettrici
che inducono tensioni indesiderate nella misura.
Se è presente troppo rumore all'ingresso
analogico, sarà impossibile convertire con accuratezza oltre un certo
numero di bit di risoluzione. Anche se l'ADC produrrà un valore, questo
non sarà accurato essendo i bit meno significativi dovuti più al rumore che
non al segnale (il rapporto S/N dovrebbe essere di circa 6dB per bit).
Ad esempio, se alla tensione di ingresso, nel range tra 0 e 5 V di un ADC a 10
bit si sovrappone un ripple di 20 mV, dovuto alla
cattiva qualità della sorgente, a causa dello scarso filtraggio oppure ad
accoppiamenti indesiderati con line in ca, motori, generatori, trasmettitori, ma
anche alla scarsa qualità della tensione di riferimento della conversione, il
valore digitale in uscita corrisponderà sempre al valore analogico di ingresso,
ma gli ultimi 2-4 bit (meno significativi) perderanno il loro senso, in
quanto dovuti al ripple. Nelle stese condizioni, un ADC a 24 bit sarà
assolutamente inutilizzabile: i bit meno significativi della
conversione, tanti quanto maggiore è il rumore presente, non saranno
utilizzabili e quindi l' impiego di un convertitore a risoluzione elevata sarà
inutile.
Una conversione ad elevata risoluzione potrà essere in pratica ridotta
significativamente dalla cattiva qualità del segnale.
In questi casi occorre intervenire con soluzioni circuitali hardware tali da
riportare il rumore entro limiti accettabili (filtri, cavi schermati,
disaccoppiamenti tra le alimentazioni, separazione delle masse, miglioramento
della Vref, ecc) o, nel caso di rumore il cui andamento è identificabile,
procedere alla sua eliminazione con un filtraggio software.
Questa ultima soluzione si rende necessaria nel caso di campionamenti i cui
valori possono essere resi errarti dalla presenza di rari disturbi casuali,
attraverso medie, decimazioni e algoritmi vari.
Va tenuto presente, però, che l' applicazione di un filtraggio software
richiede spesso un consistente numero di istruzioni e questo riduce le
prestazioni del sistema; qui, il ricorrere a core DSP per il processore (con
elevata potenza di calcolo, quindi, dato che gli algoritmi citati possono
richiedere masse di calcoli consistenti) può essere l' unica via ragionevole
per risolvere il problema. A questo riguardo va ricordato che il costruttore dei
microcontroller può mettere a disposizione librerie specifiche per il
trattamento DSP di particolari categorie di segnali.
E, in ultimo, va tenuto conto, almeno in relazione ai convertitori SAR, che un aumento
della risoluzione corrisponde ad un aumento degli N bit del registro e quindi ad
un aumento dei colpi di clock necessari al completamento della conversione; in
generale:
più sono i bit della
risoluzione, più la conversione è lenta a parità di clock. |
Pertanto non ha senso selezionare un ADC con risoluzione elevatissima se l'
applicazione non lo richiede, dato che si deve tener conto non solo del tempo di
conversione, ma anche del carico del
software per la gestione dei risultati e del costo del front end analogico.
Così pure, la velocità di conversione potrà essere un valore più determinante
della risoluzione.
Ovvero, la scelta della combinazione risoluzione-velocità di conversione va
fatta in base alle specifiche dell' applicazione; l' impiego di ADC con
risoluzione elevata di per se non aumenta la qualità della misura se non
accompagnata dalle misure circuitali opportune. E un ADC estremamente
veloce non serve in una applicazione come il controllo dello stato di una
batteria.
|