CONVERTITORI ANALOGICO-DIGITALI (ADC) e DIGITALE-ANALOGICI (DAC) Segnali analogici : variano in modo continuo nel tempo e possono assumere tutti i valori compresi in un certo intervallo X(t) Segnali digitali: possono assumere valori discreti in istanti di tempo discreti. La discretizzazione del tempo può essere asincrona o sincrona con un clock X[n] +2 +1 t t -1 -2 • • In campo digitale le informazioni sono organizzate secondo una struttura “binaria” cioè si utilizzano due soli valori logici “0” e “1”. I due valori logici vengono associati a intervalli di tensione che variano a seconda della tecnologia utilizzata per la costruzione del circuito segnali analogici – segnali digitali grandezza fisica trasduttore segnale elettrico trattamento del segnale si può definire segnale una qualunque grandezza fisica variabile a cui è associata una informazione segnale elettrico analogico andamento analogo all’andamento della grandezza fisica di partenza T andamento della temperatura in funzione del tempo andamento della tensione in funzione del tempo • • in molti casi si lavora con piccoli segnali che devono essere trasmessi a distanza diversi stadi di amplificazione introduzione del rumore degradazione del segnale. conversione analogico – digitale riduce la distorsione del segnale. segnale digitale: sequenza di 1 e 0 per quanto sia distorto il segnale, la sequenza si ricostruisce in modo fedele. Applicazione tipica : Waveform digitizers (digitizzatori di forme d’onda) rappresentazione numerica di forme d’onda la forma del segnale viene “campionata” a intervalli di tempo equispaziati e molto ravvicinati (fino a qualche picosecondo) - clock l’ampiezza del segnale in questi intervalli di tempo viene convertita in un numero binario. Convertitori Digitale - Analogico • immaginiamo di voler convertire un’informazione binaria (uscita di un circuito digitale, per es. N Flip-Flop) in una tensione (segnale analogico) Vout Vout V 2 N-1 a N-1 2 N-2 a N-2 .... 2 2 a 2 21 a1 20 a 0 V è un coefficiente di proporzionalità legato al range di tensioni che vogliamo in uscita e i coefficienti ai valgono 0 o 1 (uscita bassa o alta del FF) circuito sommatore Ro = R e R1 =R/2 Vout = -(Vo+2V1) se Vo e V1 sono le uscite di un registro a 2 bit Vi = 0 livello basso numero binario 0 Vi = 1 livello alto numero binario 1 abbiamo costruito un convertitore D/A a 2 bit Vo = 1, V1 = 0 Vout =-1; Vo = 0, V1 = 1 Vout = -2 ecc. Si può estendere il discorso ad un numero maggiore di bit se il coefficiente ai = 0, l’interruttore Si è collegato a massa DIFETTI: stabilità ed accuratezza dipendono dalle resistenze e dalla dipendenza dei componenti dalla temperatura sono necessarie resistenze molto grandi, per es. DAC a 12 bit con R = 2.5 kW 2N-1 R = 211 R = 5.12 MW. Difficile gestire accuratezza. Vout R' R' R' a n 1 a N 2 .... N 1 a 0 VR 2R 2 R R resistenza = 2R verso qualunque direzione da ogni nodo tensione in ogni nodo: Vi = VR – 2RI dove I = VR/(3R) Vi = VR – 2R VR/(3R) = 1/3 VR in qualunque nodo connesso a VR il potenziale è Vi =1/3 VR Vo = AV Vi = (R1 + R2)/ R1 * VR/3 =V’ DAC a ladder guadagno di un AO in configurazione non invertente a3 = 1 tensione nel nodo 3 = VR/3 Vi = VR/ 3; Vo = (R1 + R2)/ R1*Vi = V’ a2 = 1 tensione nel nodo 2 = VR/3 Vi = 1/2 VR/ 3 (caduta di tensione su R tra nodi 2 e 3 e sul parallelo di 2R e 2R tra nodo 3 e massa) Vo = 1/2 V’ analogamente: a1 = 1 Vi = 1/4 VR/ 3 Vo = 1/4 V’ ecc… Principio di sovrapposizione Vo = V’ (a3 +1/2 a2 + 1/4 a1 + 1/8 ao) caso generale : Vo = V’ (aN-1 +1/21 aN-2 + 1/22 aN-3 + …1/2N-1 ao) problema : ritardo nella propagazione del segnale associato alla chiusura degli interruttori per un breve intervallo di tempo variabilità di valori per ovviare a questo inconveniente si può usare una configurazione diversa in cui gli interruttori sono tutti collegati direttamente all’ingresso dell’operazionale il funzionamento è analogo a quello descritto prima, ma non esiste più il problema dei ritardi. CONVERTITORI ANALOGICO-DIGITALI (ADC) ADC a contatore • convertitore semplice ed economico, ma lento • si usano : un contatore, un DAC ed un comparatore • il contatore genera una sequenza di numeri binari partendo da zero fino al max valore che il numero di bit consente. • ciascun numero viene convertito dal DAC in segnale analogico che viene inviato al comparatore e confrontato con il segnale. • l’uscita dal comparatore è positiva fin quando il segnale da convertire è maggiore del segnale in uscita dal DAC. • quando il comparatore dà un segnale negativo, il contatore viene bloccato e il numero letto all’uscita del contatore è una stima approx per eccesso del segnale in esame. • sono necessari fino a 2N confronti • errore di quantizzazione: metà del bit meno significativo es.: ADC a 4 bit, con una risoluzione di 1 bit/100 mV, errore = ± 50 mV ADC ad approssimazioni successive • consente di ridurre drasticamente il numero di confronti e quindi di velocizzare l’operazione • procedura generale per trasformare un numero decimale compreso tra 0 e 15, in binario, per esempio k = 9. 1. dividiamo in due l’intervallo tra 0 e 15. A quale intervallo appartiene il numero? Se 0 ≤ k < 8 bit 3 = 0; se 8 ≤ k <16 bit 3 = 1 2. nel nostro caso dividiamo ancora in due l’intervallo 8-16. 3. Se 8 ≤ k <12 bit 2 = 0; se 12 ≤ k <16 bit 2 = 1. 4. dividiamo in due l’intervallo 8 -12 5. Se 8 ≤ k <10 bit 1 = 0; se 10 ≤ k <12 bit 1 = 1. 6. dividiamo in due l’intervallo 8 -10 7. Se 8 ≤ k <9 bit 0 = 0; se 9 ≤ k <10 bit 0 = 1. 8. In conclusione : k in binario = 1001 9. Sono stati necessari solamente 4 confronti • • 1. 2. 3. 4. Lo stesso procedimento viene usato per la conversione di un segnale di tensione si fa il controllo bit per bit (Vb = tensione di riferimento; Va = tensione da misurare) si pone A3 = 1 (MSB) Vb = output da DAC = 8V = 10002 si confronta Vb con Va. Se Vb ≤ Va la logica di controllo lascia il bit A3 a 1, altrimenti lo pone =0 impulso successivo del contatore ad anello pone A2 =1 Vb= 12V. Vb> Va la logica di controllo pone A2 = 0. A1 =1 Vb= 10V; Vb > Va la logica di controllo pone A1 = 0 A0 =1 Vb= 9V A questo punto Vb ≤ Va A0 rimane =1 e la conversione è finita con appena 4 confronti ADC flash • si confronta la tensione in esame con un numero finito di livelli di tensione predeterminati. • confronto contemporaneo ADC molto veloce logica di controllo e • si determina quale sia l’intervallo, codificatore delimitato da due tensioni di soglia adiacenti che contiene il valore della tensione di ingresso. • le uscite dei comparatori hanno un livello basso ( 0) se la soglia è superiore alla tensione di ingresso, hanno un livello alto (1) se la soglia è inferiore • hardware complesso: 2N-1 comparatori, per N bit Caratteristiche dei convertitori 1 risoluzione: dipende dal numero di bits del convertitore. 8 bit 256 livelli risoluzione = 1/256 ≈ 4% uscita 12 bit 4096 livelli risoluzione ≈ 0.24 % digitale linearità : caratteristica ideale di un Convertitore A/D (o D/A, basta scambiare ascissa ed ordinata) fit con una retta – scostamento dalla linearità < variazione di tensione corrispondente a metà del bit meno significativo Per esempio per 12 bit : 1/2 * 1/4096 ≈ 1.2 10-4 111 110 101 100 011 010 001 000 straight line 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 ingresso analogico ADC non monotono monotonicità : aumentando la tensione di ingresso deve aumentare l’uscita digitale (e viceversa) – se questo non avviene si ha un errore di monotonicità 111 110 101 100 011 010 001 000 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 Caratteristiche dei convertitori 2 caratteristica ideale Errori di OFF SET : la tensione di OFFSET è quella misurata quando tutti gli ingressi digitali sono 0 Si misura generalmente in mV, mV o frazione del bit meno significativo. 111 110 101 100 011 010 001 000 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 offset error +1½ LSB Errori di non linearità: è la differenza tra la variazione di tensione letta in uscita e quella ideale (cioè quella corrispondente alla variazione di 1 LSB (bit meno significativo) Ad es.: un DAC per il quale, al variare di 1 LSB si ottiene una variazione di tensione corrispondente ad 1.5 LSB ha un errore di non linearità pari a mezzo LSB. caratteristica ideale 111 110 101 100 011 010 001 000 a b ba differential error 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8