Portes lògiques: tot el que has de saber

portes lògiques

Els portes lògiques són la base de l'electrònica digital. Per això, són molt importants, i si vols començar a treballar-hi hauries de conèixer què són, com estan constituïdes, i la seva funció. Així podràs emprar les sèries de xips que hi ha al mercat que tenen aquest tipus de portes perquè comencis a fer els teus propis projectes treballant amb aquesta lògica.

Aquestes portes, combinades amb altres components electrònics, i fins i tot amb plaques com Arduino, poden donar molt de joc als makers com podràs comprovar tu mateix.

Què són les portes lògiques?

circuit lògica digital

Els portes lògiques són elements fonamentals de la lògica digital per a la implementació de circuits electrònics digitals. Aquestes portes atorguen senyals de voltatge baix (0) o alt (1) a la sortida segons l'estat de les entrades. Generalment tenen una sortida i dues entrades, però hi pot haver portes amb més de 2 entrades. A més, hi ha particularitats com ara la porta inversora o NOT, té una sola entrada i una sortida.

Gràcies a aquestes entrades i sortides booleanes es pot obtenir operacions lògiques binàries elementals, com la suma, la multiplicació, la negació, etc.

Com s'implementen?

Les portes lògiques no només es poden implementar de manera única. De fet, per això hi ha diferents famílies lògiques. Cadascuna d'aquestes famílies implementarà la porta d'una forma, usant uns components electrònics diferents.

Per EXEMPLE, si es fa servir TTL per al xip, les portes estaran formades per transistors bipolars, mentre que la lògica CMOS es basa únicament en transistors MOSFET. A més d'aquestes dues famílies, que solen ser les més populars, també n'hi ha d'altres com BiCMOS (combina transistors bipolars i CMOS), RTL (resistències i transistors bipolars), DTL (díodes i transistors), ECL, IIL, etc.

No hi ha una família gaire millor que una altra, dependrà de l'aplicació. No obstant això, la CMOS és una de les més utilitzades en circuits avançats, com la CPU, MCU, GPU, memòries, etc. Per a altres circuits més simples també és freqüent trobar-se amb la TTL.

aplicacions

sumador simple

Les aplicacions daquestes portes lògiques són infinites. Amb aquests «maons» essencials es pot construir multitud de circuits digitals. Des d'un simple sumador, fins a una complexa CPU, passant per molts altres circuits que puguis imaginar. De fet, molts de sistemes que uses diàriament, com el teu PC, el teu TV, mòbil, etc., tenen milers de milions de portes lògiques.

Per poder crear aquests circuits cal tenir coneixements de lògica digital, àlgebra de Boole, conèixer bé el sistema binari, simplificar funcions, etc. Tot això donaria per a diversos articles més, però seria interessant…

Un exemple pràctic daplicació de portes lògiques seria aquest senzill sumador que pots veure a la imatge superior. Es tracta d'un circuit molt senzill, que és capaç de sumar dos bits (A i B) a les entrades per donar el resultat Sum, i també el Carry, és a dir, el que t'emportes… Pots veure els resultats que donaria a la següent taula:

A B Suma Portar Resultat binari
0 0 0 0 00
0 1 1 0 01
1 0 1 0 01
1 1 0 1 10

Si et fixes en aquesta taula, si sumes 0+0 a binari et dóna 0, si sumes 1+0 és 1, però si sumes 1+1 donaria 2, que en sistema binari correspon a 10.

Tipus de portes lògiques

SÍMBOLS portes lògiques

Pel que fa als tipus de portes lògiques, en tens un bon nombre, encara que les més usades són les següents (amb les seves taules de veritat):

Com pots veure a la imatge superior, hi ha diverses nomenclatures per representar les portes lògiques als circuits. El més estès és l'ANSI (segona fila), encara que està bé saber-ne els equivalents per saber interpretar altres circuits amb altres formats (DIN o alemany, BS o britànic, IEC, NEMA,…).
  • Buffer (Sí): es coneix com a buffer o porta directa, ja que la seva sortida tindrà el mateix estat que la seva entrada. Encara que sembli que no té utilitat, en molts circuits lògics se sol utilitzar com un amplificador del corrent o com un seguidor de tensió.
Entrada Sortida
0 0
1 1
  • NOT (inversor): és la negació lògica (¬ o '), és a dir, inverteix el bit a la sortida.
Entrada Sortida
0 1
1 0
  • AND (I): aquesta altra porta realitza una funció producte (·) dels bits binaris de la seva entrada. És a dir, seria com multiplicar A i B. Per tant, qualsevol cosa per zero és zero, tan sols en donaria un a la sortida si les dues entrades són 1. D'aquí el seu nom 1 i 1.
A B S
0 0 0
0 1 0
1 0 0
1 1 1
  • OR(O): aquesta altra porta realitza una operació de suma lògica (+). És a dir, O una de les sortides O l'altra, O totes dues han d'estar a 1 perquè la seva sortida sigui 1. Quan totes dues són 0, la sortida és 0 també.
A B S
0 0 0
0 1 1
1 0 1
1 1 1
  • XOR (O exclusiva): aquesta O exclusiva realitza la funció booleana A'B+AB', i el símbol és

    . En aquest cas, si les dues entrades són iguals, la sortida és 0. Si són diferents, llavors serà 1.

A B S
0 0 0
0 1 1
1 0 1
1 1 0
  • NAND (I negada): és el producte lògic negat, és a dir, l'invers de l'AND. És com si usessis una NOT a la sortida de l'AND per invertir els bits de sortida. Per tant, els resultats són:
A B S
0 0 1
0 1 1
1 0 1
1 1 0
  • NOR (O negada): la suma lògica negada, o el que és el mateix, una OR amb la seva sortida negada, donant com a resultat allò invers de l'OR.
A B S
0 0 1
0 1 0
1 0 0
1 1 0
  • XNOR (NOR exclusiva): és com aplicar el complement binari a una porta XOR. És a dir, fer l'operació AB + A'B'. A per B sumat a A per B negades. Per tant, les sortides seran com les de la XOR invertides:
A B S
0 0 1
0 1 0
1 0 0
1 1 1

Tant la NOR com la NAND són dues de les portes més interessants, ja que es coneixen com portes lògiques universals. És a dir, es poden fer circuits només amb elles per representar qualsevol altre tipus de porta lògica. Això és important, ja que si compres xips amb aquestes portes, podràs tenir totes les funcions. Per exemple, si es posen les dues entrades d'una NOR o NAND equival a una NOT. Més equivalents els tens aquí:

equivalents portes

Funcions: electronics-tutorials.ws

Te aconsello, per aprendre més, que busquis a Google un circuit simple amb portes qualsevol. I per saber què fa, fer una mena d'enginyeria inversa, segueixis les línies de les entrades i sortides i vagis veient l'estat de cada línia segons unes entrades donades fins a la sortida.

Per EXEMPLE, si us fixeu en la imatge superior, el diagrama d'equivalència d'una OR amb portes NAND, veuràs que es compon de dues portes NAND amb la seva sortida pontejada i ambdues sortides van a una altra NAND. Tingues en compte el següent:

  • Si te'n vas a la taula de veritat de la NAND, veuràs que quan les dues entrades són 0 la sortida és 1, i quan les seves dues entrades són 1 la sortida és 0.
  • En estar pontades, si l'entrada és 1 (entra un per ambdues), el resultat és 0. I quan l'entrada és a 0 (ambdues a zero), la sortida serà 1, cosa que equival a una NOT.
  • Per tant, tenim dos NOT per als bits A i B. A la sortida tindrem per tant A' i B'.
  • Aquestes dues negacions entren a la NAND última, que farà un producte lògic invers d'aquests dos bits.
  • Segons les lleis de la lògica, això equival a la suma directa, és a dir, A+B. Per tant, el resultat final serà com si es tractés d'una OR…

Sèries de xips de portes lògiques: on comprar

A les botigues especialitzades en electrònica podràs comprar xips barats amb portes lògiques per començar a fer servir en els teus projectes. Aquests xips no són una única porta lògica, sinó que et permeten disposar de diverses perquè puguis enllaçar les seves entrades i sortides com necessitis. Per exemple, al diagrama de la imatge de dalt podeu veure un típic pinout d'un xip DIP amb 4 portes NAND. A més, també disposa de dues pins per a alimentació (Vcc i GND).

Aquí tens algunes recomanacions de compra:

altres recursos

Per poder aprendre més sobre com implementar aquestes portes i com començar a crear-hi circuits, en pots fer ús altres recursos que et recomano:

Lògica digital amb Arduino

Arduino UNO funcions Millis

Un altre recurs que tens a les teves mans si ja tens una placa Arduino UNO a les teves mans és utilitzar Arduino IDE per crear sketchs que simulen aquestes funcions lògiques per, per exemple, veure el resultat de manera més visual amb un LED que simuli la sortida de la porta. Per exemple, posant un LED al pin 7 i utilitzar 8 i 9 com a entrades A i B:

int pinOut = 7;
int pinA = 8;
int pinB = 9;

void setup()
{
pinMode(pinOut, OUTPUT);
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
}
void loop()
{
boolean pinAState = digitalRead(pinA);
boolean pinBState = digitalRead(pinB);
boolean pinOutState;
//AND
pinOutState =pinAState & pinBState;
digitalWrite(pinOut, pinOutState);
}

Aquí s'ha fet servir una funció AND (&), com pots veure, però pots substituir aquesta línia de codi sota la línia //AND per altres per emprar altres funcions lògiques:

//OR
pinOutState = pinAState | pinBState;

//NOT
pinOutState = !pinAState;

//XOR
pinOutState = pinAState ^ pinBState;

//NAND
pinOutState = !(pinAState & pinBState);

//NOR
pinOutState = !(pinAState | pinBState);

//XNOR
pinOutState = !(pinAState ^ pinBState);


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.