Il Convertitore Digitale – Analogico ( DAC ) • Il convertitore digitale-analogico è un componente elettronico utilizzato per convertire dati numerici codificati in forma binaria in segnali elettrici. • Il convertitore DAC accetta in ingresso un numero binario ad es. un codice numerico con otto ingressi e fornisce all’uscita una tensione ad esso proporzionale • In pratica sarà in grado di produrre una determinata differenza di potenziale in funzione di un valore numerico che viene caricato all’ingresso; Es: ad un valore pari ad 00000001 corrisponderà una tensione di uscita di 0,1 Volt, ad un valore di 00000010 avremo 0,2 Volt e così via. • Si definisce risoluzione la distanza tra un livello e l’altro ed è indicata da una costante di proporzionalità detta Quanto di tensione q dove: (con 8 bit in ingresso) q=VFS/256 con VFS = tensione massima (Fondo Scala) in uscita Il Convertitore Digitale – Analogico ( DAC ) • Si inizia dalla tensione massima o di fondo scala o di riferimento che viene applicata esternamente e viene divisa ripetutamente per 2 mediante blocchi divisori • Tutti i segnali vengono condotti ad un blocco sommatore e il valore della tensione in uscita sarà proporzionale al numero binario in ingresso. Bit alto=1 -> chiusura del circuito -> passaggio del segnale VFS / 2n Bit basso=0 -> apertura del circuito -> il segnale viene bloccato Vediamo uno schema realizzativo per determinare la relazione che lega ingresso e uscita ed evidenziare le differenze tra caso reale e ideale. Esempio a 8 bit Chiuso se b7=1 Vfs Vfs/2 :2 Chiuso se b6=1 Vfs/4 :2 Vfs/8 Chiuso se b5=1 :2 … Vfs/256 :2 Chiuso se b0=1 S O M M A Vout Significato e importanza del quanto q • Il quanto q è una costante di proporzionalità che rappresenta il valore minimo di tensione che può costituirsi all’uscita del DAC. • q rappresenta anche l’intervallo di tensione tra due livelli digitali successivi • Nella conversione la tensione di uscita varierà non in modo continuo (caso ideale) ma in modo discreto • q indica l’accuratezza della conversione, detta anche risoluzione del DAC: q piccolo maggiore risoluzione Significato e importanza del quanto q • Esempio: si vuole convertire un range di tensione da 0 a 10,24Volt con 8 bit si avranno dei gradini di tensione pari a 10,24 / 256 = 40 mV quindi una risoluzione q = 40 mV • All'aumentare della risoluzione, però, corrisponde un maggior numero di elaborazioni per ottenere la tensione d'uscita; in altre parole, più è elevata la risoluzione del DAC e più la sua elaborazione ne risulterà rallentata. • La scelta della risoluzione dovrà obbligatoriamente tenere conto della velocità del dispositivo impiegato, rispetto all'utilizzo al quale è destinato. Digitale Analogico Analogico Digitale Il Convertitore Analogico - Digitale ( ADC ) • Il convertitore analogico-digitale (Analog to Digital Converter ) è un componente elettronico in grado di convertire i valori continui di un segnale d’ingresso analogico v(t) in valori digitali (numeri binari) effettuando un campionamento del segnale stesso. • Per effettuare la conversione occorre un certo tempo detto Tempo di conversione Tconv • Al convertitore ADC non affluiscono direttamente i valori del segnale ma i valori del segnale dopo il campionamento o meglio i valori del segnale mantenuto a una tensione y(t) • La corrispondenza fra i valori analogici y(t) e le cifre binarie in uscita è definita come caratteristica del convertitore. •Quanto (passo) q=VFS / 2R R = numero di uscite digitali o risoluzione del ADC N.B. Il tempo di conversione deve essere inferiore al tempo di campionamento in modo che nel tempo di attesa tra l’arrivo di un campione e il successivo, il convertitore ha il tempo per la conversione del segnale. Il Convertitore Analogico - Digitale ( ADC ) Risoluzione La risoluzione di un convertitore indica il numero di valori discreti che può produrre. È usualmente espressa in bit. Per esempio, un ADC che codifica un ingresso analogico in 256 livelli discreti ha una risoluzione di 8 bit, essendo 28 = 256. La risoluzione può anche essere definita elettricamente, ed espressa in volt. La risoluzione in volt di un ADC è uguale alla minima differenza di potenziale tra due segnali che vengono codificati con due livelli distinti adiacenti. Esempio 1: Range compreso tra 0 e 10 volt Risoluzione dell'ADC di 12 bit: 212 = 4096 livelli di quantizzazione La differenza di potenziale tra due livelli adiacenti è: 10 V / 4096=0.00244 V = 2.44 mV Esempio 2: Range compreso tra -10 e 10 volt Risoluzione dell'ADC di 14 bit: 214 = 16384 livelli di quantizzazione La differenza di potenziale tra due livelli adiacenti è: 20 V / 16384=0.00122 V = 1.22 mV Il Convertitore Analogico - Digitale ( ADC ) • Accuratezza • L'accuratezza dipende dall'errore della conversione. Questo errore è formato da due componenti: un errore di quantizzazione e un errore di non-linearità. Questi errori sono misurati con un'unità chiamata LSB (least significant bit = bit meno significativo) ed indica fino a che punto i bit rappresentano segnale e quanti siano solo rumore. • Esempio: In un ADC a 8 bit, un errore di 1 LSB è pari ad un errore di 1 / 256 ossia circa del 0.4%; è un modo per dire che l'ultimo bit è causale. In un ADC a 16 bit con un errore di 4LSB significa che soli 12 bit rappresentano segnale e gli ultimi 4 sono eliminabili senza perdita di informazione. • L'errore di quantizzazione è dovuto alla risoluzione finita dell'ADC ed è una imperfezione intrinseca di tutti i tipi di ADC. La grandezza dell'errore di quantizzazione su un campione è compresa tra zero e un LSB. Tutti gli ADC soffrono di errori di non-linearità causati da imperfezioni fisiche, facendo deviare la loro l'uscita da una funzione lineare (o da un'altra funzione, in caso di ADC volutamente non-lineari). Questi errori possono a volte essere attenuati con una calibrazione. Un problema che riguarda gli ADC è legato al fatto che la conversione del dato in formato digitale prevede un tempo di conversione finito tC per cui per un corretto funzionamento del circuito si suppone che il valore di tensione rimanga costante per il periodo indicato. • All’atto pratico a monte del circuito quantizzatore si pone un sample & hold in modo da convertire un valore fisso campionato ad un dato istante. V N VC S&H QUANTIZZATORE M CODIFICATORE BINARIO • Occorre che sia verificato il teorema del campionamento di Shannon per evitare la perdita di informazioni. f C 2 fS max N.B. Tempo di conversione< Tempo di campionamento In questo caso occorre che il clock digitale sia molto veloce rispetto alle variazioni della forma d’onda da convertire altrimenti si può verificare una perdita dell’aggancio e ciò che risulta è che i dati digitali non sono più rappresentativi della forma d’onda in ingresso. Indicando con Ts il tempo di conversione e Tc il tempo di Campionamento occorre avere Ts Tc Interfacciamento tra ADC ed elaboratore • Un convertitore analogico digitale può essere gestito via software inviandogli gli opportuni controlli e prelevando, dalle otto linee dei dati, il dato digitale convertito. • E’ necessario, per questo, interfacciare il convertitore al sistema di elaborazione, realizzando un collegamento fisico(hardware) tra le linee interne del sistema di elaborazione e i terminali del convertitore coinvolti nel processo. Catena per l’acquisizione dei dati analogici Trasduttore Condizionatore filtro mux S/H A/D CPU Conversione analogico - digitale - La qualità della conversione.. Segnale in forma numerica + errore di quantizzazione Vin ADC DAC 8 bit Segnale 8 bit 28=256 livelli Esempio: analogico dal • Vin max=3 Volt => Risoluzione 3/256 = 0.01Volt trasduttore • Vin max=10Volt => Risoluzione 10/256 = 0.04Volt Vmax / 2n : intervallo di quantizzazione Segnale analogico ricostruito dal DAC intervallo di quantizzazione Dove n è il numero di bit del campionatore Con risoluzione maggiore di 8 bit avremmo ottenuto un risultato affetto da minor errore! Sull’asse delle ascisse è riportata la tensione analogica d’ingresso mentre sull’asse delle ordinate è riportato il codice generato in uscita Errore: Q(1/2).LSB (least significant bit ) 4 bit ADC Conversione A/D a 4 bit Conversione A/D a 8 bit Ad esempio al terzo “intervallo di clock” del campionatore, viene estratto un campione pari a 2,6 Volt, che nel blocco successivo viene associato al codice 00..011. Si noti l’errore di quantizzazione effettuato! Schema minimo funzionale dell’ ADC • ADC Vref+ Do D1 Y(t) … DR-1 Vref- START EC OE Il costo di un convertitore AD è determinato da due parametri: la massima frequenza di campionamento e il numero di bit per parola (cioè la risoluzione). Con la conversione D/A il segnale digitale è convertito in analogico. Maggiormente evidente risulta l’errore introdotto dalla quantizzazione. Fine Un convertitore analogico digitale ADC svolge principalmente due funzioni: • Quantizzazione del segnale di ingresso • Codifica in un segnale digitale il valore quantizzato N V QUANTIZZATORE M CODIFICATORE BINARIO Il quantizzatore misura V mediante una quantità VQ detta passo di quantizzazione e in uscita fornisce l’intero più prossimo al rapporto V/ VQ. Il valore quantizzato VN viene poi convertito da un’apposita logica in formato digitale a M bit. Esempio: Supponiamo un convertitore a 2 bit con una dinamica in ingresso da 0-4V. • avremo una suddivisione in intervalli come quella rappresentata in figura. • il passo di quantizzazione risulta: VQ 4 1V 2 2 • il VMAX rappresentabile risulta (diversamente da VFS) VMAX VFS VQ 2 3,5V Un altro problema che riguarda gli ADC è legato al fatto che la conversione del dato in formato digitale prevede un tempo di conversione finito tC per cui per un corretto funzionamento del circuito si suppone che il valore di tensione rimanga costante per il periodo indicato. • All’atto pratico a monte del circuito quantizzatore si pone un sample & hold in modo da convertire un valore fisso campionato ad un dato istante. V N VC S&H QUANTIZZATORE M CODIFICATORE BINARIO • Occorre che sia verificato il teorema del campionamento di Shannon per evitare la perdita di informazioni. f C 2 fS max In questo caso occorre che il clock digitale sia molto veloce rispetto alle variazioni della forma d’onda da convertire altrimenti si può verificare una perdita dell’aggancio e ciò che risulta è che i dati digitali non sono più rappresentativi della forma d’onda in ingresso. Il valore del passo di quantizzazione è legato all'ampiezza dell'intervallo, cioè è funzione del numero di bit d'uscita e della tensione di fondo scala VFS. VFS VQ M 2 Minore è il passo di quantizzazione e minore è l’errore associato al processo di quantizzazione. Ad una tensione V analogica viene infatti associato un valore VN. di uscita V VN N VQ Schema realizzativo del DAC ÷2 ÷2 Questo è uno schema realizzativo, utile per determinare l’espressione matematica che lega l’ingresso e l’uscita ed evidenziare le principali differenze tra caso reale e ideale. chiuso se b7 = 1 VFS/2 chiuso se b6 = 1 VFC/4 ÷2 VFC/8 chiuso se b5 = 1 Vout SOMMA VFS ... VFS/256 ÷2 chiuso se b0 = 1 Sampling rate • Il segnale analogico è tempo-continuo ed è necessario convertirlo in un flusso di valori discreti • L'idea chiave è che un segnale di banda limitata che varia con continuità 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 (Legge di Shannon). L'accuratezza tuttavia è limitata dall'errore di quantizzazione • È quindi necessario definire una frequenza alla quale campionare i valori discreti del segnale analogico. Questa frequenza è chiamata sampling rate (frequenza di campionamento, in italiano) del convertitore. Aliasing • Tutti gli ADC lavorano campionando il proprio input ad intervalli discreti di tempo L'output di conseguenza è un'immagine incompleta dell'input e non c'è modo di sapere, guardando soltanto l'output, che valori abbia assunto l'input tra due istanti di campionamento adiacenti Il convertitore A/D (ADC). • L’ADC trasforma un segnale analogico in un codice binario Il passaggio da un segnale, che assume con continuità tutti i valori all’interno di un intervallo, ad una successione discreta di codici binari avviene tramite un’operazione denominata quantizzazione. La quantizzazione. La quantizzazione è descritta dal graico seguente detto: caratteristica di trasferimento. • I valori di tensione in ingresso sono riportati sull’ascissa, mentre sull’ordinata viene riportato il codice binario associato ad ogni intervallo di valori di Vi. • l’ampiezza massima del segnale d’ingresso è VMax = 8 V. Il numero di bit scelto è 3 quindi il numero possibile di codici binari esprimibili è • Q = 23 = 8 • La tensione analogica d’ingresso è stata divisa in 8 parti uguali, ad ognuna delle quali è stato associato uno degli 8 codici binari possibili. • A tutti i valori di tensione appartenenti ad un singolo intervallo degli otto possibili viene associato lo stesso codice. Parametri di un ADC • Il primo è l’ampiezza massima VMax del segnale d’ingresso che può essere convertito dall’ADC. Il segnale da elaborare deve dunque passare prima in un circuito per renderlo utilizzabile dal convertitore (condizionamento) . • In particolare i campi di valori della Vi accettati dagli ADC in commercio sono generalmente da 0 V a 5 V oppure da 0 V a 10 V. • L’altro parametro è il numero n di bit con cui si effettua la codifica. Il campo dei valori della Vi viene diviso in Q = 2n parti uguali. • Ad ognuno di questi 2n intervalli viene associata un insieme di n bit (parola). • L'ampiezza dell'intervallo è indicata come quanto oppure passo di quantizzazione. Parametri di un ADC • La risoluzione, indicata con R, rappresenta la variazione della tensione d’ingresso associata ad una variazione del bit meno significativo del codice binario. • La risoluzione rappresenta anche il passo di quantizzazione. In effetti, come viene mostrato dall’esempio precedente, se il codice binario differisce per il bit meno significativo (LSB), otteniamo quello associato all’intervallo successivo o precedente. Possiamo così scrivere: ViM ViM R n Q 2 • Spesso i costruttori forniscono come risoluzione il numero di bit utilizzati nella codifica. L’errore di quantizzazione. • L’errore di quantizzazione, indicato anche come incertezza, definisce il livello di indeterminazione ed è dovuto al fatto che ad ogni codice binario non viene associato un unico valore della tensione d’ingresso ma l’insieme dei valori appartenenti al passo di quantizzazione. L’errore di quantizzazione. • Ad esempio la figura 9 mostra che alla parola di codice 010 sono associati tutti i valori della Vi compresi tra 2 V e 3 V e di conseguenza 010 rappresenta oltre al valore esatto 2 V anche 2.9 V. • Quando il valore esatto di Vi rappresentato dalla parola di codifica è l’estremo inferiore dell’intervallo, l’errore massimo di quantizzazione (eM) • è pari l’ampiezza dell’intervallo stesso (ossia alla risoluzione R) e quindi: • eM = R L’errore di quantizzazione. • Esempio se eM = 1 V. l’andamento dell’errore in funzione del valore della tensione è il seguente: eM R 2 L’errore di quantizzazione. • Si osserva che e = 0 quando in ingresso è presente il valore esatto della tensione associato alla parola binaria. • Se il valore esatto di Vi rappresentato dalla parola di codice è al centro dell’intervallo di quantizzazione l’errore massimo che si può commettere • viene dimezzato: R eM 2 L’errore di quantizzazione. • In effetti se si sceglie il passo di quantizzazione in modo che la parola 010 rappresenti l’intervallo di valori 1.5 V 2.5 V, simmetrico intorno al valore esatto 2 V, l’errore massimo vale 0.5 V • l’andamento dell’errore è il seguente: • Per ridurre l’incertezza occorre diminuire l’ampiezza del passo di quantizzazione aumentando il numero di bit. Il tempo di conversione • Il tempo di conversione è il tempo necessario all’ADC per trasformare il valore della tensione d’ingresso in un codice binario. • Il segnale analogico da convertire deve essere campionato per prelevare i valori della Vi da trasformare in codice binario. • Con il campionamento il segnale analogico viene trasformato in una successione discreta di valori di Vi Esempio: • Il segnale S(t) può essere rappresentato dalla successione dei suoi cam-pioni S1, S2, S3, S4, S5 … prelevati ad intervalli regolari Tc. Il valore di Tc non può essere qualsiasi. Per poter ricostruire il segnale dai suoi campioni 1 f occorre che la frequenza di campionamento: c soddisfi la condizione di Shannon: fc 2fM dove fM è la frequenza massima (o banda) del segnale. Di conseguenza il periodo di campionamento di Tc deve essere: Tc Tc 1 2fM Il tempo di conversione • La conversione deve terminare prima che arrivi il nuovo campione da con-vertire in codice binario. • Indicando con Ts il tempo di conversione occorre avere Ts Tc Il tempo di conversione • Il valore del campione è quello assunto da Vi all’inizio della conversione anche se durante il tempo Ts il segnale subisce delle variazioni. • Per non introdurre un ulteriore errore, il codice binario associato al campione deve rimanere valido per tutto il tempo di conversione. • Di conseguenza le variazioni del segnale, durante Ts, devono essere tali da fare rimanere Vi all’interno del passo di quantizzazione (o entro la risoluzione). Il tempo di conversione • Per lavorare con frequenze più elevate è necessario inserire un dispositi-vo detto di sample/hold (campionamento e mantenimento). • In effetti se il tempo di conversione è alto a Tc, c’è il rischio di perdere il nuovo campione perché la conversione precedente non è terminata. • Per evitare ciò il valore viene memorizzato (hold) fino a quando deve essere convertito.