Koło elektroniczno-informatyczne

Bramki

 

 

Funkcje logiczne

 
   
Technika cyfrowa opiera się na tzw. algebrze Boole'a. Rozróżniamy w niej dwie wartości logiczne: prawdę (ang. true) i fałsz (ang. false). W urządzeniach elektronicznych wartości te będą reprezentowane przez poziomy napięć:
  • false: 0..0,8V
  • true: 2..5V

Uwaga na przyszłość:

Poziomy logiczne zależą od wartości napięcia zasilającego układy cyfrowe. Dla mikrokontrolerów firmy Atmel obowiązuje reguła:
  • poziom niski (false, F, low, L, 0) < 0,2VCC
  • poziom wysoki (true, T, high, H, 1) > 0,7VCC

Na przykład:

Dla VCC = 1,8V (najniższe możliwe napięcie zasilania mikrokontrolerów Atmel):

  • poziom niski < 0,36V
  • poziom wysoki > 1,26V

Dla VCC = 2,7V (napięcie przy zasilaniu z dwóch akumulatorków paluszkowych):

  • poziom niski < 0,54V
  • poziom wysoki > 1,89V

Dla VCC = 5V (typowe napięcie pracy mikrokontrolera):

  • poziom niski < 1V
  • poziom wysoki > 3,5V

Napięcie o poziomie pośrednim traktowane jest jako nieokreślone i należy go unikać. W przeciwnym wypadku działanie układu będzie niestabilne.

 

Umówmy się, że poziomy logiczne będziemy oznaczali cyframi 0 (poziom niski) oraz 1 (poziom wysoki).

W algebrze Boole'a, podobnie jak w zwykłej algebrze, występują działania na wartościach logicznych, które będziemy nazywali funkcjami. Poniżej przedstawiamy trzy podstawowe funkcje logiczne, które będziemy opisywali nazwami angielskimi, ponieważ tak jest przyjęte w literaturze fachowej, więc się przyzwyczajaj.

Pierwsza funkcja to NOT, czyli negacja lub zaprzeczenie logiczne. Tabelka logiczna jest następująca:

a NOT a
0 1
1 0

Jest to funkcja jednoargumentowa. Zwraca zawsze wartość przeciwną logicznie do wartości swojego argumentu.

 

Drugą funkcją jest OR, czyli alternatywa lub suma logiczna. W przeciwieństwie do funkcji NOT funkcja OR wymaga co najmniej dwóch argumentów.

a b a OR b
0 0 0
0 1 1
1 0 1
1 1 1

Funkcja OR przybiera wartość wysoką 1 tylko wtedy, gdy jeden z jej argumentów ma wartość 1. Wartość niską 0 funkcja OR przyjmuje tylko wtedy, gdy wszystkie jej argumenty mają wartość 0. Zwróć uwagę, że funkcja OR jest podobna do operacji dodawania. Suma dwóch liczb nieujemnych jest równa zero, gdy obie liczby mają wartość 0 (0 + 0 = 0;  0 OR 0 = 0). Suma dwóch liczb nieujemnych jest różna od zera, jeśli co najmniej jedna z tych liczb jest różna od zera. Funkcja może mieć więcej niż dwa argumenty:

a b c a OR b OR c
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

 

Trzecią funkcją jest AND, czyli koniunkcja lub iloczyn logiczny. Funkcja AND jest również co najmniej dwuargumentowa.

a b a AND b
0 0 0
0 1 0
1 0 0
1 1 1

Funkcja AND przyjmuje poziom wysoki 1 tylko wtedy, gdy wszystkie jej argumenty mają poziom 1. W przeciwnym razie funkcja AND ma poziom niski 0. Takie zachowanie podobne jest to iloczynu liczb: iloczyn dwóch liczb jest różny od zera tylko wtedy, gdy obie liczby są różne od zera (1 AND 1 = 1). W przeciwnym razie iloczyn jest równy zero.

 

Ciekawostka

Jeśli użyjemy tzw. logiki ujemnej, czyli za prawdę przyjmiemy poziom 0, a za fałsz poziom 1 (a zatem na odwrót niż normalnie), to z funkcji OR zrobi nam się funkcja AND, a z funkcji AND otrzymamy funkcję OR. Sprawdź to sobie.

 

Aby zrealizować dowolną funkcję logiczną, potrzebne są tylko dwie podstawowe funkcje: NOT + AND lub NOT + OR. Dzieje się tak za sprawą tzw. praw De Morgana:

NOT(a AND b) = (NOT a) OR (NOT b)

NOT(a OR b) = (NOT a) AND (NOT b)

Prawa te pozwalają wyrażać koniunkcję za pomocą negacji oraz alternatywy. Również odwrotnie, pozwalają one wyrażać alternatywę za pomocą koniunkcji i negacji. Wprowadźmy dwie dodatkowe funkcje logiczne:

a NAND b = NOT(a AND b)   oraz  a NOR b = NOT(a OR b)

a b a NAND b
0 0 1
0 1 1
1 0 1
1 1 0
 
a b a NOR b
0 0 1
0 1 0
1 0 0
1 1 0
Funkcja NAND jest zaprzeczonym iloczynem logicznym. Jest fałszywa, jeśli wszystkie jej argumenty są prawdziwe. W przeciwnym razie funkcja NAND daje w wyniku prawdę.

Funkcja NOR jest zaprzeczoną sumą logiczną. Jest prawdziwa, jeśli jej wszystkie argumenty są fałszywe. W przeciwnym razie funkcja NOR zwraca fałsz.

Funkcje te są uniwersalne, ponieważ przy ich pomocy możemy wyrazić każdą z pozostałych funkcji logicznych:

NOT a a NAND a a NOR a
a OR b (a NAND a) NAND (b NAND b) (a NOR b) NOR (a NOR b)
a AND b (a NAND b) NAND (a NAND b) (a NOR a) NOR (b NOR b)

 

 

 

Bramki logiczne

 
   
W technice cyfrowej bramka jest podstawowym elementem logicznym, cegiełką, z której buduje się układy cyfrowe. Bramka cyfrowa posiada wejścia oraz wyjście. Stan wyjścia bramki zależy od stanu sygnałów na jej wejściach oraz od realizowanej przez nią funkcji logicznej. W technice cyfrowej napięcia wejściowe oraz wyjściowe przyjmują dwa różne poziomy: niski 0 (0...0,8V) i wysoki 1 (1,8...5V). Pomiędzy tymi poziomami jest przerwa, która pozwala układom cyfrowym rozróżnić te stany pomiędzy sobą. Napięcie o wartości leżącej w przerwie pomiędzy stanem 0 a 1 oznacza nieokreślony poziom logiczny i należy go unikać, ponieważ układ cyfrowy może działać wadliwie.

Obciążalność wyjść bramki

Wyjścia bramek można łączyć z wejściami innych bramek logicznych (samych wyjść nie wolno ze sobą łączyć, ponieważ prowadzi to do zwarcia i w konsekwencji do uszkodzenia bramki) – w ten sposób powstaje sieć logiczna realizująca złożoną funkcję logiczną. Każde wejście bramki dołączone do wyjścia innej bramki pobiera z niej pewien prąd elektryczny. Wyjścia bramek mogą dostarczyć tylko określoną ilość prądu. Wynika z tego, iż do typowego wyjścia można podłączyć ograniczoną ilość wejść innych bramek. Parametr ten nosi nazwę obciążalności wyjścia bramki. Zwykle przyjmuje się go na poziomie 10 (należy sprawdzić w danych producenta) dla zwykłych bramek oraz 30 dla bramek o zwiększonej mocy wyjściowej.

Obciążalności wyjściowej bramki nie należy przekraczać, gdyż może to spowodować niestabilność sieci logicznej (kłopoty z utrzymaniem odpowiedniego poziomu napięcia wyjściowego przez przeciążoną bramkę), a nawet spalenie niektórych jej elementów.

Uwaga:

Powyższe dane odnoszą się to oryginalnych układów cyfrowych serii TTL budowanych z tranzystorów bipolarnych. Obecnie układy te są już przestarzałe i wszędzie stosuje się układy cyfrowe oparte o tranzystory unipolarne. Praktycznie każdy standardowy układ serii TTL posiada swój dokładny odpowiednik CMOS. Ponieważ tranzystory MOSFET mają olbrzymie oporności wejściowe, obciążalność wejść staje się nieistotna – jest na poziomie kilku tysięcy. Układ CMOS rozpoznamy po literach HC, AC, HCT lub ACT w nazwie (możliwe są również inne oznaczenia). Na przykład:

SN7400 – układ bipolarny, dzisiaj praktycznie nie do kupienia, chyba że od jakiegoś hobbysty pasjonata (ja mam kilkadziesiąt tych układów jeszcze z czasów komuny i używam je na zajęciach z uczniami)

SN74HCT00 – układ unipolarny będący dokładnym odpowiednikiem dla układu SN7400 (tzn. można go stosować w urządzeniu cyfrowym jako zamiennik układu SN7400 i powinno wszystko działać), lecz zbudowany z tranzystorów unipolarnych CMOS. Zaletą jest dużo mniejszy pobór energii, większy zakres temperatur pracy, większy prąd wyjściowy z bramki oraz kilkaset razy mniejsza obciążalność wejść. Same zalety.

Czas propagacji

Poziom napięcia wyjściowego bramki jest funkcją logiczną Boole'a poziomu logicznego napięć wejściowych. Napięcie na wyjściu nie zmienia się natychmiast po zmianie poziomu napięć wejściowych, lecz po pewnym czasie – typowo po 10 ns (należy sprawdzić w danych producenta). Jest to spowodowane tym, iż tranzystory wewnątrz bramki muszą się odpowiednio poprzełączać, a to wymaga czasu.

 

Bramki cyfrowe oznaczamy na schematach elektrycznych za pomocą odpowiednich symboli graficznych (stosujemy ogólnie przyjęte oznaczenia amerykańskie), które musisz sobie przyswoić. Poniżej przedstawione są te symbole wraz z krótkim opisem. Działanie bramek możesz sprawdzać klikając myszką w ich wejścia. Kolor niebieski oznacza stan niski 0, kolor czerwony oznacza stan wysoki 1. Kółeczko na wejściu lub wyjściu bramki oznacza negację sygnału.

 

Bramka NOT

Bramka NOT realizuje operację negacji.

Bramka NOT

a y = NOT a
0 1
1 0

Bramka NOT często nazywana jest negatorem lub inwerterem, ponieważ "odwraca" poziom napięcia logicznego z wejścia. Symbol kółeczka na wyjściu lub wejściu oznacza negację sygnału. Symbol inwertera można również narysować jak poniżej:

Bramka NOT

a y = NOT a
0 1
1 0

 

Bramka AND

Bramka AND realizuje operację koniunkcji.

Bramka AND

a b y = a AND b
0 0 0
0 1 0
1 0 0
1 1 1

Bramki logiczne mogą posiadać więcej niż dwa wejścia. Na przykład poniżej przedstawiamy bramkę AND trójwejściową.

Trójwejściowa
bramka AND

a b c y = a AND b AND c
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

 

Bramka OR

Bramka OR realizuje operację alternatywy.

Bramka OR

a b y = a OR b
0 0 0
0 1 1
1 0 1
1 1 1

 

Bramki uniwersalne NAND i NOR

Zgodnie z prawami De Morgana każdą funkcję logiczną da się sprowadzić do kombinacji negacja/koniunkcja lub negacja/alternatywa. Dlatego przemysł elektroniczny produkuje tzw. bramki uniwersalne NAND = NOT/AND i NOR = NOT/OR, z których da się budować dowolne sieci logiczne. Korzyść jest oczywista – w budowanym urządzeniu stosujemy jeden typ elementów, co obniża koszty produkcji. Na schematach logicznych bramki NAND i NOR mogą posiadać dwa różne symbole (oparte na prawach De Morgana).

Bramka NAND

a b y = a NAND b
0 0 0
0 1 0
1 0 0
1 1 1
Bramka NOR

a b y = a NOR b
0 0 1
0 1 0
1 0 0
1 1 0

Poniżej przedstawiamy sposoby uzyskania podstawowych funkcji logicznych przy pomocy bramek uniwersalnych NAND i NOR.

Bramka NOT

= z bramki NAND

= z bramki NOR

Bramka OR

= z bramek NAND

= z bramek NOR

Bramka AND

= z bramek NAND

= z bramek NOR

Musimy jednakże pamiętać, iż takie rozwiązanie jest gorsze od zastosowania właściwej bramki logicznej – zwiększa się obciążenie wyjść bramek sterujących (w niektórych układach łączone ze sobą dwa wejścia bramki) oraz zwiększa się czas propagacji (bramki pracują szeregowo).

 

Wzmacniacze–bufory

Bramki buforowe stosowane są do wzmacniania sygnałów cyfrowych lub do sterowania pracą różnych układów (np. wyświetlaczem LED). Nie powodują one zmiany sygnału wejściowego (poza pewnym opóźnieniem spowodowanym czasem propagacji).

Bramka buforowa

a y = a
0 0
1 1

 

 

Układy scalone

 
   
Dotychczas omawialiśmy tylko elementy dyskretne, takie jak oporniki, kondensatory, diody i tranzystory. Z elementów tych można budować nawet bardzo skomplikowane obwody elektroniczne. Jednakże wraz ze wzrostem ilości elementów rośnie również jego złożoność, co sprawia, że układ staje się trudny w budowie i uruchomieniu. Z tego powodu wymyślono układy scalone. Są to elementy elektroniczne, które w swoim wnętrzu kryją setki, tysiące a nawet dziesiątki milionów tranzystorów, diod i innych komponentów elektronicznych.

Z punktu widzenia użytkownika układ scalony jest malutkim pudełkiem, z którego wyprowadzono końcówki.

obrazek obrazek obrazek

Wewnątrz tego pudełka znajduje się malutka płytka, na której utworzona jest struktura układu scalonego. Za pomocą małych drucików końcówki układu scalonego połączone są z odpowiednimi punktami tej struktury.

obrazek

 

Funkcje końcówek zależą od rodzaju układu scalonego. Musisz poznać sposób ich numerowania. Zwróć uwagę, iż na obudowie znajduje się małe wycięcie lub mała dziurka. Układ ustawiamy nóżkami w dół, tak aby wcięcie na obudowie znalazło się po stronie lewej (lub punkt po lewej stronie u dołu). Wtedy numeracja nóżek rozpoczyna się od lewego dolnego rogu i biegnie wokół układu scalonego. Poniżej przedstawiamy widok z góry układu o 14 wyprowadzeniach.

 obrazek

Bramki cyfrowe są umieszczane w układach scalonych, które produkuje wiele różnych firm na całym świecie. Najpopularniejsze serie to obecnie TTL (bramki zbudowane z tranzystorów bipolarnych, obecnie buduje się również z tranzystorów polowych jako nowoczesne zamienniki przestarzałych układów bipolarnych) oraz CMOS (bramki zbudowane z tranzystorów polowych).

Parametr TTL CMOS HCT/ACT
Zasilanie 5V 3...15V 4,5...5,5V
Poziom 0 0,4...0,8V 0V 0,1...0,8V
Poziom 1 2...5V VDD 2...4,9V
Czas propagacji 1,5...3 ns 30 ns 7 ns
Obciążalność wyjść 10 duża 4000

Produkowane są również zastępniki układów TTL wykonane w technologii HCT (szybkie układy logiczne CMOS), które nie ustępują szybkością układom TTL przy jednoczesnym obniżeniu poboru mocy. Temat ten jest dosyć rozległy i warto go opanowywać stopniowo w miarę potrzeb. Układy CMOS szczególnie nadają się do zasilania bateryjnego, gdyż pobierają bardzo mały prąd zasilający. Nie będziemy się tutaj wgłębiać w wewnętrzną budową bramek cyfrowych, ponieważ jest to zagadnienie dosyć skomplikowane i w sumie nam niezbyt potrzebne. Musimy jedynie znać właściwości bramek oraz ich parametry elektryczne. Poniżej przedstawiamy obraz płytki krzemowej, która znajduje się wewnątrz układu SN7400 (cztery bramki NAND). Na płytce tej wytworzone są w procesie produkcyjnym tranzystory oraz połączenia miedzy nimi.

obrazek

Gdy umiemy już odczytywać numery wyprowadzeń układów scalonych, możemy zdefiniować ich zawartość. Poniżej przedstawiamy definicje wyprowadzeń kilku układów cyfrowych zawierających podstawowe bramki logiczne. Są to układy TTL serii SN74xx oraz CMOS serii CD40xx. GND oznacza masę dla TTL (minus zasilania), VSS dla CMOS. VCC oznacza napięcie zasilające układ scalony TTL (+5V), VDD dla CMOS. Wiedza ta pozwala na samodzielne konstruowanie prostych urządzeń cyfrowych. Układy zestawiliśmy, tak aby w obu seriach otrzymać funkcjonalne odpowiedniki. Dlatego kolejność numeracji układów CMOS nie jest zachowana.

Układy TTL serii SN74xx Układy CMOS serii CD40xx
Brak odpowiednika TTL CD4000 – dwie 3–wejściowe bramki NOR i inwerter

obrazek

SN7400 – cztery 2–wejściowe bramki uniwersalne NAND

obrazek

CD4011 – cztery 2–wejściowe bramki uniwersalne NAND

obrazek

SN7402 – cztery 2–wejściowe bramki uniwersalne NOR

obrazek

CD4001 – cztery 2–wejściowe bramki uniwersalne NOR

obrazek

SN7404 – sześć inwerterów

obrazek

CD4009 – sześć inwerterów

obrazek

SN7407 – sześć wzmacniaczy buforowych

obrazek

CD4010 – sześć wzmacniaczy buforowych

obrazek

SN7408 – cztery 2–wejściowe bramki AND

obrazek

CD4081 – cztery 2–wejściowe bramki AND

obrazek

SN7410 – trzy 3–wejściowe bramki uniwersalne NAND

obrazek

CD4023 – trzy 3–wejściowe bramki uniwersalne NAND

obrazek

SN7411 – trzy 3–wejściowe bramki AND

obrazek

CD4073 – trzy 3–wejściowe bramki AND

obrazek

SN7420 – dwie 4–wejściowe bramki uniwersalne NAND

obrazek

CD4012 – dwie 4–wejściowe bramki uniwersalne NAND

obrazek

SN7437 – cztery 2–wejściowe bramki buforowe NAND

obrazek

Brak odpowiednika CMOS

 

SN7440 – dwie 4–wejściowe bramki buforowe NAND

obrazek

Brak odpowiednika CMOS
SN7421 – dwie 4–wejściowe bramki AND

obrazek

CD4082 – dwie 4–wejściowe bramki AND

obrazek

Brak odpowiednika TTL CD4002 – dwie 4–wejściowe  bramki uniwersalne NOR

obrazek

Brak odpowiednika TTL CD4072 – dwie 4–wejściowe bramki OR

obrazek

SN7427 – trzy 3–wejściowe bramki uniwersalne NOR

obrazek

CD4025 – trzy 3–wejściowe bramki uniwersalne NOR

obrazek

Brak odpowiednika TTL CD4075 – trzy 3–wejściowe bramki OR

obrazek

SN7430 – jedna 8–wejściowa bramka uniwersalna NAND

obrazek

CD4068 – jedna 8–wejściowa bramka uniwersalna NAND

obrazek

Brak odpowiednika TTL CD4078 – jedna 8–wejściowa bramka uniwersalna NOR

obrazek

SN7432 – cztery 2–wejściowe bramki OR

obrazek

CD4071 – cztery 2–wejściowe bramki OR

obrazek

Więcej na temat układów cyfrowych znajdziesz w osobnym artykule dostępnym w naszym serwisie. Zapraszamy.

 

 

 

Zastosowania bramek cyfrowych

 
   

Zasady łączenia wejść i wyjść

Do jednego wyjścia bramki można podłączyć kilka wejść innych bramek. Musimy tylko pamiętać, aby nie przekroczyć obciążalności wyjścia bramki. Typowe wyjście bramki TTL może wysterować około 10 wejść innych bramek. Do bramek CMOS reguła ta się nie odnosi, ponieważ pobierają one bardzo mały prąd wejściowy – mówimy, iż posiadają dużą oporność wejściową.

Nieużywane wejścia bramek należy podłączyć poprzez opornik 1kΩ (jeśli możemy zagwarantować, iż napięcie VCC nie przekroczy 5,5V, to wejście można połączyć bezpośrednio) do zasilania +5V (bramki AND i NAND) lub bezpośrednio do masy (bramki OR i NOR). Nie wolno pozostawiać wejścia "wiszącego", ponieważ powoduje to pogorszenie warunków pracy bramki (zwiększa się czas propagacji oraz zmniejsza się odporność na zakłócenia) i w konsekwencji może powodować błędy w działaniu całego urządzenia cyfrowego.

obrazek

Nie wolno łączyć ze sobą wyjść bramek, gdyż prowadzi to do zwarcia i w konsekwencji może uszkodzić układ cyfrowy. Jedynym wyjątkiem są bramki z wyjściem typu otwarty kolektor. Pomówimy o nich przy innej okazji.

 

Podłączanie diod LED

obrazekZ diodami LED spotkaliśmy się w jednym z poprzednich rozdziałów. Powtórzmy sobie podstawowe wiadomości.

Dioda LED (ang. Light Emitting Diode) jest elementem elektronicznym, który przewodzi prąd tylko w jednym kierunku. Gdy prąd o odpowiednim natężeniu przepływa przez diodę LED, emituje ona światło. Kolor świecenia zależy od materiału użytego do konstrukcji diody.

Diody LED bardzo często wykorzystywane są w technice cyfrowej jako różnego rodzaju wskaźniki i oświetlenie – np. zegary wyświetlają przy ich pomocy cyfry czasu i daty, telefony komórkowe używają ich do podświetlania swoich ekranów i klawiatur. Stosując diody LED, należy pamiętać o rzeczach następujących:

  1. Gdy dioda przewodzi prąd utrzymuje się na niej względnie stałe napięcie UF. Jeśli napięcie zasilające jest niższe od UF, dioda świecić nie będzie. Napięcie to jest różne dla różnych diod – należy zawsze sprawdzać w katalogach producentów.
  2. W trakcie świecenia dioda pobiera pewien prąd IF. Nie wolno przekraczać wartości maksymalnej tego prądu, inaczej dioda ulegnie spaleniu.
  3. Światło powstaje w diodzie LED na zasadzie generacji fotonów w strukturze półprzewodnika przy przepływie prądu i nie jest spowodowane efektem cieplnym, jak w żarówce. Prawidłowo wysterowana dioda LED jest zimna i może świecić dziesiątki lat.
  4. Dioda posiada dwa wyprowadzenia: anodę (+A) i katodę (-K). Dioda przewodzi prąd, jeśli do anody zostanie przyłożony plus napięcia zasilania, a do katody minus (zgodnie z rysunkiem obok). Przy odwrotnej polaryzacji dioda LED nie przewodzi prądu.

Zwykle diody o średnicy 5mm (najbardziej popularne cenowo) pobierają prąd IF = 10...20mA. Jeśli chcemy uzyskać niezawodność świecenia, to obniżamy ten prąd do około 15mA (tyle może na wyjściu dostarczyć standardowa bramka TTL, bramki HCT mogą dostarczyć prądu 25...75mA). Napięcie UF określamy z poniższej tabelki:

Rodzaj diody LED Napięcie UF Prąd IF
zwykłe, czerwone 1,7...1,8V 15mA
jasne, czerwone
wysokowydajne, czerwone
niskoprądowe, czerwone
1,9V 15mA
pomarańczowe i żółte 2V 15mA
zielone 2,1V 15mA
jasne, białe
jasne, zielone bez żółtozielonego
niebieskie zwykłe
3,4V 12mA
jasne, niebieskie 4,6V 10mA

Do naszych celów najlepsze będą diody o UF = 1,7V ... 2,1V. Diody o wyższym napięciu wymagają tranzystora sterującego, który zapewni im odpowiednie warunki zasilania (w bramkach TTL, układ HCT bez problemy wysteruje taką diodę). Diodę LED można podłączyć do wyjścia bramki TTL na dwa sposoby. W obu przypadkach należy odpowiednio dobrać opór ograniczający prąd diody LED. Poniżej przedstawiamy odpowiednie wzory obliczeniowe dla bramek TTL (układy HCT dają napięcie wyjściowe około 4,5V w stanie wysokim 1 i około 0,1V w stanie niskim 0):

Dioda świeci przy stanie wysokim

obrazek

Dioda świeci przy stanie niskim

obrazek

obrazek obrazek
Dla diody czerwonej o UF = 1,7V  i  IF = 0,015A otrzymamy:
obrazek obrazek

Dla wersji pierwszej napięcie 3,5V jest napięciem wyjściowym bramki TTL w stanie wysokim (dla HCT przyjmuj 4,5V). Napięcie to rozkłada się na opornik R oraz diodę LED. Gdy odejmiemy od niego napięcie UF diody LED, to pozostanie napięcie tylko na oporniku R. Dzieląc to napięcie przez pożądany prąd IF otrzymujemy wartość oporu opornika R, który należy w tym układzie zastosować.

Dla wersji drugiej jest podobnie. Napięcie 4,6V jest napięciem zasilania pomniejszonym o napięcie 0,4V (dla HCT przyjmuj 4,9V), które pojawia się na wyjściu bramki w stanie niskim.

Powyższe dwa układy można połączyć w jeden – górna dioda LED będzie świeciła w stanie niskim, a dolna dioda LED będzie świeciła w stanie wysokim.

obrazek

 

Ćwiczenie nr 8

Najbardziej popularną bramką cyfrową jest bramka NAND. Układ SN7400 (74HCT00) zawiera cztery bramki dwuwejściowe NAND.

SN7400
obrazek

Zaprojektujemy teraz prosty układ z dwóch bramek NAND (bramki pracują jako inwertery, możemy też zastosować bramki NOT typu SN7404/74HCT04). Schemat jest następujący:

Spis elementów:

Element Ilość Opis
zasilacz 5V 1 zasilanie elementów
płytka stykowa + kable 1 montaż elementów
SN7400/74HCT00 1 4 bramki NAND
opornik 1kΩ/0,125W 1 –(                )–
opornik 180Ω/0,125W 1 –(                )– R1
opornik 100Ω/0,125W 1 –(                )– R2
zielona dioda LED 1 sygnalizacja stanu 1
żółta dioda LED 1 sygnalizacja stanu 0
przycisk 1 stan 0/1 na wejściu

Zamiast mikroprzełącznika możesz zastosować przewody.

obrazek obrazek

Za pomocą podanych wcześniej wzorów obliczamy wartości oporów R1 i R2.

 

obrazek

 

Przyjmujemy R1 = 180Ω

 

obrazek

Przyjmujemy R2 = 100Ω

 

Jeśli nie posiadasz dokładnie takich oporników, możesz po prostu zastosować dwa oporniki większe, np. 220Ω lub 270Ω. Przy jasnych diodach LED różnica nie będzie wcale widoczna.

obrazek    obrazek

Gdy podłączysz zasilanie, wejścia bramek NAND będą się znajdowały w stanie wysokim 1, ponieważ są podłączone poprzez opornik 1k do plusa zasilania. Zatem na ich wyjściach pojawi się stan niski 0. W stanie niskim będzie świeciła tylko dioda żółta. Gdy wciśniesz przycisk, zewrze on wejścia bramek NAND do masy, co jest równoważne podaniu na nie stanu niskiego 0. Na wyjściach bramek pojawi się stan wysoki. W stanie wysokim świeci tylko dioda zielona.

 

Ćwiczenie nr 9

Problem pojawia się, gdy chcemy sterować elementem pobierającym większy prąd niż może dostarczyć bramka. Nie wolno go wtedy podłączać bezpośrednio do wyjścia bramki, gdyż może to spowodować uszkodzenie bramki. W takim przypadku zaprzęgamy do pracy tranzystor mocy.

Spis elementów:

Element Ilość Opis
zasilacz 5V 1 zasilanie elementów
płytka stykowa + kable 1 montaż elementów
SN7400/74HCT00 1 4 bramki NAND
opornik 1kΩ/0,125W 1 –(                )–
opornik 220Ω/0,125W 1 –(                )– R1
Tranzystor BC211 1 sterowanie żarówką
Żarówka 4,5V 1 sygnalizacja stanu 1
przycisk 1 stan 0/1 na wejściu

Zamiast mikroprzełącznika możesz zastosować przewody.

obrazek obrazek

Gdy włączysz zasilanie, wejścia bramki NAND będą się znajdowały w stanie wysokim 1, ponieważ są podłączone do plusa zasilania poprzez opornik 1k. Na wyjściu bramki panuje stan niski . Stan ten jest wymuszany na bazie tranzystora. Tranzystor jest zatkany i nie przewodzi prądu w obwodzie kolektor–emiter, zatem żarówka nie świeci. Jeśli teraz naciśniesz przełącznik, to zewrze on wejścia bramki do masy, czyli wymusi na nich stan niski 0. Spowoduje to pojawienie się stanu wysokiego 1 na wyjściu bramki i wysterowanie tranzystora. W obwodzie baza–emiter popłynie prąd, który z kolei wymusi prąd w obwodzie kolektor–emiter. Tranzystor zacznie przewodzić i żarówka się zaświeci. Tranzystor pełni tutaj rolę przełącznika oraz wzmacniacza prądu. Z wyjścia bramki będzie pobierany niewielki prąd (około 20mA).

obrazek

Ćwiczenie nr 10

Jeszcze lepszym rozwiązaniem jest zastosowanie tranzystora unipolarnego MOSFET-N. Tranzystor nie będzie praktycznie obciążał wyjścia bramki, ponieważ posiada bardzo dużą oporność wejściową i sterowanie odbywa się za pomocą napięć.

Spis elementów:

Element Ilość Opis
zasilacz 5V 1 zasilanie elementów
płytka stykowa + kable 1 montaż elementów
SN7400/74HCT00 1 4 bramki NAND
opornik 1kΩ/0,125W 1 –(                )–
opornik 220Ω/0,125W 1 –(                )– R1
Tranzystor mocy MOSFET-N 1 sterowanie żarówką
Żarówka 4,5V 1 sygnalizacja stanu 1
przycisk 1 stan 0/1 na wejściu

Zamiast mikroprzełącznika możesz zastosować przewody.

obrazek obrazek

obrazek

Jeśli stosujesz zwykły układ TTL (SN7400), to napięcie zasilające musi wynosić co najmniej 4,5V (nowe baterie lub naładowane akumulatory). W przeciwnym razie bramka NAND nie wysteruje tranzystora MOSFET-N.

 

 

Sieci logiczne

 
   
Bramki służą do tworzenia różnych sieci logicznych, czyli obwodów realizujących pożądane funkcje logiczne. Funkcje te mogą być zadawane tabelką stanów wejść i wyjść

Ćwiczenie 11

Załóżmy, że chcemy zaprojektować tzw. bramkę programowalną, która realizuje funkcję AND lub OR w zależności od sygnału sterującego X:

obrazek

Jeśli sygnał X ma stan logiczny 0, to na wyjściu Y pojawia się wartość funkcji A OR B. Gdy sygnał X przyjmie wartość 1, to na wyjściu Y pojawi się wartość funkcji A AND B. Wejście X służy zatem do programowania funkcji spełnianej przez bramkę.

Projektowanie bramki zaczniemy od określenia funkcji logicznej wyjścia Y w zależności od stanu wejść A, B i X. W tym celu posłużymy się metodą tablic Karnaugha. Metodę tę dobrze jest opanować, ponieważ jest jednocześnie prosta i uniwersalna.

Mamy trzy sygnały wejściowe: A, B i X oraz sygnał wyjściowy Y, który jest funkcją logiczną tych trzech sygnałów wejściowych. Układamy tablicę Karnaugha będącą jakby mapą funkcji Y dla współrzędnych A, B i X. Współrzędne A i B będą po lewej stronie w pionie tabelki. Współrzędna X będzie u góry w poziomie tabelki:

obrazek

Tablica ma cztery wiersze, ponieważ para współrzędnych A i B przyjmuje 4 różne kombinacje wartości logicznych. Kombinacje te zapisujemy na początku każdego wiersza w kodzie Gray'a. Ma on tę cechę, że każdy kolejny wyraz różni się od poprzedniego stanem tylko jednego bitu. Jest to prawdziwe również dla pierwszego i ostatniego wiersza.

Kolumny są tylko dwie, ponieważ sygnał X może przyjmować jedynie dwie wartości.

W kolejnych kratkach wpisujemy pożądaną wartość logiczną wyjścia Y dla sygnałów wejściowych, które są współrzędnymi kratki. I tak otrzymujemy:

obrazek

Zauważ, że w pierwszej kolumnie tablicy mamy wartości funkcji A OR B (dla X = 0), a w drugiej kolumnie mamy wartości funkcji A AND B (dla X = 1). Teraz łączymy ze sobą komórki tablicy o wartościach 1, tak aby otrzymać jak największe obszary o wymiarach będących potęgami liczby 2 (1,2,4,8...). W naszym przypadku są takie trzy obszary:

obrazek

Przyjrzyjmy się tym obszarom:

 

Obszar żółty.

obrazek

Zależy od współrzędnej B oraz X. Współrzędna A nie wpływa na wartość funkcji Y w tym obszarze, ponieważ zmienia swoją wartość (nie jest w obszarze stała). Pozostają nam zatem współrzędne B i X. Jednakże współrzędna X ma wartość 0, dlatego bierzemy jej negację i wykonujemy iloczyn logiczny ze współrzędną B. Otrzymamy funkcję dla obszaru żółtego:

Y1 = B AND NOT X

 

Obszar czerwony.

obrazek

Tutaj obszar czerwony nie zależy od wartości X (ponieważ X się zmienia), lecz tylko od A i B.

Y2 = A AND B

 

Obszar niebieski.

obrazek

Obszar zależy od X i A.

Y3 = A AND NOT X

Cała funkcja logiczna Y jest sumą logiczną funkcji poszczególnych obszarów:

Y = Y1 OR Y2 OR Y3
Y = (B AND NOT X) OR (A AND B) OR (A AND NOT X)

Taka postać funkcji, chociaż zupełnie poprawna, nie jest dla nas dobra. Sieć logiczną chcielibyśmy zbudować z bramek standardowych NAND oraz NOT. Musimy zatem przekształcić ten wzór za pomocą rachunku algebry Boole'a. W tym celu dokonujemy podwójnego zaprzeczenia całej funkcji Y (podwójne zaprzeczenie nie zmienia wartości logicznej).

Y = NOT (NOT ((B AND NOT X) OR (A AND B) OR (A AND NOT X)))

Teraz wykorzystujemy prawa de Morgana, które mówią, że zaprzeczenie sumy logicznej jest równoważne iloczynowi zaprzeczeń:

Y = NOT (NOT (B AND NOT X) AND NOT (A AND B) AND NOT (A AND NOT X))

Zaprzeczona koniunkcja to NAND. Otrzymujemy ostatecznie:

Y = (B NAND NOT X) NAND (A NAND B) NAND (A NAND NOT X)

Otrzymaliśmy same funkcje NAND i NOT, które dadzą się w prosty sposób zrealizować za pomocą typowych bramek NAND (SN7400/SN7410) oraz NOT (SN7404). Sieć logiczna wygląda następująco:

obrazek

Gdy mamy już gotową sieć, możemy ją przetestować w poniższym układzie:

SN7400: 4 x 2NAND
obrazek
SN7404: 6 x NOT
obrazek
SN7410: 3 x 3NAND
obrazek

Spis elementów:

Element Ilość Opis
zasilacz 5V 1 zasilanie elementów
płytka stykowa + kable 1 montaż elementów
SN7400 1 4 bramki NAND 2 we.
SN7404 1 6 bramek NOT
SN7410 1 3 bramki NAND 3 we.
opornik 1kΩ/0,125W 3 –(                )–
opornik 220Ω/0,125W 1 –(                )–
opornik 270Ω/0,125W 3 –(                )–
LED pomarańczowa 1 sygnał X
LED czerwona 2 sygnały A i B
LED zielona 1 sygnał Y
mikroprzełącznik 3 sterowanie

 

obrazek
obrazek

Jeśli przycisk X nie jest wciśnięty, to układ realizuje funkcję OR. Naciśnięcie przycisku A, B lub obu spowoduje zaświecenie się diody Y. Gdy przycisk X jest wciśnięty, układ realizuje funkcję AND. Aby dioda Y się zaświeciła, należy teraz wcisnąć oba przyciski A i B. Naciśnięcie tylko jednego z przycisków nie spowoduje zaświecenia diody LED.

obrazek

Sygnał X jest sygnałem programującym zachowanie się sieci logicznej. Tego typu sieci logiczne mają zastosowanie we współczesnych procesorach, gdzie noszą nazwę jednostek arytmetyczno–logicznych (ang. ALU – Arithmetic Logic Unit). Dzięki nim procesor może w sposób programowy realizować różne funkcje logiczne i arytmetyczne.


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe