- Grundläggande princip för kodaren:
- Bygga kodare med hjälp av kombinationslogiska mönster
- 8: 3 kodare:
- Nackdel med normala kodare:
- Prioriterad kodare:
Kodare kodar, som namnet antyder, en större bit information till ett mindre bitvärde. Det finns många typer av kodare baserat på antalet in- och utgångar och baserat på hur den fungerar. Men varje kodare har en underliggande regel, antalet utgångslinjer på en kodare kommer alltid att vara mindre än antalet inmatningsrader. Vi lär oss mer om kodare, vad är en kodare, hur och varför de används i digitala kretsar i den här artikeln.
Grundläggande princip för kodaren:
Låt oss föreställa oss att en kodare ska vara en svart ruta som visas nedan som magiskt minskar antalet inmatningsrader från 4 till bara 2 utgångsledningar, men ändå ger samma information utan dataförlust.
Låt oss först avgöra vad namnet på denna kodare skulle vara. Den har fyra ingångar och två utgångar så namnet på denna kodare blir 4: 2 kodare. Om en kodare har " n " antal utgångsledningar blir antalet inmatningsrader 2 n, i vårt fall är antalet utgångsledningar två (n = 2), därför bör antalet inmatningsrader vara (2 2 = 4) fyra vilket är exakt fallet. De fyra ingångarna är märkta från I0 till I3 och de två utgångarna är märkta från O0 till O1
Så hur konverterar kodaren fyra signaler till två, det kan förstås genom att titta på sanningstabellen nedan. Det är också viktigt att veta att en vanlig kodare som den som visas här har en regel att vid en given tidpunkt endast en ingångsstift ska vara hög så i följande sanningstabell är endast en ingång hög.
Alla möjliga villkor för ingångsutgången visas i ovanstående sanningstabell. Till exempel när endast O1 är hög (1) och alla andra ingångar är låga (0) då kommer båda utgångsstiften att vara låga (0). På samma sätt ändrar utgångsstiftet dessutom dess status. Genom att använda denna Output bits-status kommer användaren att kunna spåra tillbaka till vilken insignal som skulle ha givits till kodaren.
Okej, vad är fint med att konvertera 4 rader till 2 rader, varför behöver vi det ens?
För att förstå har vi förklarat en 4: 2-kodare, men det finns andra kodare som kan ta ett högre antal ingångar och konvertera dem till lägre antal utgångar som 8: 3-kodaren, 16: 4-kodaren etc. Dessa typer av Encoder är mycket användbara när vi måste minska antalet stift som används på en MCU / MPU eller minska antalet signalbärande ledningar i PLC och andra system där en uppsättning switch eller LED. Det används också för att överföra data effektivt genom att använda mindre ledningar. I vissa applikationer kan vi ha en situation där mer än en ingång kan vara hög (1) i så fall kommer vi att kalla något som heter Priority Encoder som vi kommer att diskutera vidare i den här artikeln.
Bygga kodare med hjälp av kombinationslogiska mönster
Nu när vi vet hur en kodare fungerar och var den används. Låt oss lära oss hur man bygger en med enkla logiska grindar. Även om kodare som 8: 3 finns som snyggt enda paket IC som SN74LS148 är det viktigt att veta hur de är byggda så att vi kan skapa anpassade kodare för våra projekt baserat på den nödvändiga sanningstabellen.
Booleskt uttryck:
Det första i utformningen av Combinational Logic-enheten är att hitta det booleska uttrycket för sanningstabellen. Det är väldigt enkelt och kan enkelt bestämmas bara genom att titta på sanningstabellen. Samma sanningstabell som vi såg tidigare ges nedan med några illustrationer för att få dig att förstå bättre.
Antalet uttryck kommer att vara lika med antalet utgångslinjer, här har vi två utgångar och därmed har vi två uttryck. För den första utgången O0, kontrollera bara vid vilket tillstånd den är hög (1) och spåra motsvarande ingångsstiftnummer som också förblir högt (1). På samma sätt för alla höga värden på O0 notera vilket ingångsstiftnummer som är högt och lägg till stiften. Ingångsstift som motsvarar utgångsstift O0 är markerade med rött ovan och för O1 är markerat med blått. Så uttrycket för O0 och O1 kommer att vara
O 1 = I 3 + I 2 O 0 = I 3 + I 1
4: 2 Encoder Circuit Diagram:
När vi väl fått det booleska uttrycket måste vi bara rita det i form av grindar. Här eftersom vi har addition (+) kommer vi att använda OR-grindarna för att konstruera våra kretsar. Du kan också förenkla eller ändra det booleska uttrycket efter dina behov. Kretsschemat för ovanstående uttryck visas nedan
Kretsen kan enkelt byggas med en 7432 ELLER gate IC. Jag har byggt min kodarkrets över ett brädbräda som visas nedan
De fyra ingångslinjerna (I0, I1, I2 och I3) tillhandahålls av de fyra tryckknapparna, när du trycker på knappen länkar den + 5V till stiftet vilket gör det logiskt 1 och när knappen inte trycks ned hålls stiftet till marken genom ett 10k dragmotstånd för att göra det logiskt noll. Utgångarna (O0 och O1) representeras med ett par röda lysdioder. Om lysdioden lyser betyder det att utgångslogiken är 1 och om de är avstängda betyder det att utgångslogiken 0. Den fullständiga funktionen för kodarkretsen visas i videon nedan
Som du kan se när den första knappen trycks ned blir ingången I0 hög och därför förblir båda utgångarna låga. När den andra knappen trycks in är ingången I1 påslagen och därmed en LED lyser högt för att indikera att O0 är hög. Slutligen när den fjärde knappen trycks in blir ingången I3 hög och därmed lyser båda LED-lamporna högt. Detta är en väldigt enkel krets, därför har vi enkelt byggt den på en brädbräda, men för praktiska kodare blir kretsen lite mer komplex. Kodare finns dock också som IC-paket som kan köpas om det passar ditt projekt.
8: 3 kodare:
Arbetet och användningen av 8: 3-kodaren liknar också 4: 2-kodaren förutom antalet ingångs- och utgångsstift. 8: 3-kodaren kallas också som Octal to Binary Encoder. Blockdiagrammet för en 8: 3-kodare visas nedan
Här har kodaren åtta ingångar och 3 utgångar, återigen ska bara en ingång vara hög (1) vid varje given tidpunkt. Eftersom det finns 8 ingångar kallas det som oktal ingång och eftersom det finns tre utgångar kallas det också binär utgång. Sanningstabellen för kodaren visas nedan.
8: 3 Sanningstabell för kodare:
Booleskt uttryck:
Eftersom vi har dig utdata kommer vi att ha tre uttryck som visas nedan
O 2 = I 7 + I 6 + I 5 + I 4 O 1 = I 7 + I 6 + I 3 + I 2 O 0 = I 7 + I 5 + I 3 + I 1
8: 3-kodningsdiagram:
När det booleska uttrycket har erhållits som alltid kan vi bygga kretsdiagrammet med ELLER-grindarna som visas nedan.
Kretsen använder en 4-ingång ELLER grind IC, du kan också förenkla det booleska uttrycket för att använda andra normala 2-ingångs grind IC.
Nackdel med normala kodare:
Dessa typer av kodare lider av följande stora nackdelar
- När ingen av ingångarna är hög kommer utmatningen att vara lika med noll, men dessa villkor strider också med att den första biten är hög (MSB). Därför bör man alltid se till att åtminstone en bit förblir PÅ alltid
- När mer än en ingång är hög kommer utgången att kollapsas och kan ge resultatet för någon av ingångarna vilket leder till förvirring.
För att övervinna dessa svårigheter använder vi en annan typ av kodare som kallas en Priority Encoder som använder en extra utgång för att avgöra om utgången är giltig, och när mer än en ingång är hög hjälper den som går högt från LSD med ensam. ignorerar de andra ingångarna.
Prioriterad kodare:
Låt oss analysera en 4: 2-prioritetskodare som ett exempel för att förstå hur den skiljer sig från en vanlig kodare och den kan övervinna de två ovannämnda nackdelarna. Blockdiagrammet för en 4: 2 Priority Encoder visas nedan
En prioritet 4: 2 Encoder har också 4 ingångar och 2 utgångar, men vi kommer att lägga till en annan utgång som heter V som står för giltig bit. Denna giltiga bit kommer att kontrollera om alla fyra ingångsstift är låga (0) om låga kommer biten också att göra sig låg och anger att utgången inte är giltig så att vi kan övervinna den första nackdelen som nämns ovan.
4: 2 Sanningstabell för prioriterad kodare:
Nästa nackdel kan undvikas genom att prioritera MSB-bitar, kodaren kommer att kontrollera från MSB och när den har hittat den första biten så hög (1) kommer den att generera utdata därefter. Så det spelar ingen roll om de andra stiften är höga eller låga. Följaktligen i sanningstabellen nedan när en 1 har uppnåtts presenteras värdena för bryr sig inte med "X".
Booleskt uttryck:
Nu måste vi härleda tre uttryck som är för O0, O1 och V. Eftersom sanningstabellen inte bryr sig om saker måste vi använda K-map-metoden för att härleda det booleska uttrycket för detta. Vi ska inte täcka hur man löser med K-maps eftersom det inte omfattas av denna artikel. Men kartan visas nedan så att du kan störa och lära dig själv.
I ovanstående kartor är den vänstra för O1 och den högra för O0. Utgångslinjerna nämns av y och ingångslinjerna nämns med x. Så att ordna ekvationen i enlighet med detta får vi följande.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
På samma sätt kan det booleska uttrycket för den giltiga biten "V" ges som
V = I 3 + I 2 + I 1 + I 0
Kretsschema:
Kretsschemat för detta projekt kan byggas med de booleska uttrycken.
Kretsen kan byggas med de grundläggande NOT-, AND- och ELLER-grindarna. Här betraktas bitarna O0 och O1 som utgångar medan biten V används för att validera utgången. Endast om biten V är hög kommer utgången att beaktas om värdet på V är lågt (0) bör utgången ignoreras, eftersom det innebär att alla ingångsstift är noll.