- Principiul de bază al codificatorului:
- Construirea codificatoarelor utilizând modele logice combinaționale
- 8: 3 Codificatori:
- Dezavantajul codificatoarelor normale:
- Codificator prioritar:
Codificatorii, așa cum sugerează și numele, codifică un bit mai mare de informații într-o valoare de bit mai mică. Există multe tipuri de codificatoare bazate pe numărul de intrări și ieșiri și pe baza modului în care funcționează. Dar fiecare codificator are o regulă de bază, numărul de linii de ieșire pe un codificator va fi întotdeauna mai mic decât numărul de linii de intrare. Vom afla mai multe despre codificatoare, ce este un codificator, cum și de ce sunt utilizate în circuite digitale în acest articol.
Principiul de bază al codificatorului:
Să ne imaginăm că un codificator este o cutie neagră, așa cum se arată mai jos, care reduce în mod magic numărul de linii de intrare de la 4 la doar 2 linii de ieșire, dar furnizează totuși aceleași informații fără pierderi de date.
Mai întâi să stabilim care ar fi numele acestui codificator. Are patru intrări și două ieșiri, astfel încât numele acestui codificator va fi codificator 4: 2. Dacă un codificator are „ n ” număr de linii de ieșire, atunci numărul de linii de intrare va fi 2 n, în cazul nostru, numărul de linii de ieșire este de două (n = 2), deci numărul de linii de intrare ar trebui să fie (2 2 = 4) patru, ceea ce este exact cazul. Cei patru pini de intrare sunt etichetați de la I0 la I3 și cei doi pini de ieșire sunt etichetați de la O0 la O1
Deci, cum convertește codificatorul patru semnale în două, se poate înțelege aruncând o privire la tabelul adevărului de mai jos. De asemenea, este important să știm că un codificator obișnuit, precum cel prezentat aici, are o regulă conform căreia, la un moment dat, un singur pin de intrare ar trebui să fie ridicat, deci în tabelul de adevăr următor, o singură intrare va fi mare.
Fiecare condiție posibilă a intrării la ieșire este prezentată în tabelul de adevăr de mai sus. De exemplu, atunci când numai O1 este ridicat (1) și toate celelalte intrări sunt scăzute (0), atunci ambii pini de ieșire vor scădea (0). În mod similar, pentru fiecare caz, pinii de ieșire își vor schimba și starea. Prin utilizarea acestei stări de biți de ieșire, utilizatorul va putea urmări înapoi la ce semnal de intrare ar fi fost dat codificatorului.
Bine, ce este de lux să convertim 4 linii în 2 linii, de ce avem nevoie chiar de ea?
În scopul înțelegerii, am explicat un codificator 4: 2, dar există și alt codificator care poate prelua un număr mai mare de intrări și le poate converti într-un număr mai mic de ieșiri, cum ar fi codificatorul 8: 3, codificatorul 16: 4 etc. Aceste tipuri Codificatorului sunt foarte utile atunci când trebuie să reducem numărul de pini folosiți pe un MCU / MPU sau să reducem numărul de fire care transportă semnalele în PLC și alte sisteme în care există o gamă de comutatoare sau LED-uri. De asemenea, este utilizat în transmiterea eficientă a datelor prin utilizarea unor fire mai mici. În unele aplicații s-ar putea să avem o situație în care mai mult de o intrare ar putea fi ridicată (1) în acest caz vom avea ceva numit Priority Encoder, pe care îl vom discuta în continuare în acest articol.
Construirea codificatoarelor utilizând modele logice combinaționale
Acum, că știm cum funcționează un codificator și unde este utilizat. Să învățăm cum să construim una folosind porți logice simple. Deși codificatoarele precum 8: 3 sunt disponibile ca un singur pachet IC, cum ar fi SN74LS148, este important să știm cum sunt construite astfel încât să putem realiza codificatoare personalizate pentru proiectele noastre pe baza tabelului de adevăr necesar.
Expresie booleană:
Primul în proiectarea dispozitivului de logică combinațională este de a găsi expresia booleană pentru tabelul adevărului. Este foarte ușor și poate fi ușor determinat doar uitându-vă la tabelul adevărului. Același tabel de adevăr pe care l-am văzut mai devreme este dat mai jos cu câteva ilustrații pentru a vă face să înțelegeți mai bine.
Numărul de expresii va fi egal cu numărul de linii de ieșire, aici avem două ieșiri și, prin urmare, avem două expresii. Pentru prima ieșire O0, trebuie doar să verificați în ce stare este mare (1) și să urmăriți numărul corespunzător al pinului de intrare care rămâne, de asemenea, ridicat (1). În mod similar pentru toate valorile ridicate ale O0, notați numărul de pin de intrare este mare și adăugați pinii. Pinii de intrare corespunzători pinului de ieșire O0 sunt evidențiați în roșu deasupra, iar pentru O1 sunt evidențiați în albastru. Deci Expresia pentru O0 și O1 va fi
O 1 = I 3 + I 2 O 0 = I 3 + I 1
Diagrama circuitului codificatorului 4: 2:
Odată ce obținem expresia booleană, trebuie doar să o desenăm sub formă de porți. Aici, deoarece avem operație de adăugare (+), vom folosi porțile SAU pentru construirea circuitelor noastre. De asemenea, puteți simplifica sau modifica expresia booleană în funcție de nevoile dvs. Schema circuitului pentru expresia de mai sus este prezentată mai jos
Circuitul poate fi construit cu ușurință folosind un IC de poartă 7432 SAU. Mi-am construit circuitul de codificare peste o placă de calcul, așa cum se arată mai jos
Cele patru linii de intrare (I0, I1, I2 și I3) sunt furnizate de cele patru butoane, când butonul este apăsat, se leagă + 5V la pin, făcându-l logic 1 și când butonul nu este apăsat, pinul este ținut la sol printr-un rezistor de tracțiune de 10k pentru a face logica zero. Ieșirile (O0 și O1) sunt reprezentate folosind o pereche de LED-uri roșii. Dacă LED-ul luminează atunci înseamnă că logica de ieșire este 1 și dacă sunt oprite atunci înseamnă că logica de ieșire 0. Funcționarea completă a circuitului codificatorului este prezentată în videoclipul de mai jos
După cum puteți vedea când este apăsat primul buton, intrarea I0 este ridicată și, prin urmare, ambele ieșiri rămân scăzute. Când este apăsat al doilea buton, intrarea I1 este pornită și astfel un LED se ridică pentru a indica faptul că O0 este ridicat. În cele din urmă, când al patrulea buton este apăsat, intrarea I3 este ridicată și astfel ambele LED-uri se ridică. Acesta este un circuit foarte simplu, prin urmare, l-am construit cu ușurință pe o placă, dar, pentru codificatoare practice, circuitul va deveni puțin mai complex. Cu toate acestea, codificatoarele sunt disponibile și ca pachete IC, care pot fi achiziționate dacă se potrivește proiectului dvs.
8: 3 Codificatori:
Funcționarea și utilizarea codificatorului 8: 3 sunt, de asemenea, similare cu codificatorul 4: 2, cu excepția numărului de pini de intrare și ieșire. Codificatorul 8: 3 este, de asemenea, numit codificator octal la cod binar, diagrama bloc a unui codificator 8: 3 este prezentată mai jos
Aici Encoderul are 8 intrări și 3 ieșiri, din nou, o singură intrare ar trebui să fie ridicată (1) la un moment dat. Deoarece există 8 intrări, se numește intrare octală și, deoarece există trei ieșiri, se numește și ieșire binară. Tabelul de adevăr al codificatorului este prezentat mai jos.
8: 3 Tabelul adevărului codificatorului:
Expresie booleană:
Deoarece avem rezultatele tale, vom avea trei expresii așa cum se arată mai jos
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 Schema circuitului codificatorului:
Odată ce se obține expresia booleană ca întotdeauna, putem construi schema circuitului folosind porțile OR, așa cum se arată mai jos.
Circuitul utilizează un IC de poartă SAU cu 4 intrări, puteți simplifica și expresia booleană pentru a utiliza alte IC-uri de poartă cu 2 intrări normale.
Dezavantajul codificatoarelor normale:
Aceste tipuri de codificatori suferă de următoarele dezavantaje majore
- Când niciuna dintre intrări nu este ridicată, ieșirea va fi egală cu zero, dar această condiție intră și în conflict, primul bit fiind ridicat (MSB). Prin urmare, trebuie să aveți întotdeauna grijă ca cel puțin un bit să rămână PORNIT întotdeauna
- Când mai mult de o intrare este mare, ieșirea va fi restrânsă și poate da rezultatul pentru una dintre intrări, ceea ce duce la confuzie.
Pentru a depăși aceste dificultăți, folosim un alt tip de codificator numit Priority Encoder, care folosește o ieșire suplimentară pentru a determina dacă ieșirea este validă, iar atunci când mai mult de o intrare este mare, cea care se ridică începând de la LSD este considerată singură în timp ce ignorând celelalte intrări.
Codificator prioritar:
Să analizăm un codor cu prioritate 4: 2 ca exemplu pentru a înțelege diferența față de un codificator normal și poate depăși cele două dezavantaje menționate mai sus. Schema bloc a unui codor cu prioritate 4: 2 este prezentată mai jos
Un codificator de prioritate 4: 2 are, de asemenea, 4 intrări și 2 ieșiri, dar vom adăuga o altă ieșire numită V care înseamnă bit valid. Acest bit valid va verifica dacă toți cei patru pini de intrare sunt scăzuti (0) dacă scăzut, bitul se va reduce și el, afirmând că ieșirea nu este validă, astfel putem depăși primul dezavantaj menționat mai sus.
Tabelul adevărului codificatorului prioritar 4: 2:
Următorul dezavantaj poate fi evitat acordând prioritate biților MSB, codificatorul va verifica de pe MSB și odată ce va găsi primul bit atât de mare (1) va genera ieșirea în consecință. Deci, nu contează dacă ceilalți pini sunt mari sau mici. Prin urmare, în tabelul adevărului de mai jos, odată ce un 1 este atins, valorile de grijă sunt prezentate de „X”.
Expresie booleană:
Acum trebuie să obținem trei expresii care sunt pentru O0, O1 și V. Deoarece tabelul adevărului nu are elemente interesante, trebuie să folosim metoda K-map pentru a obține expresia booleană pentru aceasta. Nu vom acoperi cum să rezolvăm cu hărți K, deoarece nu intră în sfera acestui articol. Dar Harta este prezentată mai jos, astfel încât să puteți interfera și să învățați singur.
În hărțile de mai sus, cea stângă este pentru O1 și cea dreaptă este pentru O0. Liniile de ieșire sunt menționate de y, iar liniile de intrare sunt menționate de x. Deci, aranjând ecuația în consecință vom obține următoarele.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
În mod similar, pentru bitul valid „V”, expresia booleană poate fi dată ca
V = I 3 + I 2 + I 1 + I 0
Diagrama circuitului:
Diagrama circuitului pentru acest proiect poate fi construită folosind expresiile booleene.
Circuitul poate fi construit folosind porțile de bază NOT, AND și OR. Aici biții O0 și O1 sunt considerați ca ieșiri, în timp ce bitul V este utilizat pentru a valida ieșirea. Doar dacă bitul V este ridicat, ieșirea va fi luată în considerare dacă valoarea lui V este mică (0), ieșirea ar trebui ignorată, deoarece implică faptul că toți pinii de intrare sunt zero.