- Kooderin perusperiaate:
- Encodereiden rakentaminen yhdistelmälogiikkasuunnittelun avulla
- 8: 3-kooderit:
- Normaalien koodereiden haittapuoli:
- Prioriteettikooderi:
Kooderit, kuten nimestä voi päätellä, koodaavat suuremman informaation bitin pienempään bittiarvoon. Enkoodereita on monen tyyppisiä tulojen ja lähtöjen lukumäärän ja sen toiminnan perusteella. Mutta jokaisella enkooderilla on yksi perussääntö, enkooderin lähtörivien määrä on aina pienempi kuin syöttörivien määrä. Tästä artikkelista saat lisätietoja koodereista, mikä on kooderi, miten ja miksi niitä käytetään digitaalisissa piireissä.
Kooderin perusperiaate:
Kuvitelkaamme kooderi olevan musta ruutu, kuten alla on esitetty, mikä vähentää maagisesti tulolinjojen lukumäärää 4: stä vain 2: een lähtöviivaan, mutta antaa silti samat tiedot ilman tietojen menetystä.
Ensin määritetään mikä tämän kooderin nimi olisi. Siinä on neljä tuloa ja kaksi lähtöä, joten tämän kooderin nimi on 4: 2-kooderi. Jos enkooderilla on “ n ” lähtölinjoja, niin tulolinjojen lukumäärä on 2 n, meidän tapauksessamme lähtölinjojen määrä on kaksi (n = 2), joten tulolinjojen lukumäärän tulisi olla (2 2 = 4) neljä, mikä on täsmälleen tapaus. Neljä tulotappia on merkitty välillä I0 - I3 ja kaksi ulostulotapaa on merkitty O0: sta O1: een
Joten miten kooderi muuntaa neljä signaalia kahdeksi, se voidaan ymmärtää katsomalla alla olevaa totuustaulukkoa. On myös tärkeää tietää, että tavallisella enkooderilla, kuten tässä on esitetty, on sääntö, jonka mukaan vain yhden tulonastan tulisi tietyllä hetkellä olla korkea, joten seuraavassa totuustaulukossa vain yksi tulo on korkea.
Jokainen mahdollinen tulolähdön ehto on esitetty yllä olevassa totuustaulukossa. Esimerkiksi kun vain O1 on korkea (1) ja kaikki muut tulot ovat matalat (0), molemmat lähtönastat laskevat (0). Samoin kussakin tapauksessa lähtötapit muuttavat myös tilaansa. Käyttämällä tätä lähtöbittien tilaa käyttäjä voi jäljittää, mikä tulosignaali olisi annettu kooderille.
Okei, mikä on hienoa muuttaa 4 riviä 2 riviksi, miksi me sitä edes tarvitsemme?
Ymmärtämisen vuoksi olemme selittäneet 4: 2-enkooderin, mutta on olemassa muita koodereita, jotka voivat ottaa suuremman määrän syötteitä ja muuntaa ne pienemmäksi ulostulomääriksi, kuten 8: 3-kooderi, 16: 4-kooderi jne. Nämä tyypit enkooderista ovat erittäin hyödyllisiä, kun joudumme vähentämään MCU: lla / MPU: lla käytettyjen nastojen määrää tai vähentämään signaalinsiirtojohtojen määrää PLC: ssä ja muissa järjestelmissä, joissa on joukko kytkimiä tai LEDejä. Sitä käytetään myös tiedonsiirtoon tehokkaasti käyttämällä pienempiä johtoja. Joissakin sovelluksissa meillä voi olla tilanne, jossa useampi kuin yksi tulo voi olla korkea (1), jolloin annamme jotain nimeltä Priority Encoder, josta keskustelemme edelleen tässä artikkelissa.
Encodereiden rakentaminen yhdistelmälogiikkasuunnittelun avulla
Nyt kun tiedämme kuinka kooderi toimii ja missä sitä käytetään. Oppikaamme kuinka rakentaa sellainen yksinkertaisten logiikkaporttien avulla. Vaikka koodereita, kuten 8: 3, on saatavana siistinä yksittäispaketti-IC: nä, kuten SN74LS148, on tärkeää tietää, miten ne on rakennettu, jotta voimme tehdä projektiin räätälöityjä koodereita vaaditun totuustaulukon perusteella.
Boolen lauseke:
Ensimmäinen yhdistelmälogiikkalaitteen suunnittelussa on löytää totuustaulukon Boolen lauseke. Se on erittäin helppoa ja se voidaan määrittää helposti katsomalla totuustaulukkoa. Sama totuustaulukko, jonka näimme aiemmin, on annettu alla ja joitain piirroksia, jotta ymmärrät paremmin.
Lausekkeiden määrä on yhtä suuri kuin lähtölinjojen lukumäärä, tässä meillä on kaksi lähtöä ja siten meillä on kaksi lauseketta. Ensimmäisen lähdön O0 kohdalla tarkista vain missä tilassa se on korkea (1) ja jäljitä vastaava tulonastanumero, joka myös pysyy korkeana (1). Vastaavasti kaikkien korkeiden O0-arvojen kohdalla huomaa mikä tulonastanumero on suuri ja lisää nastat. Lähtötappia O0 vastaavat tulonastat on korostettu punaisella yläpuolella ja O1: n kohdalla sinisellä. Joten lauseke O0: lle ja O1: lle tulee olemaan
O 1 = I 3 + I 2 O 0 = I 3 + I 1
4: 2-kooderipiirikaavio:
Kun olemme saaneet Boolen lausekkeen, meidän on vain piirrettävä se Gatesin muodossa. Koska meillä on lisäys (+) -operaatio, käytämme OR-portteja piireidemme rakentamiseen. Voit myös yksinkertaistaa tai muokata loogista lauseketta tarpeidesi mukaan. Yllä olevan lausekkeen piirikaavio on esitetty alla
Piiri voidaan helposti rakentaa käyttämällä 7432 OR -portti-IC: tä. Olen rakentanut oman enkooderipiiri yli breadboard kuten alla
Neljä tulolinjaa (I0, I1, I2 ja I3) tarjoavat neljä painonappia, kun painiketta painetaan, se yhdistää + 5V nastaan, mikä tekee siitä loogisen 1 ja kun painiketta ei paineta, nasta pidetään 10 k alasvetovastuksen kautta, jotta se olisi looginen nolla. Lähdöt (O0 ja O1) esitetään punaisella LED-parilla. Jos LED palaa, se tarkoittaa, että lähtölogiikka on 1 ja jos ne sammutetaan, se tarkoittaa, että lähtölogiikka 0. Kooderipiirin täydellinen toiminta näkyy alla olevassa videossa.
Kuten voit nähdä, kun ensimmäistä painiketta painetaan, tulo I0 tehdään korkeaksi ja siten molemmat lähdöt pysyvät matalina. Kun toista painiketta painetaan, tulo I1 kytketään päälle ja siten yksi LED-valo menee korkealle osoittamaan, että O0 on korkea. Lopuksi, kun neljäs painike painetaan, tulo I3 muutetaan korkeaksi ja täten molemmat LEDit menevät korkealle. Tämä on hyvin yksinkertainen piiri, joten olemme rakentaneet sen helposti leipälaudalle, mutta käytännön antureille piiri tulee hieman monimutkaisemmaksi. Koodereita on kuitenkin saatavana myös IC-paketteina, jotka voidaan ostaa, jos se sopii projektiisi.
8: 3-kooderit:
8: 3-enkooderin toiminta ja käyttö on myös samanlainen kuin 4: 2-enkooderin lukuun ottamatta sisääntulo- ja lähtönastojen lukumäärää. 8: 3-kooderia kutsutaan myös Octal-Binary Encoderiksi. Alla on esitetty 8: 3-kooderin lohkokaavio.
Tässä kooderissa on 8 tuloa ja 3 lähtöä, taas vain yhden tulon tulisi olla korkea (1) kulloinkin. Koska tuloja on 8, sitä kutsutaan oktaalituloksi ja koska lähtöjä on kolme, sitä kutsutaan myös binäärilähdöksi. Kooderin totuustaulukko on esitetty alla.
8: 3 Kooderin totuustaulukko:
Boolen lauseke:
Koska meillä on sinun lähdöt, meillä on kolme lauseketta, kuten alla on esitetty
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 -enkooderipiirikaavio:
Kun Boolen lauseke on saatu kuten aina, voimme rakentaa piirikaavion käyttämällä OR-portteja alla olevan kuvan mukaisesti.
Piiri käyttää 4-tuloista TAI-portti-IC: tä, voit myös yksinkertaistaa Boolen lauseketta käyttämään muita normaaleja 2-sisääntuloportin IC: itä.
Normaalien koodereiden haittapuoli:
Tämäntyyppiset enkooderit kärsivät seuraavista suurista haitoista
- Kun mikään tulo ei ole korkea, lähtö on yhtä suuri kuin kaikki nollat, mutta tämä ehto on ristiriidassa myös ensimmäisen bitin ollessa korkea (MSB). Siksi on aina huolehdittava siitä, että ainakin yksi bitti pysyy aina päällä
- Kun useampia kuin yksi tulo on korkea, lähtö romahtaa ja voi tuottaa tuloksen jommallekummalle tulosta, mikä johtaa sekaannukseen.
Näiden vaikeuksien voittamiseksi käytämme erityyppistä enkooderia, jota kutsutaan prioriteettikooderiksi, joka käyttää ylimääräistä lähtöä selvittääkseen, onko lähtö kelvollinen, ja kun useampia kuin yksi tulo on apua korkealle, pidetään yksin LSD: stä lähtevää korkeaa. ohittamatta muita tuloja.
Prioriteettikooderi:
Analysoimme 4: 2-prioriteettikooderia esimerkkinä ymmärtääkseen, kuinka se eroaa normaalista kooderista, ja se voi voittaa yllä mainitut kaksi haittapuolta. 4: 2-prioriteettikooderin lohkokaavio on esitetty alla
Prioriteetti 4: 2 -enkooderissa on myös 4 tuloa ja 2 lähtöä, mutta lisätään toinen lähtö nimeltä V, joka tarkoittaa kelvollista bittiä. Tämä kelvollinen bitti tarkistaa, ovatko kaikki neljä tuloliittintä alhaalla (0), jos matala, bitti tekee itsestään myös matalan ilmoittamalla, että lähtö ei ole kelvollinen, joten voimme voittaa ensimmäisen edellä mainitun haitan.
4: 2 Prioriteettikooderin totuustaulukko:
Seuraava haittapuoli voidaan välttää antamalla etusija MSB-biteille, kooderi tarkistaa MSB: ltä ja kun se löytää ensimmäisen korkean bitin (1), se tuottaa lähdön vastaavasti. Joten ei ole väliä onko muut nastat korkeat vai matalat. Siksi alla olevassa totuustaulukossa, kun 1 on saavutettu, ”X” esittää välittämättömät arvot.
Boolen lauseke:
Nyt meidän on johdettava kolme lauseketta, jotka ovat O0: lle, O1: lle ja V. Emme aio käsitellä, miten ratkaista K-kartat, koska se ei kuulu tämän artikkelin piiriin. Mutta kartta on esitetty alla, jotta voit puuttua asiaan ja oppia itse.
Yllä olevissa kartoissa vasen on O1: lle ja oikea O0: lle. Lähtörivit mainitaan y: llä ja tulorivit x: llä. Joten järjestämällä yhtälö vastaavasti saamme seuraavan.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
Vastaavasti kelvolliselle bitille “V” Boolen lauseke voidaan antaa muodossa
V = I 3 + I 2 + I 1 + I 0
Piirikaavio:
Tämän projektin piirikaavio voidaan rakentaa Boolen lausekkeilla.
Piiri voidaan rakentaa käyttämällä perusportteja NOT, AND ja OR. Bittejä O0 ja O1 pidetään tässä lähtöinä, kun taas bittiä V käytetään lähdön vahvistamiseen. Vain jos bitti V on korkea, lähtö otetaan huomioon, jos V: n arvo on pieni (0), lähtö tulisi jättää huomiotta, koska se tarkoittaa, että kaikki tulonastat ovat nollia.