Progettazione di un sistema di acquisizione dati a basso costo.
Lo studio e la progettazione di questo sistema è stato fatto studiando i data sheet del chip 0808 della National di seguito sono riportati i dati principali di questo componente. Ho effettuato una simulazione del componente attraverso il programma circuitmaker student dove ho inserito un ciclo di Clock pari a 1 MHz una tensione di riferimento stabile di 2.56 Volts un segnale da covertire a dente di sega da 0- 2.56 volts con una frequenza di 97.0 Hz inoltre ho simulato il comando del microprocessore con una onda quadra da 0-5 volt a una frequenza di 25 KHz.
Generalità
I convertitori analogico-digitali sono dispositivi in grado di rappresentare un segnale analogico di tensione, che ricevono in ingresso, con una parola binaria di n-bit fornita in uscita.
I circuiti integrati ADC 0808 e ADC 0809 sono convertitori A/D CMOS che usano la tecnica di conversione per approssimazioni successive, con una risoluzione di 8 bit ovvero un’ampiezza del passo più piccolo, corrispondente al bit meno signoticativo (LSB size), pari allo 0.392% del valore di fondo scala. La precisione dell’ADC 0808 e dell’ADC 0809 è rispettivamente di ±1/2 e ±1 LSB con un tempo di conversione pari a 100 micros per entrambi. La tensione di alimentazione è tipicamente +5VDC (min 4.5 max 6.0) e l’escursione delle tensioni d’ingresso è compresa tra GND-100mV e Vccx-100mV. Sono facilmente interfacciabili con i microprocessori più comuni utilizzando pochissimi componenti esterni.
Descrizione del funzionamento
Con riferimento allo schema a blocchi il funzionamento è il seguente.
Il dispositivo è composto da due sezioni: il multiplexer a 8 ingressi, con relativo registro d’indirizzamento, e il convertitore A/D. Il segnale analogico d’ingresso da convertire viene selezionato per mezzo dei 3 ingressi d’indirizzo A, B e C secondo la tabella di verità riportata. Come si vede dal diagramma quando il segnale di abilitazione indirizzi ALE (Address Latch Enable) passa dal livello L a quello H la tensione d’ingresso del canale interessato viene applicata al terminale non invertente del comparatore d’ingresso la cui uscita comanda, attraverso la logica di controllo, il registro delle approssimazioni successive SAR (Successive Approximation Register). Il ciclo di conversione ha inizio in corrispondenza del fronte di discesa del segnale di start SC (Start Conversion). Contemporaneamente tutti i bit del SAR vengono posti a zero tranne quello più significativo che rimane a uno. La VIN selezionata viene confrontata con VREF/2, ovvero con metà della tensione d’ingresso misurabile. . Il risultato, converititore dal DAC e confrontato dal comparatore, dice se l’ingresso è maggiore o minore del riferimento. Nel primo caso il bit corrispondente viene posto a zero nel secondo lasciato a uno. Nel passo successivo viene portato a uno il bit del SAR di peso immediatamente inferiore e si riesegue il confronto, la conversione e la comparazione. Attraverso approssimazioni successive si procede fino a testare anche il bit meno significativo. Concluso il ciclo di conversione il segnale di EOC (End Of Conversion), rimasto a livello L per tutto il ciclo, ritorna allo stato H. Quando diviene attiva l’abilitazione del buffer TRI-STATE OE (Output Enable), passando dal livello L e quello H, i dati vengono posti ai relativi pin di uscita.
L’impulso di START realizza la funzione di reset in corrispondenza del proprio fronte di salita; ciò permette di iniziare nuovi cicli di conversione, azzerando i registri, senza che il precedente sia stato ultimato.
Il dispositivo è soggetto a cicli di test pari a 8 periodi di clock anche quando non sta convertendo, pertanto l’impulso asincrono di start produrrà i suoi effetti dopo un minimo di 0 e un massimo di 8 periodi di clock. La tensione di riferimento VREF=VREF(+)-VREF(-), di cui si è già detto, alimenta una rete resistiva interna al DAC tra l’inizio e la fine (pin 12 e pin 16) con un valore compreso tra 0.5V e Vcc; inoltre la VREF/2 deve essere uguale a Vcc/2+100mV.
Tale flessibilità elimina la necessità di regolazioni di zero e permette la conversione di tensioni analogiche la cui escursione si limita ad una percentuale del valore di fondo scala; questa caratteristica è propria di molti trasduttori.
Nel circuito proposto un microprocessore seleziona attraverso 3 linee d’indirizzo collegate agli ingressi A, B, C uno degli 8 segnali analogici applicati all’ingresso del multiplexer. Il microprocessore controlla anche i segnali ALE, SC e OE e riceve dal convertitore un segnale di interrupt relativo alla fine della conversione.
Lo schema elettrico può essere diviso in tre parti
– Le protezioni
– Il convertitore
– Il multiplexer
Il convertitore analogico ADC0808 utilizzato è prodotto dalla National e può essere reperito presso i negozi di elettronica. La caratteristica particolare di questo chip è quella di gestire 8 ingressi analogici. La logica di gestione del convertitore può essere pilotata da un microprocessore o da un PC. Una caratteristica di questo dispositivo è l’alta velocità, alta precisione, ripetività della misura e ridotto consumo. La conversione è raggiunta in 8 approsimazioni la regola generale è tante approsimazioni quanti sono il numero di bit del convertitore. La conversione ha inizio sul fronte positivo dello start conversion pin 6 a cui corrisponde il reset del registro ad approssimazioni successive. La conversione può essere interrotta all’atto della ricezione di un nuovo impulso di inizio conversione. Questa può essere resa continua connettendo il pin di termine conversione EOC pin7 con il pin di inizio conversione.
Funzionamento
Il primo ciclo di clock è necessario per inizializzare la logica del convertitore succesivamente è necessario eseguire la selezione del canale analogico solo a questo punto può avere inizio la conversione con la transizione da 0 a 1 del bit di start. Durante il periodo di conversione l’ingresso analogico deve rimanere stabile. Dopo 8 cicli di clock il pin EOC di fine conversione diviene basso e il termine della conversione viene segnalato dal livello alto del pin output enable.La funzione del PC e realizzare questa operazione. Il software effettuerà tutte le operazioni necessarie per la conversione degli otto canali di ingresso selezionando di volta in volta il canale da convertire. in particolare il programma realizzato in visual Basic selezionerà progressivamente tutti i canali per poi iniziare nuovamente il ciclo. Questa operazione viene gestita tramite la porta parallela senza realizzare alcuna scheda di interfaccia tra il bus interno del pc e la scheda stessa. Sulla lpt del Pc ci sono solo cinque ingressi, non sufficienti, alla completa acquisizione del valore digitale, per ovviare a questo inconveniente gli otto bit che contengono il dato verranno divisi in due nibble. Ognuno di questi verrà selezionato ed inviato alla porta parallela tramite un multiplexer. La selezione è effettuata dal pin 5 della porta parallela collegata al multiplexer. A seconda dello stato di questo pin il multiplexer manderà sulle sue uscite Y il primo nibble A e il secondo nibble B. Il nibble verrà letto e sarà il software a ricostruire il byte ed effettuare la conversione necessaria.
La sezione di ingresso è costituita da protezioni elettroniche. Che sono un diodo 1N4148 la cui funzione è di eliminare l’eventuale componente negativa del segnale di ingresso -0,6 volt, mentre il diodo zener limita la tensione di ingresso a +5volt. Un cenno al potenziometro R9 la cui funzione è quella di variare la tensione di riferimento qual ora si volesse ottenere la massima tensione relativa al segnale in ingresso. Così se desideriamo convertire segnali analogici a 3 V sarà opportuno sostituire tutti i diodi zener a questo valore. Questa regola e valida se tutti gli ingressi hanno il medesimo valore massimo ossia quello di riferimento. Se invece tra gli otto ingressi avremo uno a 5 volts il valore della tensione di riferimento dovrà essere di 5 volts. Se non si osserva questa norma oltre ad ottenere un overflow del convertitore si può incorrere al guasto del dispositivo.
Software
Ho sviluppato il software di gestione della schedina in Visual Basic 4. Per la gestione della porta parallela è necessario inserire nella directory di windows la inpout32.dll e invocarla nelle dichiarazioni di modulo. Nella sezione download ho inserito codice sorgente del programma di gestione ad un ingresso e il programma di gestione ad otto ingressi. Il software è stato sviluppato abbastanza grezzamente e non è stato curato in modo particolare, prossimamente versioni più aggiornate saranno disponibili.
Lascia un commento