Capitolo IX Convertitori di dati 9.1 Introduzione I convertitori di dati sono circuiti analogici integrati di grande importanza. L’elaborazione digitale dei segnali è alternativa a quella analogica e presenta diversi vantaggi rispetto a questa. E’ più economica, è più accurata, usa circuiti integrati digitali più semplici di quelli analogici. Inoltre i risultati possono essere presentati in un aveste migliore come, ad esempio, la misura di una tensione con display numerico. Infine subiscono una minore influenza da parte del rumore (ad esempio nelle comunicazioni si trasmette una sequenza di impulsi binari). In questo capitolo si esamineranno i circuiti di interfaccia fra i domini analogico e digitale. Campionamento Il principio alla base dell’elaborazione digitale dei segnali è quello del campionamento di un segnale analogico. La figura 9.1 illustra in una forma concettuale il processo con cui si ottengono campioni di un segnale analogico. L’interruttore (switch) si chiude periodicamente sotto il controllo di un segnale impulsivo periodico (clock). Il tempo di chiusura dello switch, τ, è relativamente breve ed i campioni ottenuti sono registrati (held) sul condensatore. Il circuito di Fig. 9.1 è noto come circuito sample-and-hold (S/H). Tra gli intervalli di campionamento, cioè durante gli intervalli hold, il livello della tensione del condensatore rappresenta i campioni del segnale. Ciascuno di questi livelli di tensione entra poi nel convertitore A/D, che fornisce un numero binario ad N bit proporzionale al valore del campione del segnale. 274 Figura 9.1 Processo di campionamento di un segnale analogico. (a) circuito “sample-and-hold”; (b) forma d’onda d’ingresso; (c) segnale campionamento; (d) segnale d’uscita Convertitori A/D e D/A come blocchi funzionali La figura 9.2 mostra la rappresentazione per blocchi funzionali di convertitori A/D e D/A. Figura 9.2 Convertitori A/D e D/A come blocchi circuitali 275 Il convertitore A/D (detto anche ADC) accetta un campione analogico vA e produce una parola digitale di N bit. di trasferimento Di contro, il convertitore D/A (detto anche DAC) accetta una parola digitale di n bit e produce un campione analogico. I campioni d’uscita del convertitore D/A sono spesso portati all’ingresso di un circuito sample-and-hold. All’uscita del circuito S/H si ottiene una forma d’onda a gradino come quella mostrata in figura 9.3. Figura 9.3 Forma d’onda a gradino all’uscita di un circuito sample-and-hold La forma d’onda a gradino può essere addolcita da un filtro passa-basso, dando origine alla curva mostrata nella figura 9.3. In questo modo si può ricostruire un segnale analogico d’uscita. Infine si noti che l’errore di quantizzazione di un convertitore A/D è equivalente a ± 1 del bit meno 2 significativo (bN). 9.2 Convertitori D/A La figura 9.4 mostra un semplice circuito per un convertitore D/A a N bit con rete resistiva pesata. Il circuito presenta una tensione di riferimento Vref, N resistori pesati in modo binario R, 2R, 4R, 8R,….., 2N-1R, N commutatori S1, S2, …….., SN ed un amplificatore operazionale con una resistenza di retroazione Rf = R/2. I commutatori sono controllati da una parola digitale D in ingresso a N bit, D= b1 b2 bN + 2 +!+ N 1 2 2 2 (9.1) dove b1, b2 … possono essere 1 o 0. 276 Si noti che bN è il bit meno significativo (LSB) e b1 è il bit più significativo (MSB). Nel circuito in Fig. 9.4 b1 controlla lo switch S1, b2 controlla S2 e così via. Quando bi = 0, lo switch Si è nella posizione 1 e quando bi = 1 lo switch è nella posizione 2. Figura 9.4 Convertitore D/A a N-bit che usa una rete resistiva opportunamente pesata Poiché la posizione 1 di tutti gli switch è la terra e la posizione 2 è la massa virtuale, la corrente attraverso ciascun resistore rimane costante al variare della posizione dello switch. Ciascuno switch controlla semplicemente dove va la corrispondente corrente: a massa (se il bit corrispondente è 0) oppure alla massa virtuale (se il bit corrispondente è 1). Le correnti che fluiscono nella massa virtuale si sommano e la corrente somma fluisce attraverso la resistenza di retroazione Rf. La corrente totale è quindi data da iO = Vref V V 2V b b b b1 + ref b 2 + ! N −ref1 b N = ref 11 + 22 + ! + NN R 2R R 2 2 2 R 2 (9.2) Quindi iO = 2Vref D , e la tensione d’uscita è data da R vO = −i O R f = − Vref D (9.3) (9.4) che è direttamente proporzionale alla parola D, come desiderato. Si può notare che l’accuratezza di un convertitore D/A dipende criticamente dalla: 1) accuratezza di Vref 2) precisione dei resistori pesati in modo binario 277 3) perfezione degli switch. Lo svantaggio della rete realizzata con resistori pesati in modo binario è che, per un numero elevato di bit, la differenza tra i valori delle resistenze più piccole e più grandi diventa notevole, il che rappresenta un problema nel processo di fabbricazione dei circuiti integrati. Ciò comporta anche una certa difficoltà nel mantenere la desiderata accuratezza nel valore dei resistori. Un notevole miglioramento si può ottenere implementando la rete illustrata di seguito. Rete R-2R La figura 9.5 mostra lo schema fondamentale di un convertitore D/A che utilizza una rete R2R. Figura 9.5 Configurazione di un convertitore D/A che usa una rete R-2R La resistenza vista ad ogni nodo, verso destra, è 2R. Per dimostrare ciò è sufficiente partire dall’ultimo blocco di resistenze (vedi figura 9.6). Figura 9.6 Resistenza equivalente vista verso destra da ciascun nodo della rete in figura 9.5 La resistenza vista da A verso destra è R + 2R//2R = 2R. Questo risultato può essere fatto propagare verso sinistra. Perciò la corrente che fluisce verso destra è uguale a quella verso il basso. Quindi la 278 corrente che arriva al nodo è il doppio della corrente che parte dal nodo verso il basso. Infatti risulta: I1 = 2I 2 e, ancora 2I 3 = I 2 = I1 e cioè I1 = 4I 3 e così via. 2 Pertanto si ha: I1 = 2I 2 = 4I3 = ! = 2 N −1 I N cioè le correnti sono pesate in modo binario, perciò: iO = Vref D. R Nei casi pratici le correnti I1, I2, ….. sono generate da BJT. 9.3 Convertitori A/D Ci sono varie tecniche di conversione A/D che differiscono per complessità circuitale e velocità. Convertitore a retroazione La figura 9.7 mostra un semplice convertitore A/D che usa un comparatore, un contatore “updown” ed un convertitore D/A. Figura 9.7 Convertitore A/D a retroazione Il circuito comparatore fornisce un’uscita che può assumere uno di due distinti valori: positivo quando il segnale differenza in ingresso è positivo, negativo quando tale segnale differenza è negativo. Se il contatore è azzerato, l’uscita vO del DAC è nulla e l’uscita del comparatore sarà a livello alto e, perciò, il contatore può contare gli impulsi di clock in modo crescente (up). Aumentando il conteggio, l’uscita del DAC aumenta ed il processo continua finché vO = vA dove il comparatore commuta ed il contatore interrompe il conteggio. A questo punto l’uscita del contatore è l’equivalente digitale del segnale analogico in ingresso. 279 Il convertitore è lento ma segue le variazioni del segnale in ingresso con molta rapidità. Convertitore a doppia pendenza Uno schema di convertitore A/D ad elevata risoluzione (12-14 bit) ma a bassa velocità è mostrato in figura 9.8. Figura 9.8 Metodo di conversione A/D a doppia pendenza Si ipotizzi che il segnale d’ingresso vA sia negativo. Prima dell’inizio del ciclo di conversione, si chiude S2 in modo da far scaricare C e porre v1 = 0. Il ciclo di conversione inizia chiudendo S1 su 280 vA ed aprendo S2. In questo modo si ha una corrente I = aumenta con pendenza vA uscente dall’integratore. Quindi v1 R I vA 1 = . Contemporaneamente il contatore comincia a contare gli impulsi C RC da un clock a prefissata frequenza. Questa fase del processo di conversione dura un prefissato intervallo di tempo T1. Al tempo T1 il contatore ha contato nref impulsi. (ad esempio, per N bit si ha nref = 2N). Si può scrivere Vpeak T1 = vA RC (9.5) con Vpeak tensione di picco all’uscita dell’integratore. Alla fine di questa fase, il contatore è riportato a 0. All’istante t = T1, si collega S1 a Vref > 0. La corrente nell’integratore inverte il segno ed è uguale a Vref/R. Quindi v1 decresce con pendenza Vref/RC. Contemporaneamente il contatore è abilitato e conta gli impulsi dal clock a frequenza fissa. Quando v1 raggiunge lo zero, il comparatore segnala alla logica di controllo di bloccare il contatore. Indicando con T2 la durata della seconda fase della conversione, si ha Vpeak T2 = Vref RC (9.6). Le equazioni (9.5) e (9.6) possono essere combinate per dare v T2 = T1 A Vref (9.7). Poiché nref è proporzionale a T1 e n, che è conteggio alla fine di T2, è proporzionale a T2, si ha n = n ref vA Vref (9.8). T 1 Si ricorda che v1 = − 1 1 1 v A dt = − ( − v A )t =T1 ⋅ T1 ∫ RC 0 RC 281 Quindi il contenuto del contatore, n, alla fine del processo di conversione è l’equivalente digitale di vA. Il convertitore a doppia pendenza mostra un’elevata accuratezza poiché le sue prestazioni sono indipendenti dal valore preciso di R e C. Ci sono molte realizzazioni del metodo a doppia pendenza, alcune delle quali fanno uso di tecnologia CMOS. Convertitore parallelo o flash Lo schema di conversione A/D più veloce è quello del convertitore flash, illustrato in figura 9.9. Figura 9.9 Conversione A/D flash Concettualmente la conversione flash è molto semplice. Essa utilizza 2N-1 comparatori per confrontare il livello del segnale in ingresso con ciascuno dei 2N-1 possibili livelli di quantizzazione. Ad esempio, nel caso di codifica a quattro bit, si possono rappresentare 16 diversi valori (livelli di quantizzazione) mediante altrettante configurazioni da 0000 a 1111, a cui corrispondono nel sistema decimale, i valori da 0 a 15, cioè da 0 a 2N-1. Le uscite dei comparatori sono codificate da un circuito logico per fornire una parola a N bit. Una conversione completa può essere ottenuta in un ciclo di clock. La velocità dei circuito viene pagata con un’elevata complessità circuitale. 282