Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Circuite electronice digitale

tehnica mecanica



Circuite electronice digitale




A. Semnale si circuite digitale

Pina acum am avut de-a face, in principal, cu circuite la care tensiunile de intrare si iesire puteau lua orice valoare dintr-un anumit domeniu, limitat, de regula, de tensiunile de alimentare utilizate (Fig. 6.1 a). Acesta este un lucru natural atunci cind procesam semnale continue, asa cum sint semnalul audio sau tensiunile cu variatie continua furnizate de traductoare de temperatura, de intensitate luminoasa ori senzori biologici sau chimici. Pentru ca aceste semnale evolueaza similar cu marimile fizice a caror informatie o contin, ele sint numite semnale analogice si, in mod corespunzator, circuitele RC, amplificatoarele, redresoarele, integratoarele, amplificatoarele cu tranzistoare, amplificatoarele operationale, etc., sint circuite analogice. Clasicul ceasornic la care momentul de timp este citit prin pozitia unui ac indicator care se roteste continuu, putind sa ia orice pozitie, este un dispozitiv analogic.


Fig. 6.1. Semnal analogic(a) si digital (b).

Cu toate acestea, sint situatii in care semnalul este prin natura sa discret, asa cum este cel furnizat de un detector de particule (el spune daca a sosit o particula sau nu, deci are numai doua stari posibile), de un comutator mecanic sau tastatura (Fig. 6.1 b). In acest caz este natural si comod sa utilizam circuite electronice digitale, care opereaza cu date alcatuite numai din valori de 1 si 0, adica cu semnale digitale. Cuvintul vine din limba engleza, unde digit inseamna oricare din cifrele de la 0 la 9. Semnalele si circuitele digitale, mai sint denumite in limba romāna numerice sau logice.

De multe ori, este convenabil sa transformam un semnal din forma analogica in cea digitala sau invers. Daca impartim intervalul de variatie al semnalului din Fig. 6.1 a) in 256 de subintervale, vom avea nevoie, asa cum se vede in desenul c) al figurii, de 8 semnale digitale, , pentru a sti in orice moment in care din subintervale se gaseste valoarea semnalului analogic, pentru ca . In acest mod, semnalul audio in forma analogica, provenit, de exemplu, de la un microfon, este convertit de placa de sunet a unui calculator intr-o secventa de numere, usor de memorat pe hard-disk sau de inscriptionat pe un compact disk. Astfel, transformata intr-o secventa de 1 si 0, informatia nu mai poate fi afectata de zgomot sau de imbatrinirea suportului (ca la benzile magnetice), deoarece distinctia intre 0 si 1 se poate face fara posibilitate de eroare. La citirea discului, placa de sunet converteste secventa de numere intr-o tensiune analogica ce este aplicata difuzoarelor. 939g63j Accesibiltatea informatiei in forma digitala permite, de asemenea, transmiterea sa la distanta fara contaminare cu zgomot, printr-o tehnica numita modulatie cu pulsuri (PCM, pulse-code modulation), utilizata in telefonia transcontinentala si comunicatiile radio cu sondele spatiale.


Stari logice

Intr-un circuit logic, exista numai doua stari posibile, de exemplu tranzistor saturat sau tranzistor blocat, comutator inchis sau comutator deschis. Cel mai convenabil este sa descriem aceste stari prin potentialul nodului respectiv. Avem, astfel o stare cu potential ridicat, pe care o vom numi stare HIGH (prescurtat H), si o stare cu potential coborit numita stare LOW (prescurtat L). Valorile potentialelor in aceste stari depind de familia de circuite logice (tipul lor constructiv) si de tensiunile de alimentare.

Aceste stari ale potentialului sint puse in corespondenta cu anumite propozitii logice care pot avea si ele doua valori: adevarat (TRUE) si false (FALSE). De exemplu, un circuit digital are o intrare de activare (enable). Daca el devine activat pe starea HIGH, acesteia ii corespunde valoarea de adevar TRUE si semnalul respectiv se denumeste ENABLE. Exista, insa si circuite logice care devin active pe starea LOW a intrarii de control; in acest caz starii HIGH ii corespunde FALSE iar semnalul este numit , bara superioara semnificind negarea.

Formatul obisnuit in care operam cu numerele este cel in baza zece



el necesitind utilizarea a zece cifre, de la 0 la 9. Putem, insa, reprezenta numerele si in baza 2, utilizind numai doua cifre, 0 si 1



in aceasta baza numarul 325 fiind scris ca 101000101. Fiecare cifra nu poate lua decit una din doua valori si reprezinta un bit. Primul din stinga este cel mai semnificativ (MSB - most significant bit) pentru ca trebuie inmultit cu 2 la puterea cea mai ridicata, iar ultimul este cel mai putin semnificativ (LSB least significant bit), contribuind doar cu 1 sau 0 la suma care da valoarea numarului.

Deoarece in format binar se utilizeaza numai doua cifre, acestea pot fi puse in corespondenta cu starile posibile ale unui circuit digital. Cea mai intilnita conventie atribuie starii HIGH valoarea binara 1 dar, de multe ori, valoarea 1 este legata de valoarea de adevar TRUE, care nu este intodeauna corespondenta starii HIGH. Pentru a evita orice confuzii, vom utiliza aproape intodeauna semnificatia electronica (HIGH sau LOW) iar acolo unde va fi mai comoda reprezentarea binara, o vom adopta pe cea care atribuie lui HIGH valoarea 1.

Circuitele digitale sint disponibile in principal in doua familii mari, TTL (Transistor Transistor Logic), realizate cu tranzistoare bipolare, si CMOS, in tehnologie MOS complementar. Fiecare din ele contine citeva subfamilii, asa ca in total exista 10 subfamilii. Pentru fiecare din ele, domeniile de valori ale potentialului starilor HIGH si LOW sint diferite, asa cum se poate observa in Fig. 6.2; pe aceeasi figura au fost reprezentate si nivelurile logice pentru familia de mare viteza ECL (Emitor Coupled Logic).

La intrarea circuitului, pentru a fi recunoscut ca stare logica LOW, un potential trebuie sa aiba valoarea sub o anumita limita. Datorita dispersiei tehnologice, aceasta limita difera de la exemplar la exemplar, dar fabricantul garanteaza un domeniu de valori pentru care orice exemplar recunoaste starea LOW. Acest interval a fost figurat in partea din stinga jos a fiecarui desen si limita sa superioara reprezinta pentru proiectant cel mai defavorabil caz. De exemplu, pentru familia TTL aceasta limita este la 0.8 V. In mod corespunzator, se defineste un interval in care intrarea circuitului recunoaste cu certitudine starea HIGH, el fiind figurat in partea dreapta, jos, a fiecarui desen; pentru circuitele TTL acest interval este intre 2 V si 5.5 V. Asa cum spuneam, aceste intervale acopera cazul cel mai defavorabil. Un exemplar din familie are un prag net, de o parte si alta a sa intrarea recunoscind starea HIGH sau LOW. Valoarea tipica a acestui prag a fost si ea reprezentata pe desene, printr-o sageata cu virful in sus; pentru TTL acest prag tipic este la 1.3 V.

Pentru ca, odata ajunsa in starea LOW, iesirea unui circuit sa fie corect interpretata de intrarile circuitelor din aceeasi subfamile, potentialul ei trebui sa intre, cu o anumita rezerva de siguranta, in intervalul definit pentru starea LOW la intrare. Astfel, se definesc si pentru iesire niste intervale garantate, mai inguste decit cele definite pentru intrare. Ele acopera cazurile cel mai defavorabile, de fapt iesirile diferitelor exemplare avind niste potentiale tipice in starile LOW si HIGH, reprezentate pe desene prin sageti cu virful in jos. De exemplu, desi o intrare TTL recunoaste starea LOW de la 0.8 V in jos, o iesire TTL in starea LOW este garantata a fi sub 0.4 V, valoarea tipica a potentialului in aceasta stare fiind 0.2 V.



Fig. 6.2. Nivelurile logice la diferite familii de circuite integrate.


O performanta importanta este imunitatea la zgomot (numita si rezerva de zgomot). In starea HIGH o iesire TTL are cel putin 2.4 V (cel mai defavorabil caz), pe cind intrarea TTL recunoaste starea HIGH pina la 2.0 V; in aceasta stare imunitatea la zgomot este de 0.4 V, pentru ca un semnal perturbator adunat peste cel util poate avea nivelul pina la aceasta valoare, fara ca intrarea circuitului sa inceteze sa recunoasca starea HIGH. Circuitele TTL au aceesi imunitate la zgomot si in starea LOW (0.8 V-0.4 V=0.4 V). Cea mai mare imunitate este oferita de subfamiliile CMOS 4000 si 74C, atunci cind sint alimentate la +12 V, pe cind circuitele foarte rapide ECL au o imunitate chiar mai mica decit cele TTL.


B. Functii si porti logice


Un circuit digital are, in general, mai multe intrari si mai multe iesiri; la nodurile de intrare si iesire semnalele sint digitale si starea lor poate fi reprezentata prin variabile logice. Daca, la orice moment, starile iesirilor nu sint determinate decit de starile intrarilor la acel moment (si nu din trecut), circuitul este numit combinational. Starea oricarei iesiri este legata printr-o functie logica de starile intrarilor; deoarece variabilele logice nu pot avea decit doua valori, functia logica se poate usor figura printr-un tabel, numit tabel de adevar. Exista citeva functii logice elementare, cu ajutorul carora poate fi construita apoi orice functie logica, oricit de complicata. Vom vedea ca pentru functiile logice elementare sint disponibile circuite integrate care implementeaza aceste functii.


Functia NU (NOT)

Fig. 6.3. Inversorul logic si tabelul lui de adevar.

Cea mai simpla functie logica are o singura variabila, pe care o vom nota cu . Daca iesirea este intodeauna identica cu intrarea, avem cazul banal al functiei identitate. Din contra, daca iesirea este intodeauna complementara iesirii, obtinem functia negatie, notata cu , sau . Ea are tabelul de adevar din Fig. 6.2 a). In prima coloana sint trecute valorile intrarii iar in coloana a doua sint date valorii functiei (iesirii) . Circuitul care realizeaza aceasta functie este numit inversor logic si are simbolul din Fig. 6.3 b); la triunghiul (care reprezinta in general un amplificator) se adauga operatia de negare, simbolizata printr-un cerculet. Cind intrarea inversorului este in starea HIGH, iesirea sa este in starea LOW si reciproc.


Functia }I (AND)

Fig. 6.4. Poarta AND si tabelul ei de adevar impreuna cu un exemplu de utilizare a sa.

Desi functia poate avea oricite intrari, pentru simplitate vom considera numai doua, si . Functia are valoarea de adevar TRUE numai daca ambele intrari au aceasta valoare de adevar, ca in tabelul de adevar din Fig. 6.4 a), unde am notat, pentru comoditate, cu 0 si 1 starile logice, 1 corespunzind valorii TRUE. Pentru aceasta functie se foloseste notatia (conjuctie logica) sau (produs logic). Circuitul care realizeaza aceasta functie se numeste poarta }I (AND gate) si furnizeaza la iesire o stare HIGH numai daca ambele intrari sint in starea HIGH; simbolul portii }I este cel din desenul b) al figurii. Denumirea de poarta ii vine de la o aplicatie des intilnita (Fig. 6.4 c): cu intrarea in starea HIGH, variatiile semnalului de la intrarea ajung la iesire, pe cind daca tinem potentialul intrarii in starea LOW, aceste variatii nu pot trece de poarta, care este "inchisa". De aici, denumirea de poarta a fost generalizata, aplicindu-se tuturor circuitelor integrate care realizeaza functii logice simple; de exemplu, inversorul este numit si poarta inversoare.


Functia SAU (OR)

Asa cum se vede in tabela de adevar din Fig. 6.5 a) , functia OR are valoarea de adevar TRUE daca cel putin o intrare are valoarea de adevar TRUE. Pentru aceasta operatie logica sint utilizate simbolurile (disjunctia logica) sau (suma logica). Atentie, nu confundati suma logica, care are valoarea 0 sau 1, cu suma in binar a valorilor intrarilor. De exemplu, pentru o poarta cu trei intrari, in starile 1, 0 si 1, suma logica este 1, pe cind suma in binar a celor trei numere este 10.

Circuitul care realizeaza aceasta functie logica este poarta SAU, cu simbolul din Fig. 6.5 b). Iesirea portii este in HIGH daca cel putin una din intrari este in HIGH.

Fig. 6.5. Poarta OR si tabelul ei de adevar.

Functiile SAU negat (NOR) si }I negat (NAND)

Fig. 6.6. Portile NOR si NAND, impreuna cu tabelurile lor de adevar.

Fig. 6.7. Sinteza functiilor NOT, AND si OR cu porti NAND si NOR.

In portile logice, functia NU este combinata adesea cu functia }I sau cu functia SAU. De fapt, portile rezultate, numite NAND si NOR sint mult mai utilizate decit cele fara negatie, deoarece fiecare din aceste doua tipuri permite singur sinteza oricarei functii logice oricit de complicate, iar circuitele integrate respective nu sint mai scumpe decit versiunile AND si OR. Tabelurile de adevar si simbolurile utilizate pentru porti sint cele din Fig. 6.6. Se observa ca negatia este reprezentata prin cerculetul pus la iesirea portii. Desi vom reveni asupra problemei sintezei unei functii logice oarecare, prezentam in Fig. 6.7 modul in care se pot realiza functiile NOT, AND si OR cu porti NAND si NOR.


Functia SAU exclusiv (exclusive OR sau XOR)

Fig. 6.8. Poarta XOR si tabelul ei de adevar.

Desi mai putin fundamentala decit functiile prezentate anterior, functia SAU exclusiv este destul de des intilnita in aplicatii. Tabelul sau de adevar este cel din Fig. 6.8 a): iesirea are valoarea TRUE daca una din intrari (dar nu ambele) au valoarea de adevar TRUE; cu alte cuvinte, intrarile trebuie sa aiba stari diferite intre ele. Pentru cei familiarizati cu operatiile cu numere intregi, functia este echivalenta cu adunarea modulo-2. Poarta SAU exclusiv are simbolul din desenul b) al figurii si o aplicatie interesanta a sa este invertorul optional din Fig. 6.8 c). Cu intrarea in LOW semnalul de la iesire este identic cu cel de la intrarea (functioneaza ca o poarta de transmisie), pe cind, daca tinem in HIGH intrarea , semnalul de la intrarea apare la iesire inversat.


Tema: Implementati functia XOR utilizind trei porti logice de tipul AND sau OR si, eventual, negatiile acestora; porniti de la faptul ca tabelul ei de adevar este acela al functiei OR cu deosebirea ca atunci cind ambele intrari sint in 1, iesirea este in 0. Pentru aceasta, prelucrati intrarile cu o poarta OR iar rezultatul treceti-l printr-o poarta AND. Apoi, reanalizati exemplul din Fig. 6.4 c) si, cu experienta capatata, adaugati inca o poarta care sa inchida poarta AND atunci cind este necesar. De la structura circuitului sintetizat, scrieti o expresie logica echivalenta pentru functia XOR.


Am afirmat anterior ca se pot utiliza doua moduri de corespondenta intre nivelurile logice (HIGH si LOW) si valorile de adevar TRUE si FALSE. Denumirea portilor logice este data intodeuana in "logica pozitiva" in care TRUE inseamna HIGH. Astfel iesirea unei porti AND este in HIGH daca ambele intrari sint in HIGH. Cind aceeasi poarta este utilizata in logica negativa (TRUE insemnind LOW), ea implementeaza functia logica SAU, pentru ca iesirea ei este LOW daca cel putin una din intrari este in LOW.

Sa incercam sa rezolvam, cu ceea ce stim pina acum, o problema concreta. La fiecare din cele doua usi ale unui autoturism sint montate micro-intrerupatoare, care aduc potentialul la masa (in starea LOW) atunci cind usa este inchisa. Un contact similar aduce alt semnal in starea LOW cind soferul s-a asezat pe scaun. Circuitul nostru va trebui sa produca la iesire starea HIGH numai atunci cind cel putin una din usi este inchisa si soferul s-a asezat pe scaun. Notind cu L si R variabilele usa inchisa (stinga si, respectiv, dreapta) si cu S variabila logica sofer asezat, functia logica pe care va trebui s-o implementam este


(6.1)


Fig. 6.9.


Semnalele pe care le avem insa la dispozitie de la intrerupatoare sint pe logica negativa, asa ca le vom nota cu si, respectiv, , ca in Fig. 6.9. Un mod simplu de a gindi problema poate incepe cu inversarea acestor semnale. Apoi realizam functia OR intre si iar rezultatul obtinut il prelucram mai departe cu o poarta AND (Fig. 6.9 a). Dezavantajul circuitului pe care l-am proiectat este ca utilizeaza prea multe porti (patru).

Putem sa incercam si o abordare frontala a problemei. In privinta semnalelor de la usi, trebuie sa "separam" starea cu nici o usa inchisa de toate celelalte trei stari posibile. Cind nici o usa nu este inchisa, semnalele disponibile sint in ambele in starea HIGH; cautam in tabelurile de adevar ale functiilor prezentate anterior poarta care trateaza in mod special aceasta situatie si gasim ca poarta AND realizeaza acest lucru. Cu cel putin o usa inchisa ea va produce starea LOW iar cu nici o usa inchisa iesirea ei va fi in HIGH. Avem in continuare de produs starea HIGH numai din combinatia LOW-LOW. Din tabelurile de adevar gasim ca numai poarta NOR realizeaza acest lucru si circuitul este cel din Fig. 6.9 b). Am reusit sa rezolvam problema cu numai doua porti dar procedura de proiectare a fost mai complicata.

Orice functie logica, oricit de complicata, se poate sintetiza folosind exclusiv porti SAU si inversoare. Cum atit functia SAU cit si negatia pot fi realizate cu porti NOR, rezulta ca folosind numai porti NOR se poate implementa orice functie logica. In exemplul precedent am constatat ca realizarea unei functii logice date nu este unica. Intr-adevar, putem implementa orice functie logica la fel de bine numai cu porti NAND. Din acest motiv, portile NAND si NOR sint utilizate mai frecvent decit portile AND si OR. Obtinerea unui circuit cu numar mic de porti se poate realiza, insa, prin utilizarea judicioasa a tuturor tipurilor de porti disponibile.

Trecerea comoda de la un mod de sinteza la altul se poate face tinind seama de niste identitati valabile in operatiile cu variabile logice, dintre care cele mai utilizate sint prezentate in continuare.

proprietatile produsului logic:


(6.2)


proprietatile sumei logice


(6.3


proprietatile sumei fata de produs


(6.4)


proprietatile negatiei


(6.5)


identitatile De Morgan


(6.6)


Sa verificam, cu aceste identitati, ca cele doua circuite din Fig. 6.9 realizeaza aceeasi functie logica. Pentru simplitate, notam semnalele de intrare . Primul circuit realizeaza functia logica ; transformam paranteza utilizind a doua relatie De Morgan si obtinem . In final, tinem seama de cealalta relatie De Morgan si ajungem la care este exact functia logica realizata de al doilea circuit.


Tema: Ati sintetizat anterior functia XOR, ajungind la expresia ei echivalenta . Transformati produsul logic in suma logica, utilizind relatiile De Morgan, apoi efectuati produsul intre cele doua paranteze si aratati ca .


Relatiile De Morgan permit, cu ajutorul operatiei de negatie, convertirea produsului logic in suma logica. Pentru economisirea timpului in proiectare, pentru fiecare poarta se construieste si o reprezentare echivalenta, cu toate intrarile negate, utila atunci cind se lucreaza cu semnale pe logica negativa. In Tabelul 6.1 sint prezentate inca o data portile logice, impreuna cu simbolurile lor, reprezentarile echivalente pe logica negativa si codificarea circuitelor in cadrul diferitelor familii. Trebuie notat ca au fost trecute numai portile cu doua intrari, iar intr-o capsula se gasesc mai multe porti identice; de exemplu capsulele 4069 si 7404 contin cite sase porti inversoare.

In privinta codificarii trebuie retinut ca prima serie care a impus o codificare sistematica a fost subfamilia TTL 7400 (produsa de Texas Instruments) care acum este depasita (dupa 74 urmind cifrele de identificare a circuitului). Urmatoarele subfamilii TTL au pastrat aceasta codificare dar au adaugat dupa cifrele 74 citeva litere care sa identifice subfamilia. Astfel, 7400, care contine patru porti NAND, are varianta 74LS00 in subfamilia TTL LS (Low Shotky). Prima subfamilie CMOS (seria 4000) a folosit o codificare diferita si, de asemenea, alte configuratii ale terminalelor circuitelor; urmasa ei, seria 4000B a mostenit aceasta codificare. Urmatoarele subfamilii CMOS au revenit insa la codificarea TTL, introducind in plus litera C, de la CMOS. Astfel, avem subfamilia 74C; perfectionarea acesteia a condus la aparitia subfamiliilor 74HC, 74AC, 74HCT, 74ACT, etc.. In concluzie, cu exceptia subfamiliilor CMOS 4000 si 4000B, toate subfamiliile CMOS si TTL au aceeasi codificare. Din acest motiv, atunci cind nu dorim sa facem trimitere la o subfamilie anumita, putem renunta la cifrele 74 si literele de identificare ale subfamiliei si nota, de exemplu, circuitul cu patru porti de selectie pe care il vom prezenta mai tirziu 74157 sau, mai simplu, '157.

In privinta circuitelor integrate produse in tara, familia TTL a fost codificata cu literele CDB inlocuind cifra 7; astfel varianta romāneasca a lui 74121 este CDB 4121. Pe de alta parte, subfamilia CMOS 4000 are aceeasi codificare ca a celorlati producatori.


Tabelul 6.1


















Nume


Expresie


Simbol


Reprezentare echivalenta


subfamilia CMOS 4000B


TTL si celelalte subfamilii CMOS


AND









NAND









OR









NOR









INVERT









BUFFER









XOR











Fig. 6.10. Modificarea circuitului din Fig. 6.9 a).

Sa revenim la reprezentarile echivalente in logica negativa. Cum ne-ar fi ajutat acestea sa gasim o versiune mai economica a circuitului din Fig. 6.9 a) ? Sa deplasam, mai intii operatiile de negatie la intrarea portilor AND si OR, ca in Fig. 6.10 a). Poarta AND nu este pregatita inca pentru a putea fi interpretata in logica negativa, deoarece are functia de negatie aplicata doar pe o intrare. |inind seama ca doua negatii succesive se anuleaza, transformam circuitul ca in Fig. 6.10 b). Nu mai avem acum decit sa cautam in Tabelul 6.1 care din porti au aceste reprezentari echivalente; gasim ca acestea sint poarta AND si poarta NOR. Le inlocuim si gata, am ajuns la circuitul simplu din Fig. 6.10 b), fara sa mai facem apel explicit la identitatile De Morgan.


Asa cum am mai spus, circuitele digitale sint disponibile, in principal, in doua familii mari, TTL (transistor transistor logic), realizate cu tranzistoare bipolare, si CMOS, in tehnologie MOS complementar. Fiecare din ele contine citeva subfamilii, asa ca in total avem 10 subfamilii. Cu exceptia unor aplicatii de complexitate mare (ce necesita anumite circuite integrate pe scara mare LSI) sau de foarte mare viteza (unde se utilizeaza dispozitive cu GaAs sau logica cu cuplaj in emitor ECL), cele doua mari familii de circuite digitale, TTL si CMOS, pot satisface practic toate temele de proiectare. Familia TTL (transistor transistor logic) contine, in afara seriei depasite 7400, subfamiliile 74LS, 74ALS, 74AS si 74F. Pe de alta parte, familia CMOS, pe linga subfamilia clasica 4000B, ofera subfamiliile 74C, 74HC 74HCT, 74AC si 74ACT. Toate aceste subfamilii ofera aceleasi functii logice, diferentele constind in tensiunea de alimentare, nivelurile logice, viteza, puterea disipata si capabilitatea iesirii de a comanda intrarile altor circuite. Pentru majoritatea aplicatiilor, cele mai bune sint circuitele CMOS rapide din seria 74HC, codificate cu 74HC00, ultimele doua cifre de 0 fiind inlocuite cu cele specifice functiei logice respective. Daca este nevoie sa se asigure o compatibilitate cu circuite TTL existente deja, se pot utiliza subfamiliile CMOS 74ACT sau 74HCT (mai rapida), sau subfamilia TTL 74LS (low power Schottky).

Vom reveni pe larg asupra caracteristicilor acestor subfamilii in capitolul urmator, cind vom discuta problema interfatarii lor. Sa notam, acum, numai citeva aspecte esentiale, ce ne vor fi utile in ceea ce urmeaza.

Tensiunea de alimentare. Familia bipolara TTL necesita o tensiune de + 5 V, 5%, pe cind familiile CMOS au o gama de tensiuni de alimentare mult mai larga: de la +2 la +6 volti pentru HC si AC, de la +3 la +15 volti pentru 4000B si 74C. Subfamiliile CMOS HCT si ACT sint construite special pentru compatibilitate cu TTL si au, bineinteles, tensiunea de alimentare de + 5V.

Intrarea. Pentru a tine in starea LOW o intrare TTL trebuie sa se absoarba din ea catre masa un curent semnificativ (0.25 mA pentru LS). Cind intrarea este legata la o iesire TTL, aceasta nu este o problema deoarece circuitul de iesire al portii TTL este un tranzistor care in starea LOW este saturat, putind absorbi curentul necesar de la cel putin 10 intrari TTL. Se spune ca poarta TTL are un fan out egal cu 10.


Observatie: Performanta fan out caracterizeaza numarul de intrari care pot fi comandate de o iesire, iesirea si intrarile apartinind aceleiasi subfamilii.


Curentul necesar unei intrari TTL pentru a fi adusa in starea LOW trebuie luat in consideratie atunci cind comanda ei se face cu un alt tip de poarta sau cu un alt tip de circuit. Spre deosebire de aceasta, aducerea in starea HIGH a unei intrari TTL se poate face chiar lasind-o pur si simplu in gol, nivelul de potential ridicat fiind asigurat de circuitul ei intern.

Cu portile CMOS lucrurile stau cu totul altfel: pe oricare din stari, intrarile nu necesita practic curent, dar cu toate acestea ele nu pot fi lasate in gol; atunci cind exista acest risc (de exemplu prin scoaterea unei alte placi din conector) intrarea trebuie legata cu un rezistor de 100 k la masa sau alimentarea pozitiva. }i pragul intre niveluri este altfel la CMOS: daca la TTL el este cam la dublul tensiunii de deschidere a unei diode, adica la 1.3 V, la cele mai multe dintre subfamiliile CMOS pragul este tipic la jumatatea tensiunii de alimentare, fiind imprastiat tehnologic intre o treime si doua treimi din tensiunea de alimentare. Fac exceptie subfamiliile HCT si ACT care sint construite pentru compatibilitate cu portile TTL si au pragul la 1.3 V ca si portile TTL, deoarece potentialul iesirilor TTL nu urca pina la tensiunea de alimentare.

Iesirea. In starea LOW, iesirea portii TTL este un tranzistor in saturatie, cu potentialul coborind foarte aproape de masa si putind absorbi un curent considerabil. La trecerea in starea HIGH iesirea este conectata la un repetor pe emitor cu dublet Darlington, tensiunea de iesire fiind cu 1.3 V (dublul tensiunii de deschidere a unei diode) sub tensiunea de alimentare. Pentru toate subfamiliile CMOS, inclusiv HCT si ACT care sint TTL compatibile, iesirea este conectata fie la masa fie la alimentare (in starea LOW si respectiv HIGH) printr-un tranzisor CMOS in starea ON care, avind rezistenta mica, permite potentialului iesirii sa atinga tensiunea de alimentare sau valoarea nula (rail-to-rail swing).

Portile CMOS si cele TTL discutate pina acum au la iesire etaje in contratimp. Aproape toate circuitele logice folosesc acest principiu, in starea HIGH potentialul fiind fortat sa se apropie de tensiunea de alimentare prin intermediul unui tranzistor deschis (active pullup). Cu toate acestea, exista situatii in care acest mod de functionare este nepotrivit. Sa ne imaginam arhitectura unui computer in care mai multe unitati trebuie sa schimbe intre ele date pe 16 linii (16 biti). Daca fiecare unitate ar fi legata cu fiecare din celelalte, arhitectura ar deveni extrem de complicata; in locul acestei solutii, se utilizeaza un bus (magistrala) de date, unic pentru intreg sistemul, fiecare unitate avind posibilitate sa scrie si sa citeasca de aici datele. Daca iesirile unitatilor ar functiona pe principiul "active pullup", intre ele ar apare conflicte, o linie a bus-ului fiind trasa la masa de unele unitati si la tensiunea de alimentare de catre celalalte. Aceasta dificultate se rezolva prin utilizarea unor porti logice speciale: fie porti cu trei stari, fie porti cu colectorul in gol (open colector).

Porti cu trei stari

Fig. 6.11. Cuplarea pe bus-ul de date a unei unitati cu iesire "three state".

Introdusa de National Semiconductor, logica cu trei stari (three state logic sau TRI STATE logic) nu este ceea ar putea sa spuna, la prima vedere, numele sau. Ea are in continuare numai doua niveluri logice, ca si cea obisnuita, dar iesirea circuitului poate fi adusa, in plus, intr-o stare de mare impedanta, ca si cum ar fi decuplata cu un comutator. Exista, de aceea, o intrare speciala, de activare, (ENABLE) care decide daca iesirea circuitului se comporta ca la o poarta normala (circuitul este activat) sau daca iesirea este adusa in starea de mare impedanta, si nu mai afecteaza circuitul extern la care este conectata. Revenind la problema de la care am plecat, putem sa conectam acum toate unitatile la bus-ul de date, avind insa grija ca la orice moment sa nu avem activate iesirile de la mai mult de o unitate. Aceasta se realizeaza simplu, printr-un bus de adrese, la care sint conectate, de asemenea, toate unitatile. Principiul este ilustrat in Fig. 6.11, unde unitatea reprezentata este selectata numai atunci cind bitii de adresa au valorile 110 (reprezentarea in binar a numarului 6). In plus, pentru ca iesirea ei sa fie cuplata la bus-ul de date, mai este necesara prezenta semnalului READ (activ pe starea LOW). In aceste conditii, buffer-ul cu trei stari este activat si datele ajung pe bus.


Tema: Pentru urmarirea mai usoara, in schema decodificatorului de adresa s-a utilizat si reprezentarea echivalenta, pe logica negativa. Modificati aceasta parte a circuitului astfel incit el sa selecteze adresa 2 (=010).


Inainte de aparitia logicii cu trei stari, aceasta problema putea fi rezolvata cu portile TTL cu colectorul in gol (Fig. 6.12 a). Trebuie notat asteriscul care apare pe simbol, deasupra iesirii, pentru a atrage atentia ca poarta este "open colector". Aceste porti pot numai sa forteze la masa potentialul iesirii, in starea HIGH iesirea raminind practic in gol si trebuind sa fie trasa "in sus" printr-un rezistor extern conectat la tensiunea de alimentare. Cu acest tip de porti legate pe bus-ul de date, diferitele unitati nu pot forta liniile decit in starea LOW; pentru ca numai o unitate sa controleze bus-ul la un anumit moment, este necesar ca iesirile tuturor celorlalte unitati sa fie in starea HIGH.

Fig. 6.12. Porti cu colectorul in gol.

O alta aplicatie a portilor cu colectorul in gol este "logica cablata". Sa presupunem ca iesirile mai multor asemenea porti sint conectate intre ele, ca in Fig. 6.12 b) . Iesirea este in starea HIGH numai daca nici una din porti nu are iesirea in starea LOW; cu alte cuvinte, s-a implementat functia logica AND intre iesirile portilor prin simpla "cablare" impreuna a iesirilor lor (nu uitati rezistorul extern !). De asemenea, portile cu colectorul in gol pot fi utilizate pentru comanda unor circuite care necesita valori mari de tensiune, ca in Fig. 6.12 c). Cu o poarta standard, iesirea nu ar fi putut ajunge decit cel mult la 5 V dar, cu colectorul in gol, rezistorul extern poate fi conectat fara probleme la +15 V, deoarece tranzistorul de iesire suporta aceasta valoare. In acelasi fel, poarta poate controla direct aprinderea unui bec de 15 V, daca el nu are nevoie de un curent prea mare. Oricum, exista porti care pot absorbi curenti de sute de miliamperi.


Portile logice contin un numar relativ mic de componente si ele au fost disponibile in forma integrata imediat ce tehnologia de integrare pe scara redusa a fost pusa la punct (19 ). Alte functii logice combinationale, care altfel ar trebui sintetizate cu multe porti logice, au fost oferite, sub forma integrata, odata cu tehnologia de integrare pe scara medie (MSI - Medium Scale Integration). Prezentam, in continuare, citeva asfel de circuite, foarte frecvent folosite.

Selector cu doua intrari

O astfel de capsula contine patru selectoare identice, fiecare cu cite doua intrari si o iesire. Functionarea selectorului poate fi inteleasa privind tabelul de adevar din Fig. 6.13; cu X s-a notat starea oarecare a unei intrari (atunci cind aceasta nu conteaza). Cind intrarea de selectie este in LOW, toate intrarile ajung la iesirile corespondente; cu semnalul in starea HIGH, la iesiri apar nivelurile prezente pe intrarile corespunzatoare. Intrarea de activare , atunci cind este adusa in stare HIGH, forteaza toate iesirile in LOW, indiferent de intrari si starea semnalului .

Circuitul, numit si poarta de selectie, implementeaza aceeasi functie care s-ar putea realiza cu patru comutatoare mecanice cu doua pozitii, comandate simultan. Totusi, poarta este o solutie mult mai buna deoarece este mai ieftina, toate comutatorele sint actionate simultan si poate fi comandata de un nivel de tensiune. Chiar daca aceste niveluri de comanda sint produse cu comutatoare mecanice montate pe panoul aparatului, este mai bine ca semnalele logice care trebuie selectate sa nu paraseasca placa prin aducerea lor prin fire la comutatoarele mecanice, evitind astfel cuplajele parazite. Acest tip de comutare, numit uneori "comutare rece" (cold switching) este intodeauna de preferat deoarece firele lungi de la comutatorele mecanice, transmitind niveluri de curent continuu si nu semnale care isi schimba starea rapid, pot fi protejate impotriva perturbatiilor prin "decuplare" la masa cu condensatoare.

Fig. 6.13. Porti de selectie.


Porti de transmisie

Fig. 6.14. Porti de transmisie,

Asa cum am vazut in capitolul 4, utilizind tranzistoare CMOS se pot realiza comutatoare analogice comandate cu niveluri logice. In starea de conductie, intre intrare si iesire este prezenta rezistenta de valoare mica (citeva sute de ) a unui tranzistor deschis iar in stare blocata comutatorul prezinta o rezistenta practic infinita. In plus, intrarea si iesirea isi pot schimba rolurile, comutatorul fiind bilateral. Singura conditie care trebuie indeplinita este ca potentialul intrarii sa ramina in domeniul tensiunii de alimentare.

Aceste comutatoare functioneaza perfect si pentru semnale digitale si sint utilizate pe scara larga in proiectarea cu circuite CMOS. In Fig. 6.14 a fost reprezentata circuitul integrat CMOS 4066, care are patru comutatoare independente, fiecare comutator avind propria sa intrare de comanda, notata cu .

Fig. 6.15. Multiplexor logic din familia TTL.


Multiplexoare si decodoare

Poarta de selectie putea trimite la iesire unul din cele doua semnale prezente pe intrari. Este de multe ori necesar ca selectia sa se faca dintr-un numar mai mare de semnale disponibile; aceasta functie se numeste multiplexare si este realizata de circuite numite multiplexoare (prescurtarea MUX). Exista multiplexoare integrate cu 4, 8 sau 16 intrari; in Fig. 6.15 este prezentat unul cu 8 intrari, 74151. Selectarea intrarii se face prin intermediul a trei linii de adrese, numarul codificat de ele fiind intre 0 si 7. Circuitul mai are o intrare de activare, care functioneaza pe starea LOW si poate oferi la iesire, in acelasi timp, atit starea intrarii selectate (iesirea ) cit si complementara sa.

In tehnologie CMOS se realizeaza doua tipuri de multiplexoare. Unele, asa cum este 74153, functioneaza, ca si cele TTL, numai pentru semnale logice. Multiplexoarele din celalalt tip (4051-4053) sint analogice si bidirectionale, putind functiona la fel de bine si pentru semnale digitale. De fapt, ele sint alcatuite dintr-o "matrice" de porti de transmisie. Fiind bidirectionale ele pot fi utilizate si pentru demultiplexare (trimiterea unui semnal, la alegere, pe una din mai multe cai). Trebuie notat ca celelalte iesiri sint lasate in gol si potentialul lor trebuie fixat cu rezistente externe legate la masa sau la tensiunea de alimentare. Spre deosebire de multiplexoarele digitale, cele analogice sint simple comutatoare, ele nu au fan out, la iesirea lor neputindu-se conecta mai multe intrari. Acelasi lucru trebuie retinut si in cazul portilor de transmisie.

In cazul in care numarul de intrari oferite de o capsula este insuficient, se utilizeaza o tehnica de "extensie'', exemplificata in Fig. 6.16. In afara celor trei linii de adrese (necesare pentru opt intrari) mai exista o linie, care selecteaza una sau alta dintre cele doua capsule. Deoarece iesirea unui MUX neselectat este fortata in starea LOW, semnalul final poate fi obtinut prin realizarea unei functii OR intre iesirile celor doua multiplexoare.



Fig. 6.16. Extinderea multiplexarii la 16 linii.


Spuneam mai sus ca un demultiplexor trimite un semnal pe una dintre mai multe cai posibile; in acelasi timp, caile neutilizate sint fie lasate in gol, fie fortate intr-o anumita stare. O functionare aproape similara o are decodorul, cu deosebirea ca nu exista semnal de intrare, o singura iesire fiind trecuta in stare activa la un anumit moment, selectia ei facindu-se prin informatiile primite pe liniile de adrese. Un exemplu de decodor, 1 din 10, este circuitul TTL 7442. Dupa informatia primita pe cele patru linii de adrese, doar una din iesiri este adusa in LOW, celelalte fiind mentinute in starea HIGH. Daca adresa primita nu este in intervalul 0-9 (pe patru fire se pot trimite adrese pina la 15) atunci circuitul .

Exista si un alt tip de decodor, diferit de cele "1 din N", si anume BCD la sapte segmente. Pentru afisarea unui digit (cifra intre 0 si 9) se utilizeaza fie afisoare cu diode luminescente (LED), fie cu cristale lichide, cifra fiind alcatuita prin aprinderea unora din cele sapte segmente ale afisorului. Decodorul primeste pe patru linii de adresa numarul de la 0 la 9; aceasta codificare, care converteste separat in binar fiecare digit, fiind numita BCD (Binary Coded Decimal). Astfel, el trece cele sapte iesiri in starile corespunzatoare aprinderii segmentelor necesare pentru afisarea cifrei respective.


Circuit de adunare

In Fig. 6.17 este prezentat un circuit care realizeaza adunarea binara a doua numere, fiecare din ele fiind pe patru biti (intre 0 si 15). Daca suma este mai mare decit 15, ea trebuie reprezentata pe cinci biti. Din aceasta cauza exista un semnal de "depasire" (carry out), care reprezinta tocmai cel mai semnificativ bit al sumei. Cum aceste circuite sint utilizate si pentru efectuarea de adunari pe mai mult de 4 biti, exista posibilitatea ca la suma efectuata sa se adune o unitate, primita pe intrarea de "cary in".


Fig. 6.17. Circuit pentru adunarea a doua numere de patru biti.


Implementarea unei functii logice oarecare

De cele mai multe ori, functiile logice pe care trebuie sa le implementam nu au prea multe variabile de intrare si, deci, nu sint prea complicate. Astfel, ele pot fi usor implementate cu porti logice; modul de sinteza nu este unic si exista metode (pe care nu le-am discutat) prin care numarul necesar de porti poate fi minimizat. Alteori, numarul de variabile de intrare este mare si tabelul de adevar devine complicat; de exemplu, pentru cinci intrari, circuitul are stari posibile si tabelul de adevar are tot atitea linii.

Pentru aceste situatii este mai bine sa renuntam la sinteza cu porti (care sint circuite integrate cu numar relativ mic de componente) si sa aplicam alte metode, mai generale, care utilizeaza circuite integrate pe scara medie. Vom vedea ca acestea au, in plus, avantajul ca daca dorim sa modificam functia logica implementata circuitul ramine acelasi, fiind necesara numai reprogramarea acestuia. Chiar efortul de proiectare (modul in care ajungem de la tabelul de adevar la valorile necesare pentru programare) este acum mult mai mic decit in cazul sintezei cu porti. Aceasta cale este recomandata si de pretul total, un circuit integrat cu o functie complicata fiind mai ieftin decit numarul mare de circuite simple (porti) care ar realiza aceeasi functie.


Implementarea cu multiplexoare

Orice tabel de adevar cu variabile de intrare poate fi realizat cu un multiplexor cu intrari, adica unul la care adresa este reprezentata pe biti. Sa ne intoarcem la exemplul cu autoturismul, unde functia logica dorita avea tabelul de adevar din Fig. 6.18 a). Aplicam cele trei semnale de intrare pe intrarile de adrese ale unui MUX cu 8 intrari, ca in desenul b) al figurii; pentru a urmari mai usor functionarea, in tabelul de adevar a fost trecut si adresa corespunzatoare fiecarei combinatii de la intrare. Nu mai avem decit sa citim din tabelul de adevar starea necesara a iesirii pentru fiecare adresa si sa cablam la HIGH sau LOW linia corespunzatoare a multiplexorului. Cind intrarile vor selecta acea linie, starea respectiva va aparea la iesire. Daca dorim sa realizam alt tabel de adevar, pur si simplu nu vom modifica decit starile logice in care sint tinute cele 8 linii ale multiplexorului. Acest lucru poate fi efectuat chiar in timpul functionarii, reprogramarea putind fi realizata cu citeva porti.

Fig. 6.18. Implementarea unei functii logice cu multiplexor.


Ultima observatie din paragraful precedent poate fi utilizata pentru implementarea unui tabel de adevar cu 4 linii (16 stari) folosind un MUX cu numai 3 linii de adresa. Sa presupunem ca sarcina noastra de proiectare a devenit mai complicata prin interventia unei variabile suplimentare , care spune daca soferul a introdus cheia in contact. Cu in starea LOW functionarea este cea anterioara, dar la trecerea ei in starea HIGH functionarea trebuie sa respecte noul tabel de adevar din Fig. a). Solutia problemei este programarea liniilor multiplexorului folosind starea acestei noi variabile, cu pretul introducerii unui inversor, ca in desenul b) al figurii.

Fig. 6.19. Implementarea unei functii logice cu 4 variabile cu un multiplexor cu 8 linii.


Implementarea cu decodoare 1 din

Cu multiplexoare putem implementa orice functie logica, obtinind o variabila de iesire. Cind pornind de la un set de variabile logice (set avind stari posibile) este necesara implementarea simultana a mai multor functii logice, care sa furnizeze, deci, tot atitea variabile de iesire, o solutie eleganta consta in utilizarea unui decodor 1 din , urmat de porti sau cu mai multe intrari. Vom exemplifica pe cazul unui circuit care primeste la intrare un digit reprezentat binar (BCD) si trebuie sa implementeze sapte functii logice, care sa controleze fiecare aprinderea segmentelor unui afisor cu LED. Daca segmentele sint notate cu literele a,...,g, ca in Fig. a) si sint aprinse cu semnale in starea HIGH (afisajul este cu catod comun), tabelul de adevar arata ca in desenul b) al figurii. Mai intii, decodorul din Fig. c) identifica in care din cele 10 stari posibile se gaseste setul de variabile de intrare si aduce in starea LOW numai iesirea corespunzatoare acelei stari. Pentru ca segmentul a trebuie aprins pentru cifrele 0,2,3,5,6,7,8, si 9, informatiile de la aceste iesiri trebuie inversate (iesirea este in LOW cind este selectata) si apoi prelucrate cu o poarta SAU cu mai multe intrari. In mod corespunzator, pentru segmentul b sint prelucrate iesirile 0,1,2,3,7,8 si 9 ale decodorului, s.a.m.d..

Fig. 6.20. Implementarea unei functii logice cu decodor 1 din N.

Exemplul nostru s-a referit la o tema de proiectare care, datorita frecventei sale, este gata rezolvata de catre producatorii de circuite integrate; putem cunpara intregul circuit intr-o singura capsula, uneori continind si afisajul. Daca insa tabelul de adevar este altul, puteti oricind sa-l implementati cu un decodor si citeva porti, utilizind acelasi principiu de proiectare.


Implementarea cu memorii READ ONLY si implementarea cu logica programabila

O memorie READ ONLY (ROM - READ ONLY MEMORY) memorizeaza o structura de biti (tipic 4 sau 8) pentru fiecare adresa distincta aplicata la intrarea sa de adrese. De exemplu, o memorie de 1k octet (Fig. ) furnizeaza cite 8 biti pentru fiecare din cele 1024 adrese posibile comunicate circuitului pe 10 linii de adrese. Astfel, cu ea pot fi implementate 8 functii logice distincte, numarul de variabile de intrare fiind de maximum 10. Memoriile ROM sint nevolatile, informatia stocata raminind si dupa intreruperea alimentarii. Ele sint denumite READ ONLY pentru ca in functionare numai operatia de citire este disponibila; informatia trebuie scrisa anterior printr-un procedeu numit programare sau uneori "ardere". Felul in care se face programarea depinde de principiul de constructie. Astfel, unele memorii sint programate chiar in timpul realizarii, printr-o "masca" de depunere. Altele, numite PROM, pot fi scrise de catre utilizator. Primul procedeu utilizat a fost arderea efectiva a unor conexiune interne foarte fine; o astfel de memorie nu mai poate fi "stearsa" si scrisa din nou. Apoi au aparut memoriile care puteau fi sterse (EPROM - Erasable PROM) prin iluminarea cu radiatie ultravioleta si, mai curind, cele care pot fi sterse electric EEPROM (Electrical Erasable PROM).

Fig. 6.21. Memorie ROM de 1 k octet.


O metoda mult mai puternica si flexibila o constituie logica programabila: circuite integrate care contin matrici de porti logice, conexiunile dintre ele fiind programate de catre utilizator. Exista doua astfel de tipuri de circuite, PAL (Programmable Array Logic) si PLA (Programmable Logic Arrays). La primul dintre ele, datele de intrare (in numar de ), ca si complementarele lor sint prelucrate de un ansamblu de porti AND, fiecare cu cite intrari. Prin progrmarea unor conexiuni, utilizatorul poate stabili ce semnale prelucreaza fiecare din aceste porti. Apoi, iesirile portilor AND sint grupate cite doua si fiecare pereche prelucrata de cite o poarta OR. Circuitele de tip PLA sint mult mai flexibile, utilizatorul putind programa si modul in care iesirile portilor AND sint legate la intrarile portilor OR.


Circuite secventiale


Pina acum am discutat despre logica combinationala, care implica numai circuite fara memorie. Partea interesanta a povestii incepe insa acum, cind incepem sa abordam circuitele secventiale care tin seama si de istoria starii lor. Blocul de baza al acestor circuite este bistabilul, numit foarte colorat in literatura de limba engleza, flip-flop.

Fig. 6.22. Bistabilul SR.

Sa privim la schema din Fig. 6.22 a), care contine doua porti NAND, desenate apoi (desenul b), pentru simplificarea analizei, prin reprezentarea echivalenta in logica negativa. Iesirea primei porti este legata la una din intrarile celei de-a doua; pina acum nimic nou. Dar dupa ce trece prin cele doua porti, semnalul este adus din nou la intrarea primei porti: avem o bucla de reactie. Incepem sa analizam comportarea circuitului, considerind mai intii ambele intrari in starea HIGH. Nu stim starile iesirilor dar putem incerca sa vedem ce se intimpla daca iesirea este in HIGH; rezulta imediat ca iesirea trebuie sa fie in LOW si aceasta, prelucrata de poarta 1, nu contrazice presupunerea ca este in HIGH. Circuitul este insa simetric si la fel de bine putem presupune ca iesirea este in HIGH, rezultind de aici ca este in low. Concluzia este ca daca intrarile sint in HIGH, circuitul are doua stari posibile; asa ceva nu se intimpla in logica combinationala. In care din ele se va gasi circuitul ? Raspunsul este simplu in aceea in care se afla inainte ca ambele intrari sa ajunga in starea HIGH. El are, deci, memorie.

Sa aducem acum in LOW intrarea a primei porti; indiferent de starea anterioara, la iesirea a acestei porti va apare starea HIGH. Cum intrarea a ramas in HIGH rezulta imediat ca iesirea este obligatoriu in LOW. Circuitul are o sigura stare posibila, aceea cu in HIGH si in LOW. Din simetria circuitului deducem ca daca la intrare situatia este inversata, se inverseaza si situatia la iesire, trecind in LOW si in HIGH.

Pentru cele trei stari ale intrarilor analizate pina acum putem sa tragem deja niste concluzii, sintetizate in primele trei linii ale tabelului de adevar din figura 6.22 c). Mai intii, cele doua iesiri sint complementare una celeilalte, conducind la notarea cu a iesirii si cu a celeilalte; este acum iesirea "principala" a circuitului. Aparitia pe intrarea a starii LOW determina intodeauna trecerea in HIGH a iesirii "principale" si, din acest motiv, intrarea este numita intrare de scriere (SET in limba engleza); ea este activa pe nivelul LOW si, deci, notam . In mod corespunzator, trecerea intrarii in stare LOW forteaza intodeauna starea LOW pentru iesirea "principala"; ea este o intrare de stergere (reset in limba engleza), activa pe starea LOW, .

Ce se intimpla daca intrarile se gasesc intr-a patra stare posibila, adica ambele in LOW ? Se verifica usor ca ele vor forta trecerea ambelor iesirii in starea LOW, ele incetind sa mai fie reciproc complementare. Incalcind regula , aceasta stare trebuie evitata.

In concluzie, circuitul analizat are doua stari stabile, in care iesirile sint reciproc complementare, fiind un bistabil; daca ambele intrari sint in HIGH starea sa se pastreaza. Trecerea intr-o anumita stare dorita se face prin aducerea in LOW a intrarii corespunzatoare, pentru scriere intrarea iar pentru stergere intrare . De aceea acest tip de bistabil se numeste set-reset, cu prescurtarea SR. Aceasta comportare este exprimata de tabelul de adevar din desenul d) al figurii, in care am utilizat noile notatii pentru variabile si am interzis starea cu ambele intrari in LOW.

Fig. 6.23.

O aplicatie tipica a unui astfel de bistabil este eliminarea pulsurilor parazite provenind de la contactele mecanice. Astfel, pentru numararea unor evenimente se instaleaza un comutator mecanic ca in Fig. 6.23, la aparitia fiecarui eveniment contactul inchizindu-se. Schimbarea nivelului logic este sesizata de poarta NAND care trebuie sa transmita mai departe niste pulsuri spre un numarator electronic. Vestea proasta este ca inchiderea unui contact mecanic nu se face "ferm", el inchizind-se si deschizindu-se de 10-100 de ori intr-un interval de ordinul a 1 ms, pina la stabilirea definitiva a contactului. Aceasta ezitare (bouncing in limba engleza) face ca la un singur eveniment sa corespunda un numar impredictibil de pulsuri si numaratorul sa ajunga la un rezultat complet eronat.



Dificultatea poate fi eliminata prin utilizarea unui bistabil RS, ca in Fg. 6.24. Dupa ce a parasit pozitia initiala, comutatorul lasa ambele intrari ale bistabilului in HIGH, ceea ce nu-i modifica starea. Apoi urmeaza un prim contact in noua pozitie, intrarea respectiva fiind adusa pentru scurt timp in LOW si schimbind, astfel, starea bistabilului. Chiar daca contactul se intrerupe si se reface de mai multe ori, aceasta nu afecteaza decit starea logica a intrarii respective care, dupa realizarea comutatiei bistabilului, nu mai conteaza.

Fig. 6.25. Bistabil SR cu mai multe intrari.

Se poate construi un bistabil RS si cu porti NOR, ca in Fig. 6.25; de data aceasta intrarile de SET si RESET sint active pe starea HIGH. Prin utilizarea unor porti cu mai multe intrari se poate obtine ca scrierea sa fie facuta de oricare din mai multe semnale; acelasi lucru se intimpla si pentru stergere.

Circuitele bistabile SR isi schimba starea imediat imediat ce starea intrarilor se modifica, fiind tot timpul "transparente" . Ele sint utile in eliminarea comutatiilor parazite ca si in alte aplicatii. Cu toate acestea, cele mai utilizate circuite bistabile functioneaza altfel. Sa ne gindim la functionarea unui frecventmetru numeric, in care se numara perioadele semnalului pe o durata determinata (de exemplu 1 s) apoi numaratorul este adus la zero si numaratoarea incepe din nou. Daca legatura intre iesirile numaratorului si afisaj ar fi facute cu bistabile care sint transparente tot timpul, afisajul si-ar schimba permanent starea si nu am putea citi frecventa masurata. Este necesar, deci, ca semnalele de comanda sa provoace comutarea bistabilelor numai la anumite momente bine controlate (in exemplul cu frecventmetru, la terminarea ciclului de numarare).

Fig. 6.26. Bistabil SR sincronizat

Figura 6.26 prezinta un bistabil care functioneaza sincronizat cu un semnal numit de tact sau de ceas (clock in limba engleza, prescurtat CLK). Pentru aceasta, cele doua semnale de comanda nu sint aplicate direct ci prin intermediul unor porti NAND. Astfel, aceste semnale pot determina comutatia bistabilului numai pe durata in care semnalul de tact CLK este in stare HIGH. |inind seama de actiunea de inversare a portilor NAND, tabelul de adevar este cel din figura.

Cu toate acestea, inconvenientul prezentat de bistabilul SR nu este complet eliminat: daca semnalele SET si RESET isi schimba din starea chiar pe durata pulsului de tact, ele pot comuta din nou bistabilul. Cind semnalul sau de iesire poate actiona asupra intrarii, pe durata HIGH a pulsului de tact apare o reactie ce poate produce efecte imprevizibile, datorita impredictibilitatii timpului de propagare a diferitelor semnale.


Fig. 6.27. Bistabil D master-slave.


Adevarata utilitate a semnalului de ceas este pusa in evidenta de alte doua tipuri de bistabile: bistabilul master-slave (stapin sclav) si bistabilul sincronizat pe front (edge trrigered). Desi bistabilele master-slave sint disponibile "de-a gata" in forma integrata, sa aruncam o privire la structura interna (Fig. 6.27) pentru a intelege principiul de functionare. Recunoastem doua bistabile sincronizate, ca cel din figura 6.26, primul, numit "stapin" comandindu-l pe cel de-al doilea, care este "sclav". Elementul esential este acela ca portile lor de la intrare sint comandate cu semnale complementare. Trecerea tactului in starea HIGH inchide comunicatia intre stapin si sclav dar deschide calea semnalului de intrare catre master. Chiar daca semnalul comuta de mai multe ori pe starea HIGH a tactului si schimba corespunzator starea bistabilului master, aceasta nu are nici un efect asupra iesirii deoarece bistabilul slave este izolat. Ceea ce conteaza este starea semnalului de intrare imediat inainte de trecerea tactului in LOW (moment notat cu a pe diagrama semnalului de tact), pentru ca dupa aceasta trecere, semnalul de intrare nu mai are acces la intrarile bistabilului. In schimb, se deschide comunicatia intre master si slave si informatia ajunge la iesirea circuitului, la momentul notat cu b. In continuare, starea iesirii ramine nemodificata pina la urmatoarea tranzitie HIGH-LOW a semnalului de tact. In concluzie, bistabilul master slave ia in consideratie starea semnalului de intrare numai la un moment perfect precizat, imediat inaintea tranzitiei "negative" a semnalului de tact si isi modifica in mod corespunzator starea iesirii la un moment la fel de bine precizat (sfirsitul tranzitiei negative a semnalului de tact). Acest transfer in doi timpi al informatiei de la intrare la iesire elimina posibilitatea unei reactii necontrolate, efectul modificarii iesirii putind actiona asupra bistabilului abia in urmatorul ciclu al semnalului de tact..

Bistabilul pe care tocmai l-am prezentat are o singura intrare a carei stare este transferata la iesirea . El este cunoscut ca bistabil de de tip D (de la delay, intirziere, pentru ca starea intrarii ajunge la iesire abia dupa tranzitia semnalului de tact. Tot pe principiul master-slave se realizeaza si bistabile cu doua intrari, cel mai cunoscut fiind cel JK, cu tabelul de adevar din Fig. 6.28. Observam ca intrarea functioneaza ca intrare de scriere (pe starea HIGH), iar intrarea este intrare de stergere (de asemenea pe starea HIGH). Ca si la bistabilul SR, cind nici una din intrari nu este activa (ambele in LOW), bistabilul nu-si schimba starea. Diferenta apare in starea in care ambele intrari devin active, una incercind sa scrie si cealalta sa stearga. La bistabilul SR, efectul acestei situatii era aducerea iesirilor intr-o stare in care ele nu mai erau reciproc complementare. Pentru a pastra complementaritatea iesirilor, aceasta stare a intrarilor trebuia interzisa. La bistabilul JK aceasta situatie nu mai trebuie evitata. Cu ambele intrari in HIGH, ambele iesiri isi schimba starea, raminind reciproc complementare. Astfel, pe ultima linie a tabelului este suficient sa scriem , subintelegindu-se ca celalta iesire ajunge in starea .

Proprietatea bistabilului JK de a­ trece in starea complementara la fiecare impuls de tact, atunci cind ambele intrari sint in HIGH, poate fi exploatata pentru realizarea unui circuit care divizeaza cu doi frecventa unui semnal, ca in desenul b) al figurii. Mai trebuie sa notam ca datorita principiului de functionare, forma de unda este intodeauna simetrica (factor de umplere 0,5).

Fig. 6.28. Tabelul de adevar al unui bistabil JK si utilizarea sa la divizarea cu doi a frecventei unui semnal.


Tema: Verificati ca se poate construi un divizor cu doi si cu un bistabil D master-slave, daca se leaga intrarea sa de date la iesirea sa negata . Ce s-ar fi intimplat daca bistabilul nu ar fi fost unul master-slave ci doar sincronizat, ca cel din 6.26 ?


Anumite bistabile JK master slave mai vechi prezinta o deficienta ascunsa, care nu se gaseste in foile de catalog. Ele au fost proiectate pentru pulsuri de tact scurte dar in realitate semnalul de tact nu indeplineste decit foarte rar aceasta conditie. Din acest motiv poate apare o functionare bizara: daca semnalele de intrare isi scimba starea pentru scurt timp si apoi revin la cea initiala cind bistabilul slave este activat de catre tact, bistabilul master isi va aminti aceasta stare tranzitorie si va actiona ca si cum ea ar fi devenit permanenta. Efectul este cunoscut sub numele de "ones catching". Din acest motiv trebuie sa fim precauti in utilizarea bistabililor master-slave sau sa-i evitam.

Fig. 6.29. Bistabile comutate pe front.

O solutie care nu prezinta inconvenientul descris mai sus este utilizarea bistabilelor comutate pe front. Desi functionarea lor, privita din exterior, este aceeasi cu a celor master-slave (cind se comporta corect !), structura lor interna este diferita. Sint disponibile atit circuite integrate comutate pe frontul negativ (coboritor) cit si circuite integrate comutate pe frontul pozitiv (crescator). In plus, ele mai au doua intrari prioritare de SET si RESET care pot schimba in orice moment starea bistabilului. Trei astfel de "jumatati" de circuite (fiecare capsula contine doua bistabile identice independente), sint prezentate in Fig. 6.29, unde folosim conventiile deja cunoscute: daca o intrare este activa pe starea LOW se deseneaza un cerculet (negatie) in afara capsulei. Aceeasi conventie este folosita si daca bistabilul comuta pe frontul negaiv al semnalului de tact. Semnul special desenat pe intrarea de tact semnifica faptul ca circuitul este comutat pe front.


Divizoare cu puteri ale lui 2; numaratoare asincrone


Fig. 6.30. Numarator binar asincron pe 4 biti.


Daca mai multe divizoare cu 2 sint legate in cascada se obtine o divizare a frecventei semnalului cu o putere a lui 2. Un astfel de circuit este prezentat in Fig. 6.30, unde patru bistabile JK comutate pe frontul negativ sint legate astfel incit iesirea unuia furnizeaza semnalul de TACT pentru urmatorul si produc, in final, o divizare cu a frecventei semnalului de intrare. Daca urmarim diagram starilor iesirilor celor patru bistabile, prezentata in figura, si interpretam aceste valori logice ca reprezentarea binara pe 4 biti a unui numar (MSB fiind cel mai semnificativ bit) constatam ca circuitul este un numarator de la 0 la 15, numarul crescind cu o unitate la fiecare front negativ al semnalului de intrare. Pentru a putea intelege mai usor functionarea sa, au fost simbolizate prin sageti curbe relatiile cauza-efect. Schema simpla prezentata are un dezavantaj, legat de intirzierile comutarilor diferitelor bistabile, datorate timpilor de propagare. Desi fiecare bistabil are o intrare de ceas, bistabilele nu comuta sincronizat intre ele, numaratorul fiind unul asincron (ripple counter in limba engleza). De exemplu, la trecerea din starea 15 in starea 0, cele patru semnale de iesire nu trec simultan in starea 0 ci unul dupa altul, decalate intre ele cu durata de timp necesara fiecarui bistabil pentru a-si schimba starea.

Fig. 6.31. Circuit secvential compus din registru de memorie si bloc de logica combinationala.

Cea mai generala forma a circuitelor digitale se obtine utilizind impreuna atit circuite combinationale cit si circuite secventiale. Este de dorit ca sistemul realizat sa fie unul sincronizat de la un semnal de tact unic. O astfel de configuratie este cea din Fig. 6.31. Toate circuitele secventiale, care sint bistabile de tip D comutate pe front, sint grupate intr-un singur bloc numit registru, cu intrarile si iesirile . Actiunea registrului este extrem de simpla: pe frontul negativ al semnalului de tact starile intrarilor sint transferate la iesirile corespondente. Intrarile dicteaza, deci, care va fi urmatoarea stare a registrului. Ele sint obtinute de la blocul de logica combinationala prin prelucrarea atit a iesirilor registrului cit si a unor semnale de intrare externe. Tot blocul de logica combinationala furnizeaza iesirile sistemului, atunci cind semnalele de iesire din registru nu sint suficiente.

Fig. 6.32.

Desi simpla, configuratia precedenta este extrem de puternica. Sa realizam cu ajutorul ei un numarator binar pe 3 biti, dar de data aceasta sincron, nu ca cel din Fig. 6.30. Vom avea nevoie de trei bistabile de tip D; completam mai intii un tabel cu succesiunea necesara a starilor acestor bistabile (Fig. 6.32). Am vazut ca dupa pulsul de tact , starea bistabilelor va fi aceea a intrarilor lor la momentul anterior ; astfel pentru starile necesare ale intrarilor D nu avem decit sa copiem linia iesirilor situata cu o pozitie mai jos.

Putem interpreta acum tabelul obtinut ca fiind tabelul de adevar al blocului de logica combinationala, pentru care sint intrarile si sint iesirile. Incercam, prin inspectie vizuala sa recunoastem functiile logice respective. Pentru este banal, ea este pur si simplu complementara lui , . Nici pentru nu este prea complicat, ea este in 1 cind oricare dintre si este in 1, dar nu cind ambele sint in 1; este functia SAU exclusiv . Cu experienta acumulata ne incumetam acum sa vedem ce se intimpla cu . El este in 1 cind este in 1, dar si cind ambele si dar este 0 cind aceste doua conditii sint indeplinite simultan. Avem, deci . Cu aceste trei functii logice cunoscute nu mai avem decit sa adaugam portile si sa facem legaturile necesare; circuitul complet arata ca in Fig. 6. 33 si functionarea sa se deosebeste de aceea a unui numarator asincron (ripple counter) prin faptul ca toate tranzitiile semnalelor sint sincronizate de catre semnalul de tact.



Fig. 6.33. Numarator binar sincron pe trei biti.


Numaratorul proiectat trecea succesiv prin toate cele opt stari posibile ale registrului. Sa incercam ceva mai complicat: un numarator cu numai cinci stari, care dupa starea 100 sa treaca inapoi in 000, ca in tabelul din Fig. 34 a). Modificam corespunzator functiile logice ale blocului combinational


si s-ar parea ca am rezolvat problema. Nu este chiar asa pentru ca mai exista trei stari in care nu vrem ca circuitul sa ajunga. Dar daca, in cursul regimului tranzitoriu produs de aplicarea alimentarii circuitul totusi ajunge in una din aceste stari ? |inind seama de functiile logice de mai sus, sa scriem si restul tabelului (desenul b al figurii). Oservam ca din starea "interzisa" 5 se va trece la urmatorul puls al semnalului de tact in starea permisa 2; de aici numaratorul va evolua numai prin stari permise. Exact acelasi lucru se va intimpla daca circuitul ajunge in starea interzisa 6. Daca va ajunge insa in starea 7, la pulsul urmator va trece in starea 4, care este permisa, si totul va intra, de asemenea, in normal. O reprezentare foarte sugestiva a acestei functionari este diagrama starilor, desenata in Fig. 6.35 a), unde sagetile simbolizeaza tranzitiile care au loc la aparitia pulsului de tact.

Fig. 6.34.

Fig. 6.35.


Am avut, deci, noroc; orice s-ar intimpla in timpul regimului tranzitoriu, circuitul va incepe sa functioneze pina la urma asa cum ne-am dorit. Nu era exclus insa sa fi obtinut o diagrama a starilor ca in Fig. 6.35 b), unde odata ajuns in una din starile interzise 5 sau 7, circuitul sa nu mai poata reveni niciodata in starile permise. Din acest motiv aceste stari interzise trebuie analizate atent la proiectare si cind exista pericolul ca circuitul sa se "blocheze" in asemenea stari, se asigura resetarea intregului sistem (aducerea registrului in starea 0) in mod automat, dupa stabilirea tensiunii de alimentare.


Observatie: In asemenea stari interzise poate ajunge procesorul de comenzi al televizorului sau videocasetofonului in timpul unor perturbatii puternice venite pe reteaua de alimentare; din acest moment el nu mai raspunde (sau raspunde complet eronat) la comenzi. Solutia este oprirea completa a alimentarii, asteptarea pina cind condensatoarele surselor de alimentare se descarca, si apoi restabilirea alimentarii.


Problema sincronizarii poate aparea si la circuite mai simple. Sa presupunem ca avem un semnal care comuta periodic intre cele doua stari logice si care trebuie aplicat unei porti AND care sa-l lase sau nu sa treaca, in concordanta cu starea celei de-a doua intrari a sa, ca in Fig. 6.36 a) ; dorim sa deschidem si sa inchidem poarta prin apasarea scurta a doua comutatoare mecanice (push button). Pentru a elimina comutarile parazite ce pot fi produse de comutatoarele mecanice, cunoastem deja solutia: un bistabil SR.


Fig. 6.36.


Daca am lega iesirea bistabilului direct la intrarea de comanda a portii, functionarea circuitului ar prezenta un inconvenient major. Deoarece nu exista nici o legatura intre momentul in care apasam comutatoarele si starea semnalului care trebuie transmis, poarta se poate deschide si, respectiv, inchide pe durata pulsului pozitiv al semnalului; rezultatul va fi ca secventa de pulsuri transmisa va contine, la inceput si la sfirsit, pulsuri de durata mai scurta decit celelalte, ca in desenul b) al figurii.

Solutia dificultatii consta in sincronizarea deschiderii si inchiderii portii fata de semnalul care trebuie transmis. Aceasta se realizeaza prin intercalarea intre iesirea bistabilului si intrarea portii a unui bistabil D comutat pe frontul negtiv. Astfel, desi bistabilul SR isi poate schimba oricind starea, efectul sau asupra portii nu apare decit dupa primul front coboritor al semnalului, asa cum se poate constata pe diagrama semnalelor din desenul c) al figurii.

Fig. 6.37.

Ce s-ar fi intimplat daca am fi utilizat un bistabil D comutat pe frontul crescator ? La apasarea butonului START, circuitul ar fi functionat corect. Dar la comanda de inchidere a portii, data prin apasarea butonului STOP, s-ar fi intimplat un lucru extrem de neplacut. Frontul pozitiv al semnalului va determina ca bistabilul D sa comute si astfel semnalul de inchidere sa ajunga la intrarea portii; dar pina sa faca bistabilul acest lucru poarta este inca deschisa si pulsul pozitiv apare la iesire; abia ulterior poarta, inchizind-se, aduce semnlul de la iesire in LOW.

Apare, deci, o competitie de viteza intre comanda care trebuie sa inchida poarta si semnalul care incearca sa treaca prin poarta inca deschisa (logic race in limba engleza). Rezultatul este aparitia unui puls extrem de scurt numit "glitch" (am mai intilnit aceasta denumire in capitolul despre tranzistoare FET). Glitch-urile sint extrem de suparatoare in circuitele logice pentru ca pot provoca comutari necontrolate ale altor circuite (de exemplu numaratoare). Pentru a face lucrurile si mai rele, ele sint uneori atit de scurte incit greu pot fi observate cu osciloscopul.


Producerea pulsurilor cu monostabile

Fig. 6.38. Functionarea unui monostabil anclansat pe frontul pozitiv.

Daca in schema unui bistabil, una din reactii nu se mai face direct ci printr-un condensator, se obtine un circuit cu o singura stare stabila, numit monostabil (one-shot in limba engleza). El poate fi anclansat (trigherat, din engl. trigger) printr-o tranzitie a semnalelor de intrare, trecind in starea instabila, si revenind apoi in starea stabila dupa un timp ce depinde de valoarea condensatorului (Fig. 6.38). Cu alte cuvinte momentul aparitiei pulsului este stabilit din exterior prin semnalul de comanda iar durata sa este determinata de monostabil.

Realizarea unui monostabil folosind porti logice este o operatie pindita de dificultati (excursia potentialelor iese din plaja tensiunii de alimentare) si trebuie sa tina seama de structura interna a portii. Din acest motiv, va sfatuim sa nu optati niciodata pentru aceasta solutie; de aceea, nici macar nu prezentam o astfel de schema. In schimb aveti la dispozitie o diversitate de monostabile gata realizate, ca circuite integrate. La alegerea unuia sau altuia va trebui sa tineti seama de anumite caracteristici, pe care le discutam in continuare.

Intrarile

Monostabilele pot fi anclansate fie pe fronturi negative, fie pe fronturi pozitive ale semnalului de comanda. Pulsul trebuie sa aiba insa o durata minima situata tipic intre 25 ns si 100 ns. Latimea pulsului de comanda poate fi atit mai scurta cit si mai lunga decit durata monostabilului (durata pulsului de la iesire). Circuitul integrat poate avea mai multe intrari de comanda, dintre care unele active pe fronturi pozitive iar altele active pe fronturi negative. Mai pot, de asemenea, exista intrari care sa inhibe anclansarea monostabilului.

Fig. 6.38. Exemple de circuite monostabile integrate.


In Fig. 6.38 sint prezentate citeva astfel de monostabile. Tabelurile care le insotesc arata conditiile ce trebuie indeplinite pentru anclansare. Cum aceasta poate fi realizata in mai multe moduri, fiecare tabel contine mai multe linii. De asemenea, modul in care circuitele pot fi anclansate este reprezentat prin portile care au fost desenate intre intrari si monostabilul propiu zis. Trebuie notat ca, de obicei, aceste porti nu se deseneaza, semnificatia intrarilor rezultind din foaia de catalog a circuitului respectiv.

Astfel, fiecare din cele doua monostabile din 74538 are doua intrari de comanda, anclansarea facindu-se pe la fronturi pozitive cu mentinuta in HIGH, sau pe la fronturi negative cu mentinuta in LOW. Cind intrarea este adusa in LOW, monostabilul nu mai poate fi anclansat. Monostabilul 74121 are trei intrari, cele doua intrari putindu-l anclansa pe frontul negativ. Intrarea il declanseaza pe frontul pozitiv; ea este, in plus, o intrare de tip special (trigger Schmitt), acceptind si fronturi lente.

Retrigherabilitatea

Fig. 6.39. Retrigherabilitatea monostabilelor.

Cele mai multe dintre monostabile (asa cum sint 4538, 74123 si 74423) incep un nou ciclu daca se primeste o noua comanda de trigherare pina la terminarea ciclului curent. Lungimea pulsului de la iesire creste astfel, revenirea la starea stabila facindu-se dupa durata proprie a monostabiluli, masurata de la ultima comanda de anclansare, ca in Fig. 6.39 b). Altele, cum sint 74121 si 74221, odata anclansate, ignora orice alt puls de trigherare sosit, urmind ca abia dupa revenirea in starea stabila sa poata fi anclansate din nou (desenul a al figurii). Un monostabil retrigherabil poate fi facut sa se comporte ca unul neretrigherabil daca se blocheaza accesul semnalului de comanda cu poarta, ca in Fig. 6.39.

Resetabilitatea

Majoritatea circuitelor integrate monostabile au o intrare de RESET, asincrona (prioritara) prin care se poate forta in orice moment revenirea monostabilului in starea stabila.

Durata pulsului

Cu bistabilele standard se pot obtine pulsuri cu durata de la 40 ns pina la milisecunde (si uneori chiar secunde); durata lor se stabileste prin intermediul unui condensator si (uzual) a unui rezistor, ambele conectate extern.

Monostabilele sint afectate de niste dificultati asupra carora utilizatorul trebuie sa fie avizat. Astfel, temporizarea este facuta printr-o tehnica analogica (incarcarea unui condensator si sesizarea tensiunii de incarcare prin comparatie cu tensiunea de deschidere a unei jonctiuni semiconductoare) si precizia ei este afectata de temperatura, valoarea tensiunii de alimentare si dispersia tehnologica a circuitelor integrate. Astfel, predictibiltatea duratei pulsului generat nu este mai buna de 10%. Pulsurile de durata mare se obtin cu dificultate, deoarece necesita condensatori de capacitati mari, ai caror curenti de scurgere sint importanti.

Daca pulsurile de comanda sint prea scurte circuitele monostabile pot produce la iesire pulsuri sub standard sau cu jitter pronuntat (intre momentul aparitiei lor si momentul comenzii apare o decalare aleatoare in timp). Imunitatea lor la zgomot este mai mica decit a altor circuite digitale datorita cuplajelor parazite prin intermediul condensatorului si rezistorului. In plus, ele se pot declansa pe glitch-uri venite pe alimentarea pozitiva sau pe conductorul de masa. Ca si pentru circuitele integrate care contin bistabile, iesirile trebuie sa fie izolate (cu porti repetoare, buffere) atunci cind trebuie legate la cabluri lungi sau la dispozitive din afara aparatului. In caz contrar, capacitatile parazite impiedica evolutia suficient de rapida a iesirilor si pot apare efecte cu totul neasteptate. In concluzie, utilizarea monostabilelor trebuie restrinsa la strictul necesar. Atunci cind trebuie generat un puls de o anumita durata si cu anumita intirziere fata de altul, solutia ideala este utilizarea exclusiva a ciclurilor semnalului de tact.


Alte functii secventiale dispoibile ca circuite integrate


Dezvoltarea circuitelor integrate pe scara medie (MSI) si larga (LSI) continind peste 1000 de componente, a facut posibila realizarea intr-un circuit integrat si a altor functii secventiale. Trecem in revista, in continuare citeva exemple reprezentative.


Latch-uri si registre

Desi ambele tipuri de circuite sint utilizate pentru a stoca un set de biti, chiar daca intrarile isi schimba ulterior starea, functionarea lor este diferita. Datorita utilizarii fara discernamint, termenul de latch a devenit ambiguu; pentru a evita posibilele confuzii sint utilizati adesea termenii de "latch transparent" si "registru de tip D".

Registrul de tip D este un ansamblu de bistabile D, comutate pe fronturile unui semnal de tact unic. De asemenea, intrarile asincrone de SET si CLEAR sint strinse impreuna, permitind unui registru pe 8 biti sa fie produs intr-o capsula standard cu 20 de pini (terminale), ca in Fig. 6.40. Starile intrarilor sint transmise la iesire numai pe frontul pulsului de tact, in tot restul timpului ele fiind izolate de iesiri. Unele variante au iesirile de tip "three state", in locul intrarii CLEAR fiind oferita intrarea de ENABLE.

Spre deosebire de acestea, iesirile latch-urile transparente urmaresc intrarile tot timpul cit circuitul este activat . Trecerea circuitului in starea de stocare (HOLD) face ca iesirile sa memoreze ultima stare "vazuta" la intrare. De exemplu, 74573 este un latch transparent octal (pe opt biti), "echivalent" cu registrul de tip D 74574.

Memoria RAM (Random Acces Memory) poate fi privita ca un set de foarte multi registre, dar se poate scrie (sau citi) numai intr-unul (sau citeva), la un anumit moment, prin trimiterea unei adrese corespunzatoare. Denumirea de acces "intimplator" (neadecvata dupa parerea noastra) se refera la faptul ca putem selecta orice registru in orice moment, nefiind necesara scrierea (sau citirea) lor intr-o anumita ordine. Un circuit integrat RAM poate contine astazi, de exemplu, 16 milioane de seturi de registre, fiecare set avind 8 biti (un byte); spunem ca avem o memorie RAM de 16 M byte.

Numaratoare

Asa cum am vazut, este posibil sa construim numaratoare prin conectarea bistabilelor si a portilor. Exista o mare diversitate de numaratoare accesibile ca circuite integrate; in selectarea lor trebuie sa urmarim citeva aspecte care sint discutate in continuare.

Numarul de biti si modul de numarare

Pentru un numar de 4 biti (16 stari posibile) aveti la dispozitie doua tipuri de numaratoare: binare (numite si hexazecimale sau divizoare cu 16) si BCD. Numaratoarele binare trec succesiv prin toate cele 16 stari de la 0 la 15. Spre deosebire de acestea, numaratoarele BDC trec succesiv doar prin starile de la 0 la 9, oferind la iesire codificarea in binar a unui digit. Ele mai sint cunoscute si ca divizoare cu 10.

Exista numaratoare binare si cu un numar mai mare de biti, pina la 24, dar pentru economie de pini nu toti acesti biti sint disponibli ca iesiri. Astfel, ele pot fi utilizate ca divizoare. De asemenea, sint disponibile numaratoare modulo N (0, 1, ...,
N-1, 0, ...), numarul N putind fi programat prin niveluri logice. Pentru obtinerea unui numarator cu un numar mai mare de biti puteti lega in cascada intodeauna doua numaratoare, indiferent daca sint asincrone sau sincrone.

Tipul comutarii

Este foarte important sa faceti disinctia intre numaratoarele asincrone (ripple counter) si numaratoarele sincrone. La cele asincrone, fiecare etaj este comutat de catre predecesorul sau si datorita timpului finit de propagare iesirile trec prin stari tranziente. De exemplu, la trecerea din 7 (0111) in 0 (0000), iesirile trec, pentru scurt timp, prin starile 6 (0110), 4 (0100) ajungind in final in starea 0 (0000). Daca nu se tine seama de aceasta particularitate, comportare unui circuit complex poate deveni de neinteles.

Spre deosebire de acestea, la numaratoarele sincrone toate iesirile isi schimba starea in acelasi moment, controlat de pulsul de tact. In plus, nefiind afectate de intirzierile de transmisie, numaratoarele sincrone sint mai rapide decit cele asincrone. Exista o deosebire si in ceea ce priveste frontul pe care comuta: pentru a pute a fi expandate usor, cele asincrone comuta pe frontul negativ, in timp ce numaratoarele sincrone comuta pe frontul pozitiv.

Numararea inainte-inapoi

Anumite numaratoare pot numara in ambele sensuri (UP-DOWN) dupa starea logica a unei intrari de control; uneori si intrarile de tact sint diferite pentru aceste sensuri.

Incarcarea si stergerea

Cele mai multe dintre numaratoare au intrari de date astfel incit ele pot fi "incarcate" cu numarul dorit. Aceasta incarcare se poate face fie asincron (la orice moment) fie sincronizat cu semnalul de tact. Intrucit toti bitii sint incarcati simultan, se spune ca avem o incarcare "paralela". O alta forma de "presetare" este aducerea la zero a numaratorului (CLEAR), care se poate face fie asincron, fie sincron. Vom vedea intr-un exemplu ulterior ca posibilitatea incarcarii paralele a numaratorului permite construirea comoda a divizoarelor cu orice numar mai mic sau egal cu cel al bitilor disponibili.

Alte facilitati oferite de numaratoare

Unele numaratoare au latch-uri transparente la iesire. Acest lucru este foarte util atunci cind dupa numarator urmeaza un afisaj. Cu latch-ul deschis tot timpul, cifrele afisajului s-ar modifica in permanenta; comanda adecvata a latch-ului permite sa afisam numai rezultatele obtinute dupa incheirea ciclului de numarare.

Alte numaratoare au iesirile de tip "three state", permitind multiplexarea comoda a iesirilor de la mai multe astfel de numaratoare prin simpla lor legare la un bus de iesire.

Daca doriti sa legati un afisor cu LED de un numarator, atunci puteti utiliza un circuit integrat care contine numaratorul, latch-ul, decodorul la 7 segmente si circuitul de comanda al diodelor luminescente (driverul). Exista chiar circuite integrate care contin si afisorul cu 7 segmente.


Registre de deplasare


Daca legati mai multe bistabile D astfel incit iesirea unuia sa comande intrarea D a urmatorului, obtineti un registru de deplasare. Datele sint introduse, cite una pe rind, la fiecare puls de tact, pe intrarea primului si intreaga secventa este deplasata spre dreapta la fiecare nou ciclu al tactului. Datorita modului de functionare, registrele de deplasare se pot lega unul dupa altul fara posibilitatea aparitiei competitiei de viteza. Modul in care este introdusa informatia este unul serial (cite un bit, pe rind) dar ea este apoi accesibila paralel, la iesirile bistabilelor (daca lungimea secventei nu a depasit lungimea registrului). Invers, aceasta informatie disponibila paralel poate fi obtinuta in forma seriala la iesirea ultimului bistabil din registru, exact in ordinea in care a fost introdusa. O alta aplicatie a registrelor de deplasare este ca memorii, atunci cind datele sint citite si scrise in ordine.

In alegerea unui registru de deplasare trebuie sa tinem seama de citeva performante, pe care le discutam in continuare.

Lungimea

Marimile standard sint de 4 si 8 biti, dar sint disponibile si registre de deplasare cu lungime "reglabila" intre 1 si 64.

Organizarea

Registrul descris de noi era unul cu largimea de un bit; aveam o singura linie de intrare si o singura linie de iesire. Pe acelasi principiu se construiesc si registre care sa proceseze simultan un grup de 2, 4 sau 6 biti. Majoritatea registrelor permite numai deplasarea spre dreapta dar sint si registre bidirectionale, ca 74194 si 74323. Sensul de deplasare este controlat prin niveluri logice, ca in exemplul din Fig. 6. . Atentie la registrul 7495, pretins "bidirectional", care necesita pentru deplasarea la stinga legarea fiecarei iesiri cu intrarea anterioara.

Intrarile si iesirie

Registrele de deplasare de lungime mica ofera, pe linga intrarea seriala si iesirea seriala, intrari si iesiri paralele. De exemplu, registrul 74194, prezentat in figura anterioara, poate fi incarcat paralel si poate fi citit paralel (PI/PO - parallel in, parllel out). In cazul registrelor de lungime mai mare, numarul limitat de pini ai capsulei face ca fabricantul sa nu ofere accesul decit la intrarea seriala, iesirea seriala si eventual la citevava dintre bistabilele interne. O solutie utilizata uneori pentru economisirea pinilor este efectuarea intrarii si iesirii paralele pe aceiasi pini, daca iesirile sint "three state"; atunci cind iesirile sint aduse in starea de impedanta mare, nivelul lor poate fi controlat din exterior, efectindu-se astfel scrierea paralela.

Memorii FIFO (First In First Out)

Functionarea lor este, intr-o anumita masura, similara cu aceea a registrelor de deplasare. Ca si la acestea, exista o intrare seriala unde accesul este controlat de un semnal de tact. Diferenta consta in aceea ca procesul de citire de la iesire nu este sincronizat cu cel de la intrare, dar datele sint accesibile exact in ordinea in care au intrat.

Un exemplu de aplicatie tipica este stocarea unei secvente de biti care este produsa cu o frecventa prea mare pentru a putea fi prelucrata "in timp real". Circuitul conectat la iesire citeste secventa exact in ordinea in care a fost generata, dar cu viteza sa proprie, mai mica decit aceea de generare. Este evident ca timpul de citire va fi mai lung decit timpul de scriere, abia dupa citirea intregii secvente putind incepe achizitionarea alteia noi.

Frecventmetre

Principiul de functionare a unui frecventmetru se bazeaza pe numararea ciclurilor semnalului pe o durata de timp determinata; dupa incheierea acestei durate se afiseaza rezultatul si incepe un nou ciclu de masurare a frecventei. Intreaga functie a unui frecventmetru, incluzind decodificarea si comanda afisorului si afisarea automata a punctului zecimal, este astazi disponibila intr-un singur circuit integrat care necesita foarte putine componente aditionale externe.

Voltmetre digitale

Puteti cumpara chiar voltmetre digitale (DVM - Digital VoltMeter) realizate pe un singur circuit integrat; ele contin inclusiv decodoarele si driverele pentru afisaj. Mai mult, sint produse voltmetre digitale care contin in aceeasi capsula si afisajul, cu numarul corespunzator de digiti, gata sa fie montate pe panoul aparatului (panel meter).

Microprocesoare

Dar cel mai puternic exemplu al performantelor circuitelor integrate il constituie microprocesoarele. La o extrema avem procesoarele numerice, care constituie inima calculatoarelor personale iar la cealalta sint procesoarele cu multiple intrari, iesiri si functii de memorie. Dintre ultimele fac parte microcontrolerele, destinate utilizarii "stand-alone" (independente); ele contin convertoare analog-digitale, convertoare digital-analogice, linii bidirectionale de date, memorie interna si unitate pentru operatii aritmetice. Odata programate (ele pot comunica cu un PC pe portul serial), microcontrolerele pot indeplini independent o diversitate de functii legate de monitorizarea si controlul unor sisteme fizice complexe.


Situatii patologice ale circuitelor digitale


Exista o multime de capcane care il asteapta pe proiectantul (sau utilizatorul) neexperimentat de circuite digitale. Unele, cum sint competitia de viteza (numita si hazard in literatura de limba romana) si blocarea in stari interzise (ambele discutate anterior) pot aparea indiferent de subfamilia de circuite utilizata. Altele sint "defecte genetice" ale anumitor tipuri de familii. Incercam sa trecem in revista pe cele mai importante.


Probleme in curent continuu

Grupam sub acest titlu niste efecte care apar atunci cind variabilele logice nu-si schimba starea.

Blocarea intr-o anumita stare

Aveti un circuit complicat care contine o multime de bistabile. Totul functioneaza perfect pina intr-o zi cind nimic nu mai merge; ca sa-l convingeti sa revina la comportarea decenta din trecut trebuie sa-i intrerupeti alimentarea si apoi sa-l porniti din nou. Exista, cu siguranta o stare care este exclusa din "reteta" de functionare; ajuns in ea circuitul se blocheaza si refuza sa o mai paraseasca. La fel de bine poate exista o submultime de astfel de stari, toate interzise, circuitul plimbindu-se intre ele dar neputind accede la submultimea starilor permise.

Este obligatoriu, deci, ca la proiectare sa analizam si starile interzise, asa cum am facut in exemplul din Fig. 6.. . Ca o solutie minimala, se poate include un comutator manual sau electronic care, dupa stabilirea alimentarii, sa reseteze intreg sistemul, aducindu-l cu siguranta intr-o stare permisa.

Resetarea la stabilirea alimentarii

Aceasta resetare este obligatorie si dintr-un alt motiv: trebuie sa pornim cu sistemul dintr-o stare cunoscuta, altfel functionarea sa poate sa ne apara foarte ciudata. Un circuit simplu care efectueaza acest lucru este prezentat in Fig. Condensatorul este initial descarcat si ajunge la pragul de comutare al portii dupa suficient timp ca regimul tranzitoriu aparut la cuplarea alimentarii sa se fi terminat. Pentru a asigura o comutare "curata" este bine ca prima poarta sa aiba intrarea de tip trigher Schmitt (comparator cu histerezis). Rezistorul legat serie pe intrarea portii este necesar numai pentru circuite CMOS, deoarece la acestea, daca potentialul intrarii depaseste potentialul alimentarii (asa cum se intimpla aici la intreruperea alimentarii), circuitul se poate distruge.


Probleme legate de comutatie

Competitia de viteza

O astfel de situatie a aparut in cazul circuitul din Fig. , atunci cind am incercat sa utilizam un bistabil comutat pe frontul pozitiv. Ori de cite ori avem o poarta comandata de iesirea unui bistabil, trebuie sa verificam daca ea nu este trecuta intr-o stare ce va fi anulata imediat ce bistabilul va avea timp sa comute. Pentru a evita asemenea capcane trebuie sa optam pentru un sistem care este integral sincronizat.

Stari metastabile

Ori de cite ori intrarile unui bistabil se modifica in intervalul de timp imediat inaintea pulsului de tact, bistabilul este adus intr-o stare de "confuzie". Daca schimbarea se produce exact in momentul in care bistabilul trebuie sa ia o decizie, atunci iesirea sa se comporta intr-un mod cu totul neadecvat: ezita in jurul valorii de prag intre nivelurile logice un timp de ordinul microsecundelor, desi in conditii normale i-ar fi luat in jur de 20 ns ca sa comute, sau si mai rau, trece intr-o stare pentru ca apoi sa se razgindeasca si sa comute inapoi.

Aparitia acestor stari metastabile poate fi evitata daca toate intrarile bistabilelor ramin nemodificate un timp minim inaintea pulsului de tact, specificat de producator ca . In sistemele sincronizate, acest lucru se poate realiza daca logica combinationala este destul de rapida ca starea sa sa se stabilizeze cu suficient inainte de aparitia noului puls de tact. Problema ramine insa pentru intrarile care nu sint sincronizate; o solutie ar fi utilizarea, pentru ele, de circuite de sincronizare, ca cel studiat in Fig. .

Sincronizarea imprecisa (clock skew)

Efectul apare mai ales la circuitele CMOS lente. Capacitatea parazita, combinata cu rezistenta de iesire in jur de 500 poate face ca frontul pulsului de tact sa devine lent, ajungind pe la 100 ns. Cum pragul intre nivelurile logice este imprastiat tehnologic intre o treime si doua treimi din tensiunea de alimentare, doua circuite comandate de la acelasi puls de tact pot comuta cu decalaj de timp intre ele inacceptabil de mare: daca doua registre de deplasare sint legate in cascada, bitul care apare la iesirea primului poate fi pierdut. Pentru asemenea situatii deosebite, in care sincronizarea exacta este esentiala, semnalul de tact comun trebuie furnizat de la un circuit repetor situat in imediata apropiere a circuitelor in cauza, pentru a evita firele lungi cu capacitati parazite mari.

In general, intrarilor de tact ale tuturor circuitelor digitale trebuie sa li se acorde o atentie speciala. Daca linia pe care vine semnalul de tact este zgomotoasa, semnalul trebuie "curatat" cu o poarta, de preferinta una cu histerezis (trigher Schmitt). Puteti avea probleme mai ales cu liniile de tact care provin de la o alta placa sau de la circuite digitale ce fac parte din alta familie.


Deficiente congenitale


Familia bipolara TTL

Trebuie sa va amintiti intodeauna cind lucrati cu TTL ca pentru a mentine o intrare in LOW trebuie sa absorbiti un curent semnificativ (0.25 mA pentru LS, 0.5 mA pentru F). Aceasta face dificila utilizarea unor retele RC de intirziere, deoarece trebuie sa mentineti rezistorul la valori mici.

Pragul de comutare al intrarilor este relativ coborit (1.3 V) ceea ce face aceasta familie, ca si subfamiliile CMOS care o imita (HCT si ACT), destul de sensibila la zgomote. Viteza mare a familiei face ca intrarile sa fie sensibile chiar la pulsuri foarte scurte sosite pe linia de masa (!); evident ca tranzitiile rapide ale iesirilor produc asemenea pulsuri ceea ce face situatia si mai rea.

Familia TTL are nevoie de o tensiune de alimentare cu o marja de eroare destul de mica, 5 V 5%; o tensiune mai mica nu asigura functionarea corecta, o tensiune prea mare poate produce chiar distrugerea circuitelor. Curentul absorbit in repaus (cind nu se modifica starile logice) este mare. La comutare, datorita etajului in contratimp, apar pulsuri scurte pe linia de alimentare; din acest motiv se recomanda utilizarea extensiva a condensatoarelor de decuplare a alimentarii (10-100 nF). In mod ideal, ar trebui sa montam cite unul pentru fiecare circuit integrat, in imediata sa apropiere (Fig. 6. ).


Familia CMOS

Circuitele din aceasta familie se pot deteriora foarte usor datorita electricitatii statice; datorita uscaciunii aerului, mortalitatea lor creste semnificativ in timpul iernii. Subfamiliile mai recente, HC, HCT, AC si ACT sint mai robuste decit predecesoarele lor.

Pragul de comutare intre niveluri ale intrarilor este puternic imprastiat tehnologic; atunci cind se combina cu impedanta mare de iesire (500 pentru seria 4000B si subfamilia 74C) si capacitatile parazite ale liniilor, aceasta conduce, asa cum am vazut la dificultati in sincronizare (clock skew).

Atunci cind nu sint utilizate, toate intrarile trebuie legate obligatoriu la HIGH sau LOW. Cind exista riscul ca o intrare sa ramina in gol (daca, de exemplu ea este legata prin conector la o iesire de pe alta placa) ea trebuie conectata cu un rezistor de citiva k la masa sa alimentare.

Subfamiliile noi, de mare viteza, AC si ACT, prezinta si o alta deficienta. Iesirea lor de mare viteza, pentru a putea forta potentialul unei sarcini capacitive, vehiculeaza curenti foarte mari, ceea ce face ca potentialul pinului de masa sa salte instantaneu in sus cu 1-2 volti ! (ground bounce). Utilizatorii acestor circuite trebuie sa asigure linii de masa de inductanta foarte mica; cea mai indicata solutie este utilizarea unui plan de masa si a multor condensatoare de decuplare, avind inductanta cit mai coborita. In concluzie, daca nu aveti nevoie de viteza evitati aceste subfamilii si utilizati circuitele HC sau HCT.


Document Info


Accesari: 20618
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )