\section{Convertitori {\tt AD - DA}} \subsection{Quantizzazione dei dati} Il processo di digitalizzazione dei segnali analogici introduce il concetto di \emph{quantizzazione}. Infatti mentre un segnale analogico pu\`o assumere infiniti valori in un campo continuo la sua rappresentazione digitale pu\`o assumere soltanto un numero finito di valori \emph{discreti}. Gli infiniti valori del segnale analogico devono pertanto essere quantizzati ovvero raggruppati in un certo numero di fasce delimitate da livelli fissi detti \emph{livelli di quantizzazione}; a ciascuna fascia di valori analogici corrisponder\`a un valore digitale. La distanza fra due livelli di quantizzazione continui costituisce il \emph{passo di quantizzazione} $Q$\footnote{Definito spesso anche come $LSB$}, a cui corrisponde il valore del bit meno significativo. $$ Q = \frac{V_{ref}}{2^n} \qquad FS = Q\cdot 2^n = V_{ref}$$ Un dato digitale ad $n$ bit pu\`o esprimere $2^n$ valori; il valore digitale $2^n$ viene pertanto associato al valore di fondo scala $FS$ o $FSR$ (Full scale range) della grandezza analogica. % diagramma segnale analogico lineare -> digitalizzato \begin{figure}[H] \centering % \begin{adjustbox}{width=.4\linewidth} \begin{tikzpicture}% \begin{axis}[ width=.5\linewidth, xlabel = { Time $t$}, ylabel = { Input (analog) ~ $v_a(t)$}, xmajorgrids = false, ymajorgrids = true, grid style = dashed, ] \addplot[ domain = 0:4, samples = 100, color = blue ]{2*x}; \end{axis}% % \begin{axis}[ % width = .5\linewidth, % hide x axis, % axis y line*=right, % ymin = 0.5, ymax = 8.5, % yticklabels = { 000, 001, 010, 011, 100, 101, 110, 111}, % ] % \pgfplotsset{every y tick label/.append style={font=\small\tt}}; % \end{axis} \end{tikzpicture}% % \end{adjustbox}% \hfill% % \begin{adjustbox}{width=.4\linewidth} \centering \begin{tikzpicture} \begin{axis}[ % axis lines = left, width=.5\linewidth, xlabel = { Time $t$}, ylabel = { Output (digitalized)~ $v'_a(t)$}, xmajorgrids = false, ymajorgrids = true, grid style = dashed, ] \addplot[ domain = 0:4, samples = 100, color = blue ]{floor(2*x + .5)} node [color = black, left=1em, font=\small] {$FS$}; % \addplot[ % domain = 0:4, % samples = 100, % style = dashed, % color = gray % ]{2*x}; \draw [<->] (160, 200) -- (160, 300) node [below=5pt, right=3pt] {$Q$}; \draw [color=darkgray] (130, 200) -- (180, 200); \draw [<->] (90, 200) -- (90, 250) node [left=2pt] {$\varepsilon$}; \draw [color=darkgray] (80, 250) -- (120, 250); \end{axis}% \end{tikzpicture}% % \end{adjustbox} \end{figure} \paragraph{Risoluzione.} In un ADC i valori digitali in uscita non riproducono dunque fedelmente il segnale di ingresso ma ne danno una rappresentazione approssimata tanto pi\`u precisa quanto minore \`e il passo di quantizzazione $Q$. Il numero di bit $n$ in uscita di un convertitore AD, cos\`i come il numero dei bit di ingresso di un convertitore DA viene generalmente chiamato \emph{risoluzione}\footnote{Ogni tanto indicato anche come il valore del passo di quantizzazione, dunque $R = 2^{-n}$}. $$ R = \log_2{\frac{V_{ref}}{Q}} = n$$ \paragraph{Errore di quantizzazione.} Avendo quantizzato il segnale analogico, ogni valore non campionato sar\`a sostituito dall'ultimo valore misurato (effetto `scaletta'). Perci\`o nel punto il cui l'errore del segnale digitale sar\`a massimo rispetto a quello analogico, l'errore sar\`a di esattamente: $$\varepsilon = \frac{1}{2}Q \qquad \varepsilon_\% = \frac{1}{2^{n+1}}$$ \subsection{Campionamento} Un altro concetto implicito nella conversione AD \`e quello di \emph{campionamento} del segnale in vari istanti successivi. Infatti la conversione consiste nel prelevamento di n campione del segnale ad un dato istante e nella determinazione del corrispondente valore digitale, che rester\`a fisso finch\'e non verr\`a prelevato un altro campione per una nuova conversione. La frequenza con cui il segnale viene prelevato \`e detta \emph{frequenza di campionamento}; essa ha un'importanza fondamentale di riferimento al contenuto informativo del segnale campionato e alle possibilit\`a di ricostruire fedelmente il segnale analogico originario. \paragraph{Il teorema del campionamento} noto anche come teorema di \emph{Shannon}, stabilisce che la frequenza di campionamento deve essere maggiore o uguale al doppio di quella componente di frequenza pi\`u elevata del segnale in esame. In altre parole, intuibilmente la frequenza di campionamento $f_c$ per un segnale $v_a(t)$ deve essere \emph{sempre} essere magiore del \emph{doppio} della frequenza maggiore dell'armonica del segnale $f_M$. $$ f_c \geq 2f_M $$ Per ricostruire fedelmente il segnale $v_a(t)$ occorrer\`a trattare il segnale campionato $v'_a(t)$ con un filtro passa-basso la cui risposta sia piatta fino alla frequenza $f_M$ ed attenuante alla frequenza di campionamento $f_c$. \begin{figure}[H] \centering \caption{Diagramma di bode per il filtro passa-basso} \begin{tikzpicture} \def\ymax{5} \def\ymin{-30} \def\fw {200} \begin{axis}[ width = \linewidth, height = 4cm, ylabel = {Attenuazione}, xlabel = {Frequenza $f$}, xticklabels = \empty, yticklabels = \empty, ymin = \ymin, ymax = \ymax, grid = major, xmode = log, xmin = 1e0, xmax = 1e5, ] % mathematical model \addplot[thick, color=gray,samples=80,domain=.0001:1e6] {20*log10(1/(sqrt(1+(x/\fw)^2))}; % simplified model \addplot[thick, color=black] coordinates {(.0001, 1) (\fw, 1)}; \addplot[thick, color=black] coordinates {(\fw, 1) (\fw*100, -40)}; % frequencies \addplot[color=black, dashed] coordinates {(\fw, \ymax) (\fw, \ymin)} node [color=black, above=12pt, left=1pt, font=\small] {$f_M$}; \addplot[color=black, dashed] coordinates {(\fw*2, \ymin) (\fw*2, \ymax)} node [color=black, below=12pt, right=1pt, font=\footnotesize] {$2f_M$}; \addplot[color=black, dashed] coordinates {(\fw*12, \ymin) (\fw*12, \ymax)} node [color=black, below=12pt, right=1pt, font=\footnotesize] {$f_c > 2f_M$}; \end{axis} \end{tikzpicture} \end{figure} Bench\`e la frequenza di campionamento minima sia $f_c = 2f_M$, in pratica si preferisce campionare ad una frequenza maggiore per migliorare le prestazioni del filtro, siccome i filtri reali attenuano maggiormente le frequenze pi\`u distanti dalla frequenza di taglio. \subsection{Sampling and Hold (Circuiti SH)} Dal momento che i convertitori A/D impiegano un tempo $t_{conv}$ finito (generalmente da 20 ms a 1 ns) per digitalizzare un segnale analogico in ingresso eventuali variazioni del segnale durante il processo di conversione possono determinare errori significativi. Se la variazione del segnale analogico $v_a$ durante il tempo di conversione $t_{conv}$ \`e superiore al valore di $Q$, il dato digitale di uscita non mantiene la risoluzione specificata. Occorre quindi che sia rispettata la relazione \[ max\Big (\dfrac{{\rm d}v}{{\rm d}t}\Big ) \approx max\Big (\frac{\Delta v_a}{\Delta t}\Big ) \quad \leq \quad \frac{Q}{t_{conv}} \] In alternativa questo problema pu\`o essere risolto utilizzando circuiti di \emph{campionamento e mantenimento} (S/H) in grado di compiere un campionamento `veloce' del segnale analogico e di mantenere stabile stabile durante tutto il processo di conversione il valore acquisito. % TODO schema circuito HS \begin{figure}[H] \centering \placeholderfig{fig:circ:hs} \caption{Circuito di sampling e hold} \label{fig:circ:hs} \end{figure} Durante il campionamento il segnale di controllo $V_c$ chiude l'interruttore analogico consentendo al condensatore $C$ di caricarsi al valore di $v_a$; il tempo di carica del condensatore \`e assai ridotta siccome le uniche resistenze in gioco sono la resistenza in uscita dell'opamp $U_1$ e la $r_{on}$ dell'interruttore. Idealmente da quando $V_c$ apre l'interruttore il condensatore rimane carico per un tempo infinito, permettendo al circuito di misura di convertire il campione. In realt\`a sono presenti delle lievi perdite dalle correnti di polarizzazione, dall'interruttore e dal condensatore stesso. Per questo motivo occorre utilizzare componenti con prestazioni adeguate, ad esempio operazionale con ingressi FET e condensatori al teflon. \subsection{Multiplazione (Multiplexing)} Nei casi in cui pi\`u segnali debbbano essere acquisiti da un unico sistema di elaborazione o di trasmissione, si deve ricorre a tecniche di \emph{multiplazione}. La multiplazione di un ingresso del convertitore A/D \`e ottenibile semplicemente aggiungendo all'ingresso un \emph{multiplexer}, un circuito con pi\`u entrate ed una sola uscita, con delle linee di controllo che permettono di selezionare quale linea viene collegata all'uscita. \subsection{Convertitori digitale $\rightarrow$ analogico ({\tt DA})} \subsubsection{Convertitore a resistori pesati} Nella figura \ref{fig:dac:wr} \`e illustrato il circuito DAC con il principio di funzionamento pi\`u semplice. L'ingresso \`e costituito da un segnale binario di $n$ bit; ciascun bit controlla uno dei commutatori $S_0, S_1, \dots S_{n-1}$ in modo tale che ciascun resistore viene collegato alla tensione di riferimento $V_{ref}$ o a massa a seconda del valore 1 o 0 del bit. \begin{figure}[H] \centering \placeholderfig{fig:dac:wr} \caption{Convertitore a resistori pesati} \label{fig:dac:wr} \end{figure} La corrente $I_f$ che si ottiene collegando e scollegando gli interruttori \`e definita dalla somma delle correnti di ogni ramo. \[ I_f = \frac{2^0 V_{ref}}{R}S_0 + \frac{2^1 V_{ref}}{R}S_1 + \frac{2^2 V_{ref}}{R}S_2 + \dots + \frac{2^{n-1} V_{ref}}{R}S_{n-1} \] La tensione in uscita \`e generata dall'amplificatore \`e descrivibile quindi come: \[ V_o = -V_{ref} \cdot\frac{R_f}{R}(2^{n-1}S_{n-1} + \dots + 2^2 S_2 + 2^1S_1 + 2^0S_0 ) \] In notazione ridotta: \[ V_o = -V_{ref}\cdot\frac{R_f}{R}\cdot \sum_{i} 2^i\cdot S_i \] Il principale inconveniente di questo convertitore \`e costituto dal fatto che esso richiede resistori di valore estremamente disomogeneo. \subsubsection{Convertitore a scala R-2R} Un miglioramento rispetto al convertitore a resistori pesati \`e illustrato nella figura \ref{fig:dac:r2r}; il convertitore a scala R-2R utilizza solo resistori di due valori R e 2R. Si osservi che la resistenza vista da ciascuno degli ingressi $S$ vale sempre 3R, indipendentemente dalla configurazione dei bit di ingresso. \begin{figure}[H] \centering \placeholderfig{fig:dac:r2r} \caption{Convertitore a scala R-2R} \label{fig:dac:r2r} \end{figure} La tensione in uscita per un convertitore a scala R-2R \`e descritta in forma generale dalla seguente relazione. \[ V_o = -\frac{V_{ref}}{2^n}\cdot\frac{R_f}{3R}\cdot (2^{n-1} S_{n-1} + \dots + 2^2S_2 + 2^1S_1 + 2^0S_0) \] In notazione ridotta: \[ V_o = -\frac{V_{ref}}{2^n}\cdot\frac{R_f}{3R}\cdot \sum_{i} 2^i\cdot S_i \] Questo convertitore come per il convertitore a resistori pesati presenta due inconveniente che limitano le prestazioni alle alte velocit\`a. I commutati di questi ultimi quando sono a riposo sono collegati a massa, ma cos\`i facendo le capacit\`a parassite dei conduttori vengono costantemente caricate e scaricate dal cambiamento di stato del commutatore, rallentando il tempo di risposta. \subsubsection{Convertitore a scala R-2R invertita} Per ovviare al problema del convertitore a scala R-2R la scala invertita ha una corrente costante che scorre nei resistori e che viene deviata verso l'operazionale quando il commutatore \`e attivo. \begin{figure}[H] \centering \placeholderfig{fig:dac:r2rinv} \caption{Convertitore a scala R-2R invertita} \label{fig:dac:r2rinv} \end{figure} La tensione in uscita per un convertitore a scala R-2R invertita \`e descritta in forma generale dalla seguente relazione. \[ V_o = -\frac{V_{ref}}{2^n}\cdot\frac{R_f}{R}\cdot (2^{n-1} S_{n-1} + \dots + 2^2S_2 + 2^1S_1 + 2^0S_0) \] \subsubsection{Caratteristiche e parametri dei convertitori DA} I convertitori D/A in commercio accettano in ingresso dati digitali in formato parallelo o anche seriale espressi in codici diversi, binario, binario con offset, in complemento a due, BCD, con un numero di biti compreso generalmente tra 8 e 16. I livelli elettrici dei dati di ingresso variano conla tecnologia con cui sono realizzato i convertitori e possono essere TTL, CMOD, ECL. % I valori della tensione di alimentazione e della tensione di riferimento % (interna o esterna) dipendono dalla tecnologia con cui sono realizzati i % circuiti e dalle polarit\`a del segnale analogico di uscita desiderato e % consentito; occorre sempre prestare molta attenzione alle configurazioni % circuitali suggerite dai fogli tecnici e ai valori massimi consentiti. Per quanto riguarda la grandezza analogica di uscita, nella maggior parte dei casi i convertitori forniscono una corrente, che pu\`o essere convertita in tensione mediante un operazionale esterno. In altri casi gli integrati contengono internamente un amplificatore operazionale e forniscono un'uscita in tensione. % Occorre poi citare, per l'ampia diffusione e le interessanti applicazioni che % consento, i convertitori classificati come \emph{multiplying converter}. Essi % sono progettati per funzionare con una tensione di riferimento esterna % variabile, anche di frequenza considerevole, e forniscono in uscita un % segnale proporzionale al prodotto del dato digitale di ingresso per il valore % istantaneo della tensione di riferimento. Un ultimo cenno meritano gli ingressi di controllo disponibili in numerevoli convertitori: ingresso dati seriale, ingresso di selezione (\emph{chip select}), controllo della memorizzazione dei dati digitali (\emph{strobe}), ecc. Essi si rivelano molto utili in applicazioni in cui la sincronizzazione e il controllo della conversione sono effettuati da un microprocessore. \\ \noindent I principali parametri che definiscono le prestazioni dei convertitori D/A sono: \paragraph{Risoluzione.} Specifica il numero dei bit del dato digitale di ingresso e conseguentemente il numero dei valori distinti del segnale analogico in uscita. \paragraph{Precisione.} Fornisce la misura della differenza fra il valore del segnale analogico di uscita reale e quello ideale, per un dato codice di ingresso; tiene conto di varie cause di errore, in particolare della non linearit\`a del dispositivo e degli errori di guadagno e di offset della circuiteria interna. \paragraph{Linearit\`a.} In un convertitore D/A ideale, incrementi uguali del dato digitale di ingresso devono produrre ingrementi uguali del segnale di uscita; pertanto la curva di trasferimento ingresso-uscita \`e una retta. \emph{L'errore di linearit\`a} esprime la massima deviazione della curva di trasferimento reale da quella ideale. Generalmente l'errore di linearit\`a \`e espresso in frazioni del passo di quantizzazione $Q$ (es $\dfrac{1}{4}Q$). Si noti che un errore di linearit\`a pari a $\pm\dfrac{1}{2}Q$ \`e il massimo consentito affinch\`e all'aumento del dato digitale di ingresso corrisponda un aumento del segnale di uscita. \paragraph{Tempo di assestamento} (\emph{Settling time}). \`E definito come il tempo necessario affinch\`e il segnale analogico di uscita dopo una data commutazione degli ingressi, si assesti e si mantenga in un determinato intorno (generalmente ) \subsection{Convertitori analogico $\rightarrow$ digitale ({\tt AD})} \subsubsection{Convertitore a comparatori in parallelo} \subsubsection{Convertitore ad approssimazioni successive} \subsubsection{Convertitore a rampa digitale} \subsubsection{Convertitore a doppia rampa} \subsubsection{Convertitore $\Sigma\Delta$ (Sigma-Delta)} \subsubsection{Caratteristiche e parametri dei convertitori AD}