From 751263ae2f5d0fd16cb985b351ed0306103b2454 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 1 Dec 2017 20:18:04 +0100 Subject: Add hwsw --- techwsw/tex/convertitori.tex | 324 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 321 insertions(+), 3 deletions(-) (limited to 'techwsw/tex/convertitori.tex') diff --git a/techwsw/tex/convertitori.tex b/techwsw/tex/convertitori.tex index b53cf35..7f89574 100644 --- a/techwsw/tex/convertitori.tex +++ b/techwsw/tex/convertitori.tex @@ -16,13 +16,76 @@ 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{In alcuni casi viene indicato come il valore del -passo di quantizzazione indipendente da $V_{ref}$, dunque $R = 2^{-n}$}. +\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, @@ -31,16 +94,271 @@ ogni valore non campionato sar\`a sostituito dall'ultimo valore misurato 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}}$$ -% TODO: diagramma segnale analogico lineare -> digitalizzato +\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} -- cgit v1.2.1