Strumenti Utente

Strumenti Sito


sezione_4b

4B - I circuiti combinatori con integrati MSI

1 Considerazioni preliminari

Gli integrati SSI, come le porte logiche, si usano sempre più raramente, sostituiti da integrati MSI che realizzano funzioni più complesse a costi inferiori e con ingombri minori.

Negli integrati che useremo si parlerà di ingressi o uscite attivi-alti o attivi-bassi, per specificare che una determinata funzione sarà attivata con un segnale alto (1) o basso (0) in un pin di controllo. In assenza di indicazioni ingressi e uscite si intendono attivi-alti; quelli attivi-bassi si riconoscono dal “pallino” (o cerchiolino, come quello sull'uscita di una porta NAND) nel simbolo e dal segno negato posto sopra la sigla corrispondente. Ad esempio in ingresso con pallino sul simbolo e sigla `bar (EN)` indica che l'integrato è abilitato (enabled) se posto al valore logico 0, cioè collegato a massa.

Le figure 1, 2 e 3 mettono in evidenza il concetto di attivo-alto/basso mostrando come la stessa funzione logica possa essere realizzata in due modi diversi, pur con implicazioni diverse per quello che riguarda i livelli attivi. Esaminando solo la figura 1 osserviamo:

  • che le due espressioni sono equivalenti secondo De Morgan
  • che il simbolo a sinistra prevede ingressi attivi bassi e uscita attiva alta, in particolare l'uscita va alta (niente pallino) quando uno dei due ingressi (funzione OR) è basso (ingressi attivi-bassi)
  • l'implementazione a destra produce la stessa funzione/tabella della verità ma mette in evidenza come l'uscita sia bassa (pallino sull'uscita) quando entrambi gli ingressi (funzione AND) sono alti (niente pallino sugli ingressi)

2 Multiplexer

Il multiplexer è un dispositivo con:

  • 2n ingressi di segnale
  • n ingressi di selezione
  • una sola uscita

che trasferisce all'uscita il segnale di ingresso selezionato con gli ingressi di selezione. Il comportamento è simile a quello di un selettore meccanico (figura 4a) ma la sezione è fatta con una combinazione di bit. Nella figura 4b vediamo una rappresentazione schematica dell'integrato dove, oltre ai quattro ingressi I1, I2, I3, I4 e all'uscita O compaiono:

  • i bit di selezione S1 e S0, che interpretati come numeri binari (S1 è il MSB e S0 il LSB), individuano il numero dell'ingresso abilitato
  • un ingresso di controllo enable attivo-basso (vedi il pallino e il negato sopra la sigla E), che pone l'uscita a 0 quando è presente un livello alto di tensione

I data sheet

I data sheet degli integrati MSI sono più complicati di quelli delle porte logiche. Il testo prende in esame quello del 74150, un MUX a 16 ingressi per fare una serie di osservazioni:

  • nei data sheet ingressi, uscite e pin di controllo possono essere indicati con sigle diverse, ad esempio in questo integrato l'uscita è indicata con la lettera W
  • l'uscita è negata, cioè il segnale selezionato viene inviato all'uscita in forma complementata
  • l'ingresso di controllo S (strobe nel datasheet, enable in figura 5) è attivo basso; se alto l'uscita è fissa al valore alto di tensione
  • gli ingressi di selezione si interpretano considerando il bit nell'ingresso D come bit più significativo (MSB) e quello nell'ingresso A come meno significativo (LSB)
  • la tabella della verità riporta i valori logici 0 e 1 mentre nel datasheet sono riportati i livelli di tensione basso e alto (L e H)1)
  • il simbolo dell'IC in figura 5 rispetta le regole dello standard IEEE/ANSI

Aumentare gli ingressi di un multiplexer

La figura 6 mostra come con due multiplexer a 16 ingressi e un multiplexer da 2 si ottiene un multiplexer a 32 ingressi.

Conversione parallelo-serie

Una delle applicazioni dei multiplexer e quella di convertitore parallelo-serie. Questa tecnica è utile quando si vogliono trasmettere parole di n bit usando una sola linea2). Nella figura 7 un contatore seleziona in sequenza gli ingressi di un multiplexer che invia i bit in successione su un unica linea.

Il contatore è un circuito digitale sequenziale che conta gli impulsi di un segnale in ingresso. In questo caso in ingresso è presente un segnale di clock, cioè un segnale rettangolare temporizzatore con una frequenza prestabilita. Ad esempio applicando un clock a 10 Hz all'ingresso di un contatore a 3 bit il contatore produrrà una sequenza di codici da 000 a 111 - contando da 0 a 7 - per poi si azzerarsi e ricominciare. Questi bit selezioneranno un ingresso del multiplexer trasmettendone il valore in uscita.

Uso del multiplexer per realizzare reti combinatorie

Un multiplexer con n ingressi di selezione può essere usato per realizzare un circuito combinatorio con n variabili in ingresso. E' sufficiente collegare gli ingressi di segnale al valore logico 0 o 1 (tensione Vcc o 0 Volt) in base alla tabella della verità. Ad esempio, secondo la tabella di figura 8, l'ingresso 0, corrispondente alla combinazione 0 0 0 delle variabili A B C in ingresso va collegato a 1 (+Vcc) e così via.

Questa soluzione è estremamente versatile e facile da realizzare; non occorre ricavare un'espressione logica, minimizzarla ed implementarla scegliendo gli integrati con le porte logiche necessarie. Basta un componente generico - il multiplexer - con un numero adeguato di ingressi di selezione.

Extra

3 Demultiplexer

Un demultiplexer (DEMUX) svolge la funzione inversa rispetto ad un multiplexer, cioè invia all'uscita selezionata il segnale presente nell'unico ingresso. Come per i multiplexer, con n ingressi di selezione si possono indirizzare 2n uscite.

I data sheet

Il testo prende in esame il data sheet dell'integrato 741543), un DEMUX (e decoder) a 16 uscite. Si osserva che:

  • sono presenti due ingressi di abilitazione attivi bassi; nell'uso da multiplexer uno dei due viene usato come tale mentre l'altro viene usato per il segnale in ingresso
  • le uscite sono attive basse ma anche gli ingressi lo sono quindi il segnale viene trasmesso senza essere complementato
  • i quattro ingressi di selezione vanno dal MSB indicato con la lettera D al LSB con la lettera A
  • l'uscita selezionata è bassa (uscita attiva bassa) quando il segnale nell'ingresso è basso (attivo basso), tutte le altre uscite sono alte

Extra

4 I codici

Un codice permette di rappresentare un'informazione con una combinazione di simboli.

Codici binari numerici

Per rappresentare dei numeri con un codice binario è sufficiente utilizzare il sistema di numerazione binario (codice binario puro). Questa soluzione, per quanto ovvia, non è sempre la più efficace. Ad esempio se si intende visualizzare delle cifre decimali è preferibile ricorrere al codice BCD (binary coded decimal). Questo sistema di codifica usa 4 bit per rappresentare ogni cifra decimale con il numero binario corrispondente. Ad esempio il numero 31 si rappresenta in BCD con 0011 0001 (3 e 1 in binario). Come si vede il BCD usa un numero di bit maggiore rispetto al binario puro (31 in binario è 11111) ma è più pratico quando si deve trattare ogni cifra decimale singolarmente (ad esempio per visualizzarla su un display).

In alcune applicazioni (ad esempio nell'encoder assoluto di figura 11) si ricorre al codice Gray4) di tabella 55), la cui proprietà principale è che due combinazioni successive differiscono per un solo bit. Questo è utile quando si vogliono evitare errori di lettura imputabili ai dispositivi che generano il codice (nell'encoder sono i fotoaccoppiatori usati per rivelare la presenza o meno di un fascio luminoso che potrebbero non essere perfettamente sincronizzati).

Codici alfanumerici

I simboli alfanumerici, come quelli di una tastiera, possono essere rappresentati con il codice ASCII che assegna una combinazione di 7 bit a 128 simboli diversi (numeri, lettere, simboli di punteggiatura, ecc.). Nel codice ASCII le lettere sono ancora ordinate alfabeticamente: 100 0001 (65 in decimale) è la lettera “A” e 100 0010 (66) la “B”. Un ottavo bit, se presente, permette di estendere il set di caratteri, raddoppiandolo, o di segnalare la presenza di errori, usato come bit di parità.

Codici rilevatori di errori

Nella trasmissione dei dati è possibile che si verifichino degli errori, ad esempio perché un bit ha cambiato valore. Per individuare questi errori si utilizzano codici ridondanti - cioè con un numero di bit maggiore del necessario - che producano combinazioni particolari in caso di errore. La soluzione più semplice consiste nell'aggiungere al codice originario un bit di parità che vale 1 se il numero di 1 è dispari e 0 se è pari. La tabella 6 confronta il codice binario puro e quello con l'aggiunta di un bit di parità6). Osserviamo che:

  • il bit di parità è il bit meno significativo (LSB)
  • il numero di 1 in ogni combinazione è sempre pari
  • per qualunque coppia di combinazioni si ha una differenza di almeno due bit tra le due combinazioni 7)

Allora se in una trasmissione si verifica un errore che modifica un solo bit sarà possibile rilevare l'errore perché la combinazione ottenuta non farà parte del codice. Ancora più semplicemente se un bit viene scambiato il numero di 1, che è sempre pari con il bit di parità, diventerà dispari, segnalando l'errore8).

5 Gli encoder

Un encoder è un circuito combinatorio che associa ad ognuno dei suoi ingressi una determinata combinazione di bit in uscita. Il funzionamento prevede che sia attivo un solo ingresso; nel caso in cui si voglia evitare che l'attivazione contemporanea di più ingressi produca malfunzionamenti si può usare un priority encoder, dove l'ingresso più alto prevale su tutti gli altri (rendendone indifferente lo stato).

La figura 12 mostra un generico encoder da decimale a BCD e la relativa tabella della verità. Il funzionamento è scontato: l'attivazione di un ingresso, numerato secondo il sistema decimale, produce in uscita il codice BCD corrispondente.

I data sheet

Il testo prende in esame l'integrato 74147, un priority encoder da 9 a 4 che converte in BCD il numero dell'ingresso attivo (è un encoder da decimale a BCD dove lo zero si ottiene quando nessun ingresso è attivo). Osserviamo che:

  • gli ingressi sono attivi bassi
  • le quattro uscite sono attive basse
  • il piedino 15 è scollegato (NC sta per not connected)
  • il MSB è indicato con la lettera D, il LSB con la A
  • la tabella della verità mette in evidenza che è un encoder con priorità: se un ingresso è attivo (basso) lo stato di tutti gli ingressi precedenti è indifferente (ad esempio se è attivo il quarto ingresso lo stato dei primi tre, indicato con una X è indifferente)

Extra

  • in laboratorio: display a sette segmenti pilotato dal driver 7448 (già presente nella minilab) collegato all'encoder 74147 che genera un codice BCD in base all'attivazione di uno dei 9 switch della scheda (serve anche un 7404 per invertire il codice generato dall'encoder che ha uscite attive basse)

6 I decoder

Un decoder è un circuito combinatorio che associa il codice binario presente ai suoi ingressi ad una delle uscite, attivandola. In ingresso è presente una parola di n bit che attiva una sola delle uscite. La figura 14 mostra un decoder da BCD a decimale (vedi anche tabella 9); la figura 15b un decoder binario (da 4 ingressi a 16 uscite).

I data sheet

L'integrato 74154, già visto nell'uso da demultiplexer, può essere utilizzato come decoder da 4 a 16 (da binario a esadecimale) attivando, cioè ponendo al livello basso, i due enable (nell'uso da encoder non c'è un segnale in ingresso ma una parola di 4 bit presente in quelli che sono interpretati come ingressi di selezione nel demultiplexer).

7 I display

I display servono a visualizzare cifre decimali in forma numerica (il numero da visualizzare può essere disponibile in forma binaria o codificato in BCD). Esistono due tipi di display:

  • LED (light emitting diode)
  • LCD (liquid cristal display)

I display LCD non emettono luce e consumano molto meno. I cristalli liquidi sono posti tra due superfici trasparenti dotate di elettrodi. Quando è applicata tensione tra gli elettrodi il cristallo si polarizza e crea una zona scura bloccando la luce.

I display a LED sono fatti di più segmenti, disposti opportunamente, che illuminandosi formano una cifra. Il tipo più diffuso è il display a 7 segmenti di figura 16, indicati con le lettere da a a g. Illuminando i vari segmenti9) si formano le cifre a destra10). Questo tipo di display emette luce e consuma di più (1 mA per ogni segmento). Il collegamento dei LED può essere:

  • a anodo comune, che andrà collegato a +VCC
  • a catodo comune, che andrà collegato a massa

Nel primo caso i segmenti si accendono con un livello basso di tensione (attivi bassi), nel secondo con un livello alto (attivi alti). In entrambi i casi occorre inserire delle resistenze per limitare la corrente. Il calcolo della resistenza, data la caduta di tensione VF sul LED e la corrente richiesta per accenderlo Id, è il seguente:

`R = (V_(\C\C)-V_F)/(I_d)`

8 I decoder per display a LED

Per pilotare i display a 7 segmenti si usano degli integrati convertitori di codice da BCD a 7-segmenti. Sono dei driver - perché pilotano un componente che non è una porta logica e che assorbe una corrente non trascurabile - ma anche dei decoder perché convertono il codice BCD in ingresso in un altro codice di 7 bit adatto a pilotare il display11).

I data sheet

Ogni scheda minilab del laboratorio contiene due display a 7 segmenti e un decoder BCD 7-segmenti 7448. Osserviamo che:

  • i quattro ingressi sono attivi alti
  • le uscite sono attive alte quindi adatte a display a catodo comune
  • è presente un ingresso di controllo LT (lamp test) attivo basso che accende tutti i LED per verificare il funzionamento del display
  • sono presenti gli ingressi di controllo BI (blanking input) e RBI (ripple blanking output) per spegnere il display ed eventualmente cancellare gli zero non significativi quando si usano più display (ad esempio 4 invece che 004)

9 I decoder per LCD

10 Visualizzazione con dati multiplati

Torna all'indice.

1)
questa indicazione, apparentemente più complicata, evita ambiguità legate alla diversa interpretazione degli stati logici quando si lavora in logica positiva o negativa
2)
questo permette una semplificazione dei cablaggi e un risparmio in termini di costo
3)
vedere le figure 10 e 11 per l'uso da decoder e demultiplexer
5)
non è un codice pesato e si può costruire sapendo che è un codice riflesso (osservare l'alternanza di 0 e 1)
7)
si parla di distanza minima fra due parole
8)
naturalmente l'errore non viene rilevato se si verificano più errori nella stessa combinazione; in questo caso occorre una maggiore ridondanza
9)
è indicato anche il punto decimale DP
10)
come si vede è possibile anche una visualizzazione esadecimale con le lettere da A a F
11)
un decoder doverebbe avere una sola uscita attiva; in questo casi si intende attiva la cifra visualizzata sul display
Questo sito Web utilizza i cookie. Utilizzando il sito Web, l'utente accetta la memorizzazione dei cookie sul proprio computer. Inoltre riconosci di aver letto e compreso la nostra Informativa sulla privacy. Se non sei d'accordo, lascia il sito.Maggiori informazioni sui cookie
sezione_4b.txt · Ultima modifica: 2023/03/22 07:26 da admin