1 Gli encoder
Transcript
1 Gli encoder
1 Gli encoder Si definisce encoder o codificatore un circuito combinatorio, con più ingressi e più uscite, tale che a un particolare stato di uno degli ingressi corrisponde una e una sola combinazione delle uscite. La definizione prevede quindi che sia attivo un solo ingresso alla volta: la simultanea attivazione di più ingressi rende non corretto il funzionamento del codificatore. Si vedrà che in effetti esiste una particolare categoria di encoder che permette di superare questo problema. In figura 1 è riportato un esempio di encoder da decimale a binario BCD standard. Questo particolare decoder è così chiamato perché, se si associa una cifra decimale ad ogni ingresso, quando uno di questi è attivo l’uscita fornisce il codice corrispondente BCD standard. Figura 1 Encoder da decimale a BCD standard. Se in uscita si vogliono considerare tutte le combinazioni binarie possibili e si opera ancora a 4 bit si deve realizzare un encoder da esadecimale a binario puro, come nell’esempio di figura 2 a, dove gli ingressi attivi si sono immaginati a 0. b) a) Figura 2 Tabella della verità di un encoder da esadecimale a binario con ingressi attivi bassi (a) e particolare della possibile soluzione circuitale (b). Disponendo di 16 combinazioni è possibile interpretare gli ingressi relativi alle lettere A, B, C, D, E, ed F rispettivamente come: “+”, “−”, “x”, “÷”, “=” e “,”; così facendo il nostro circuito si presta alla realizzazione di una tastiera per calcolatrice. Le espressioni logiche relative alle singole uscite sono direttamente deducibili dalla tabella della verità; infatti si vede che, ad esempio, Y3 vale 1 ogni volta che uno degli ingressi 8, 9, A … F va a 0, ovvero: 1 Enrico Ambrosini Gli encoder Y3 = 8 + 9 + A + B + C + D + E + F = 8 ⋅ 9 ⋅ A ⋅ B ⋅ C ⋅ D ⋅ E ⋅ F (1) Analogamente risulta: Y2 = 4 + 5 + 6 + 7 + C + D + E + F = 4 ⋅ 5 ⋅ 6 ⋅ 7 ⋅ C ⋅ D ⋅ E ⋅ F (2) Y1 = 2 + 3 + 6 + 7 + A + B + E + F = 2 ⋅ 3 ⋅ 6 ⋅ 7 ⋅ A ⋅ B ⋅ E ⋅ F (3) Y0 = 1 + 3 + 5 + 7 + 9 + B + D + F = 1 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ B ⋅ D ⋅ F (4) La realizzazione circuitale può quindi effettuarsi usando NAND a otto ingressi come indicato in figura 2 b limitatamente a un singolo ingresso e all’uscita Y3. Una possibile soluzione circuitale completa con dei LED che visualizzano accendendosi i bit in uscita a 1 è riportata in figura 3 e usa degli integrati 7430 che contengono singolarmente una NAND a otto ingressi. Figura 3 Soluzione circuitale per l’encoder di figura 2. Si noti che l’avere scelto gli ingressi attivi bassi offre il vantaggio, rispetto al caso di ingressi attivi alti di un minor consumo di corrente; infatti, facendo riferimento alla figura 4, è evidente che usando pulsanti con contatti normalmente aperti il consumo di corrente avviene solo quando si attivano gli ingressi che cosi impongono 0 agli ingressi, usando invece contatti normalmente chiusi il consumo è sempre presente e si annulla premendo i tasti che cosi determinano 1 agli ingressi. Figura 4 Con contatti normalmente aperti si hanno ingressi attivi bassi a basso consumo di corrente (a); con contatti normalmente chiusi si hanno ingressi attivi alti a elevato consumo di corrente (b). 2 Enrico Ambrosini Gli encoder Come si è già accennato un decoder realizzato nei termini appena esposti presenta l’inconveniente di fornire una risposta non corretta qualora vengano attivati più ingressi contemporaneamente. Ad esempio, osservando le relazioni (1), (2), (3) e (4) si vede che se sono contemporaneamente attivi gli ingressi 1 e 2 in uscita avremo 0011, che invece dovrebbe verificarsi solo con attivo l’ingresso 3. Per risolvere questo problema sono stati introdotti i codificatori con priorità (priority encoder); in questi circuiti, in presenza di più ingressi attivi contemporaneamente, ai fini dell’uscita, viene considerato attivo quello di peso maggiore (numericamente più alto). Un esempio commerciale di priority encoder è il 54/74147: si tratta di un codificatore da 10 a 4 e converte da decimale a BCD standard. Osservando la tabella della verità di figura 5 si vede che ingressi e uscite sono attivi bassi e che, trattandosi di un codificatore con priorità, non ha alcuna importanza l’eventuale attivazione di più ingressi: l’us cita corrisponde a quella dell’ingresso attivo di peso maggiore. Figura 5 Tabella della verità dell’encoder 54/74147. In figura 6 è riportato un circuito elementare di verifica di questo decoder; in particolare si noti che essendo le uscite attive basse i LED sono inseriti in modo da visualizzare tali livelli. Figura 6 esempio elementare di tastiera con il 54/74147. 3 Enrico Ambrosini Gli encoder