summaryrefslogtreecommitdiffstats
path: root/techwsw/tex/convertitori.tex
blob: 7f8957419c286f95e8ae3c1c369273f67b8ef409 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
\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}