Elementi Di Elettronica Digitale Labview (1-7)
Elementi Di Elettronica Digitale Labview (1-7)
Elettronica Digitale
Copyright © 1998 by National Instruments Corporation, 6504 Bridge Point Parkway, Austin, Texas 78730-5039.
Universities, colleges, and other educational institutions may reproduce all or part of this publication for educational use.
For all other uses, this publication ma y not be reproduced or transmitted in any form, electronic or mechanical, including
photocopying, recording, storing in an information retrieval system, or translating, in whole or in part, without the prior
written consent of National Instruments Corporation.
Trademarks
LabVIEW™ and The Software is the Instrument™ are trademarks of National Instruments Corporation.
Product and company names listed are trademarks or trade names of their respective companies .
Indice
Introduzione........................................................................................................................................ 1
Laboratorio 1 Porte logiche..............................................................................................................1
La porta AND .................................................................................................................................... 1
Le porte OR e XOR ..........................................................................................................................1
Negazione .........................................................................................................................................2
Le porte NAND, NOR, e NXOR........................................................................................................ 2
Costruire le porte mediante altre porte.............................................................................................3
Porte con più di due ingressi ............................................................................................................ 3
Mascheratura.................................................................................................................................... 4
Applicazioni: il selettore di dati .........................................................................................................5
Date un nome alle porte...................................................................................................................6
VI del Laboratorio 1 (in ordine di presentazione) .............................................................................6
Laboratorio 2 Codificatori
...................................................6
e c20 TD 0.162 Tc (1) Tj 6 0 TD /F5 11.25 Tf 0 Tc 0.1875 Tw ( ) Tj -442.5 -1lh3e
Introduzione
L’elettronica digitale è alla base di molti dispositivi elettronici che utilizziamo
quotidianamente, e viene insegnata in molte scuole superiori e in diversi corsi di
laurea a indirizzo tecnico-scientifico. LabVIEW è uno strumento eccellente per
presentare e dimostrare alcuni concetti fondamentali dell’elettronica digitale grazie
alla grande varietà di controlli e indicatori numerici e Booleani di cui dispone,
insieme all’abbondanza di strutture e funzioni di programmazione. L’intrinseca
modularità di LabVIEW consente di realizzare le applicazioni nello stesso modo in
cui vengono realizzati i complessi circuiti integrati digitali, a partire da circuiti di
minore complessità, a loro volta costituiti da porte logiche elementari.
Questo manuale è stato progettato come un sussidio all’insegnamento che può
essere utilizzato in classe, in laboratorio o come corso in autoapprendimento.
L’ordine dei laboratori proposti è quella della maggior parte dei libri di testo di
elettronica. I primi sei laboratori riguardano le porte logiche fondamentali, i circuiti
di codifica, la somma di valori binari, i circuiti D-latch, i contatori ad anello e i flip-
flop JK. La maggior parte degli strumenti virtuali (detti VI, da Virtual Instruments) di
cui si propone la realizzazione sono adatti sia per le dimostrazioni in aula sia per
l'attività di laboratorio. La seconda serie di sei laboratori tratta temi avanzati quali
DAC, ADC, display a sette segmenti, la trasmissione dati in forma seriale e le
CPU. È possibile conseguire la massima efficacia didattica nella trattazione di
questi argomenti se li si affronta potendo accedere nel contempo al laboratorio di
elettronica digitale, in modo da poter confrontare le simulazioni realizzate in
LabVIEW con il comportamento di circuiti integrati reali.
In ogni caso si può migliorare la comprensione degli argomenti utilizzando una
scheda DAQ di National Instruments per interagire con il mondo reale attraverso le
funzioni di I/O digitale, le uscite e gli ingressi analogici e la comunicazione tramite
porta seriale rese disponibili da LabVIEW.
I laboratori 2, 5 e 12 hanno un taglio particolarmente applicativo e mirano a dare
una dimostrazione degli schemi di codifica, della crittografia digitale e del
funzionamento di una CPU. Questi laboratori possono essere utilizzati come temi
per delle tesine o per esercitazioni di un certo impegno.
I laboratori possono anche essere raggruppati per dimostrare la connessione
esistente tra dispositivi evoluti e circuiti fondamentali; si può mostrare, per
esempio, che il funzionamento della CPU dipende dai concetti di registro e dalle
operazioni su due ingressi.
Il manuale viene fornito con un CD che contiene tutti i VI e il testo, in modo che
possiate personalizzare il materiale.
Laboratorio 1
Porte logiche
Le porte logiche sono i blocchi costitutivi fondamentali dei circuiti logici elettronici.
Questi dispositivi operano in due modalità, di “apertura” o di “chiusura”, che
consentono o impediscono il passaggio dei dati, da cui il nome "porte". A partire da
un numero ridotto di tipi fondamentali di porte (AND, OR, XOR e NOT) si può
creare una vasta gamma di circuiti con le più diverse funzioni.
La porta AND
Una porta AND è costituita da due ingressi e da un’uscita. Se i due ingressi sono A
e B, l’uscita (spesso chiamata Q) è “aperta” solo se sono aperte sia A che B.
In elettronica digitale, lo stato aperto è spesso rappresentato da 1 e lo stato chiuso
da 0. La relazione tra segnali di ingresso e di uscita è spesso riassunta in una
tabella della verità, che riporta tutte le possibili combinazioni di valori in ingresso e
dei valori risultanti in uscita. Per la porta AND ci sono quattro possibili
combinazioni di stati in ingresso : A=0, B=0; A=0, B=1; A=1, B=0; e A=1, B=1.
Nella seguente tabella delle verità, gli stati in ingresso sono elencati nelle colonne
di sinistra e di centro, mentre l’uscita della porta AND è riportata nella colonna più
a destra.
Tabella 1-1. Tabella di verità per la porta AND
A B Q=A AND B
0 0 1
1 0 1
0 1 0
0 0 1
In LabVIEW è possibile specificare un ingresso logico digitale agendo su un
controllo di tipo Booleano, come un interruttore, mentre si può usare un indicatore
Booleano, come un LED, per visualizzare lo stato di un’uscita. La porta AND è una
delle funzioni di base di LabVIEW e quindi per creare un semplice VI che mostri
l’uso della porta AND non si deve fare altro che collegare due interruttori alle porte
in ingresso e un LED alla porta di uscita.
Le porte OR e XOR
Anche la porta OR è una porta con due ingressi e una sola uscita. A differenza di
quanto accade con la porta AND, l’uscita assume il valore 1 quando uno dei due
ingressi o entrambi sono 1. L’uscita della porta OR è 0 solo quando entrambi gli
ingressi sono 0.
Una porta collegata alla porta OR è la porta XOR (eXclusive OR), in cui l’uscita
assume il valore 1 solo quando uno e uno solo degli ingressi è 1. In altri termini,
l’uscita della porta XOR diviene 1 quando i suoi ingressi sono diversi.
Negazione
La porta NOT è ancora più semplice in quanto ha un solo ingresso e una sola
uscita, che assume sempre il valore opposto (o nega) rispetto a quello presente
sull’ingresso.
In modo simile si può facilmente costruire una porta AND a partire da due porte
NAND:
Tabella 1-3. La tabella di verità per una porta AND con tre ingressi
A B C A AND B AND C
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Potete facilmente costruire un VI che implementi la porta AND a tre ingressi
utilizzando un paio di porte AND a due ingressi:
Figura 1-8. Il programma LabVIEW che realizza una porta AND a tre ingressi.
Mascheratura
Come semplice applicazione di queste porte logiche fondamentali, consideriamo il
concetto di mascheratura. Per illustrare questo concetto, di seguito è
rappresentata la tabella di verità della porta AND con le intestazioni delle colonne
opportunamente modificate.
Tabella 1-4. La tabella di verità per la porta AND in cui si utilizza un ingresso come maschera.
Figura 1-11. La versione del selettore dati digitale costruito con la funzione predefinita Select di
LabVIEW
Laboratorio 2
Codificatori e decodificatori
Un codificatore converte lo stato in ingresso di un dispositivo in una
rappresentazione binaria di 1 e 0. Considerate un commutatore binario con 10
posizioni che possono essere utilizzate per inserire i numeri da 0 a 9. Ogni
posizione del commutatore deve essere codificata da un’unica sequenza binaria.
Ad esempio, la posizione 7 del commutatore può essere codificata come 0111. Un
decodificatore effettua la conversione opposta, trasformando i codici binari in stati
in uscita del dispositivo.
Considerate il caso di un singolo dado. Su ciascuna delle sue sei facce appare
una delle seguenti configurazioni, che rappresentano i numeri da 1 a 6.
Accendendo le luci appropriate, si può creare una qualsiasi delle sei configurazioni
sulla faccia del dado. Osservando attentamente le configurazioni potete notare che
ci sono solo quattro disposizioni dei punti, che chiameremo configurazioni
fondamentali, sovrapponendo le quali si possono creare tutte le altre.
Chiamiamo queste configurazioni fondamentali A, B, C e D:
Tabella 2 -1 Gli stati fondamentali consentono di comporre ogni numero sulle facce del dado
1 √
2 √
3 √ √
4 √ √
5 √ √ √
6 √ √ √
Il dado
Per costruire un dado virtuale disponete sette indicatori LED in una configurazione
ad “H” sul pannello frontale insieme a quattro interruttori. Nel diagramma a blocchi
collegate i terminali degli indicatori a LED ai quattro interruttori in modo da
visualizzare le quattro configurazioni fondamentali A, B, C e D. Azionando i quattro
interruttori sul pannello frontale si possono ora accendere e spegnere le
configurazioni fondamentali.
Contatore Modulo 6
Un contatore modulo 6 è un contatore con 6 soli stati che si ripetono in sequenza.
Si può costruire un semplice contatore modulo 6 utilizzando un registro a
scorrimento a tre elementi in cui l'uscita dell’ultimo elemento viene negata e il
valore ottenuto viene fornito in ingresso al primo elemento (un contatore di questo
tipo viene chiamato switched tail ring counter).
Aprite un nuovo VI in LabVIEW e collocate tre indicatori LED sul pannello frontale
che mostreranno lo stato di uscita degli elementi del registro a scorrimento
chiamati Q1, Q2 e Q3. Ne l diagramma a blocchi utilizzate un registro a
scorrimento con tre elementi, ciascuno collegato a un indicatore LED.
Potete utilizzare la funzione Wait per rallentare il funzionamento e poter vedere
che cosa accade. Osservate che il controllo del ciclo While non è collegato a nulla.
Ogni volta che il VI è chiamato restituisce il valore successivo a quello corrente.
Ciclo Q1 Q2 Q3
1 0 0 0
2 1 0 0
3 1 1 0
4 1 1 1
5 0 1 1
6 0 0 1
7 0 0 0
Il valore in uscita si ripete dopo sei esecuzioni, da cui il nome "contatore modulo
6".
Codificatore
Apparentemente non c’è correlazione tra uscita e valore di conteggio. Tuttavia, un
po’ di lungimiranza rende le scelte più semplici:
Dadi virtuali
Figura 2-9. Diagramma a blocchi del VI Dice.vi. Osservate la somiglianza del diagramma con lo
schema funzionale.
Laboratorio 3
Somma binaria
Prima di procedere con questo laboratorio, è utile rivedere alcuni nozioni sulle
somme di numeri binari.
Proprio come in una somma di numeri decimali, aggiungere 0 a un numero lo
lascia immutato: 0 + 0 = 0, mentre 1 + 0 = 1. Tuttavia il risultato della somma
binaria 1 + 1 non è “2” (un simbolo che non esiste nel sistema numerico binario),
ma “10”; dove il simbolo “1” si trova nella posizione 21 e "0" è nella posizione 20.
Se scriveste questa somma per esteso, recitereste: “Uno più uno fa due; scrivo lo
zero, riporto l’uno”
1
+1
10
101
+101
1010
Figura 3-4. Sommatore completo realizzato utilizzando due subVI come sommatori parziali
1011
+0010
1101
Un sommatore a 4 bit, per esempio, può essere costruito in LabVIEW nel modo
seguente:
Figura 3-6. Diagramma a blocchi in LabVIEW per una somma binaria a 4 bit
Figura 3-7. Somma binaria a 4 bit con l'impiego degli array di LabVIEW (Four-Bit Adder2.vi)
Esiste inoltre una terza versione del VI, chiamata semplicemente Four-bit
Adder3.vi, identica a quella di figura 3-7 eccetto per il fatto che gli ingressi e le
uscite sono visualizzate come vettori Booleani. Notate che, in un vettore Booleano,
il bit meno significativo (LBS) si trova a destra mentre il bit più significativo (MBS) è
a sinistra. Questa versione del programma è stata creata come un subVI in modo
da poter combinare due di questi circuiti per creare un sommatore a 8 bit. Notate
che ciascun addendo a 8 bit (un byte) è diviso in due “nibble” (mezzo byte); i due
nibble meno significativi vengono mandati a un primo sommatore a 4 bit, mentre i
due nibble più significativi vengono mandati a un secondo sommatore a 4 bit.
0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001
La numerazione BCD può essere considerata come un sottoinsieme di una
numerazione binaria completa, di cui vengono utilizzati unicamente gli stati da
0000 a 1001 (0 a 9). Ad esempio,
42 10 = 00101010 2
Chiaramente la rappresentazione BCD implica un maggior dispendio di bit, in
quanto contiene numerose configurazioni a 4 bit che non sono utilizzate per
codificare cifre digitali. Lo spreco è ancora più accentuato al crescere dei valori
decimali che si vogliono rappresentare. Due byte (16 bit) sono sufficienti per
codificare interi decimali da 0 a 65535 nel caso in cui venga usata la
rappresentazione binaria, ma gli stessi due byte consentono di rappresentare solo
i numeri tra 0 e 9999 utilizzando la rappresentazione BCD.
Il vantaggio della codifica BCD è che consente in modo semplice la
visualizzazione dei valori su display decimali.
La sfida in LabVIEW
Create un codificatore BCD che accetti in ingresso valori compresi tra 0 e 9 e ne
generi la rappresentazione BCD a 4 bit. Costruite un decodificatore BCD dotato
del comportamento inverso del codificatore descritto. Costruite un sommatore
BCD a una cifra.
Laboratorio 4
Memoria: Il D-Latch
Nei primi tre laboratori di questa serie si sono visti esclusivamente circuiti
combinatori in cui gli stati di ingresso determinavano completamente quelli di
uscita; nei circuiti analizzati fino ad ora non c’è dipendenza dalla storia passata o
dal modo in cui si è arrivati allo stato corrente, il che significa che questi circuiti
non dispongono di alcuna forma di “memoria”. La maggior parte delle operazioni
digitali sono sequenziali, cioè l’evento B deve presentarsi dopo l’evento A; in un
computer digitale inoltre gli eventi non solo sono sequenziali ma devono essere
anche sincronizzati utilizzando un temporizzatore esterno (clock). I dispositivi con
logica a clock sono dispositivi i cui dati in uscita cambiano solo quando il segnale
di clock lo consente. Nei laboratori seguenti vedrete come l'impiego dei dispositivi
con logica basata su clock consente di disporre di circuiti digitali dotati di memoria
e rende possibile la creazione di numerosi circuiti digitali interessanti.
Un semplice circuito di memoria è il D-latch (data latch) che rileva lo stato in
ingresso e lo mantiene sull’uscita, quando riceve un segnale di clock che lo abilita
a questa operazione. Lo stato di uscita resta invariato anche se lo stato d’ingresso
cambia fino a quando il circuito non riceve un’altra richiesta di aggiornamento
attraverso il clock.
Tradizionalmente l’ingresso del circuito D-latch è indicato con la lettera D e l’uscita
con la lettera Q. Il comando di aggiornamento è fornito effettuando una transizione
sull’ingresso di clock da HI a LO o da LO a HI, nei dispositivi detti "ad attivazione
sul fronte di salita" o "attivati dal livello", nei quali il segnale in uscita riflette il
segnale in ingresso solo quando il clock è a livello HI.
Alcuni circuiti D-latch dispongono inoltre degli ingressi “Preset” (Imposta) e “Clear”
(Annulla) che permettono di impostare l’uscita ai livelli HI o LO indipendentemente
dal segnale del temporizzatore. Durante il normale funzionamento questi due
ingressi vengono impostati a un valore alto in modo da non interferire con la logica
basata su clock, ma le uscite Q e Q possono essere inizializzate a uno stato noto
utilizzando gli ingressi Preset e Clear quando la logica basata su clock non è
attiva.
Registri a scorrimento
Nell'elettronica digitale un "registro a scorrimento" è un circuito composto da più
memorie a 1 bit disposte in cascata e in cui lo stato di ciascun bit viene aggiornato
ad ogni transizione del segnale di clock tramite la copia dello stato del suo vicino.
diagramma a blocchi di un registro a 4 bit, Shift.vi, che opera nel modo mostrato
in tabella.
La sfida in LabVIEW
Progettate un VI in cui quando il “secchio” passa l’ultimo bit, viene aggiunto un
nuovo secchio all’ingresso D, in modo che il processo continui all’infinito.
Contatore ciclico
Se l’uscita di un registro a scorrimento viene riportata al suo ingresso dopo n cicli
di clock l’uscita corrispondente si ripeterà e quindi il registro a scorrimento diventa
un contatore. Il nome "contatore ciclico" (ring counter) deriva dal fatto che l’ultimo
bit in uscita viene riportato ciclicamente all’ingresso. Un semplice contatore ciclico
a 4 bit prende l’ultima uscita Q4 e la riporta ciclicamente all’ingresso del registro a
scorrimento, D.
Note
Laboratorio 5
Generatori di Numeri Pseudo-Casuali
Nell’ultimo laboratorio abbiamo introdotto i contatori ciclici per realizzare dei
contatori modulo n. In questo laboratorio i dati in uscita da una combinazione di
stadi vengono opportunamente elaborati e riportati all'ingresso del medesimo
dispositivo. Se viene scelta la combinazione corretta, i dati in uscita avranno la
lunghezza massima (cioè il modulo del contatore è pari a 2N –1). Per un contatore
a 8 bit, N = 8 e (2N –1) = 255. Questi circuiti, spesso chiamati generatori di numeri
pseudo-casuali (PRNG, dall’inglese Pseudo-Random Number Generator), hanno
alcune caratteristiche interessanti: le sequenze generate sembrano composte da
numeri casuali, ma di fatto la sequenza si ripete dopo (2N –1) cicli.
I generatori di numeri e di sequenze pseudo-casuali hanno numerose applicazioni
nel campo della sicurezza informatica, della crittografia, del collaudo dei sistemi
audio, nella verifica dei bit di errore e nei sistemi sicuri per la trasmissione dei dati.
Figura 5-1. PRNG a 6 bit costruito mediante 6 D-Latch e una porta XOR
Figura 5-5. I valori disponibili su [Serial Out] del sequenziatore di bit pseudo-casuale
Figura 5-6. Confronto tra i primi 50 bit generati da PRBS e i bit da 255 a 305
Figura 5-9. Rappresentazione tramite un vettore di valori Booleani della sequenza di bit generata un
PRNG a 8 bit per indici compresi tra 7 e 13 e tra 262 e 268.
Note
Laboratorio 6
Flip-Flop Master-Slave JK
Uno dei più importanti dispositivi logica basati su clock è il flip-flop master-slave
JK. A differenza del D-latch, che conserva la memoria solo fino al successivo
impulso di clock, il flip-flop JK è fornito di una memoria reale. Quando gli ingressi J
e K sono bassi, lo stato delle uscite Q e Q non cambia, indipendentemente dal
segnale di clock. Di conseguenza le informazioni possono essere collocate nel bit
di uscita, dove rimangono sino a che non sono necessarie. L’uscita Q può essere
impostata a livello alto o basso dal segnale di clock in base alla impostazione degli
ingressi (J,K), che devono avere rispettivamente valori (0,1) o (1,0). Di fatto,
collocando un inverter tra gli ingressi J e K si ottiene un circuito D-latch. La figura
successiva mostra lo schema di un circuito flip-flop JK e la relativa tabella di verità.
Osservate che il flip-flop può essere impostato (Set) o azzerato (Reset) anche
utilizzando direttamente gli ingressi logici.
La prima riga della tabella di verità basata su clock è lo stato di memoria, mentre le
due successive combinazioni sono gli stati di latch. La novità del circuito flip-flop
JK è la quarta combinazione (1,1), che genera un'uscita che commuta
ciclicamente in base al segnale di clock, un comportamento indicato in inglese con
il termine toggle. Quando il circuito riceve il segnale di clock l’uscita commuta da
[1-->0] se valeva 1 o da [0-->1] se valeva 0.
Questa funzione di complementazione viene spesso indicata con il termine bit
toggling, cioè commutazione del bit, ed il flip-flop risultante (in cui entrambi gli
ingressi J e K sono a livello HI) viene chiamato flip-flop T. Dato che si verifica un
solo cambiamento di stato per ogni ciclo, sono necessari due cicli di clock per
riportare l'uscita al suo stato iniziale. Caricate Binary1.vi ed osservate il
funzionamento del flip-flop T in base al segnale di clock.
Figura 6-2. Simulazione in LabVIEW di un contatore binario "divisore per 2" realizzato con un subVI
Flip-Flop T
Ogni volta che viene premuto il pulsante Run di LabVIEW il clock cambia stato da
HI a LO o da LO ad HI.
Quante volte è necessario premere il pulsante Run affinché il bit in uscita passi
ciclicamente da LO ad HI e di nuovo a LO?
Può essere più semplice fare le osservazioni corrette premendo il pulsante di
esecuzione continua "Run Continuously”. Poiché sono richiesti due impulsi di clock
affinché l’uscita ritorni al valore iniziale, il flip-flop T divide per due la frequenza di
clock ed è spesso chiamato contatore binario “divisore per due”.
In LabVIEW (osservate il diagramma a blocchi ed aprite il subVI flip-flop T), il flip-
flop T viene simulato con una struttura Case posta all’interno di un ciclo While. Il
registro a scorrimento più alto, insieme all’inverter, simula il segnale di clock. Se
l’uscita di un flip-flop T viene utilizzata come ingresso di clock per un secondo flip-
flop T, la frequenza di uscita della coppia di flip-flop è divisa due volte per due,
cioè è divisa per 4. Caricate ed eseguite Binary2.vi.
Se l’uscita del primo flip-flop ha peso 1 e quella del secondo flip-flop ha peso 2, il
valore decimale equivalente assume i valori in sequenza 0,1,2,3, 0,1,2,3, 0,1,2,3, e
così via al procedere del segnale di clock: si tratta quindi di un contatore binario
modulo 4. Nella simulazione di LabVIEW si può osservare nel diagramma a
blocchi come l’uscita del primo flip-flop divenga l'ingresso di una porta AND a cui è
collegato anche il segnale di clock e l'uscita della porta AND venga utilizzata come
ingresso per il flip-flop successivo.
Contatori binari
I contatori binari sono composti da una serie di flip-flop J-K i cui ingressi (J,K) sono
collegati a un livello logico alto (HI) e in cui ciascuna uscita è collegata all'ingresso
del clock del flip-flop seguente. Il segnale di clock entra nella serie di flip-flop
concatenati sull'ingresso di clock del primo flip-flop e si propaga nella serie
attraverso il collegamento uscita di un flip-flop / ingresso di clock del flip-flop
seguente.
In questa configurazione il segnale di clock viene diviso per 2 ogni volta che passa
attraverso un flip-flop JK e quindi una sequenza di quattro flip-flop JK effettua la
divisione per 24, cioè la divisione per 16.
Caricate il VI chiamato Binary4.vi, che simula il contatore binario a 4 bit descritto
qui sopra. Premendo il pulsante Run si può osservare il funzionamento di questo
contatore binario divisore per 16. I quattro stati binari (Q3 , Q2 , Q1 , Q0 ) sono
visualizzati da indicatori LED, mentre il valore decimale equivalente alla sequenza
di bit viene visualizzato come valore numerico sul pannello frontale; oltre a ciò
viene anche visualizzato graficamente l'andamento dei segnali per ciascuna uscita
Q0-Q3 su quattro grafici distinti.
Ciclo di Q3 Q2 Q1 Q0 DE#
clock
0 0 0 0 0 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 1 1 1 1 15
La tabella, una volta completata, visualizza tutte le combinazioni possibili per un
contatore binario a 4 bit. Se le uscite Q 0, Q1 , Q 2 , and Q3 hanno peso 20, 21, 22 e
23, è possibile rappresentare con le quattro uscite tutti i numeri compresi tra 0 e 15
in formato binario. Guardate il diagramma a blocchi di LabVIEW per vedere come
viene calcolato il valore decimale equivalente.
Nella notazione esadecimale i 16 stati (0-15) sono identificati dai simboli 0...9 e
A...F. Questa notazione è più compatta e più semplice da ricordare rispetto a
lunghe combinazioni di bit della notazione binaria. Le lunghe sequenze di bit
vengono suddivise in gruppi di 4 bit chiamati nibble e ogni nibble viene codificato
come un singolo carattere esadecimale.
Ad esempio, il numero binario a 16 bit 1101 0111 0011 1100 è codificato come
$D73C in notazione esadecimale.
La sfida in LabVIEW
Progettate un contatore binario a due cifre, che conti da 00 a 99.
In sintesi
I contatori binari sono componenti fondamentali dei circuiti elettronici digitali.
Vengono utilizzati in tutte le varianti dei contatori modulo n, nella generazione di
frequenze di clock secondarie e in molti circuito di ordine superiore come i
dispositivi per la conversione analogico/digitale e digitale/analogica.
Laboratorio 7
Convertitore Digitale/Analogico
Il convertitore Digitale/Analogico, noto come convertitore D/A o DAC
(dall'inglese Digital-to-Analog Converter) è un importantissimo circuito
che costituisce il ponte tra i mondi analogico e digitale. I DAC sono
componenti fondamentali di molti circuiti e strumenti, inclusi voltmetri
digitali, plotter, oscilloscopi e numerosi dispositivi controllati da
computer. Questo capitolo presenta il convertitore Digitale/Analogico, ne
considera alcune varianti e descrive come viene utilizzato per la
generazione di forme d’onda.
Cos’è un DAC?
Un DAC è un componente elettronico che converte i livelli logici digitali
in tensioni analogiche. L’uscita di un DAC è data dalla somma di tutti i bit
di ingresso a ognuno dei quali viene assegnato un peso particolare:
DAC = Σ wi bi
dove wi è il fattore di ponderazione, bi è il valore del bit (1 o 0) e i è
l’indice della cifra del bit. Nel caso di uno schema ponderale binario, in
cui wi = 2i, l’espressione completa per un DAC ad 8 bit diviene
DAC = 128 b7 + 64 b6 + 32 b5 + 16 b4 + 8 b3 + 4 b2 + 2 b1 + 1 b0
Simulatore ALU
L’unità aritmetica e logica (ALU, Arithmetic and Logic Unit) è
responsabile di tutte le operazioni logiche ed aritmetiche che avvengono
all’interno dell’unità di elaborazione centrale (CPU) di un
microprocessore. Considerate l’istruzione ADD (somma)
ADD R1,R2
che somma il contenuto del Registro 1 al contenuto del Registro 2 e
memorizza la somma in un accumulatore. Otto commutatori Booleani e i
corrispondenti LED di visualizzazione simulano i registri a 8 bit R1 e R2.
Per mostrare il valore contenuto nell'accumulatore e l'eventuale riporto
in caso di overflow si utilizzano nove indicatori LED. Tre copie del VI
Figura 7-3. Simulazione in LabVIEW di un circuito che effettua la somma binaria a 8 bit
Figura 7-4. Circuito DAC a 8 bit costruito con circuiti integrati convenzionali.
Figura 7-5. Simulazione in LabVIEW del circuito DAC a 8 bit mostrato nella Figura 7-4
Quando aumenta il numero dei bit del DAC l’altezza degli scalini si
riduce. Un DAC a 4 bit ha 14 scalini, un DAC a 6 bit ha 63 scalini e un
DAC a 8 bit ha 255 scalini. Il programma a cui fa riferimento la figura qui
sopra, chiamato DAC Resolution.vi, mostra dinamicamente come la
risoluzione aumenti con il numero dei bit. Quando il numero di bit
aumenta a 16 o 20, la forma d’onda digitale approssima in modo molto
accurato una rampa analogica. Nell’ambito analogico questo tipo di
forma d’onda è chiamata "a dente di sega". Guardate l’uscita del
DAC8/12.vi, che dimostra la maggiore risoluzione resa possibile dal
passaggio da un DAC ad 8 bit ad uno a 12 bit. Molte applicazioni
tecniche e scientifiche richiedono una risoluzione di almeno 12 bit.
DAC speciali
Nell’aritmetica binaria vista sinora tutti i numeri sono positivi. L’aritmetica
binaria con segno usa il bit più significativo per codificare il segno di un
numero (0 è positivo, 1 è negativo). In questo caso i 256 valori binari di
un DAC a 8 bit sono divisi in valori positivi (da 1 a 127) e valori negativi
(da 128 a 1). Il VI chiamato DAC+/-.vi mostra un'applicazione in cui si
impiega un’uscita analogica con segno.
Figure di Lissajous
Se i due segnali sono correlati armonicamente, il grafico di uno sull’asse
delle X e dell’altro sull’asse delle Y produce diagrammi interessanti
chiamate figure di Lissajous. Contando i punti di intersezione di una
linea orizzontale con il diagramma e dividendoli per il numero dei punti di
intersezione con una linea verticale, si può trovare il rapporto tra le due
frequenze. Nell'esempio della figura seguente ci sono quattro punti di
intersezione con una linea orizzontale e due con una linea verticale, il
che permette di ottenere il rapporto 2:1. Inoltre, se i due segnali sono
l'uno l'armonica dell'altro, Il diagramma di Lissajous può anche fornire la
fase tra i due segnali. Caricate Lissajous1.vi ed esaminate la fase di
due segnali correlati armonicamente.