8.5. Decodor binar


Decodor binar este un alt circuit logic combinațional construit din porți logice individuale și este exact opusul unui encoder. Denumirea "Decodor" înseamnă traducerea sau decodificarea informațiilor codificate de la un format la altul, astfel încât un decodor digital transformă un set de semnale digitale de intrare într-un cod zecimal echivalent la ieșirea sa.

Decodoarele binare sunt alt tip de dispozitiv logic digital care are intrări de coduri pe 2 biți, 3 biți sau 4 biți în funcție de numărul de linii de introducere a datelor, deci un decodor care are un set de doi sau mai mulți biți va fi definit ca având un cod n-biți și, prin urmare, va fi posibil să reprezinte 2n valori posibile. Astfel, un decodor decodează, în general, o valoare binară într-o valoare non-binară prin setarea exactă a uneia dintre cele n ieșiri ale sale la "1" logic.

Dacă un decodor binar primește n intrări (de obicei grupate ca un singur număr binar sau boolean), acesta activează una și numai una dintre cele 2n ieșiri bazate pe acea intrare, cu toate celelalte ieșiri dezactivate.

De exemplu, un inversor (poartă NOT) poate fi clasificat ca un decodor binar 1-la-2 cu 1 intrări și 2 ieșiri (21) deoarece, cu o intrare A, poate produce două ieșiri A și not-A după cum se arată.

Atunci, putem spune că un decodor logic combinațional standard este un decodor n-la-m, unde m ≤ 2n și a cărui ieșire Q este dependentă numai de starea de intrare prezentă. Cu alte cuvinte, un decodor binar se uită la intrările sale curente, determină care cod binar sau număr binar este prezent la intrările sale și selectează ieșirea adecvată care corespunde acelei intrări binare.

Un decodor binar convertește intrările codate în ieșiri codificate, unde codurile de intrare și ieșire sunt diferite și decodoarele sunt disponibile pentru a "decoda" un model de intrare binar sau BCD (cod 8421) la un cod de ieșire zecimal, de obicei. Decodoarele BCD-la-zecimal, disponibile în mod obișnuit, includ TTL 7442 sau CMOS 4028. În general, un cod de ieșire a decodoarelor are mai mulți biți decât codul său de intrare, iar circuitele practice "decodor binar" includ configurații de linii 2-la-4, 3-la-8 și 4-la-16.

Un exemplu de decodor cu linii 2-la-4 împreună cu tabelul de adevăr este prezentat mai jos.

Decodor binar 2-la-4

Acest exemplu simplu de mai sus al unui decodor binar 2-la-4 linii constă dintr-o serie de patru porți AND. Cele două intrări binare etichetate A și B sunt decodificate într-una din cele 4 ieșiri, de aici denumirea decodorului binar 2-la-4. Fiecare ieșire reprezintă un miniterm al celor două variabile de intrare (fiecare ieșire = un miniterm).

Intrările binare A și B determină care linie de ieșire de la Q0 la Q3 este "HIGH" la nivel logic "1", în timp ce ieșirile rămase sunt ținute "LOW" la logic "0", astfel încât numai o ieșire poate fi activă (HIGH) odată. Prin urmare, indiferent de linia de ieșire care este "HIGH", identifică codul binar prezent la intrare, cu alte cuvinte "de-codează" intrarea binară.

Unele decodoare binare au un pin de intrare suplimentar etichetat "Enable" care controlează ieșirile de la dispozitiv. Această intrare suplimentară permite ca ieșirile decodoarelor să fie "ON" sau "OFF", după cum este necesar. Aceste tipuri de decodoare binare sunt utilizate în mod obișnuit ca "decodoare de adresă de memorie" în aplicațiile de memorie microprocesor.

74LS138 Decodor binar


Putem spune că un decodor binar este un demultiplexor cu o linie de date suplimentară care este utilizată pentru a permite decodarea. O modalitate alternativă de a privi circuitul decodorului este de a considera intrările A, B și C ca semnale de adresă. Fiecare combinație de A, B sau C definește o adresă de memorie unică.

Am văzut că un decodor binar cu 2-la-4 linii (TTL 74155) poate fi utilizat pentru decodificarea oricărui cod binar pe 2 biți pentru a furniza patru ieșiri, câte una pentru fiecare combinație de intrare posibilă. Dar, uneori este necesar să aveți un decodor binar cu un număr de ieșiri mai mare decât este disponibil, prin adăugarea mai multor intrări, decodorul poate furniza 2n mai multe ieșiri.

De exemplu, un decodor cu 3 intrări binare (n = 3) ar produce un decodor 3-la-8 linii (TTL 74138) și cu 4 intrări (n = 4) ar produce un decodor 4-la-16 linii (TTL 74154) și așa mai departe. Dar un decodor poate avea mai puțin de 2n ieșiri, cum ar fi BCD decodor pentru șapte segmente BCD (TTL 7447), care are 4 intrări și doar 7 ieșiri active pentru a comanda un display, mai puțin decât toate cele 16 (24) ieșiri aşteptate.

Aici a fost implementat un decodor binar mult mai mare de 4 (3 date plus 1 enable)-la-16 linii utilizând două decodoare mai mici de 3-la-8.

Configurație de decodor binar 4-la-16

Intrările A, B și C sunt utilizate pentru a selecta ce ieșire pe oricare dintre decodoare va fi la logic "1" (HIGH) și intrarea D este utilizată ca intrare de activare pentru a selecta ce encoder, fie primul, fie al doilea, va ieși "1".

Totuși, există o limită a numărului de intrări care pot fi utilizate pentru un anumit decodor, deoarece, pe măsură ce n crește, numărul de porți AND necesar pentru a produce o ieșire devine și mai mare, rezultând ca fun-out-ul porților folosite pentru a le comanda să devină mare. (În electronica digitală, fan-out-ul ieșirii unei porți logice este numărul de intrări de poartă pe care le poate comanda).

Acest tip de decodor activ "HIGH" poate fi implementat doar cu porți inversoare, (porți NOT) și porți AND. Este util să se utilizeze o poartă AND ca element de bază de decodificare pentru ieșire, deoarece produce o ieșire "HIGH", sau "1" logic, numai atunci când toate intrările sale sunt "1" logic.

Dar unele decodoare binare sunt construite utilizând porți NAND în loc de porți AND pentru ieșirea lor decodificată, deoarece porțile NAND sunt mai ieftine de produs decât AND, deoarece necesită mai puține tranzistoare pentru a le implementa în schema lor.

Utilizarea porților NAND ca element de decodificare are ca rezultat o ieșire activă "LOW", în timp ce restul va fi "HIGH". Deoarece o poartă NAND produce operația AND cu o ieșire inversată, decodorul NAND arată ca aceasta, cu tabelul de adevărat inversat.

Decodor binar NAND 2-la-4 linii

Atunci, pentru decodorul NAND, o singură ieșire poate fi LOW și egală cu "0" logic la orice moment dat, toate celelalte ieșiri fiind HIGH la "1" logic.

Decodoarele sunt, de asemenea, disponibile cu un pin de intrare suplimentar "Enable", care permite ieșirii decodate să fie "ON" sau "OFF" aplicând un "1" logic sau "0" logic la el. Deci, de exemplu, atunci când intrarea enable este la nivel logic „0“, (EN = 0), toate ieșirile sunt „OFF“ la „0“ logic (pentru porți AND), indiferent de starea intrărilor A și B.

În general, pentru a implementa această funcție de activare porțile cu 2-intrări AND sau NAND sunt înlocuite cu porți cu 3-intrări AND sau NAND. Pinul de intrare suplimentar reprezintă funcția de activare.

Decodorul adresei de memorie

Decodoarele binare sunt utilizate cel mai adesea, în sisteme digitale mai complexe, pentru a accesa o anumită locație de memorie bazată pe o "adresă" produsă de un dispozitiv de calcul. În sistemele moderne cu microprocesoare, volumul de memorie necesar poate fi destul de ridicat și este, în general, mai mult decât un singur cip de memorie.

O metodă de a depăși această problemă este de a conecta o mulțime de cipuri de memorie individuale împreună și de a citi datele pe un "Bus de date" comun. Pentru a împiedica citirea datelor de pe fiecare cip de memorie în același timp, fiecare cip de memorie este selectat individual la un moment dat și acest proces este cunoscut ca Decodarea adresei.

În acest tip de aplicație, adresa reprezintă intrarea de date codificată, iar ieșirile sunt semnalele de selectare a elementelor de memorie particulare. Fiecare cip de memorie are o intrare numită Chip Select sau CS care este folosită de MPU (unitatea de microprocesor) pentru a selecta cipul de memorie corespunzător atunci când este necesar. În general, un "1" logic din intrarea de selectare a cipului (CS) selectează dispozitivul de memorie în timp ce un "0" logic de pe intrare îl dezactivează.

Astfel, prin selectarea sau deselectarea fiecărui cip unul câte unul, ne permite să selectăm dispozitivul cu adresa corectă pentru o anumită locație de adresă. Avantajul decodificării adresei este că atunci când specificăm o anumită adresă de memorie, locația corespunzătoare de memorie există NUMAI într-unul dintre cipuri.

De exemplu, să presupunem că avem un sistem microprocesor foarte simplu, cu doar 1Kb (o mie de octeți) de memorie RAM și 10 linii de adresă de memorie disponibile. Memoria constă în dispozitive de 128 × 8 biți (128 × 8 = 1024 octeți), iar pentru 1 Kb am avea nevoie de 8 cipuri de memorie individuale, dar pentru a selecta cipul de memorie corect am avea nevoie și de un decodor binar de 3-la-8 linii, așa cum se arată mai jos.

Decodarea adresei de memorie

Decodorul binar necesită doar 3 linii de adresă (A0 până la A2) pentru a selecta fiecare dintre cele 8 cipuri (partea inferioară a adresei), în timp ce restul de 8 linii de adresă (A3 până la A10) locația memoriei corecte pe acel cip (partea superioară a adresei).

După ce ați selectat o locație de memorie utilizând magistrala de adrese, informația de la locația specifică a memoriei interne sunt trimise către o "magistrală de date" comună pentru a fi utilizată de către microprocesor. Acesta este, desigur, un exemplu simplu, dar principiile rămân aceleași pentru toate tipurile de cipuri sau module de memorie.

Decodoarele binare sunt dispozitive foarte utile pentru conversia unui format digital în altul, cum ar fi date de tip binar sau BCD în zecimal sau octal etc. și decodoare IC disponibile sunt decodorul binar TTL 74LS138 3-la-8 linii sau decodorul 74ALS154 4-to-16 linii. Ele sunt, de asemenea, foarte utile pentru interfața cu afișaje pe 7 segmente, cum ar fi TTL 74LS47 la care ne vom uita în următorul tutorial.