In un precedente tutorial abbiamo visto il Not Gate digitale comunemente chiamato inverter, e abbiamo visto che lo stato di uscita del NOT gate è il complemento, l’opposto o l’inverso del suo segnale di ingresso.
Quindi, per esempio, quando il singolo ingresso del NOT gate è “HIGH”, il suo stato di uscita NON sarà “HIGH”. Quando il suo segnale di ingresso è “LOW” il suo stato di uscita NON sarà “LOW”, in altre parole “inverte” il suo segnale di ingresso, da cui il nome “Inverter”.
Ma a volte nei circuiti elettronici digitali abbiamo bisogno di isolare le porte logiche l’una dall’altra o di farle pilotare o commutare carichi superiori al normale, come relè, solenoidi e lampade senza bisogno di inversione. Un tipo di gate logico a singolo ingresso che ci permette di fare proprio questo si chiama Buffer digitale.
A differenza dell’invertitore a singolo ingresso e singola uscita o NOT gate come il TTL 7404 che inverte o completa il suo segnale di ingresso in uscita, il “Buffer” non esegue alcuna inversione o capacità decisionale (come i gate logici con due o più ingressi) ma produce invece un’uscita che corrisponde esattamente a quella del suo ingresso. In altre parole, un buffer digitale non fa nulla in quanto il suo stato di uscita è uguale al suo stato di ingresso.
Allora i buffer digitali possono essere considerati come porte idempotenti applicando la legge idempotente di Boole perché quando un ingresso passa attraverso questo dispositivo il suo valore non viene cambiato. Quindi il buffer digitale è un dispositivo “non invertente” e quindi ci darà l’espressione booleana di: Q = A.
Then we can define the logical operation of a single input digital buffer as being:
“Q is true, only when A is true”
In other words, the output ( Q ) state of a buffer is only true (logic “1”) when its input A is true, otherwise its output is false (logic “0”).
- The Single Input Digital Buffer
- Double Inversion using NOT Gates
- Esempio di Fan-out di un buffer digitale
- Il “Tri-state Buffer”
- Equivalente del buffer a tre stati
- Active “HIGH” Tri-state Buffer
- Active “HIGH” Inverting Tri-state Buffer
- Active “LOW” Tri-state Buffer
- Active “LOW” Inverting Tri-state Buffer
- Controllo del buffer tri-stato
- Controllo del bus dati del Tri-state Buffer
- Controllo del buffer a tre stati
The Single Input Digital Buffer
Symbol | Truth Table | |
The Digital Buffer
|
A | Q |
0 | 0 | |
1 | 1 | |
Boolean Expression Q = A | Read as: A gives Q |
The Digital Buffer can also be made by connecting together two NOT gates as shown below. Il primo “invertirà” il segnale d’ingresso A e il secondo lo “re-invertirà” al suo livello originale eseguendo una doppia inversione dell’ingresso.
Double Inversion using NOT Gates
Potreste pensare, beh, qual è lo scopo di un buffer digitale se non inverte o altera il suo segnale d’ingresso in alcun modo, o prende decisioni o operazioni logiche come fanno le porte AND o OR, allora perché non usare semplicemente un pezzo di filo, e questo è un buon punto. Ma un buffer digitale non invertente ha molti usi nell’elettronica digitale e uno dei suoi principali vantaggi è che fornisce un’amplificazione digitale.
I buffer digitali possono essere usati per isolare altri gate o stadi di circuito l’uno dall’altro impedendo che l’impedenza di un circuito influenzi l’impedenza di un altro. Un buffer digitale può anche essere usato per pilotare carichi ad alta corrente come gli interruttori a transistor perché la loro capacità di pilotaggio in uscita è generalmente molto più alta dei loro requisiti di segnale in ingresso. In altre parole, i buffer possono essere usati per l’amplificazione di potenza di un segnale digitale perché hanno quella che viene chiamata un’alta capacità di “fan-out”.
Esempio di Fan-out di un buffer digitale
Il parametro Fan-out di un buffer (o di qualsiasi circuito integrato digitale) è la capacità di pilotaggio dell’uscita o la capacità di corrente di uscita di un gate logico che dà una maggiore amplificazione di potenza del segnale di ingresso. Può essere necessario collegare più di un gate logico all’uscita di un altro o per commutare un carico ad alta corrente come un LED, allora un Buffer ci permetterà di fare proprio questo.
Generalmente l’uscita di un gate logico è solitamente collegata agli ingressi di altri gate. Ogni ingresso richiede una certa quantità di corrente dall’uscita del gate per cambiare stato, così che ogni connessione aggiuntiva del gate si aggiunge al carico del gate. Quindi il fan-out è il numero di carichi paralleli che possono essere pilotati simultaneamente da un buffer digitale di gate logico. Agendo come una sorgente di corrente un buffer può avere un alto valore di fan-out fino a 20 gate della stessa famiglia logica.
Se un buffer digitale ha un alto valore di fan-out (sorgente di corrente) deve avere anche un alto valore di “fan-in” (current sink). Tuttavia, il ritardo di propagazione del gate si deteriora rapidamente in funzione del fan-in, quindi i gate con un fan-in maggiore di 4 dovrebbero essere evitati.
Allora c’è un limite al numero di ingressi e uscite che possono essere collegati insieme e nelle applicazioni in cui abbiamo bisogno di disaccoppiare i gate l’uno dall’altro, possiamo usare un Tri-state Buffer o un tristate output driver.
Il “Tri-state Buffer”
Oltre al Buffer digitale standard visto sopra, c’è un altro tipo di circuito buffer digitale la cui uscita può essere scollegata “elettronicamente” dal suo circuito di uscita quando richiesto. Questo tipo di buffer è conosciuto come un buffer a 3 stati o più comunemente un buffer a tre stati.
Un buffer a tre stati può essere pensato come un interruttore controllato in ingresso con un’uscita che può essere elettronicamente girata “ON” o “OFF” per mezzo di un ingresso esterno di “controllo” o “abilitazione” (EN). Questo segnale di controllo può essere sia un segnale logico “0” che un segnale logico “1”, con il risultato che il buffer a tre stati è in uno stato che permette alla sua uscita di funzionare normalmente producendo l’uscita richiesta o in un altro stato in cui la sua uscita è bloccata o scollegata.
Quindi un buffer a tre stati richiede due ingressi. Uno è l’ingresso dati e l’altro è l’ingresso di abilitazione o controllo come mostrato.
Equivalente del buffer a tre stati
Quando attivato nel suo terzo stato disabilita o disattiva la sua uscita producendo una condizione di circuito aperto che non è né ad un livello logico “HIGH” né “LOW”, ma invece dà uno stato di uscita di impedenza molto alta, High-Z, o più comunemente Hi-Z. Quindi questo tipo di dispositivo ha due ingressi di stato logico, “0” o un “1”, ma può produrre tre diversi stati di uscita, “0”, “1” o “Hi-Z”, che è il motivo per cui è chiamato un dispositivo “Tri” o “3-state”.
Nota che questo terzo stato NON è uguale a un livello logico “0” o “1”, ma è uno stato di alta impedenza in cui l’uscita del buffer è elettricamente scollegata dal resto del circuito. As a result, no current is drawn from the supply.
There are four different types of Tri-state Buffer, one set whose output is enabled or disabled by an “Active-HIGH” control signal producing an inverted or non-inverted output, and another set whose buffer output is controlled by an “Active-LOW” control signal producing an inverted or non-inverted output as shown below.
Active “HIGH” Tri-state Buffer
Symbol | Truth Table | ||
Tri-state Buffer
|
Enable | IN | OUT |
0 | 0 | Hi-Z | |
0 | 1 | Hi-Z | |
1 | 0 | 0 | |
1 | 1 | 1 | |
Read as Output = Input if Enable is equal to “1” |
An Active-high Tri-state Buffer such as the 74LS241 octal buffer, is activated when a logic level “1” is applied to its “enable” control line and the data passes through from its input to its output. When the enable control line is at logic level “0”, the buffer output is disabled and a high impedance condition, Hi-Z is present on the output.
An active-high tri-state buffer can also have an inverting output as well as its high impedance state creating an active-high tri-state inverting buffer as shown.
Active “HIGH” Inverting Tri-state Buffer
Symbol | Truth Table | ||
Inverting Tri-state Buffer
|
Enable | IN | OUT |
0 | 0 | Hi-Z | |
0 | 1 | Hi-Z | |
1 | 0 | 1 | |
1 | 1 | 0 | |
Read as Output = Inverted Input if Enable equals “1” |
The output of an active-high inverting tri-state buffer, such as the 74LS240 octal buffer, is activated when a logic level “1” is applied to its “enable” control line. The data at the input is passes through to the output but is inverted producing a complement of the input. When the enable line is LOW at logic level “0”, the buffer output is disabled and at a high impedance condition, Hi-Z.
The same two tri-state buffers can also be implemented with an active-low enable input as shown.
Active “LOW” Tri-state Buffer
Symbol | Truth Table | ||
Tri-state Buffer
|
Enable | IN | OUT |
0 | 0 | 0 | |
0 | 1 | 1 | |
1 | 0 | Hi-Z | |
1 | 1 | Hi-Z | |
Read as Output = Input if Enable is NOT equal to “1” |
An Active-low Tri-state Buffer is the opposite to the above, and is activated when a logic level “0” is applied to its “enable” control line. The data passes through from its input to its output. When the enable control line is at logic level “1”, the buffer output is disabled and a high impedance condition, Hi-Z is present on the output.
Active “LOW” Inverting Tri-state Buffer
Symbol | Truth Table | ||
Inverting Tri-state Buffer
|
Enable | IN | OUT |
0 | 0 | 1 | |
0 | 1 | 0 | |
1 | 0 | Hi-Z | |
1 | 1 | Hi-Z | |
Read as Output = Inverted Input if Enable is NOT equal to “1” |
An Active-low Inverting Tri-state Buffer è l’opposto di quanto detto sopra poiché la sua uscita è abilitata o disabilitata quando un livello logico “0” è applicato alla sua linea di controllo “enable”. Quando un buffer è abilitato da uno “0” logico, l’uscita è il complemento del suo ingresso. Quando la linea di controllo di abilitazione è a livello logico “1”, l’uscita del buffer è disabilitata e una condizione di alta impedenza, Hi-Z è presente sull’uscita.
Controllo del buffer tri-stato
Abbiamo visto sopra che un buffer può fornire un’amplificazione di tensione o corrente all’interno di un circuito digitale e può anche essere usato per invertire il segnale di ingresso. Abbiamo anche visto che i buffer digitali sono disponibili nella forma a tre stati che permette all’uscita di essere effettivamente spenta producendo uno stato ad alta impedenza (Hi-Z) equivalente a un circuito aperto.
Il buffer a tre stati è usato in molti circuiti elettronici e microprocessori in quanto permette a più dispositivi logici di essere collegati allo stesso filo o bus senza danni o perdita di dati. Per esempio, supponiamo di avere una linea dati o un bus dati con alcune memorie, periferiche, I/O o una CPU collegate ad esso. Ognuno di questi dispositivi è in grado di inviare o ricevere dati l’un l’altro su questo singolo bus di dati allo stesso tempo creando ciò che viene chiamato una contesa.
La contesa si verifica quando più dispositivi sono collegati insieme perché alcuni vogliono pilotare la loro uscita alta e altri bassa. Se questi dispositivi iniziano a inviare o ricevere dati allo stesso tempo, può verificarsi un cortocircuito quando un dispositivo emette sul bus un “1” logico, la tensione di alimentazione, mentre un altro è impostato a livello logico “0” o a terra, con conseguente condizione di cortocircuito e possibilmente danni ai dispositivi così come la perdita di dati.
Le informazioni digitali vengono inviate su questi bus di dati o autostrade di dati sia in serie, un bit alla volta, o possono essere fino a otto (o più) fili insieme in una forma parallela come nel bus di dati di un microprocessore che permette a più buffer tri-state di essere collegati alla stessa autostrada di dati senza danni o perdita di dati come mostrato.
Controllo del bus dati del Tri-state Buffer
Allora, il Tri-state Buffer può essere usato per isolare dispositivi e circuiti dal bus dati e tra loro. Se le uscite di diversi Tri-state buffer sono collegate elettricamente tra loro, si usano dei decoder per permettere che solo una serie di Tri-state buffer sia attiva in qualsiasi momento, mentre gli altri dispositivi sono nel loro stato di alta impedenza. Un esempio di buffer a tre stati collegati a un bus dati a 4 fili è mostrato qui sotto.
Controllo del buffer a tre stati
Questo esempio di base mostra come un decoder binario possa essere usato per controllare un certo numero di buffer a tre stati sia individualmente che insieme in set di dati. Il decoder seleziona l’uscita appropriata che corrisponde al suo ingresso binario permettendo a un solo set di dati di passare uno stato logico “1” o logico “0” in uscita sul bus. In questo momento tutte le altre uscite a tre stati collegate alle stesse linee del bus sono disabilitate essendo messe nel loro stato Hi-Z ad alta impedenza.
Quindi i dati dal set di dati “A” possono essere trasferiti al bus comune solo quando un segnale attivo ALTO è applicato ai buffer a tre stati tramite la linea di abilitazione, ENA. In tutti gli altri momenti rappresenta una condizione di alta impedenza essendo effettivamente isolato dal bus dati.
Allo stesso modo, il set di dati “B” passa i dati al bus solo quando viene applicato un segnale di abilitazione tramite ENB. Un buon esempio di buffer tri-state collegati insieme per controllare i set di dati è il TTL 74244 Octal Buffer.
È anche possibile collegare i buffer tri-state “back-to-back” per produrre quello che viene chiamato un circuito buffer bidirezionale con un “active-high buffer” collegato in parallelo ma al contrario con un “active-low buffer”.
Qui, l’ingresso di controllo “enable” agisce più come un segnale di controllo direzionale facendo sì che i dati vengano letti “da” e trasmessi “a” lo stesso filo del bus dati. In questo tipo di applicazione può essere usato un buffer a tre stati con capacità di commutazione bidirezionale come il TTL 74245.
Abbiamo visto che un buffer a tre stati è un dispositivo non invertente che dà un’uscita (che è uguale al suo ingresso) solo quando l’ingresso al pin Enable, (EN) è HIGH altrimenti l’uscita del buffer va nella sua alta impedenza, (Hi-Z). Le uscite a tre stati sono usate in molti circuiti integrati e sistemi digitali e non solo nei buffer digitali a tre stati.
Sia i buffer digitali che i buffer a tre stati possono essere usati per fornire un’amplificazione di tensione o corrente guidando carichi molto più alti come relè, lampade o transistor di potenza rispetto alle porte logiche convenzionali. Ma un buffer può anche essere usato per fornire un isolamento elettrico tra due o più circuiti.
Abbiamo visto che un bus di dati può essere creato se diversi dispositivi tristate sono collegati insieme e finché solo uno è selezionato in qualsiasi momento, non ci sono problemi. Tri-state buses allow several digital devices to input and output data on the same data bus by using I/O signals and address decoding.
Tri-state Buffers are available in integrated form as quad, hex or octal buffer/drivers in both uni-directional and bi-directional forms, with the more common being the TTL 74240, the TTL 74244 and the TTL 74245 as shown.
Commonly available Digital Buffer and Tri-state Buffer IC’s include:
TTL Logic Digital Buffers
- 74LS07 Hex Non-inverting Buffer
- 74LS17 Hex Buffer/Driver
- 74LS244 Octal Buffer/Line Driver
- 74LS245 Octal Bi-directional Buffer
CMOS Logic Digital Buffers
- CD4050 Hex Non-inverting Buffer
- CD4503 Hex Tri-state Buffer
- HEF40244 Tri-state Octal Buffer