🔀 Elettronica digitale · Guida 08

Multiplexer, demultiplexer, encoder e decoder

Multiplexer, demultiplexer, encoder e decoder sono circuiti combinatori fondamentali per selezionare, instradare e codificare segnali digitali. Li troviamo nei sistemi a microprocessore, nelle memorie, nei bus dati, nelle comunicazioni digitali e in moltissimi circuiti integrati.

Livello: intermedioMUX e DEMUXEncoderDecoder

Quattro funzioni fondamentali

MUX

Seleziona uno tra più ingressi e lo porta a una sola uscita.

DEMUX

Instrada un singolo ingresso verso una tra più uscite.

Encoder

Converte la linea attiva in un codice binario.

Decoder

Converte un codice binario nell’attivazione di una specifica uscita.

Sono tutti circuiti combinatori.L’uscita dipende dagli ingressi e dai segnali di selezione presenti in quell’istante, senza necessità di memorizzare lo stato precedente.

Multiplexer: scegliere un segnale

Il multiplexer, abbreviato MUX, funziona come un commutatore digitale controllato. Possiede diversi ingressi dati, uno o più ingressi di selezione e normalmente una sola uscita.

Un MUX 2:1 dispone di due ingressi D0 e D1 e di un ingresso di selezione S. Se S vale 0 viene selezionato D0; se S vale 1 viene selezionato D1.

SUscita Y
0D0
1D1
Y = D0·S̅ + D1·SEquazione logica di un multiplexer 2:1.

Multiplexer 4:1

Un MUX 4:1 possiede quattro ingressi dati D0-D3, due linee di selezione S1 e S0 e una sola uscita. Due bit di selezione consentono infatti di rappresentare quattro combinazioni.

S1S0Ingresso selezionatoY
00D0D0
01D1D1
10D2D2
11D3D3
2n ingressi → n linee di selezione
EsempioPer scegliere uno tra 8 ingressi servono 3 linee di selezione, perché 2³ = 8.

Demultiplexer: distribuire un segnale

Il demultiplexer svolge concettualmente l’operazione opposta al MUX. Un ingresso dati viene instradato verso una delle diverse uscite in base alle linee di selezione.

In un DEMUX 1:4 abbiamo un ingresso D, due selezioni S1 e S0 e quattro uscite Y0-Y3.

S1S0Uscita che riceve D
00Y0
01Y1
10Y2
11Y3
MUX: molti → uno. DEMUX: uno → molti.È un modo semplice per ricordare la differenza fondamentale.

Encoder: da una linea a un codice binario

Un encoder converte l’attivazione di uno tra diversi ingressi in un codice binario. Un encoder 4:2 possiede quattro ingressi e due bit di uscita.

Ingresso attivoY1Y0
D000
D101
D210
D311
L’encoder semplice presuppone normalmente un solo ingresso attivo.Se più ingressi sono attivi contemporaneamente, il risultato può essere ambiguo. Per risolvere il problema si usa un priority encoder.

Priority encoder

Il priority encoder assegna una priorità agli ingressi. Se più linee sono attive nello stesso momento, viene codificata quella con priorità maggiore.

EsempioSe D3 ha priorità maggiore di D2, D1 e D0, con D3=1 e D1=1 l’uscita rappresenterà D3.

Questa tecnica è molto utile nei sistemi in cui più dispositivi possono richiedere contemporaneamente l’attenzione della logica di controllo.

Decoder: dal codice binario alle uscite

Il decoder esegue l’operazione inversa dell’encoder: riceve un codice binario e attiva l’uscita corrispondente. Con n ingressi binari si possono indirizzare fino a 2n uscite.

n ingressi → fino a 2n uscite

I decoder vengono usati, per esempio, nella selezione di dispositivi, nell’indirizzamento delle memorie e nella decodifica di codici digitali.

Decoder 2:4

Con due ingressi A1 e A0 possiamo selezionare una tra quattro uscite. Nel caso active-high, una sola uscita assume livello logico 1 per ciascuna combinazione valida.

A1A0Y0Y1Y2Y3
001000
010100
100010
110001
Attenzione alle uscite active-low.Molti integrati reali utilizzano uscite attive a livello basso. In quel caso l’uscita selezionata vale 0 anziché 1: bisogna sempre controllare simbolo e datasheet.

Multiplexer e demultiplexer a confronto

Multiplexer e demultiplexer a confronto con MUX 4 a 1 e DEMUX 1 a 4
Confronto tra multiplexer e demultiplexer: il MUX seleziona uno tra più ingressi, mentre il DEMUX instrada un ingresso verso una delle uscite.

Encoder e decoder a confronto

Encoder e decoder a confronto con encoder 4 a 2 e decoder 2 a 4
Confronto tra encoder e decoder: l’encoder trasforma una linea attiva in un codice binario, mentre il decoder esegue la conversione opposta.

MUX, DEMUX, encoder e decoder: confronto

CircuitoTrasformazioneControlloFunzione
MUXMolti ingressi → una uscitaLinee SelectSeleziona un segnale
DEMUXUn ingresso → molte usciteLinee SelectInstrada un segnale
EncoderLinea attiva → codiceIngressiCodifica
DecoderCodice → linea attivaCodice binarioDecodifica/seleziona

Applicazioni pratiche

ApplicazioneCircuito
Selezione tra più sorgenti datiMultiplexer
Instradamento di un segnale verso più destinazioniDemultiplexer
Arbitraggio con più richiestePriority encoder
Selezione chip o perifericaDecoder
Indirizzamento memoriaDecoder / MUX
Selezione dei canali di misuraMultiplexer
Un esempio vicino ad Arduino è la selezione di più segnali con un multiplexer.Un microcontrollore può utilizzare poche linee di selezione per scegliere quale tra numerosi segnali collegare a un singolo ingresso.

Errori comuni

  • confondere multiplexer e demultiplexer;
  • confondere encoder e decoder;
  • pensare che MUX e encoder svolgano la stessa funzione;
  • dimenticare che n linee di selezione possono scegliere fino a 2n possibilità;
  • usare un encoder semplice con più ingressi contemporaneamente attivi;
  • non controllare se gli ingressi o le uscite sono active-low;
  • dimenticare l’eventuale ingresso Enable presente negli integrati reali;
  • confondere il dato del DEMUX con le sue linee di selezione;
  • ignorare i ritardi di propagazione;
  • pensare che questi circuiti memorizzino automaticamente lo stato precedente.