LUCCHETTO DIGITALE A COMBINAZIONE

CORSO DI LAUREA IN INGEGNERIA INFORMATICA
TELEDIDATTICO
RELAZIONE DI ELETTRONICA 2
PROGETTO DI ESAME
LUCCHETTO DIGITALE A
COMBINAZIONE
Studente: Agostino Scardino
Introduzione
Il progetto riguarda un dispositivo digitale a combinazione, in cui lo stato della tensione di uscita
dipende dalla correttezza della combinazione introdotta tramite gli interruttori di ingresso.
Questo circuito si presta ad essere utilizzato quale lucchetto digitale, sbloccabile tramite una
combinazione numerica preimpostata.
Schema a blocchi
La seguente figura visualizza lo schema a blocchi del circuito.
Vcc
2
2
RESET
2
SW1
2
SW2
2
SW3
SW4
LED
1
1
1
1
1
1
1
UP
OUT3
clear
contatore
2
3
1
UP
OUT5
clear
contatore
0
2
3
UP
OUT1
2
3
UP
OUT6
clear
contatore
OUT2
clear
1
Vout
3
2
contatore
0
Analizziamo le diverse parti dello schema.
Interruttori
Vengono utilizzati cinque interruttori del tipo normalmente aperti, cioè sono sempre nello stato
aperto tranne nell’intervallo di tempo in cui sono pigiati dall’esterno e sono quindi nello stato
chiuso.
L’interruttore RESET è adibito a resettare il dispositivo qualora l’operatore esterno voglia digitare
nuovamente la combinazione di ingresso.
I restanti quattro interruttori (SW1, SW2, SW3, SW4) vengono pigiati per introdurre la
combinazione numerica. Ognuno è associato ad una o più cifre della combinazione e viene pigiato
tante volte quanto è il valore della cifra stessa.
Contatori
Per ogni interruttore SW è presente un contatore decimale che praticamente conta il numero di volte
che l’interruttore a cui è collegato viene pigiato. Ogni SW è collegato al morsetto di UP del
contatore associato, quindi ad ogni pressione dell’interruttore, l’uscita del contatore è incrementata
di 1. Se il numero di pressioni corrisponde alla cifra della combinazione associata all’interruttore,
l’uscita del contatore, tramite un’apposita rete combinatoria non illustrata nello schema a blocchi,
passa allo stato 1 e, tramite la porta AND, abilita il conteggio delle pressioni sul successivo
interruttore.
Il contatore utilizzato è il 74HC192. E’ dunque un contatore CMOS della serie 74 (range di
temperatura standard) e sottofamiglia HC. Questo tipo di dispositivo è pin-compatibile con i
dispositivi a tecnologia TTL.
Si tratta di un contatore decimale di tipo sincrono (il clock è collegato simultaneamente a tutti i flipflop i quali quindi cambiano stato nel medesimo istante) e può contare sia per incrementi (UP) che
per decrementi (DOWN) di 1.
La seguente figura ne mostra lo schema.
I morsetti Vcc e GND sono adibiti rispettivamente al collegamento alla tensione continua di
alimentazione e alla massa.
I morsetti UP e DOWN servono a collegare il clock se si vuole che il contatore conti
rispettivamente per incrementi o per decrementi.
Il morsetto CLR (clear) è collegato ad un riferimento alto di tensione qualora si voglia resettare il
contatore.
Il contatore ha quattro bit di uscita che sono associati ai morsetti QD, QC, QB e QA rispettivamente
dal bit più significativo (MSB) a quello meno significativo (LSB).
Qualora si voglia contare per incrementi, si deve collegare il clock (nel nostro caso l’interruttore
SW) al morsetto di UP, collegare a massa CLR e al riferimento alto di tensione i morsetti di DOWN
e LOAD. Sulle uscite avremo il seguente andamento.
U9:QA
U9:QB
U9:QC
U9:QD
5.0V
2.5V
0V
0s
2ms
V(U9:UP)
4ms
6ms
8ms
10ms
12ms
14ms
16ms
18ms
20ms
Time
In rosso è visualizzato il segnale di clock e in verde lo stato dei bit di uscita. La seguente tabella
riassume gli stati.
Impulso CLK
0
1
2
3
4
5
6
7
8
9
10
QD
0
0
0
0
0
0
0
0
1
1
0
QC
0
0
0
0
1
1
1
1
0
0
0
QB
0
0
1
1
0
0
1
1
0
0
0
QA
0
1
0
1
0
1
0
1
0
1
0
Prima che tutti i bit di uscita tornino a 0, il contatore ha contato in binario da 0 (0000) a 9 (1001).
Rete di uscita
La rete di uscita è formata dal transitor e dal diodo. Quando anche l’ultima cifra della combinazione
introdotta corrisponde a quella preimpostata, l’uscita dell’ultima porta AND è alta. Allora il
transistor (un classico BJT npn 2N2222) va in saturazione, le giunzioni di collettore e di emettitore
sono polarizzate direttamente e scorre una buona corrente di collettore. Il diodo è un LED, quindi
quando viene attraversato dalla corrente di collettore, emette una luce di colore rosso. Essendoci
una corrente di collettore, la tensione di uscita VOUT è prossima a 0 e coincide con la VCE(sat).
L’operatore esterno si accorgerà di aver introdotto la giusta combinazione numerica se vedrà
accendersi il LED.
Circuito
Ogni contatore ha quattro uscite corrispondenti ai quattro bit che compongono il valore contato. A
questi morsetti di uscita deve essere collegata una rete combinatoria opportuna. Questa rete deve
avere un’uscita nello stato alto quando in ingresso (i quattro morsetti di uscita del contatore) vi è la
corrispondente cifra in binario della combinazione. Praticamente ogni rete combinatoria deve essere
fatta in una maniera tale che, se il contatore ha contato esattamente un numero di impulsi pari alla
cifra della combinazione, deve dare in uscita uno stato alto al fine di abilitare il conteggio delle
pressioni sull’interruttore successivo. Se il numero di impulsi contati non corrisponde invece alla
cifra della combinazione, la rete combinatoria ha un’uscita bassa e non abilita l’interruttore
successivo.
Ognuna di queste reti combinatorie deve essere quindi costruita sulla base delle cifre che
compongono la combinazione. La combinazione scelta è la seguente e deve essere eseguita
nell’ordine in cui è elencata:
• 3 pressioni di SW1;
• 5 pressioni di SW2;
• 1 pressione di SW3;
• 6 pressioni di SW4;
• 1 pressione di SW3.
Costruiamo ogni rete combinatoria associata ad ogni contatore, sulla base della combinazione di
sopra.
Rete combinatoria 1
La rete combinatoria collegata al primo contatore deve presentare un’uscita alta quando il contatore
conta tre impulsi, cioè quando in ingresso alla rete è presente 0011.
QC
0
QD
0
QB
1
QA
1
Allora dobbiamo avere che Q A ⋅ QB ⋅ QC ⋅ QD = 1 , il che corrisponde alla seguente rete.
U1
5
4
14
11
15
1
10
9
UP
QA
DOWN
CLRQB
QC
LOAD
QD
A
B BO
C CO
D
74HC192
3
2
6
7
13
12
1 U2A
2
U3A
1
4
2 5
U4A
1
2
6
Rete combinatoria 2
La rete combinatoria collegata al secondo contatore deve presentare un’uscita alta quando il
contatore conta cinque impulsi, cioè quando in ingresso alla rete è presente 0101.
QC
1
QD
0
QB
0
QA
1
Allora dobbiamo avere che Q A ⋅ QB ⋅ QC ⋅ QD = 1 , il che corrisponde alla seguente rete.
U2
5
4
14
11
15
1
10
9
UP
QA
DOWN
CLRQB
QC
LOAD
QD
A
B BO
C CO
D
3
2
6
7
1 U7A
2
U8A
1
2
4
5
13
12
6
U9A
74HC192
1
2
Rete combinatoria 3
La rete combinatoria collegata al terzo contatore deve presentare un’uscita alta quando il contatore
conta uno o due impulsi, cioè quando in ingresso alla rete è presente 0001 o 0010. L’interruttore
SW3 è coinvolto in due cifre della combinazione. In entrambi i casi viene pigiato una volta, ma
bisogna tener presente che dopo la seconda pressione il contatore conta 2. In questo caso
costruiremo una rete con due uscite. Se l’ingresso è 0001, l’uscita della rete abilita il successivo
interruttore, mentre se l’ingresso è 0010, vuol dire che si è arrivati all’ultima cifra e l’uscita della
rete va alla porta AND di uscita del circuito.
QD
0
QC
0
QB
0
QA
1
QD
0
QC
0
QB
1
QA
0
Allora dobbiamo avere che Q A ⋅ QB ⋅ QC ⋅ QD = 1 per un’uscita e Q A ⋅ QB ⋅ QC ⋅ QD = 1 per l’altra
uscita, il che corrisponde alla seguente rete.
U3
15
1
10
9
UP
QA
DOWN
CLRQB
QC
LOAD
QD
A
B BO
C CO
D
3
2
6
7
1
5
4
14
11
13
12
U13A
2
1
74HC192
2
U12A
U23A
5
4
6
U22A
6
2
1
U14A
2
1
5
4
2
1
2
U21A
1
Rete combinatoria 4
La rete combinatoria collegata al quarto contatore deve presentare un’uscita alta quando il contatore
conta sei impulsi, cioè quando in ingresso alla rete è presente 0110.
QC
1
QD
0
QB
1
QA
0
Allora dobbiamo avere che Q A ⋅ QB ⋅ QC ⋅ QD = 1 , il che corrisponde alla seguente rete.
U4
5
4
14
11
U18A
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
15
1
10
9
3
2
6
7
1
2
6
4
5
U19A
13
12
1 U20A
2
1
2
Il circuito nel suo totale è visualizzato nella seguente figura.
15
1
0
10
9
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
1 U2A
2
3
2
6
7
U3A
1
U10A
U2
1
3
5
4
14
11
2
6
4
2 5
13
12
15
1
0 10
9
2
5
4
14
11
SW2
U4A
1
2
3
2
6
7
1 U7A
2
U3
U8A
1
2
4
5
3
2
6
1
74HC192
2
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
15
1
10
0 9
13
12
U9A
5
4
14
11
SW3
3
2
6
7
13
12
74HC192
U13A
2
U12A
LED
U20A
D1
6
R2
2
1
2
4
5
U19A
2
2.2k
U4
1
1
3
2
6
7
13
12
UP
DOWN
QA
QBCLR
LOAD
QC
QD
A
BO B
CO C
D
5
4
14
11
15
1
10
9
3
U23A
2
1
2
1
Q2N2222
3
2.2k
1
2
U14A
2
1
0
U24A
R1
5
4
6
U22A
Q1
2
U18A
0
SW4
U16A
1
5V
Vcc
2
1
1
1
74HC192
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
1
2
U1
2
1
U5A
SW1
1
6
5
4
2
1
2
1
U21A
0
I morsetti di reset (CLEAR) dei contatori sono stati posti al riferimento di massa per la successiva
simulazione, però nel circuito reale potremo collegare tali morsetti ad un interruttore normalmente
aperto come visualizzato nello schema a blocchi di prima.
Le porte logiche utilizzate nel circuito sono tutte a tecnologia CMOS; in particolare si è utilizzata la
porta AND a due ingressi 74HC08, la porta AND a quattro ingressi 74HC21 e la porta inverter
74HC04.
Riassumiamo nel dettaglio il funzionamento del circuito.
L’interruttore SW1 viene pigiato per tre volte, il contatore U1 ha in uscita 0011 e l’uscita della porta
U2A è alta. A questo punto ogni impulso prodotto dalla pressione su SW2 arriva al morsetto UP del
contatore U2. La stessa cosa si ripete per i successivi contatori. Quando U4 ha contato 0110, cioè
SW4 è stato pigiato sei volte, l’uscita della porta U20A è alta. Infine bisogna pigiare nuovamente
una volta SW3, così il contatore ha in uscita 0010 e l’uscita della porta U22A è alta. Una volta che
si è inserito correttamente tutta la combinazione, la porta U24A ha entrambi gli ingressi alti e anche
la sua uscita sarà alta e consentirà al LED di accendersi per il passaggio della corrente di collettore
del BJT entrato in saturazione.
Simulazione con PSpice
Per simulare il circuito con PSpice non possiamo utilizzare gli interruttori SW perché non è
possibile simulare la loro chiusura per un numero determinato di volte. Allora sostituiamo questi
interruttori con dei particolari generatori di segnale (VPWL) che è possibile settare in maniera che
generino una forma d’onda con un numero desiderato di impulsi. Evidentemente ogni impulso
rappresenta una pressione dell’interruttore. Con questo tipo di generatore si può stabilire anche la
durata di ogni tratto di forma d’onda. Questo ci consente di, per esempio, far cominciare il primo
impulso della forma d’onda associata a SW2 dopo l’ultimo impulso della forma d’onda associata a
SW1, e così via per gli altri.
La seguente figura mostra il circuito modificato per la simulazione.
U5A
15
1
0
10
9
0
1 U2A
2
3
2
6
7
U3A
1
13
12
1
5
4
14
11
2
6
4
2 5
15
1
0 10
9
V3
U4A
0
2
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
U3
1
3
2
6
7
1 U7A
2
U8A
1
2
4
5
13
12
3
2
6
U9A
1
2
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
15
1
10
0 9
V4
74HC192
5
4
14
11
3
2
6
7
13
12
74HC192
0
U13A
1
74HC192
3
1
V1
UP
DOWN
QA
CLRQB
LOAD
QC
QD
A
B BO
C CO
D
U10A
U2
1
2
U1
5
4
14
11
0
U18A
LED
D1
U20A
6
R2
Q2N2222
2
4
5
2.2k
Q1
1
2
3
U19A
2
U24A
R1
1
1
3
2
6
7
13
12
UP
DOWN
QA
QBCLR
LOAD
QC
QD
A
BO B
CO C
D
U23A
U16A
U4
2
5
4
14
11
15
1
10
9
3
2
U12A
5V
Vcc
5
4
6
2
1
1
U14A
2
1
V5
0
0 U22A
1
6
2
5
4
2
1
2
2.2k
1
U21A
0
Prima di avviare ogni tipo di simulazione, è conveniente inizializzare a 0 lo stato dei flip-flop dei
contatori per essere sicuri che questi comincino a contare effettivamente da 0. Questo è possibile
farlo impostando il livello delle porte logiche nelle ‘Options’ delle ‘Simulation Settings’ di PSpice.
A questo punto possiamo avviare le diverse simulazioni.
Il seguente grafico mostra, con colori diversi, le forme d’onda generate da ogni generatore associato
agli interruttori.
6.0V
4.0V
2.0V
0V
0s
V(V1:+)
5ms
V(U5A:B)
10ms
V(V4:+)
V(V5:+)
15ms
20ms
Time
25ms
30ms
35ms
In verde sono visualizzati i tre impulsi di SW1, in rosso i cinque impulsi di SW2, in giallo i sei
impulsi di SW4 ed in blu i due impulsi di SW3 associati alla terza e all’ultima cifra della
combinazione.
Possiamo ora verificare le uscite di ogni contatore insieme allo stato dell’uscita della rete
combinatoria collegata.
La figura di sotto mostra quello che succede al contatore U1 e all’uscita della rete combinatoria
collegata. Nella parte inferiore sono visualizzati i tre impulsi di SW3. Nella parte superiore sono
invece visualizzati gli stati dei quattro bit di uscita del contatore partendo dall’alto con il bit meno
significativo, mentre la quinta traccia mostra lo stato dell’uscita della rete combinatoria. Al terzo
impulso, l’uscita del contatore vale effettivamente 0011 e l’uscita della rete combinatoria passa
dallo stato basso a quello alto abilitando il secondo contatore al conteggio degli impulsi di SW2.
U1:QA
U1:QB
U1:QC
U1:QD
U2A:Y
5.0V
2.5V
0V
0s
1.0ms
2.0ms
3.0ms
4.0ms
5.0ms
6.0ms
7.0ms
V(V1:+)
Time
La figura di sotto mostra, analogamente a prima, ciò che accade sul secondo interruttore e all’uscita
della rete combinatoria ad esso collegata. In corrispondenza del quinto impulso il contatore conta
effettivamente 0101 e l’uscita della rete combinatoria passa dallo stato basso allo stato alto
abilitando il successivo interruttore.
U2:QA
U2:QB
U2:QC
U2:QD
U7A:Y
5.0V
2.5V
0V
6ms
7ms
V(U5A:B)
8ms
9ms
10ms
11ms
12ms
13ms
14ms
15ms
16ms
17ms
Time
La figura di sotto visualizza ciò che avviene sul terzo contatore e sulle due uscite della rete
combinatoria ad esso collegata. In corrispondenza del primo impulso, l’uscita del contatore è 0001 e
cambia stato da basso ad alto l’uscita della rete combinatoria che abilita al conteggio del successivo
interruttore. Invece in corrispondenza del secondo impulso, associato all’ultima cifra della
combinazione, il contatore conta 0010 e cambia stato da basso ad alto l’uscita della rete
combinatoria collegata all’ultima porta AND.
U3:QA
U3:QB
U3:QC
U3:QD
U16A:B
U22A:Y
5.0V
2.5V
0V
16ms
V(V4:+)
18ms
20ms
22ms
24ms
26ms
28ms
30ms
32ms
34ms
Time
La seguente figura mostra l’andamento sul quarto ed ultimo contatore. In corrispondenza del sesto
impulso il contatore conta 0110 e l’uscita della rete combinatoria passa dallo stato basso a quello
alto.
U4:QA
U4:QB
U4:QC
U4:QD
U20A:Y
5.0V
2.5V
0V
18ms
V(V5:+)
20ms
22ms
24ms
26ms
28ms
30ms
32ms
Time
La seguente figura mostra un quadro totale di come ogni uscita delle reti combinatorie cambi stato
da basso ad alto in corrispondenza dell’ultimo impulso sull’interruttore a cui sono associate.
U5A:A
U7A:Y
U16A:B
U20A:Y
U22A:Y
5.0V
2.5V
0V
0s
V(V1:+)
5ms
V(V3:+)
V(V4:+)
10ms
V(V5:+)
15ms
20ms
25ms
30ms
35ms
Time
Il seguente grafico mostra, in colore rosso, l’andamento della tensione di uscita Vout del circuito,
cioè la tensione sul collettore del BJT. Non appena gli ingressi (nel grafico di sotto le tracce
contrassegnate con U20A E U22A) dell’ultima porta AND (U24A) diventano entrambi alti, e di
conseguenza l’uscita della porta diventa alta, la tensione sul collettore passa improvvisamente da un
valore prossimo alla tensione di alimentazione di 5V ad un valore vicino agli 0V. Il transistor entra
così in saturazione.
U5A:A
U7A:Y
U16A:B
U20A:Y
U22A:Y
6.0V
4.0V
2.0V
0V
0s
5ms
10ms
15ms
20ms
25ms
30ms
35ms
V(R2:1)
Time
Essendoci ai capi del LED (e della resistenza R2) una differenza di potenziale di circa 5V, su questo
5V
= 2,3mA .
ramo scorrerà una corrente di collettore pari a circa I C =
2,2kΩ
Il grafico sottostante mostra, in colore blu, l’andamento della corrente di collettore.
U5A:A
U7A:Y
U16A:B
U20A:Y
U22A:Y
2.0mA
1.0mA
0A
-1.0mA
0s
5ms
10ms
15ms
20ms
25ms
30ms
35ms
I(D1)
Time
Possiamo notare come, non appena gli ingressi, e di conseguenza l’uscita, della porta AND U24A
diventano alti, la corrente di collettore passi da un valore nullo ad un valore pari a quello calcolato
sopra.
Il LED, grazie a questa corrente, riuscirà ad accendersi e segnalare all’operatore che la
combinazione introdotta è esatta. Eventualmente questa corrente potrebbe essere anche sfruttata per
pilotare un dispositivo meccanico di sbloccaggio o apertura, per esempio, di serrature.
Conclusioni
Il circuito studiato e progettato rappresenta un dispositivo a combinazione. Potremmo chiamarlo
lucchetto digitale a combinazione.
Il dispositivo è dotato di quattro interruttori normalmente aperti attraverso i quali l’operatore può
introdurre la combinazione segreta di sbloccaggio. Ogni cifra della combinazione segreta
rappresenta il numero di pressioni che devono essere fatte su un determinato interruttore. Ad ogni
interruttore è collegato un contatore decimale che conta gli impulsi derivanti dalle pressioni. Una
specifica rete combinatoria, collegata sulle quattro uscite di ogni contatore, controlla che il numero
di impulsi contati sia corrispondente con la cifra associata della combinazione. Se l’interruttore è
stato premuto un numero esatto di volte, la rete combinatoria abilita il conteggio degli impulsi sul
successivo interruttore.
Quando l’operatore ha introdotto correttamente la combinazione sino all’ultima cifra, il transistor
del circuito entra in saturazione e il diodo LED emette luce essendo attraversato da una certa
corrente di collettore. Quindi l’operatore, vedendo il LED accendersi, si accorge di aver digitato
l’esatta combinazione.
Come detto in precedenza, la corrente di collettore che si viene a creare quando il transistor è in
saturazione, può essere sfruttata per esempio per azionare un sistema di bloccaggio/sbloccaggio di
una serratura.
Agostino Scardino