The loogikaväravad on digitaalse elektroonika aluseks. Sel põhjusel on need väga olulised ja kui soovite nendega koostööd alustada, peaksite teadma, mis need on, kuidas need koosnevad ja nende funktsioonid. Nii et saate kasutada turul olemasolevaid kiipide seeriaid, millel on seda tüüpi uksed, et saaksite hakata selle loogikaga oma projekte tegema.
Need uksed kombineerituna teistega Elektroonilised osad, ja isegi plaatidega nagu Arduino, nad võivad anda tegijatele palju mängu nagu näete ise.
Mis on loogikaväravad?
The loogika väravad need on digitaalse loogika põhielemendid digitaalsete elektrooniliste lülituste rakendamiseks. Need väravad annavad oma väljundis madala (0) või kõrge (1) pinge signaale olenevalt nende sisendite olekust. Tavaliselt on neil üks väljapääs ja kaks sissepääsu, kuid uksi võib olla rohkem kui 2 sissepääsuga. Lisaks on sellised iseärasused nagu inverting gate või NOT, sellel on ainult üks sisend ja üks väljund.
Tänu nendele Boole'i sisenditele ja väljunditele saate elementaarsed kahendloogikaoperatsioonid, nagu liitmine, korrutamine, eitamine jne.
Kuidas neid rakendatakse?
Loogikaväravaid ei saa rakendada ainult ühel viisil. Tegelikult on sellepärast erinevaid loogilised perekonnad. Kõik need perekonnad rakendavad väravat ühel viisil, kasutades erinevaid elektroonilisi komponente.
Por ejemploKui kiibi jaoks kasutatakse TTL-i, koosnevad väravad bipolaarsetest transistoridest, samas kui CMOS-i loogika põhineb ainult MOSFET-transistoridel. Lisaks nendele kahele perekonnale, mis on tavaliselt kõige populaarsemad, on ka teisi, nagu BiCMOS (ühendab bipolaarseid ja CMOS-transistore), RTL (takistid ja bipolaarsed transistorid), DTL (dioodid ja transistorid), ECL, IIL jne.
Üks pere pole palju parem kui teine, see sõltub rakendusest. Kuid sellegipoolest, CMOS See on üks enim kasutatud täiustatud vooluahelates, nagu CPU, MCU, GPU, mälu jne. Teiste lihtsamate vooluahelate puhul on samuti tavaline leida TTL.
rakendused
Nende loogikaväravate rakendused on lõputud. Nende oluliste "telliste" abil saate ehitada suur hulk digitaalseid lülitusi. Alates lihtsast liitjast kuni keeruka CPU-ni ja läbi paljude muude vooluringide, mida võite ette kujutada. Tegelikult on paljudel iga päev kasutatavatel süsteemidel, nagu arvuti, teler, mobiiltelefon jne, miljardeid loogikaväravaid.
Un praktiline näide loogikaväravate rakendamiseks oleks see lihtne liitja, mida näete ülaloleval pildil. See on väga lihtne vooluahel, mis on võimeline liitma oma sisenditesse kaks bitti (A ja B), et anda Summa tulemus, ja ka Carry, st see, mida te ära võtate ... Näete tulemusi, mis see oleks esitage järgmises tabelis:
A | B | Summa | Viima | Binaarne tulemus |
---|---|---|---|---|
0 | 0 | 0 | 0 | 00 |
0 | 1 | 1 | 0 | 01 |
1 | 0 | 1 | 0 | 01 |
1 | 1 | 0 | 1 | 10 |
Kui vaatate seda tabelit, siis kui lisate kahendsüsteemis 0 + 0, annab see teile 0, kui liidate 1 + 0, on see 1, aga kui lisate 1 + 1, siis annab see 2, mis kahendsüsteemis vastab 10-le.
Loogikaväravate tüübid
Nagu loogikaväravate tüübid, on teil neid hea hulk, kuigi enim kasutatud on järgmised (koos nende tõetabelitega):
- Puhver (jah): seda tuntakse kui puhvrit või otseväravat, kuna selle väljundil on sama olek kui sisendil. Kuigi see võib tunduda kasutu, kasutatakse seda paljudes loogikaahelates sageli vooluvõimendi või pingejälgijana.
Sissepääs | Välju |
---|---|
0 | 0 |
1 | 1 |
- EI (inverter): on loogiline eitus (¬ o '), see tähendab, et see inverteerib väljundis oleva biti.
Sissepääs | Välju |
---|---|
0 | 1 |
1 | 0 |
- JA (Y): see teine värav täidab oma sisendi binaarbittide korrutisfunktsiooni (·). See tähendab, et see oleks nagu A ja B korrutamine. Seetõttu on kõik nulliga null, see annaks oma väljundile ainult ühe, kui mõlemad sisendid on 1. Sellest ka selle nimi 1 JA 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
- KULD): see teine värav sooritab loogilise liitmise operatsiooni (+). See tähendab, et üks selle väljunditest VÕI teine või mõlemad peavad olema 1-ga, et selle väljund oleks 1. Kui mõlemad on 0, on väljund samuti 0.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- XOR (või eksklusiivne): See eksklusiivne VÕI täidab Boole'i funktsiooni A'B + AB' ja selle sümbol on . Sel juhul, kui selle kaks sisendit on võrdsed, on väljund 0. Kui need on erinevad, on see 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NAND (Y eitatud): on eitatud loogiline korrutis, see tähendab JA pöördväärtus. See on sama, nagu kasutaksite AND-väljundis EI väljundbittide ümberpööramiseks. Seetõttu on tulemused järgmised:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NOR (või eitatud): eitatud loogiline summa või mis on sama, VÕI selle eitatud väljundiga, mille tulemuseks on VÕI pöördväärtus.
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
- XNOR (eksklusiivne NOR): see on nagu binaarse täienduse rakendamine XOR-väravale. See tähendab, et tehke AB + A'B operatsioon. A korda B lisati A korda B eitatud. Seetõttu on väljundid nagu ümberpööratud XOR-i väljundid:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Nii NOR kui ka NAND on kaks kõige huvitavamat väravat, kuna neid tuntakse kui universaalsed loogikaväravad. See tähendab, et saate luua ainult nendega vooluringe mis tahes muud tüüpi loogikavärava esindamiseks. See on oluline, sest kui ostate nende ustega kiipe, saate kasutada kõiki funktsioone. Näiteks kui NOR kaks sisendit on sillatud või NAND on samaväärne EI-ga. Siin on rohkem vasteid:
Te ma soovitanLisateabe saamiseks guugeldage lihtsat vooluringi mis tahes väravatega. Ja et teada saada, mida see teeb, tehke omamoodi "pöördprojekteerimine", jälgige sisendite ja väljundite ridu ja vaadake iga rea olekut vastavalt väljundile antud sisenditele.
Por ejemploKui vaatate ülaltoodud pilti, NAND-väravatega VÕI ekvivalentskeemi, näete, et see koosneb kahest NAND-väravast, mille väljund on sillatud ja mõlemad väljundid lähevad teise NAND-i. Pidage meeles järgmist.
- Kui lähete NAND-tõetabelisse, näete, et kui selle kaks sisendit on 0, on väljund 1 ja kui selle kaks sisendit on 1, on väljund 0.
- Kuna need on sillatud, siis kui sisend on 1 (üks sisestab mõlemat), on tulemus 0. Ja kui sisend on 0 (mõlemad null), on väljund 1, mis võrdub EI-ga.
- Seetõttu on meil kaks EI-d bittide A ja B jaoks. Nende väljundis on meil seega A 'ja B'.
- Need kaks eitust lähevad viimasesse NAND-i, mis teostab nende kahe biti pöördvõrdelise loogilise korrutise.
- Loogikaseaduste kohaselt võrdub see otsesummaga, st A + B. Seetõttu on lõpptulemus selline, nagu oleks see VÕI ...
Logic Gate Chip seeria – kust osta
Elektroonikale spetsialiseerunud kauplustes saate osta odavaid krõpse loogikaväravatega, mida oma projektides kasutama hakata. Need kiibid ei ole üks loogikavärav, kuid võimaldavad teil neid mitut kasutada, et saaksite nende sisendeid ja väljundeid vastavalt vajadusele siduda. Näiteks ülaloleval pildil oleval diagrammil näete tüüpilist DIP-kiibi väljundit 4 NAND-väravaga. Lisaks on sellel ka kaks toitekontakti (Vcc ja GND).
Siin on mõned ostusoovitused:
- Tooteid ei leitud..
- Huaban: 30-kiibiline komplekt universaalsete NAND-väravatega.
- Zebulon: 120 CMOS-kiibi komplekt.
Muud ressursid
Nende väravate rakendamise ja nende abil vooluringide loomise alustamiseks saate neid kasutada Teine ressurss mida ma soovitan:
- SimulIDE tarkvara et oleks võimalik simuleerida nende ahelate tööd väravatega. See on tasuta, avatud lähtekoodiga ja platvormideülene.
- Interneti-binaarkalkulaator (Operatsioonisüsteemi kalkulaatorit saate kasutada ka binaarrežiimis).
- Tooteid ei leitud..
- Digitaalsete loogikalülituste raamat: disainist katseni.
Digiloogika koos Arduinoga
Muu ressurss mis sul käes on, kui sul juba on taldrik Arduino UNO sinu kätes on kasutage visandite loomiseks Arduino IDE-d mis simuleerivad neid loogikafunktsioone, et näiteks ukse väljundit simuleeriva LED-iga tulemust visuaalsemalt näha. Näiteks LED-i panemine viigule 7 ning 8 ja 9 kasutamine sisenditena A ja 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); }
Siin on kasutatud funktsiooni AND (&), nagu näete, kuid saate selle koodirea // AND rea all asendada teiste kasutatavate koodidega. muud loogilised funktsioonid:
//OR pinOutState = pinAState | pinBState; //NOT pinOutState = !pinAState; //XOR pinOutState = pinAState ^ pinBState; //NAND pinOutState = !(pinAState & pinBState); //NOR pinOutState = !(pinAState | pinBState); //XNOR pinOutState = !(pinAState ^ pinBState);