Sei sulla pagina 1di 13

7 L’acquisizione automatica dei dati

7.1 Introduzione
Gli elaboratori sono ben stati inventati per elaborare i dati, ma a prescindere dal modo col quale essi lo fan-

no i dati da elaborare devono comunque essere immessi negli elaboratori e da questi estratti come risultati.

I dati in ingresso e i risultati e in uscita dagli elaboratori assumono forme diverse e vengono trattati da peri-

feriche differenti a seconda che essi siano generati e utilizzati da un operatore umano o siano acquisiti dal resto del

mondo fisico, “il campo”, e a quest’ultimo siano diretti. Nel primo caso abbiamo a che fare con che siamo ormai

abituati ad adoperare durante l’uso di un comune personal computer: tastiera, monitor, mouse, stampante, ecc.;

mentre nel secondo caso, che è quello degli elaboratori dedicati, compresi quelli embedded, i dispositivi

d’ingresso/uscita interfacciano l’elaboratore con il campo, e cioè con le grandezze fisiche considerate in

quest’ultimo.

Al fine di far comprendere meglio l’importanza dell’argomento che andremo a trattare, è opportuno ricor-

dare che i dati in forma numerica, cioè digitalizzati, non compaiono solo all’interno degli elaboratori perché lì

possono esistere ed essere trattati solo in quella forma, ma il formato numerico viene sempre più spesso preferito a

quello analogico sia per la memorizzazione a lungo termine di suoni e immagini fisse e in movimento (Compact

Disk, Digital Versatile Disk), sia per la trasmissione degli stessi nella televisione digitale (HighDefinition Tele

Vision), nella telefonia numerica mobile (GSM) e fissa (Integrated Service Data Network), nella trasmissione di

fax (Gruppo 3 e 4) e dei dati in generale.

La spiegazione del perché la tecnologia della memorizzazione e della trasmissione dei dati (di quella

dell’elaborazione si è già parlato) tenda al “tutto digitale” è dovuta all’enorme vantaggio in flessibilità, costo, ma

soprattutto robustezza che hanno la memorizzazione, la trasmissione e l’elaborazione digitale nei confronti delle

loro controparti analogiche. Un esempio per tutti: ognuno di noi sa che il trasferimento di un brano da una supporto

magnetico all’altro (per esempio copia da una musicassetta all’altra, anche quando non viola i diritti d’autore),

genera una copia sempre di qualità peggiore dell’originale anche se il trasferimento è avvenuto completamente per

via elettronica. Ciò accade perché sia nella riproduzione, sia nella registrazione del segnale analogico viene intro-

dotta una perturbazione del segnale, chiamata rumore (ma questo vale anche per la trasmissione di un segnale

analogico tramite un qualsivoglia mezzo) che non può mai essere riconosciuto, se non per confronto con la copia

originale, e tantomeno eliminato; nella riproduzione e trasmissione digitale è invece possibile, tramite opportuni

algoritmi numerici, sia riconoscere la presenza di rumore nel segnale riprodotto o trasmetto (in questo caso il rumo-

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 1 di 15
re prende la forma dell’alterazione di parte dei bit che compongono il dato), sia eliminare il rumore, ricostruendo il

segnale originale.

Lo scopo di questo capitolo è quello di spiegare, a grandi linee, come sia possibile per un elaboratore elet-

tronico interagire con le grandezze fisiche che lo circondano e quali siano i problemi, anche teorici, che ciò com-

porta. Queste nozioni sono propedeutiche allo studio del problema del controllo dei sistemi che sarà trattato nel

quinto anno di corso.

7.2 Richiami di fisica


Uno degli scopi della Fisica è quello di prevedere quantitativamente il risultato degli esperimenti; tale sco-

po, riportato in campo ingegneristico, si trasforma nel controllo dei sistemi tramite la variazione di opportune con-

dizioni al loro contorno. Il controllo dei sistemi è uno dei campi d’elezione degli elaboratori elettronici, per cui il

nostro scopo diventa ora quello di capire come sia possibileinterfacciare gli elaboratori elettronici al mondo fisico,

sia per acquisire dati, sia per modificare l’ambiente in cui operano i sistemi di nostro interesse.

In Fisica acquisire dati significa soprattutto dare una stima quantitativa di certe qualità degli enti oggetti

della nostra speculazione. Le qualità di cui sopra che ammettono un’indagine quantitativa si dicono grandezze e il

processo attraverso il quale giungiamo alla loro stima quantitativa viene detto processo di misura, o semplicemente

misura. Per misurare il valore di una grandezza posseduta da un ente la si confronta quantitativamente con la stessa

grandezza posseduta da un particolare ente detto campione. In genere il confronto, diretto o indiretto, della gran-

dezza posseduta dai due enti, il campione e quello sotto misura, avviene sugli effetti che si osservano in particolari

sistemi detti strumenti di misura (deviazione percepibile dall’osservatore di un opportuno indice, o altro fenomeno

al quale l’osservatore è sensibile).

Nel processo di misura sopra appena delineato, oltre all’ente da misurare e al campione due sono i protago-

nisti importanti: l’osservatore e lo strumento di misura. Essenzialmente il compito del primo si riduce acontare gli

effetti che le due istanze della grandezza hanno sullo strumento di misura (per es. di quante “tacche” si è spostato

l’indice dello strumento) il quale, a sua volta, ha per scopo quello ditrasdurre la grandezza sotto misura in un’altra

(spostamento quantificabile dell’indice) che sia rilevabile dall’osservatore.1

Nel caso presente, la parte dell’osservatore è assolta da particolari dispositivi elettronici detti “Analog to

Digital Converter, ADC) descritti nel seguito, mentre quella dello strumento di misura rimane assolta da una parti-

colare classe di trasduttori i cui componenti, ognuno a fronte di una propria grandezza in ingresso, hanno come

1
Alcuni ritengono più corretto identificare lo “strumento di misura” nell’insieme formato dal trasduttore e
dall’osservatore, in quanto il risultato della misura deve essere un valore numerico e solo la loro unione è in
grado di fornirlo.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 2 di 15
grandezza trasdotta in uscita la tensione elettrica. La ragione di ciò risiede nel fatto che i dispositivi deputati alla

funzione di osservatore sono di natura elettronica e, come tali, intrinsecamente ben si adattano “ad osservare”

grandezze elettriche e in particolare la tensione.

7.3 I trasduttori
I trasduttori sono dei (semplici) sistemi fisici che reagiscono alla variazione di una grandezza con la varia-

zione di un’altra.

Esempi di trasduttori sono gli altoparlanti e gli auricolari (tensione ⇒ spostamento), i microfoni (movi-

mento ⇒ tensione), i termometri a fluido termometrico (temperatura ⇒ volume), i dinamometri a molla (forza ⇒

spostamento), gli anemometri a filo caldo (velocità dell’aria ⇒ temperatura ⇒ resistenza elettrica ⇒ tensione

elettrica), ecc..

In genere si cerca di costruire o di sfruttare sistemi la cui funzione di trasferimento sia lineare, almeno

nell’intervallo di valori d’interesse della grandezza in ingresso: questo per rendere più semplice il trattamento dei

dati derivati dalla misura; generalmente le funzioni di trasferimento dei trasduttori non sono esattamente lineari e

necessitano di una qualche elaborazione numerica o particolari accorgimenti fisici per rapportare la variazione

della grandezza trasdotta e misurata a quella della grandezza originale; talvolta le funzioni di trasferimento assu-

mono delle forme matematiche che si discostano decisamente dalla forma lineare, come quella esponenziale che è

abbastanza frequente in natura.

Come detto in precedenza, i trasduttori di nostro interesse sono tuttavia quelli che rapportano una grandez-

za in ingresso in tensione elettrica o vice versa (in questo caso vengono talvolta denominatiattuatori). Questo tipo

di trasduttori sta assumendo sempre più importanza di pari passo con l’espandersi dell’utilizzo dei sistemi elettro-

nici di misura e controllo.

7.4 Nozioni sul campionamento dei segnali


Per quanto detto precedentemente sul ruolo che hanno i trasduttori nella misura delle grandezze fisiche da

parte degli elaboratori elettronici, nel seguito di questo paragrafo ci limiteremo a considerare per semplicità sola-

mente la misura di tensioni, senza perdere di generalità nella trattazione dell’argomento.

Una volta misurato il valore della tensione fornita dal trasduttore, sarà compito del programma di calcolo

tener conto dell’effetto della funzione di trasferimento introdotta dal trasduttore stesso ai fini della determinazione

del vero valore della grandezza d’interesse.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 3 di 15
7.4.1 Problemi di discretizzazione
Date la differente natura delle grandezze da misurare, continue, e degli elaboratori elettronici, discreti, la

misura di una grandezza da parte di un elaboratore è affetta da un errore ineliminabile detto “errore di campiona-

mento”. Data una rappresentazione binaria su n bit, associati alla rappresentazione “00….00” il minimo valore che

può assumere la grandezza da misurare2 e alla rappresentazione “11….11” il massimo, l’intervallo dei valori (che

sono in numero infinito, data l’ipotesi della natura continua della grandezza) viene suddiviso in 2n – 1 parti, ognuna

delle quali rappresenta un numero infinito di valori.

Limitandoci ora a considerare misure di tensione, si supponga che l’intervallo dei valori assunti sia com-

preso tra Vmin e Vmax e che la rappresentazione del dato misurato sia a 8 bit: l’intervallo di variazione della tensione

sarà suddiviso in 2n-1 = 255 intervalli di ampiezza ∆V = (Vmax- Vmin)/( 2n-1); facendo in modo3 che il valore nomi-

nale della configurazione sia posizionato sul valore centrale di ogni intervallo, ad ogni configurazione corrispon-

dono tutti i valori di tensione compresi nell’intorno di centro il valore centrale e di raggio∆V/2; dunque ogni de-

terminazione della tensione in ingresso sarà affetta da un errore assoluto pari a±∆V.

7.4.2 Adattamento dell’intervallo di variazione della tensione da misurare


Quanto esposto nel paragrafo precedente, quantunque corretto, non corrisponde a quanto fatto nella pratica

corrente. Il dispositivo elettronico che esegue la misura della tensione, l’ADC, confronta la tensione in ingresso

con quella di riferimento fornita da un dispositivo campione il cui valore non è facilmente modificabile, ed è bene

che non lo sia se si vuole mantenere una buona precisione della misura. L’ADC pertanto deve fornire il rapporto tra

il segnale in ingresso, che varia tra Vmin e Vmax, e quella di riferimento, generalmente indicata con Vref.

Normalmente la configurazione “00….00” corrisponde al valore 0V4 e quella “11…11” a Vref, con ∆V =

Vref/( 2n-1); ed altrettanto normalmente i valori Vmin e Vmax differiscono entrambi da 0 V e Vref. Nel caso in cui Vmin

e Vmax siano compresi nell’intervallo 0 V ÷ Vref la misura risultante avrà una risoluzione inferiore a quella massima

disponibile con l’ADC adoperato perché l’intervallo di variazione della tensione in ingresso sarà suddiviso in

(Vmax- Vmin)/[Vref/( 2n-1)] passi, certamente minori di 2n-1. Mentre, nel caso in cui Vmin e Vmax siano esterni

2
Qui per “minimo valore”, e poi per “massimo “valore”, s’intende rispettivamente il minimo e il massimo valore
che la grandezza può assumere nel sistema sotto misura e non in assoluto: il modulo della velocità di un corpo
può assumere tutti i valori compresi tra 0 m/s e la velocità della luce nel vuoto, ma l’intervallo dei valori possi-
bili per la velocità di un centometrista è ben più ristretto!
3
Per mezzo di predisposizioni hardware.
4
In alcuni ADC la tensione di riferimento inferiore può essere diversa da 0V.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 4 di 15
all’intervallo 0 V ÷ Vref, oltre a non riuscire a misurare tensioni estreme, si rischia di danneggiare permanentemente

l’ADC.

Per evitare i problemi sopra evidenziati si deve interporre tra la sorgente del segnale da misurare, che il più

delle volte è costituita dal trasduttore, e l’ingresso dell’ADC un circuito amplificatore avente per funzione di trasfe-

rimento una funzione lineare (una equazione di 1° !) che sia un grado sia di traslare il valoreVmin a 0 V, sia di far

corrispondere Vmax a Vref, adattando così l’intervallo di variazione in ingresso con l’intervallo di misura dell’ADC.

L’adattamento dell’intervallo deve tenere di conto anche dell’effetto sull’ampiezza del segnale da misurare di

eventuali altri dispositivi elettronici interposti tra la sorgente del segnale el’ADC; questi ulteriori dispositivi e le

loro funzionalità saranno esposte nei paragrafi seguenti.

7.4.3 Campionamento dei segnali variabili nel tempo


Lo scopo di tutti i dispositivi visti sopra e della teoria che ne sorregge il funzionamento non è limitato alla

misura di una grandezza costante, bensì allo studio e al controllo di sistemi nei quali le grandezze variano nel tem-

po. Per fare ciò è necessario acquisire i valori assunti nel tempo dal segnale da studiare senza perdere variazioni

significative del segnale che possono essere presenti tra un campionamento e il successivo.

Dal momento che acquisire campioni ad alta velocità può essere costoso in relazione all’ADC da utilizzare,

alla quantità di memoria necessaria a memorizzare i dati campionati e alle prestazioni che deve avere il sistema

elettronico che li analizza, è legittimo chiedersi qual è la velocità minima da utilizzare per campionare corretta-

mente un dato segnale.

La risposta ci viene fornita dal Teorema del Campionamento il quale afferma che per campionare corretta-

mente un segnale continuo, periodico, limitato in frequenza alla componente fM, è sufficiente utilizzare una fre-

quenza di campionamento fc > 2 fM.

Qui è interessante osservare che taluni scrivono tale diseguaglianza nella forma di “maggiore o uguale”:

ebbene, supponendo per esempio di campionare un segnale sinusoidale esattamente al doppio della sua frequenza,

iniziando quando passa per lo zero, si ottiene una successione di zeri, che non può certo soddisfare la tesi del Teo-

rema del Campionamento.

Nel Teorema del Campionamento si fa cenno a una non meglio specificata componente di frequenza mas-

sima fM: questo deriva dalla possibilità data dal Teorema di Fourier di scomporre una qualunque funzione periodi-

ca, generalmente continua, di periodo 2l in una serie di funzioni trigonometriche secondo la formula:

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 5 di 15
a0 ∞ kπ kπ
f ( x) = +∑ kcos x + bksen x)
2 k =1 l l

in questo caso la nostra frequenza massima fM corrisponde alla componente k-esima dopo la quale il resto

della serie dà un contributo trascurabile (minore di metà del valore del bit meno significativo5 della

rappresentazione binaria utilizzata) alla somma (i coefficientiak e bk tendono a zero al crescere di k).

Se l’ipotesi del Teorema del Campionamento non viene rispettata, e cioè se il segnale viene campionato a

una frequenza fc < 2 fM, si crea un artefatto nel segnale sotto forma di componente spuria di frequenza pari a 2fM -

fc che, a seconda delle caratteristiche del segnale in ingresso, non può essere eliminata dal segnale campionato,

compromettendo così l’acquisizione. L’effetto che si viene a creare vene detto di “aliasing”.

Scelta la frequenza di campionamento dell’ADC in base alle caratteristiche fisiche del sistema che produce

il segnale da misurare, è sempre buona regola anteporre all’ADC un filtropassa-basso che elimini dal segnale in

ingresso le componenti di frequenza maggiore o uguale a fc/2, o che perlomeno ne riduca il contributo all’intero

segnale a meno della metà del valore dell’LSB della rappresentazione binaria utilizzata.

7.4.4 Segnali variabili e tempo di conversione


Un fattore fin qui trascurato nella breve esposizione precedente è il tempo necessario a un ADC per misura-

re il segnale in ingresso e convertire il risultato in una rappresentazione binaria.

Dovrebbe essere ormai chiaro, anche per quanto detto nei capitoli precedenti, che qualunque trasformazio-

ne o operazione ha una durata temporale diversa da zero. Mentre in altri casi la durata finita di un’operazione com-

porta solo un noioso dilatarsi dell’attesa del risultato, in questo caso interagisce direttamente con la variazione nel

tempo del segnale sotto misura.

Difatti, se durante il tempo di campionamento il segnale varia il suo valore per più di metà del valore

dell’LSB, si genera un errore di misura indebito rispetto a quello intrinseco di discretizzazione. Per evitare che ciò

accada, si antepone al convertitore un circuito avente funzione di memoria analogica, costituito essenzialmente da

un interruttore elettronico seguito da un condensatore posto tra il segnale e la massa di riferimento. A seconda della

posizione dell’interruttore, il circuito riporta in uscita esattamente il segnale in ingresso se l’interruttore e chiuso,

mentre mantiene l’ultimo valore che aveva il segnale quando l’interruttore viene aperto. Tali circuiti prendono il

5
In Inglese “bit meno significativo” viene tradotto “less significant bit”, in sigla LSB.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 6 di 15
nome di Track & Hold (T/H) o di Sample & Hold (S/H) a seconda della loro architettura elettronica, ma sono equi-

valenti per i nostri fini.

Anche tali circuiti sono lontani dalla perfezione e non mantengono indefinitamente nel loro stato diHold il

valore memorizzato, ma quest’ultimo decresce nel tempo. Per quantificare la loro bontà quali elementi di memoria

viene considerato l’angolo costituito dalla curva di scarica del circuito (approssimata a una retta) nel diagramma

temporale della tensione d’uscita, con la retta teorica, parallela all’asse t, che la stessa tensione d’uscita dovrebbe

avere nel caso che il circuito fosse ideale.

L’angolo tra le due rette, detto “angolo di drop”, o meglio la sua tangente, viene utilizzato come misura

della bontà del circuito. Valori comuni per la tangente dell’angolo di drop si aggirano attorno a 10-4.

7.5 Tipi di convertitori


In commercio esistono molti tipi di convertitori che si differenziano tra loro principalmente per risoluzione,

velocità di campionamento e costo. Inoltre, alcuni contengono al loro interno particolari dispositivi come S/H e

commutatori d’ingresso (un commutatore in ingresso a un ADC permette di scegliere di volta in volta la sorgente

di segnale da campionare).

Attualmente sul mercato sono disponibili ADC con risoluzioni comprese tra 6 e 24 bit e con velocità che

vanno dai pochi campionamenti al secondo (per gli ADC a più alta risoluzione) a 500 milioni di campionamenti al

secondo e oltre (per ADC a bassa risoluzione). Il loro costo è direttamente proporzionale alla risoluzione ed alla

velocità di campionamento e varia dalle poche migliaia di Lire al mezzo milione ed oltre.

Anche le tecniche costruttive sono altrettanto varie e sono ancora in via d’espansione al migliorare delle

tecnologie d’integrazione e delle accresciute esigenze dei loro usi più moderni (gli ADC e i DAC sono pesante-

mente usati nelle trasmissioni dati e nell’acquisizione e riproduzione delle immagini e dei suoni: nei primi due casi

si stanno sperimentando le maggiori necessità contemporaneamente di risoluzione e velocità d’acquisizione).

7.5.1 Flash ADC


Il flash ADC è stato forse il primo tipo a comparire sul mercato: concettualmente molto semplice, si basa

sul confronto contemporaneo del segnale in ingresso con 2n-1 differenti frazioni della tensione di riferimento, otte-

nute tramite un partitore resistivo, effettuato per mezzo di altrettanti comparatori analogici. La configurazione

ottenuta ponendo in parallelo le 2n-1uscite dei comparatori (ponendo all’estrema sinistra l’uscita del comparatore

con tensione di riferimento maggiore e all’estrema destra quella del comparatore avente tensione di riferimento

minore) è in binario naturale; la configurazione così ottenuta viene inviata in ingresso ad una logica combinatoria

che la trasforma in binario puro.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 7 di 15
Per esempio, si supponga per semplicità di avere a disposizione un flash ADC a 4 bit e con questo di misu-

rare una tensione in ingresso che è ¼ della tensione di riferimento: la configurazione in uscita dai sedici compara-

tori sarà “0000 0000 0000 1111”6 , mentre l’uscita binaria dell’ADC sarà 0001B.

I flash ADC sono di gran lunga i più veloci esistenti poiché il loro tempo di conversione è determinato uni-

camente dal tempo di commutazione dei comparatori, che è di pochi nanosecondi, e da quello d’assestamento della

logica combinatoria in uscita, anch’esso di pochi nanosecondi. Tuttavia, hanno risoluzioni che sono limitate agli

otto bit a causa dei problemi tecnologici inerenti la costruzione di partitori resistivi di oltre 256 elementi (28-1 =>

255) aventi la precisione richiesta. In particolari casi, i resistori del partitore vengono tarati singolarmente con un

fascio LASER per raggiungere la precisione desiderata7.

Gli errori tipici per questo tipo di ADC sono quelli di non linearità e di non monotonicità: la taratura dei er-

sistori del partitore annulla quello di non monotonicità e riduce fortemente quello di non linearità a fronte di mag-

giori costi di produzione e solo per le basse risoluzione sopra citate.

7.5.2 DAC
I DAC sono dispositivi più semplici degli ADC e sono costituiti da una rete di resistori di valori R-2R con-

nessi in modo tale da formare una serie di partitori binari di corrente in cascata: il valore della corrente “in uscita”

da ogni partitore viene dimezzata o meno dal partitore successivo e così via per il numero di partitori presenti (per

il numero di bit di risoluzione) formando così una serie binaria che fornisce una corrente totale in uscita data dalla

relazione

Vref  1 1 1 
Iout =  an + an − 1 + ... + a 0 n 
R  2 4 2 

Dove an, …a0 sono i bit del valore da convertire.

La corrente così generata è poi trasformata in un valore di tensione tramite un semplice amplificatore ope-

razionale usato come convertitore corrente/tensione.

6
Si sono raggruppati a quattro a quattro i bit della configurazione per facilitarne la lettura.
7
Tenendo presente la nota relazione R = ρ⋅l/S, dove R è la resistenza del resistore, ρ la resistività della pasta con-
duttrice di cui è costituito il resistore e l e S sono rispettivamente la sua lunghezza e la sua sezione, il resistore
viene dapprima costruito con dimensioni l e S che ne sopra dimensionano la resistenza: in seguito, misurando il
valore della resistenza ottenuta, con un fascio LASER si praticano delle incisioni parziali nel corpo del resistore

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 8 di 15
I DAC sono più semplici da costruire e meno critici da tarare grazie alla loro semplicità circuitale e al ir-

dotto numero di componenti che li compongono. Anche in questo caso, per migliorare le caratteristiche di linearità,

è possibile utilizzare la taratura a LASER dei resistori che compongono il dispositivo.

7.5.3 ADC ad approssimazioni successive


Un tentativo ben riuscito8 di superare le restrizioni imposte dalla tecnologia alla costruzione dei flash ADC

è l’ADC ad approssimazioni successive. Sebbene di alcuni ordini di grandezza più lento dei flash ADC, quello ad

approssimazioni successive ha maggior risoluzione, minor costo e, come tempo di campionamento, ben si adatta ad

essere interfacciato ai µP a 8 bit comunemente utilizzati nell’Automazione Industriale.

L’idea che sta alla base del funzionamento di questo tipo di ADC è quella di confrontare in maniera es-

quenziale il valore di una tensione ottenuta sommando quelle rappresentate dai singoli bit di una configurazione di

n bit, con quella del segnale da convertire. Partendo dal bit più significativo, posto a “1” un bit (e mantenendo a

“0” quelli di rango inferiore), si confronta la tensione equivalente della configurazione con il segnale in ingresso;

ciò fatto, se la tensione equivalente della configurazione così ottenuta è maggiore del segnale in ingresso siriasse-

gna a quel bit il valore “0”, altrimenti lo si mantiene a “1” e, comunque, si pone a “1” il valore del bit alla sua

destra e si ripete il ciclo fintanto che non è stato in tal maniera assegnato un valore a ogni bit.

L’ADC ad approssimazioni successive è costituito da tre blocchi funzionali: Comparatore, DAC e Unità di

Controllo e Temporizzazione e Registro ad Approssimazioni Successive (SAR, in Inglese);

L’Unità di Controllo e Temporizzazione riceve dall’esterno, oltre a un clock, il comando d’inizio campio-

namento (Start Of Conversion) e, a conversione terminata, attiva il segnale di fine conversione (End Of Conver-

sion). Al suo interno contiene il SAR che viene inizializzato con la configurazione “100…00” (il numero di bit

usati dipende dalla risoluzione) che, posta in ingresso al DAC, forza l’uscita del DAC a Vref/2. L’uscita del DAC è

collegata all’ingresso (-) del comparatore, mentre all’ingresso (+) dello stesso è collegato il segnale da convertire.

Trascorso un periodo di clock, l’uscita del comparatore, che indica con “1” se l’ingresso è maggiore della

tensione generata dal DAC, oppure con “0” l’evento opposto, viene copiata nel bit del SAR che era stato prece-

dentemente posto a “1” e si pone a “1” il bit immediatamente a destra; la configurazione risultante funge da nuovo

ingresso al DAC. Il ciclo si ripete fino a quando tutti i bit del SAR sono stati riscritti in base ai risultati del compa-

ratore.

allungando il percorso della corrente e dunque della sua lunghezza l efficace ai fini della formazione della resi-
stenza.
8
Gli ADC ad approssimazioni successive sono i più rappresentati sul mercato.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 9 di 15
Questo tipo di ADC deriva il suo nome dalla particolare modalità di conversione adottata, in quanto, per

approssimazioni successive, l’uscita del DAC ad ogni passo si avvicina al valore incognito della tensione in ingres-

so per la metà, al più, dello scarto residuo tra le due tensioni. Il modo di procedere è anche un buon esempio

dell’algoritmo di ricerca dicotomica.

La risoluzione dell’ADC ad approssimazioni successive deriva direttamente da quella del DAC e del com-

paratore utilizzati, e comunque può arrivare ai quattordici e anche ai sedici bit (dopodiché intervengono altri fattori

che ne limitano la risoluzione). Unico problema macroscopico è che con l’aumentare della risoluzione aumenta

linearmente il numero di periodi di clock necessari alla conversione e il periodo stesso aumenta per dare tempo al

DAC di raggiungere con più precisione il valore di tensione di volta in volta richiesto, e al comparatore di valutare

la differenza tra le due tensioni in ingresso. Gli ADC di questo tipo presenti sul mercato hanno tempi di conversio-

ne che variano dai 100 ns ai 100 µs.

7.5.4 Altri tipi di ADC


Altri tipi di ADC si differenziano costruttivamente in base alle caratteristiche dei segnali da digitalizzare:

• per il campionamento dei segnali audio si adoperano ADC a “capacità commutate” che presentato
un’ottima dinamica (anche 24 bit!) a scapito del tempo di campionamento che raramente resta al di
sotto dei 20 µs;

• per misurare segnali di bassa frequenza (al più qualche centinaio di Hz) da digitalizzare con buona ir-
soluzione, ma con tempi di conversione dell’ordine della frazione di secondo (tipici degli strumenti di
misura), si usano ADC a “singola rampa” e a “doppia rampa”;

• per risoluzioni medio - alte (dodici – quattordici bit) con frequenze di campionamento tra 1 e 10 MHz,
generalmente necessarie nel campo delle trasmissioni telefoniche sulle tratte d’utente (sui tratti di i-
l
nea telefonica tra la centrale e la presa d’utente per le trasmissioni dati ad alta velocità), si adoperano
ADC a tecnologia “mista” costituiti da flash ADC a pochi bit (in genere 4 bit), affiancati ad ADC ad
approssimazioni successive.

7.6 Acquisizione di segnali digitali


Oltre alla misura delle grandezze continue, un ruolo importante nell’acquisizione dei dati lo ricoprono i es-

gnali digitali. In particolare nel mondo dell’Automazione Industriale, molti dei segnali che un elaboratore deve

acquisire sono già in forma digitale. Tale fatto deriva da una parte dalla natura intrinsecamente digitale di certi

fenomeni quali, per esempio, l’apertura e la chiusura di un interruttore, e da un’altra dal fatto che spesso gli stati

intermedi di una grandezza non sono di particolare interesse. A quest’ultimo proposito si pensi, per esempio, a tutti

quei casi in cui è interessante conoscere se qualcosa c’è o non c’è: il serbatoio è vuoto? Il serbatoio è pieno? c’è

tensione? Il meccanismo è in una posizione estrema? La ruota ha compiuto un giro completo? E così via….

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 10 di 15
A questo fatto si deve aggiungere quello che è senz’altro più semplice e naturale, per un elaboratore elet-

tronico, acquisire lo stato di un segnale binario che non quello di un segnale continuo. Per il segnali continui ab-

biamo già visto in precedenza, per i segnali binari basta mettere in comunicazione un bit di un registro interno con

lo stato di una porta di I/O tramite un’istruzione di lettura (o di scrittura, se invece d’acquisire un dato vogliamo

stimolare un dispositivo esterno, ad esempio un relè). Tuttavia, anche in questo caso le cose possono complicarsi

leggermente se, invece del semplice stato del segnale esterno, vogliamo sapere se il segnale ha cambiato stato o

quante ha cambiato stato o, come vedremo nel prossimo paragrafo, quante volte ha cambiato stato in un tempo

predefinito o ancora quanto tempo è trascorso tra un cambiamento di stato e l’altro.

In mancanza di particolari dispositivi hardware che s’incarichino per conto della CPU di attendere un cam-

biamento di stato o di contare il numero dei cambiamenti di stato avvenuti, tale incombenza viene demandata ad

algoritmi ciclici implementati in software.

Un tipico algoritmo che attende indefinitamente un cambiamento particolare di stato, per esempio da “0” a

“1”, legge ciclicamente la porta sulla quale è interfacciato il segnale da controllare finché esso non risulta a “1”.

Un algoritmo per attendere che si siano verificati un certo numero di eventi può essere costruito utilizzando

due versioni dell’algoritmo precedente, una che attende per “1”, l’altra che attende per “0”, facendo in modo di

passare ciclicamente da un’attesa all’altra finché un contatore, inizializzato al numero voluto di conteggi e decre-

mentato su uno dei due fronti del segnale in ingresso, non si azzeri.

Anche in questi semplici casi bisogna comunque fare attenzione a qualche problema: l’algoritmo di ricerca

del cambiamento di stato, che è quello, comunque sia fatto, che sta alla base di ogni altro algoritmo software di

rilevazione di un evento digitale, ha un tempo proprio di ciclo che dipende dal numero d’istruzioni con cui è co-

struito, dall’architettura interna dell’elaboratore e dal periodo di clock con il quale l’elaboratore funziona.

L’algoritmo campionerà il segnale esterno una volta per ciclo e dunque se tra un campionamento e l’altro il segnale

effettua due transizioni di stato, l’algoritmo non sarà in grado di rivelarle e si creerà un artefatto nell’elaborazione

del segnale (eventualmente con conseguenze disastrose per il sistema da controllare).

Per evitare simili casi, bisogna che il progettista s’assicuri che il periodo di ciclo dell’algoritmo sia stretta-

mente inferiore alla durata minima di uno stato del segnale in ingresso. Se ciò non è sempre assicurato dalla fisica

del sistema sotto misura, è obbligatorio modificare il metodo d’acquisizione.9

9
…o abbandonare il progetto!

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 11 di 15
7.7 Misura del tempo
Altre misure che si effettuano comunemente sui segnali digitali sono la misura del “tempo di volo”, cioè la

misura dell’intervallo di tempo che intercorre tra due eventi consecutivi come due variazioni “0” => “1”, la lar-

ghezza d’impulso, cioè il tempo in cui un dato segnale permane in uno dei suoi stati e, per segnali periodici, la

frequenza e il periodo.

Per tutte quante le misure sopra descritte, e per tutte quelle da loro derivate, è necessario disporre di un

campione di tempo. Sebbene sia possibile generare un campione di tempo via software, costruendo un algoritmo

ciclico basato sul periodo di clock di sistema e sul numero di cicli di clock necessari per eseguirlo, è preferibile

utilizzare dispositivi hardware dedicati allo scopo. Difatti, un algoritmo ciclico che misuri il tempo tra due eventi

(contando il numero di cicli che vengono eseguiti tra i due eventi) monopolizza l’uso della CPU bloccando qualun-

que altra attività; se l’algoritmo è può invece essere interrotto dalla risposta della CPU ad eventi esterni (ricono-

scimento e servizio di interruzioni) il suo ciclo non sarà più isocrono e potrà creare artefatti fornendo così misure

inattendibili.

Inoltre, il periodo di ciclo di un algoritmo software non è molto breve (dipendentemente dall’algoritmo,

dall’architettura dell’elaboratore e dal periodo di clock di sistema può variare tra alcune centinaia di nanosecondi e

decine di microsecondi) e determina la risoluzione con la quale l’intervallo di tempo viene misurato. Se una risolu-

zione dell’ordine dei microsecondi normalmente è ampiamente sufficiente per misurare eventi generati da masse in

movimento (tempi di reazione umani, rotazioni e spostamenti di meccanismi, ecc.), essa diventa largamente insuf-

ficiente per eventi fisici molto veloci (tempo di volo di particelle quasi relativistiche, velocità di propagazione di

onde, ecc.) e per segnali generati elettronicamente.

In genere, per la misura del tempo si adoperano dei dispositivi hardware, “timer” e “counter”, che, oppor-

tunamente programmati permettono effettuare agevolmente misure temporali. Per esempio, per misurare la durata

dello stato “1” di un segnale (l’intervallo di tempo che impiega un mobile a percorrere lo spazio tra due traguardi,

il tempo di chiusura di un interruttore, ecc.) è possibile utilizzare un contatore che viene incrementato da unclock

quando un segnale di abilitazione al conteggio è allo stato “1”: se si collega il segnale da misurare all’abilitazione

del contatore preventivamente azzerato e si attende che il segnale da misurare compia una transizione “1” => “0”

(eventualmente generante una richiesta d’interruzione), la lettura del contatore moltiplicata per il periodo diclock

fornisce il risultato cercato10.

10
Nella pratica anche in questo caso bisogna fare attenzione a certi particolari, quale ad esempio che il periodo del
clock moltiplicato per il numero di conteggi effettuabili dal contatore sia inferiore alla durata dello stato del es-
gnale.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 12 di 15
Mano a mano che la frequenza di un segnale aumenta, fissato il periodo del ciclo di misura del tempo,

l’errore relativo compiuto nella determinazione del periodo aumenta. Perciò non è conveniente misurare con questo

sistema segnali aventi periodo vicino a quello di campionamento11. In questi casi è opportuno riportarsi a una misu-

ra di frequenza, contando il numero di eventi di uno stesso tipo (per esempio transizioni “0” => “1”) in un inter-

vallo di tempo predefinito. Per fare ciò è necessario disporre di un contatore attivato dal segnale esterno e da un

timer che sia in grado di generare una richiesta d’interruzione allo scadere del periodo prefissato; il servizio

dell’interruzione leggerà il valore del contatore e lo dividerà per il tempo impostato, calcolando così la frequenza

del segnale; oppure dividerà il valore dell’intervallo di tempo impostato per il numero di conteggi, calcolando così

il periodo medio del segnale in ingresso

Nel caso precedente si noti come contatore e timer non siano altro che due contatori caricati inizialmente

con valori diversi (il contatore con zero, il timer con un valore corrispondente all’intervallo desiderato), attivati con

conteggi in direzioni opposte l’uno dal segnale esterno da misurare, l’altro da un segnale diclock noto.

Anche in questo caso bisogna fare attenzione agli errori introdotti nella determinazione dalla risoluzione

del clock e dalle operazioni algebriche necessarie al computo: dalla teoria della propagazione degli errori, e come

accennato nel Cap. 2, l’operazione di divisione intera tra due numeri può generare risultati affetti da grandi errori.

11
Si ricorda che anche in questi casi il periodo di campionamento deve essere strettamente inferiore a quello della
fase più breve del segnale da misurare.

Liceo Scientifico “F. Cecioni” – Livorno - Appunti d’Informatica per le classi IV ST – Ed. 0
Cap. 7 pagina 13 di 15