- Basisprincipe van encoder:
- Encoders bouwen met behulp van Combinational Logic Designs
- 8: 3 encoders:
- Nadeel van normale encoders:
- Prioriteit encoder:
Encoders coderen, zoals de naam doet vermoeden, een groter stukje informatie in een kleinere bitwaarde. Er zijn veel soorten encoders op basis van het aantal ingangen en uitgangen en op basis van de werking ervan. Maar elke encoder heeft één onderliggende regel: het aantal uitvoerlijnen op een encoder zal altijd minder zijn dan het aantal invoerlijnen. We zullen in dit artikel meer leren over encoders, wat is een encoder, hoe en waarom ze in digitale schakelingen worden gebruikt.
Basisprincipe van encoder:
Laten we ons voorstellen dat een encoder een zwarte doos is, zoals hieronder getoond, die het aantal invoerlijnen op magische wijze reduceert van 4 naar slechts 2 uitvoerlijnen, maar toch dezelfde informatie levert zonder enig gegevensverlies.
Laten we eerst bepalen wat de naam van deze encoder zou zijn. Het heeft vier ingangen en twee uitgangen, dus de naam van deze encoder is 4: 2 encoder. Als een encoder een " n " aantal uitgangslijnen heeft, is het aantal ingangslijnen 2 n, in ons geval is het aantal uitvoerlijnen twee (n = 2), dus het aantal invoerlijnen zou (2 2 = 4) vier moeten zijn, wat precies het geval is. De vier ingangspennen zijn gelabeld van I0 tot I3 en de twee uitgangspennen zijn gelabeld van O0 tot O1
Dus hoe converteert de encoder vier signalen in twee, het kan worden begrepen door de onderstaande waarheidstabel te bekijken. Het is ook belangrijk om te weten dat een gewone encoder zoals de hier getoonde een regel heeft dat op een bepaald moment slechts één ingangspen hoog mag zijn, dus in de volgende waarheidstabel zal slechts één ingang hoog zijn.
Alle mogelijke condities van de input en output worden getoond in de bovenstaande waarheidstabel. Als bijvoorbeeld alleen O1 hoog is (1) en alle andere inputs zijn laag (0), dan zullen beide outputpinnen laag zijn (0). Evenzo zullen voor elk geval de uitgangspennen ook van status veranderen. Door gebruik te maken van deze Output bits-status kan de gebruiker teruggaan naar welk ingangssignaal aan de encoder zou zijn gegeven.
Oké, wat is er mooi aan het converteren van 4 regels naar 2 regels, waarom hebben we het zelfs nodig?
Voor een beter begrip hebben we een 4: 2-encoder uitgelegd, maar er zijn andere encoders die een groter aantal ingangen kunnen gebruiken en deze naar een lager aantal uitgangen kunnen converteren, zoals de 8: 3-encoder, 16: 4-encoder enz. Deze typen van encoder zijn erg handig wanneer we het aantal pinnen dat op een MCU / MPU wordt gebruikt moeten verminderen of het aantal signaaldragende draden in PLC en andere systemen met een reeks schakelaars of LED's moeten verminderen. Het wordt ook gebruikt bij het efficiënt verzenden van gegevens door minder kabels te gebruiken. In sommige toepassingen kunnen we een situatie hebben waarin meer dan één input hoog kan zijn (1), in dat geval zullen we iets genaamd Priority Encoder hebben dat we verder in dit artikel zullen bespreken.
Encoders bouwen met behulp van Combinational Logic Designs
Nu we weten hoe een encoder werkt en waar deze wordt gebruikt. Laten we leren hoe we er een kunnen bouwen met behulp van eenvoudige logische poorten. Hoewel encoders zoals 8: 3 beschikbaar zijn als een nette IC met één pakket, zoals SN74LS148, is het belangrijk om te weten hoe ze zijn gebouwd, zodat we aangepaste encoders kunnen maken voor onze projecten op basis van de vereiste waarheidstabel.
Booleaanse expressie:
De eerste bij het ontwerpen van het Combinational Logic-apparaat is het vinden van de Booleaanse uitdrukking voor de waarheidstabel. Het is heel gemakkelijk en kan gemakkelijk worden bepaald door gewoon naar de waarheidstabel te kijken. Dezelfde waarheidstabel die we eerder zagen, wordt hieronder gegeven met enkele illustraties om u het beter te laten begrijpen.
Het aantal expressies zal gelijk zijn aan het aantal outputregels, hier hebben we twee outputs en dus hebben we twee expressies. Controleer voor de eerste uitgang O0 in welke toestand deze hoog is (1) en traceer het corresponderende ingangspinnummer dat ook hoog blijft (1). Evenzo voor alle hoge waarden van O0, noteer welk invoerpinnummer hoog is en voeg de pinnen toe. De invoerpennen die overeenkomen met Uitgangspen O0 zijn hierboven rood gemarkeerd en voor O1 is blauw gemarkeerd. Dus de uitdrukking voor O0 en O1 zal zijn
O 1 = ik 3 + ik 2 O 0 = ik 3 + ik 1
4: 2 schakelschema encoder:
Zodra we de Booleaanse uitdrukking hebben verkregen, hoeven we deze alleen maar in de vorm van poorten te tekenen. Hier omdat we een optelling (+) hebben, zullen we de OF-poorten gebruiken voor het construeren van onze circuits. U kunt de Booleaanse uitdrukking ook vereenvoudigen of aanpassen aan uw behoeften. Het schakelschema voor de bovenstaande uitdrukking wordt hieronder weergegeven
Het circuit kan eenvoudig worden gebouwd met behulp van een 7432 OF-poort-IC. Ik heb mijn encodercircuit over een breadboard gebouwd, zoals hieronder wordt weergegeven
De vier ingangslijnen (I0, I1, I2 en I3) worden geleverd door de vier drukknoppen, wanneer de knop wordt ingedrukt, verbindt deze + 5V met de pin waardoor het logisch 1 wordt en wanneer de knop niet wordt ingedrukt, wordt de pin tegen de grond gehouden via een 10k pull-down weerstand om het logisch nul te maken. De uitgangen (O0 en O1) worden weergegeven met een paar rode LED's. Als de LED oplicht, betekent dit dat de uitgangslogica 1 is en als ze zijn uitgeschakeld, betekent dit dat de uitgangslogica 0 is. De volledige werking van het encodercircuit wordt getoond in de onderstaande video
Zoals je kunt zien wanneer de eerste knop wordt ingedrukt, wordt de ingang I0 hoog gemaakt en blijven beide uitgangen laag. Wanneer de tweede knop wordt ingedrukt, wordt ingang I1 ingeschakeld en dus gaat één LED hoog om aan te geven dat O0 hoog is. Als tenslotte op de vierde knop wordt gedrukt, wordt ingang I3 hoog gemaakt en dus gaan beide LED's hoog. Dit is een heel eenvoudig circuit, daarom hebben we het gemakkelijk op een breadboard gebouwd, maar voor praktische encoders wordt het circuit een beetje ingewikkelder. Encoders zijn echter ook verkrijgbaar als IC-pakketten die kunnen worden gekocht als het bij uw project past.
8: 3 encoders:
De werking en het gebruik van de 8: 3-encoder is ook vergelijkbaar met de 4: 2-encoder, behalve het aantal invoer- en uitvoerpinnen. De 8: 3-encoder wordt ook wel Octal to Binary Encoder genoemd.Het blokschema van een 8: 3-encoder wordt hieronder weergegeven
Hier heeft de encoder 8 ingangen en 3 uitgangen, ook hier mag slechts één ingang hoog (1) tegelijk zijn. Aangezien er 8 ingangen zijn, wordt het een octale ingang genoemd en aangezien er drie uitgangen zijn, wordt het ook wel binaire uitgang genoemd. De waarheidstabel van de encoder wordt hieronder weergegeven.
8: 3 Encoder Truth Table:
Booleaanse expressie:
Aangezien we drie uitgangen hebben, hebben we drie uitdrukkingen, zoals hieronder weergegeven
O 2 = ik 7 + ik 6 + ik 5 + ik 4 O 1 = ik 7 + ik 6 + ik 3 + ik 2 O 0 = ik 7 + ik 5 + ik 3 + ik 1
8: 3 Encoder schakelschema:
Zodra de Booleaanse uitdrukking is verkregen, zoals altijd, kunnen we het schakelschema bouwen met behulp van de OF-poorten, zoals hieronder wordt weergegeven.
Het circuit maakt gebruik van een OF-poort IC met 4 ingangen, je kunt de Boolean Expression ook vereenvoudigen om andere normale Gate IC's met 2 ingangen te gebruiken.
Nadeel van normale encoders:
Dit soort encoders heeft de volgende grote nadelen
- Als geen van de invoer hoog is, is de uitvoer gelijk aan nul, maar deze voorwaarde is ook in strijd met het feit dat de eerste bit hoog is (MSB). Daarom moet er altijd voor worden gezorgd dat ten minste één bit altijd AAN blijft
- Wanneer meer dan één input hoog is, zal de output worden samengevouwen en kan dit het resultaat geven voor elk van de input, wat tot verwarring leidt.
Om deze problemen te overwinnen, gebruiken we een ander type encoder, een Priority Encoder genaamd, die een extra output gebruikt om te bepalen of de output geldig is, en wanneer meer dan één input hoog is, wordt alleen degene die hoog gaat vanaf de LSD overwogen. negeren van de andere invoer.
Prioriteit encoder:
Laten we een 4: 2 Priority Encoder als voorbeeld analyseren om te begrijpen hoe deze verschilt van een normale Encoder en het kan de bovengenoemde twee nadelen oplossen. Het blokschema van een 4: 2 Priority Encoder wordt hieronder weergegeven
Een prioriteit 4: 2 Encoder heeft ook 4 ingangen en 2 uitgangen, maar we zullen nog een uitgang toevoegen genaamd V die staat voor geldige bit. Deze geldige bit zal controleren of alle vier de invoerpinnen laag zijn (0). Als de bit laag is, zal de bit zichzelf ook laag maken door aan te geven dat de uitvoer niet geldig is, dus we kunnen het eerste nadeel dat hierboven wordt genoemd, overwinnen.
4: 2 Priority Encoder Truth Table:
Het volgende nadeel kan worden vermeden door prioriteit te geven aan MSB-bits, de encoder zal controleren vanuit de MSB en zodra het de eerste bit zo hoog vindt (1), zal het de uitvoer overeenkomstig genereren. Het maakt dus niet uit of de andere pinnen hoog of laag zijn. Vandaar dat in de waarheidstabel hieronder, zodra een 1 is bereikt, de don't care-waarden worden weergegeven door "X".
Booleaanse expressie:
Nu moeten we drie uitdrukkingen afleiden die voor O0, O1 en V zijn. Aangezien de waarheidstabel niets uitmaakt, moeten we de K-map-methode gebruiken om de Booleaanse uitdrukking hiervoor af te leiden. We gaan niet ingaan op het oplossen met K-maps, aangezien dit buiten het bestek van dit artikel valt. Maar de kaart wordt hieronder weergegeven, zodat u zich kunt mengen en zelf kunt leren.
In de bovenstaande kaarten is de linker voor O1 en de rechter voor O0. De uitvoerregels worden genoemd met y en de invoerregels worden genoemd met x. Dus als we de vergelijking dienovereenkomstig rangschikken, krijgen we het volgende.
O 1 = ik 3 + ik 2 O 0 = ik 2 ik 1 '+ ik 3
Evenzo kan voor het geldige bit "V" de Booleaanse uitdrukking worden gegeven als
V = ik 3 + ik 2 + ik 1 + ik 0
Schakelschema:
Het schakelschema voor dit project kan worden opgebouwd met behulp van de Booleaanse uitdrukkingen.
Het circuit kan worden gebouwd met behulp van de basis NIET-, EN- en OF-poorten. Hier worden de bits O0 en O1 als uitvoer beschouwd, terwijl bit V wordt gebruikt om de uitvoer te valideren. Alleen als de bit V hoog is, wordt de uitvoer in aanmerking genomen als de waarde van V laag is (0), de uitvoer moet worden genegeerd, omdat dit impliceert dat alle invoerpinnen nul zijn.