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