The logična vrata so osnova digitalne elektronike. Zaradi tega so zelo pomembni, in če želite z njimi začeti sodelovati, morate vedeti, kaj so, kako so sestavljeni in njihovo funkcijo. Tako lahko uporabite serijo čipov, ki obstajajo na trgu, ki imajo to vrsto vrat, tako da lahko začnete ustvarjati svoje projekte, ki delujejo s to logiko.
Ta vrata v kombinaciji z drugimi Elektronske komponente, pa tudi s krožniki kot so Arduino, lahko dajo veliko igre ustvarjalcem kot lahko vidite sami.
Kaj so logična vrata?
The logična vrata so temeljni elementi digitalne logike za izvedbo digitalnih elektronskih vezij. Ta vrata zagotavljajo nizko (0) ali visoko (1) napetostne signale na svojih izhodih, odvisno od stanja njihovih vhodov. Na splošno imajo en izhod in dva vhoda, lahko pa so vrata z več kot 2 vhodoma. Poleg tega obstajajo posebnosti, kot so invertna vrata ali NE, imajo samo en vhod in en izhod.
Zahvaljujoč tem logičnim vhodom in izhodom lahko dobite osnovne binarne logične operacije, kot so seštevanje, množenje, negacija itd.
Kako se izvajajo?
Logičnih vrat ni mogoče izvesti samo na en način. Pravzaprav zato obstajajo različni logične družine. Vsaka od teh družin bo vrata implementirala na en način z uporabo različnih elektronskih komponent.
Z ejemploČe se za čip uporablja TTL, bodo vrata sestavljena iz bipolarnih tranzistorjev, medtem ko logika CMOS temelji izključno na MOSFET tranzistorjih. Poleg teh dveh družin, ki sta običajno najbolj priljubljeni, obstajajo še druge, kot so BiCMOS (združuje bipolarne in CMOS tranzistorje), RTL (upori in bipolarni tranzistorji), DTL (diode in tranzistorji), ECL, IIL itd.
Ni ena družina veliko boljša od druge, odvisno bo od aplikacije. Toda kljub temu, CMOS Je eden izmed najbolj uporabljenih v naprednih vezjih, kot so CPU, MCU, GPU, pomnilnik itd. Za druga enostavnejša vezja je običajno tudi najti TTL.
aplikacije
Uporaba teh logičnih vrat je neskončna. S temi bistvenimi "opekami" lahko gradite množica digitalnih vezij. Od preprostega seštevalnika do zapletenega CPU-ja, preko številnih drugih vezij, ki si jih lahko zamislite. Pravzaprav imajo številni sistemi, ki jih uporabljate vsak dan, kot so računalnik, televizor, mobilni telefon itd., na milijarde logičnih vrat.
Un praktični primer uporabe logičnih vrat bi bil ta preprost seštevalec, ki ga lahko vidite na zgornji sliki. Gre za zelo preprosto vezje, ki je sposobno dodati dva bita (A in B) v svoje vhode, da dobi rezultat vsote, in tudi Carry, torej tisto, kar odvzamete ... Vidite lahko rezultate, ki bi jih daj v naslednji tabeli:
A | B | Seštevek | Prenos | Binarni rezultat |
---|---|---|---|---|
0 | 0 | 0 | 0 | 00 |
0 | 1 | 1 | 0 | 01 |
1 | 0 | 1 | 0 | 01 |
1 | 1 | 0 | 1 | 10 |
Če pogledate to tabelo, če dodate 0 + 0 v binarnem sistemu, dobite 0, če dodate 1 + 0, je 1, če pa dodate 1 + 1, bi dalo 2, kar v binarnem sistemu ustreza 10.
Vrste logičnih vrat
Kar se tiče vrste logičnih vratImate jih kar nekaj, čeprav so najbolj uporabljeni naslednji (z njihovimi tabelami resnice):
- Medpomnilnik (Da): znan je kot medpomnilnik ali neposredna vrata, saj bo njegov izhod imel enako stanje kot njegov vhod. Čeprav se morda zdi neuporaben, se v mnogih logičnih vezjih pogosto uporablja kot tokovni ojačevalnik ali kot sledilnik napetosti.
Vhod | Izhod |
---|---|
0 | 0 |
1 | 1 |
- NE (razsmernik): je logična negacija (¬ o '), to pomeni, da obrne bit na svojem izhodu.
Vhod | Izhod |
---|---|
0 | 1 |
1 | 0 |
- IN (Y): ta druga vrata izvajajo funkcijo produkta (·) binarnih bitov svojega vhoda. To pomeni, da bi bilo kot pomnožiti A in B. Zato je vse, kar je nič, nič, svojemu izhodu bi dalo eno samo, če sta oba vhoda 1. Od tod njegovo ime 1 IN 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
- ZLATO): ta druga vrata izvedejo operacijo logičnega seštevanja (+). To pomeni, da mora biti eden od njegovih izhodov ALI drugi, ALI oba na 1, da je njegov izhod 1. Ko sta oba 0, je tudi izhod 0.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- XOR (ali izključno): Ta izključni OR izvaja logično funkcijo A'B + AB ', njegov simbol pa je . V tem primeru, če sta njena dva vhoda enaka, je izhod 0. Če sta različna, bo 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NAND (Y negirano): je negirani logični produkt, to je inverzna vrednost AND. To je kot uporaba NOT na izhodu IN za invertiranje izhodnih bitov. Zato so rezultati:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NOR (ali zavrnjeno): negirana logična vsota ali kar je isto, ALI z negiranim izhodom, kar ima za posledico inverzno OR.
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
- XNOR (izključno NOR): to je kot uporaba binarnega dopolnila za vrata XOR. To pomeni, da izvedite operacijo AB + A'B. A krat B dodano A krat B zavrnjeno. Zato bodo izhodi podobni tistim pri obrnjenem XOR:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
NOR in NAND sta najbolj zanimiva vrata, saj sta znana kot univerzalna logična vrata. To pomeni, da lahko samo z njimi izdelate vezja, ki predstavljajo katero koli drugo vrsto logičnih vrat. To je pomembno, saj če kupite čipe s temi vrati, imate vse funkcije. Na primer, če sta dva vhoda NOR premoščena ali je NAND enakovreden NE. Tukaj imate več ustreznikov:
Te svetujemČe želite izvedeti več, Google preprosto vezje s poljubnimi vrati. In če želite izvedeti, kaj počne, naredite nekakšen "povratni inženiring", sledite vrsticam vhodov in izhodov in si oglejte stanje vsake vrstice glede na vhode, ki so podani izhodu.
Z ejemploČe pogledate zgornjo sliko, ekvivalenčni diagram ALI z vrati NAND, boste videli, da je sestavljen iz dveh vrat NAND s premoščenim izhodom in oba izhoda gresta na drugo NAND. Upoštevajte naslednje:
- Če greste na tabelo resnice NAND, boste videli, da je izhod, ko sta njegova dva vhoda 0, izhod 1, in ko sta njegova dva vhoda 1, je izhod 0.
- Ker sta premoščena, če je vhod 1 (eden vnese oba), je rezultat 0. In ko je vhod 0 (oba nič), bo izhod 1, kar je enakovredno NE.
- Zato imamo dva NOT-ja za bita A in B. Na njunem izhodu bomo torej imeli A 'in B'.
- Ti dve negaciji gresta v zadnji NAND, ki bo izvedel inverzni logični produkt teh dveh bitov.
- Po zakonih logike je to enako direktni vsoti, to je A + B. Zato bo končni rezultat, kot da bi bil ALI ...
Serija čipov Logic Gate - kje kupiti
V trgovinah, specializiranih za elektroniko, lahko kupi poceni čips z logičnimi vrati, ki jih lahko začnete uporabljati v svojih projektih. Ti čipi niso ena logična vrata, vendar vam omogočajo, da jih imate več, tako da lahko povežete njihove vhode in izhode, kot jih potrebujete. Na primer, na diagramu na zgornji sliki lahko vidite tipičen pinout DIP čipa s 4 vrati NAND. Poleg tega ima tudi dva zatiča za napajanje (Vcc in GND).
Tukaj je nekaj priporočila za nakup:
- Ni najdenih izdelkov.
- Huaban: komplet s 30 čipi z univerzalnimi vrati NAND.
- Zebulon: komplet čipov 120 CMOS.
Drugi viri
Če želite izvedeti več o tem, kako implementirati ta vrata in kako začeti ustvarjati vezja z njimi, lahko uporabite ta Drugi viri kaj priporočam:
- Programska oprema SimulIDE da bi lahko simulirali delovanje teh vezij z vrati. Je brezplačen, odprtokoden in medplatformski.
- Spletni binarni kalkulator (Uporabljate lahko tudi kalkulator vašega operacijskega sistema v binarnem načinu).
- Ni najdenih izdelkov.
- Knjiga o digitalnih logičnih vezjih: od načrtovanja do eksperimenta.
Digitalna logika z Arduinom
Drugi vir kaj imaš v rokah, če že imaš krožnik Arduino UNO v tvojih rokah je uporabite Arduino IDE za ustvarjanje skic ki simulirajo te logične funkcije, da bi na primer videli rezultat na bolj vizualen način z LED, ki simulira izhod vrat. Na primer, če LED postavite na pin 7 in uporabite 8 in 9 kot vhoda A in 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); }
Kot lahko vidite, je bila tukaj uporabljena funkcija IN (&), vendar lahko to vrstico kode pod vrstico // IN zamenjate z drugimi za uporabo druge logične funkcije:
//OR pinOutState = pinAState | pinBState; //NOT pinOutState = !pinAState; //XOR pinOutState = pinAState ^ pinBState; //NAND pinOutState = !(pinAState & pinBState); //NOR pinOutState = !(pinAState | pinBState); //XNOR pinOutState = !(pinAState ^ pinBState);