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 segnale trasduttore segnale elettrico trattamento del segnale grandezza fisica variabile segnale elettrico analogico andamento della grandezza fisica T andamento della temperatura in funzione del tempo andamento della tensione in funzione del tempo • • trasmissione a distanza di piccoli segnali 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 Esempio di applicazione : Waveform digitizers (digitizzatori di forme d’onda) Caratteristiche dei convertitori 1 Risoluzione • espressa in bit. Esempio : un ADC che codifica un ingresso analogico in 256 livelli discreti ha una risoluzione di 8 bit (28 = 256) • espressa in Volt. Esempio 1: o range compreso tra 0 e 10 volt o risoluzione dell'ADC di 12 bit: 212 = 4096 livelli di quantizzazione o risoluzione in Volt è 10 V / 4096=0.00244 V = 2.44 mV Esempio 2: o range compreso tra -10 e 10 volt o risoluzione dell'ADC di 14 bit: 214 = 16384 livelli di quantizzazione o risoluzione in Volt è 20 V / 16384=0.00122 V = 1.22 mV uscita digitale 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 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 linearità: La maggior parte degli ADC sono lineari, sono progettati per produrre in uscita un valore uscita funzione lineare del segnale di ingresso. digitale Un altro tipo comune di ADC è quello logaritmico 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 monotonicità : aumentando la tensione di ingresso deve aumentare l’uscita digitale (e viceversa) – se questo non avviene si ha un errore di monotonicità ADC non monotono 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 3 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 b-a differential error 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 Qualche esempio di 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 = 8.5. 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 = 0. 8. Sono stati necessari solamente 4 confronti • Lo stesso procedimento viene usato per la conversione di un segnale di tensione Va ≥ Vb uscita del comparatore alta • si fa il controllo bit per bit. bit successivo =1 • si pone A3 = 1 (MSB) Vb = output da DAC = 810 = 10002 si confronta Vb con Va (=8.5 V). • Se Va ≥ Vb 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 • Poiché Va ≤ Vb la logica di controllo pone A2 = 0 e A1 =1 Vb= 10V • Va ≤ Vb la logica di controllo pone A1 = 0 e A0 =1 Vb= 9V A questo punto Vb > Va A0 =0 la conversione è finita con appena 4 confronti (precisione di 1/2 bit) 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 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 quando il coefficiente ai = 0, l’interruttore Si è collegato a massa Convertitore D/A a resistenze pesate Vout R' R' R' - a n -1 a N -2 .... N -1 a 0 VR 2R 2 R R AO Supponiamo di lavorare in logica negativa, cioè il valore alto (1) è associato ad una tensione pari a 0V e il valore basso (0) è associato ad una tesnsione pari a -10 V INPUT ai MOSFET da un registro che immagazzina l’informazione digitalizzata, es. un FLIP FLOP, se in ingresso ho 1 avrò Q=1 e Q 0 così il MOSFET Q1 sarà abilitato e il Q2 interdetto e la resistenza R1 sarà collegata a VR, il contrario avverrà se in ingresso al FF ho 0, cioè avremo la resistenza R1 collegata a terra DIFETTI: stabilità ed accuratezza dipendono dalle resistenze e alla dipendenza dei componenti dalla temperatura ampio range di resistenze: per es. DAC a 10 bit con R = 10 kW 2N-1 R = 29 R = 5.12 MW. Difficile gestire accuratezza. R ha un peso 29 volte più importante della resistenza più grande (29 R) quindi, se la tolleranza su quest’ultima è il 10%, la tolleranza su quella da 10 kW dovrà essere 29 volte più piccola, cioè 0.02% !!! DAC a ladder si usano solo resistenze R e 2R ciascun nodo vede una resistenza 2R in qualunque direzione nodo 3: destra 2R complessivamente la basso 2R resistenza vista da 3 in basso e a destra è R nodo 2: destra R in serie con la resistenza vista da 3 2R si può estendere a tutti i nodi Immaginiamo tutti gli interruttori a terra a parte uno solo, collegato a VR. La tensione nel nodo corrispondente sarà data da VR meno la caduta di potenziale ai capi di 2R Vi =VR – 2R I = VR – 2R VR/3R = VR/3 in conclusione, qualunque nodo il cui interruttore sia chiuso su VR si troverà ad un potenziale VR/3. I=VR/3R Immaginiamo una configurazione in cui tutti i nodi sono a terra a parte il nodo 3. Vi =V3 = VR/3 = V+ = V- (sfruttiamo il principio del corto circuito virtuale all’ingresso dell’operazionale). poiché in R1 ed R2 scorre la stessa corrente avremo: (Vo – VR/3) 1/R2 = VR/3R1 Vo = VR/3 (R1+R2)/R1 = V Se l’unico nodo non a terra fosse il 2, la tensione al terminale non invertente sarebbe la metà di quella calcolata precedentemente: Vo = ½ VR/3 (R1+R2)/R1 = ½ V e così via, muovendosi verso sinistra, avremmo una tensione pari a metà di quella precedente. Per il principio di sovrapposizione possiamo scrivere, nel caso generale: 1 1 1 1 Vo V a3 a2 a1 ao V 23 a3 22 a2 21 a1 20 ao 2 4 8 8 1 1 1 1 Vo V a3 a2 a1 ao V 23 a3 22 a2 21 a1 20 ao 2 4 8 8 A meno di un fattore moltiplicativo, questa è la rappresentazione analogica del numero binario a3 a2 a1 a0 DIFETTO : 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.