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