- Principe di base del decoder:
- Svantaggi dei decoder standard:
- Decodificatore prioritario:
- Decodificatori 3: 8:
- Decodificatore 4:16:
- Applicazioni:
Il decodificatore è un tipo di circuito combinatorio che decodifica un valore di bit piccolo in un valore di bit grande. Viene normalmente utilizzato in combinazione con gli encoder che fanno esattamente l'opposto di ciò che fa un decoder, quindi leggi qui Encoder prima di procedere con i decoder. Anche in questo caso, proprio come gli Encoder, ci sono anche molti tipi di Decoder, ma il numero di linee di uscita in un decoder sarà sempre maggiore del numero di linee di ingresso. Impareremo come funziona un decoder e come possiamo costruirne uno per il nostro progetto in questo tutorial.
Principe di base del decoder:
Come detto in precedenza, il decoder è solo una controparte di un encoder. Prende un numero particolare di valori binari come input e quindi decodifica in più righe utilizzando la logica. Di seguito è mostrato un esempio di decodificatore che prende 2 linee come input e le converte in 4 linee.
Un'altra regola pratica con i Decoder è che, se il numero di ingressi è considerato n (qui n = 2), il numero di uscite sarà sempre uguale a 2 n (2 2 = 4) che è quattro nel nostro caso. Il Decoder ha 2 linee di ingresso e 4 linee di uscita; quindi questo tipo di decodificatore è chiamato decodificatore 2: 4. I due pin di ingresso sono denominati I1 e I0 ei quattro pin di uscita sono denominati da O0 a O3 come mostrato sopra.
È anche importante sapere che un normale Decoder come quello qui mostrato ha l'inconveniente di non poter distinguere tra la condizione di entrambi gli ingressi essendo zero (non collegati ad altri circuiti) ed entrambi gli ingressi essendo bassi (0 logico). Questo inconveniente può essere risolto utilizzando un decodificatore prioritario che impareremo più avanti in questo articolo. La tabella della verità di un normale decoder è mostrata di seguito
Dalla tabella di verità del decodificatore possiamo scrivere l'espressione booleana per ogni linea di uscita, basta seguire dove l'uscita diventa alta e formare una logica AND basata sui valori di I1 e I0. È molto simile al metodo Encoder, ma qui usiamo la logica AND invece della logica OR. Di seguito è riportata l'espressione booleana per tutte e quattro le righe, dove il simbolo (.) Rappresenta la logica AND e il simbolo (') rappresenta la logica NOT
O 0 = I 1 '.I 0 ' O 1 = I 1 '.I 0 O 2 = I 1.I 0 ' O 3 = I 1.I 0
Ora che abbiamo tutte e quattro le espressioni, possiamo convertire queste espressioni in un circuito di porta logica combinatoria utilizzando le porte AND e NOT. Usa semplicemente le porte AND al posto di (.) E una porta NOT (logica invertita) al posto di (') e otterrai il seguente diagramma logico.
Costruiamo lo schema del circuito del decodificatore 2: 4 sulla breadboard e controlliamo come funziona nella vita reale. Per farlo funzionare come hardware è necessario utilizzare l'IC della porta logica come 7404 per la porta NOT e 7408 per la porta AND. I due ingressi I0 e I1 sono forniti tramite un pulsante e l'uscita è osservata tramite luci LED. Una volta effettuata la connessione sulla breadboard, apparirà qualcosa di simile nell'immagine qui sotto
La scheda è alimentata da un'alimentazione esterna a + 5V, che a sua volta alimenta il Gate IC tramite i pin Vcc (pin 14) e massa (pin 7). L'ingresso è dato dai pulsanti, quando viene premuto è logico 1 e quando non premuto dà logico 0, viene inoltre aggiunto un resistore pull down di valore 1k lungo le linee di ingresso per evitare che i pin siano in condizione di flottazione. Le linee di uscita (da O0 a O3) sono fornite attraverso questi LED rossi, se si accendono è logico 1 altrimenti è logico 0. Il completo funzionamento di questo circuito decoder è mostrato nel video qui sotto
Notare che la tabella della verità per ogni ingresso è visualizzata nell'angolo in alto a sinistra e anche il LED si illumina nello stesso modo ordinato. Allo stesso modo possiamo anche creare diagrammi logici combinatori per tutti i tipi di decoder e costruirli su hardware come questo. Puoi anche esaminare i circuiti integrati del decodificatore prontamente disponibili se il tuo progetto è adatto.
Svantaggi dei decoder standard:
Proprio come un Encoder anche il Decoder standard soffre dello stesso problema, se entrambi gli ingressi non sono collegati (logica X) l'uscita non rimarrà nulla. Il Decoder invece lo considererà come 0 logico e il bit O0 sarà alto.
Decodificatore prioritario:
Quindi usiamo il decodificatore prioritario per superare questo problema, questo tipo di decodificatore ha un pin di ingresso aggiuntivo etichettato come "E" (Abilita) che sarà collegato al pin valido del decodificatore prioritario. Di seguito è mostrato lo schema a blocchi per un Decoder prioritario.
La tabella di verità per un codificatore prioritario è anche mostrata di seguito, qui X rappresenta nessuna connessione e "1" rappresenta la logica alta e "0" rappresenta la logica bassa. Si noti che il bit di abilitazione è 0 quando non è presente alcuna connessione sulle linee di ingresso e quindi anche le linee di uscita rimarranno zero. In questo modo saremo in grado di superare il suddetto inconveniente.
Come sempre dalla tabella di verità possiamo guidare l'espressione booleana per le linee di output da O0 a O3. L'espressione booleana per la tabella di verità sopra è mostrata di seguito. Se guardi più da vicino puoi notare che l'espressione è uguale a quella di un normale decoder 2: 4 ma il bit di abilitazione (E) è stato fatto su AND con l'espressione.
O 0 = EI 1 '.I 0 ' O 1 = EI 1 '.I 0 O 2 = EI 1.I 0 ' O 3 = EI 1.I 0
Il diagramma logico combinatorio per l'espressione booleana sopra può essere costruito utilizzando una coppia di inverter (NON porte) e porte AND a 3 ingressi. Basta sostituire il simbolo (') con gli inverter e il simbolo (.) Con la porta AND e otterrai il seguente diagramma logico.
Decodificatori 3: 8:
Ci sono anche alcuni decodificatori di ordine superiore come il decodificatore 3: 8 e il decodificatore 4:16 che è più comunemente usato. Questi decodificatori sono spesso utilizzati in pacchetti IC per complessità del circuito. È anche molto comune combinare decodificatori di ordine inferiore come i decodificatori 2: 4 per formare un decodificatore di ordine superiore. Ad esempio, sappiamo che un decodificatore 2: 4 ha 2 ingressi (I0 e I1) e 4 uscite (da O0 a O3) e un decodificatore 3: 8 ha tre ingressi (da I0 a I2) e otto uscite (da O0 a O7). Possiamo usare le seguenti formule per calcolare il numero di decodificatori di ordine inferiore (2: 4) necessari per formare un decodificatore di ordine superiore come Decodificatore 3: 8.
Numero richiesto di decodificatore di ordine inferiore = m2 / m1 Dove, m2 -> numero di uscite per decodificatore di ordine inferiore m1 -> numero di uscite per decodificatore di ordine superiore
Nel nostro caso, il valore di m1 sarà 4 e il valore di m2 sarà 8, quindi applicando questi valori nelle formule sopra otteniamo
Numero richiesto di decodificatore 2: 4 per decodificatore 3: 8 = 8/4 = 2
Ora sappiamo che avremo bisogno di due decodificatori 2: 4 per formare un decodificatore 3: 8, ma come dovrebbero essere collegati questi due per riunirsi. Lo schema a blocchi seguente mostra proprio questo
Come potete vedere gli ingressi A0 e A1 sono collegati come ingressi paralleli per entrambi i decoder e quindi il pin Enable del primo Decoder viene fatto agire come A2 (terzo ingresso). Il segnale invertito di A2 viene dato al pin di abilitazione del secondo decodificatore per ottenere le uscite da Y0 a Y3. Qui le uscite da Y0 a Y3 sono indicate come quattro minterm inferiori e le uscite da Y4 a Y7 sono indicate come quattro minterms superiori. I minterm di ordine inferiore sono ottenuti dal secondo decodificatore e i minterm di ordine superiore sono ottenuti dal primo decodificatore. Sebbene uno svantaggio evidente in questo tipo di progettazione combinatoria sia che, il decoder non avrà un pin di abilitazione che lo rende suscettibile ai problemi di cui abbiamo discusso in precedenza.
Decodificatore 4:16:
Simile a un decodificatore 3: 8, un decodificatore 4:16 può anche essere costruito combinando due decodificatori 3: 8. Per un decodificatore 4:16 avremo quattro ingressi (da A0 a A3) e sedici uscite (da Y0 a Y15). Invece per un Decoder 3: 8 avremo solo tre ingressi (da A0 a A2).
Abbiamo già utilizzato le formule per calcolare il numero di Decoder richiesti, in questo caso il valore di m1 sarà 8 poiché il decoder 3: 8 ha 8 uscite e il valore di m2 sarà 16 poiché il decoder 4:16 ha 16 uscite, quindi applicando questi valori nelle formule precedenti otteniamo
Numero richiesto di 3: 8 Decoder per 4:16 Decoder = 16/8 = 2
Pertanto abbiamo bisogno di due decodificatori 3: 8 per costruire un decodificatore 4:16, anche la disposizione di questi due decodificatori 3: 8 sarà simile a quella che abbiamo fatto in precedenza. Di seguito è mostrato lo schema a blocchi per il collegamento di questi due Decoder 3: 8.
Qui le uscite da Y0 a Y7 sono considerate come otto minterm inferiori e l'uscita da Y8 a Y16 è considerata come otto minterms superiori. I minterm in basso a destra vengono creati direttamente utilizzando gli ingressi A0, A1 e A2. Gli stessi segnali vengono dati anche ai tre ingressi del primo Decoder, ma il pin di Enable del primo decoder viene utilizzato come quarto Pin di ingresso (A3). Il segnale invertito del quarto ingresso A3 è dato al pin di abilitazione del secondo Decoder. Il primo decodificatore emette il valore di otto minterms superiore.
Applicazioni:
Un decoder viene solitamente utilizzato in combinazione con un encoder e quindi entrambi condividono le stesse applicazioni. Senza decodificatori ed codificatori, l'elettronica moderna come telefoni cellulari e laptop non sarebbe stata possibile. Di seguito sono elencate alcune importanti applicazioni dei decoder.
- Applicazione del segnale di sequenziamento
- Applicazioni del segnale di temporizzazione
- Linee di rete
- Elementi di memoria
- Reti telefoniche