I en tidigare tutorial tittade vi på den digitala Not Gate som vanligtvis kallas inverterare, och vi såg att NOT gates utgångstillstånd är komplementet, motsatsen eller omvänt av dess ingångssignal.
Så till exempel, när den enda ingången till NOT gate är ”HÖG”, kommer dess utgångstillstånd INTE att vara ”HÖG”. När dess ingångssignal är ”LOW” kommer dess utgångstillstånd INTE att vara ”LOW”, med andra ord ”inverterar” den sin ingångssignal, därav namnet ”Inverter”.
Men ibland behöver vi i digitala elektroniska kretsar isolera logiska grindar från varandra eller låta dem styra eller koppla om högre än normala belastningar, t.ex. reläer, solenoider och lampor utan att det behövs invertering. En typ av logisk grind med en enda ingång som gör det möjligt att göra just detta kallas digital buffert.
Till skillnad från en inverter eller NOT-grind med en enda ingång och en enda utgång, t.ex. TTL 7404, som inverterar eller kompletterar sin ingångssignal på utgången, utför ”bufferten” ingen invertering eller beslutsfattande (som logiska grindar med två eller flera ingångar) utan producerar i stället en utgång som exakt matchar den som finns på dess ingång. Med andra ord gör en digital buffert ingenting eftersom dess utgångstillstånd är lika med dess ingångstillstånd.
Då kan digitala buffertar betraktas som idempotenta grindar som tillämpar Booles idempotenta lag, eftersom dess värde inte ändras när en ingång passerar genom denna enhet. Den digitala bufferten är alltså en ”icke-inverterande” anordning och kommer därför att ge oss det boolska uttrycket: 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
- Dubbelinversion med hjälp av NOT-gates
- Digitala buffertars fan-out exempel
- Den ”Tri-state Buffer”
- Tri-state buffer switch Equivalent
- Active ”HIGH” Tri-state Buffer
- Active ”HIGH” Inverting Tri-state Buffer
- Active ”LOW” Tri-state Buffer
- Active ”LOW” Inverting Tri-state Buffer
- Tri-state Buffer Control
- Tri-state Buffer Data Bus Control
- Tri-state buffertstyrning
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. Den första kommer att ”invertera” ingångssignalen A och den andra kommer att ”återinvertera” den tillbaka till sin ursprungliga nivå, vilket ger en dubbel invertering av ingången.
Dubbelinversion med hjälp av NOT-gates
Digitala buffertar kan användas för att isolera andra grindar eller kretsstadier från varandra vilket förhindrar att impedansen i en krets påverkar impedansen i en annan. En digital buffert kan också användas för att driva högströmsbelastningar, t.ex. transistorbrytare, eftersom deras utgångsdrivförmåga i allmänhet är mycket högre än deras krav på ingångssignaler. Med andra ord kan buffertar användas för effektförstärkning av en digital signal eftersom de har vad som kallas en hög ”fan-out”-kapacitet.
Digitala buffertars fan-out exempel
Fan-out-parametern för en buffert (eller någon annan digital IC) är utgångsstyrningskapaciteten eller utgångsströmskapaciteten för en logisk grind som ger en större effektförstärkning av insignalen. Det kan vara nödvändigt att ansluta mer än bara en logisk grind till utgången av en annan eller att koppla en högströmsbelastning, t.ex. en lysdiod, och då gör en buffert det möjligt att göra just detta.
Generellt sett är utgången av en logisk grind vanligtvis ansluten till ingångarna av andra grindar. Varje ingång kräver en viss mängd ström från grindutgången för att ändra tillstånd, så att varje ytterligare grindanslutning ökar grindens belastning. Fan-out är alltså antalet parallella belastningar som kan drivas samtidigt av en digital buffert av en logisk grind. En buffert som fungerar som en strömkälla kan ha en hög fan-out-klassning för upp till 20 grindar av samma logikfamilj.
Om en digital buffert har en hög fan-out-klassning (strömkälla) måste den också ha en hög ”fan-in”-klassning (strömsänka). Gatens spridningsfördröjning försämras dock snabbt som en funktion av fan-in så grindar med en fan-in större än 4 bör undvikas.
Därefter finns det en gräns för antalet ingångar och utgångar som kan kopplas samman och i tillämpningar där vi behöver frikoppla grindarna från varandra kan vi använda en trestatusbuffert eller en trestatusutgångsdrivrutin.
Den ”Tri-state Buffer”
Såväl som den digitala standardbufferten som vi ser ovan finns det en annan typ av digital buffertkrets vars utgång kan kopplas bort ”elektroniskt” från sin utgångskrets vid behov. Denna typ av buffert är känd som en 3-tillståndsbuffert eller vanligare en tretillståndsbuffert.
En tretillståndsbuffert kan ses som en ingångsstyrd brytare med en utgång som elektroniskt kan slås på eller stängas av med hjälp av en extern signalingång för ”styrning” eller ”aktivering” ( EN ). Denna styrsignal kan vara antingen en logisk ”0”- eller en logisk ”1”-signal, vilket resulterar i att tri-state bufferten befinner sig i ett tillstånd som gör att dess utgång fungerar normalt och producerar den önskade utgången, eller i ett annat tillstånd där utgången är blockerad eller bortkopplad.
En tri-state buffer kräver då två ingångar. Den ena är dataingången och den andra är aktiverings- eller kontrollingången enligt bilden.
Tri-state buffer switch Equivalent
När den aktiveras i sitt tredje tillstånd inaktiverar den eller stänger av sin utgång och producerar ett öppet kretsläge som varken är vid ett logiskt ”HÖG” eller ”LÅG”, utan istället ger ett utgångstillstånd med mycket hög impedans, High-Z, eller vanligare Hi-Z. Denna typ av anordning har två logiska ingångar, ”0” eller ”1”, men kan ge tre olika utgångstillstånd, ”0”, ”1” eller ”Hi-Z”, vilket är anledningen till att den kallas en ”Tri”- eller ”3-state”-anordning.
Bemärk att det tredje tillståndet INTE är lika med en logisk nivå ”0” eller ”1”, utan är ett tillstånd med hög impedans, där buffertutgången är elektriskt bortkopplad från resten av kretsen. 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 är motsatsen till ovanstående eftersom dess utgång är aktiverad eller inaktiverad när en logisk nivå ”0” appliceras på dess ”enable”-styrlinje. När en buffert aktiveras av en logisk ”0” är utgången komplement till dess ingång. När aktiveringsstyrledningen är på logisk nivå ”1” är buffertutgången inaktiverad och ett högimpedanstillstånd, Hi-Z, föreligger på utgången.
Tri-state Buffer Control
Vi har sett ovan att en buffert kan ge spännings- eller strömförstärkning inom en digital krets och den kan också användas för att invertera ingångssignalen. Vi har också sett att digitala buffertar finns i tri-state-form som gör det möjligt att effektivt stänga av utgången och producera ett högimpedanstillstånd (Hi-Z) som motsvarar en öppen krets.
Tri-state-bufferten används i många elektroniska kretsar och mikroprocessorkretsar eftersom de gör det möjligt att koppla flera logiska enheter till samma tråd eller buss utan att skada eller förlora data. Anta till exempel att vi har en datalinje eller databuss med ett minne, kringutrustning, I/O eller en CPU ansluten till den. Var och en av dessa enheter kan sända eller ta emot data till varandra på denna enda databuss samtidigt, vilket skapar vad som kallas en konflikt.
Konflikt uppstår när flera enheter är anslutna till varandra eftersom vissa vill driva sin utgång högt och andra lågt. Om dessa enheter börjar sända eller ta emot data samtidigt kan en kortslutning uppstå när en enhet ger ut en logisk ”1” till bussen, dvs. matningsspänningen, medan en annan enhet är inställd på logisk nivå ”0” eller jord, vilket resulterar i ett kortslutningstillstånd och eventuellt skador på enheterna samt förlust av data.
Digital information skickas över dessa databussar eller datavägar antingen seriellt, en bit i taget, eller så kan det vara upp till åtta (eller fler) ledningar tillsammans i en parallell form som i en mikroprocessors databuss, vilket gör det möjligt att ansluta flera tri-state buffertar till samma dataväg utan att data skadas eller går förlorade, vilket visas.
Tri-state Buffer Data Bus Control
Därefter kan tri-state buffer användas för att isolera enheter och kretsar från databussen och varandra. Om utgångarna från flera tri-state buffertar är elektriskt sammankopplade används avkodare för att tillåta att endast en uppsättning tri-state buffertar är aktiva samtidigt medan de andra enheterna är i sitt högimpedanstillstånd. Ett exempel på tri-state buffertar som är anslutna till en 4-trådig databuss visas nedan.
Tri-state buffertstyrning
Detta grundexempel visar hur en binär avkodare kan användas för att styra ett antal tri-state buffertar, antingen individuellt eller tillsammans i dataset. Avkodaren väljer lämplig utgång som motsvarar dess binära ingång vilket gör att endast en uppsättning data kan passera antingen ett logiskt ”1”- eller logiskt ”0”-utgångstillstånd på bussen. Vid denna tidpunkt inaktiveras alla andra tri-state-utgångar som är anslutna till samma busslinjer genom att de placeras i sitt högimpedanta Hi-Z-tillstånd.
Därefter kan data från datauppsättning ”A” endast överföras till den gemensamma bussen när en aktiv HIGH-signal appliceras på tri-state-buffertarna via Enable-linjen, ENA. Vid alla andra tillfällen representerar den ett högimpedanstillstånd och är effektivt isolerad från databussen.
På samma sätt överför datauppsättning ”B” endast data till bussen när en aktiveringssignal tillämpas via ENB. Ett bra exempel på tri-state buffertar som är sammankopplade för att styra datamängder är TTL 74244 Octal Buffer.
Det är också möjligt att koppla tri-state buffertar ”back-to-back” för att producera vad som kallas en dubbelriktad buffertkrets med en ”active-high buffert” kopplad parallellt, men i omvänd ordning med en ”active-low buffert”.
Här fungerar ”enable”-kontrollingången mer som en riktningskontrollsignal som gör att data både läses ”från” och överförs ”till” samma databustråd. I den här typen av tillämpning kan en tri-state buffer med dubbelriktad omkopplingsförmåga, t.ex. TTL 74245, användas.
Vi har sett att en tri-state buffer är en icke-inverterande anordning som ger en utgång (som är densamma som dess ingång) endast när ingången till Enable (EN)-stiftet är HIGH (hög), annars går buffertutgången in i sitt högimpedanta (Hi-Z)-tillstånd. Tri-state-utgångar används i många integrerade kretsar och digitala system och inte bara i digitala tri-state-buffertar.
Både digitala buffertar och tri-state-buffertar kan användas för att ge spännings- eller strömförstärkning som driver mycket högre belastningar, t.ex. reläer, lampor eller effekttransistorer, än vad som är möjligt med konventionella logiska grindar. Men en buffert kan också användas för att ge elektrisk isolering mellan två eller flera kretsar.
Vi har sett att en databuss kan skapas om flera tristate-enheter kopplas samman och så länge bara en är vald åt gången är det inget problem. 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