Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję
Kurs Raspberry Pi!Jesteś zainteresowany kursem Raspberry Pi? Wybierz najciekawsze tematy, które opiszemy »

Technika cyfrowa – #2 – algebra Boole’a w praktyce

Elektronika 13.10.2016 Michał, Damian

kurstc_miniaturka_2Nadszedł czas, gdy możemy w praktyce zająć się elektroniką cyfrową. Szczególnie ważne będą tu takie pojęcia jak: stany logiczne, funkcje logiczne, czy algebra Boole’a.

Kurs zaczniemy od kilku ćwiczeń, które pozwolą zobaczyć, co kryje się pod tymi pojęciami.

Nawigacja serii artykułów:
« poprzednia częśćnastępna część »

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Na początek niezbędne jest wprowadzenie nowych pojęć i odrobiny teorii. Opisany tutaj materiał będzie wykorzystywany w kolejnych artykułach. Ważne jest zrozumienie tych podstaw, aby później nikt się nie dziwił dlaczego piszemy np. 1 + 1 = 1 – zachęcam do lektury!

Czym jest algebra Boole’a?

Ogólnie algebrą nazwiemy zbiór określonych elementów (np. liczb) oraz działań, które można na nich wykonywać. Przykładowo, każdy z nas posługuje się algebrą liczb rzeczywistych. Zawiera ona nieskończenie wiele liczb. Można na nich wykonywać operacje takie jak np. dodawanie, odejmowanie, mnożenie, czy dzielenie.

Komputery i inne urządzenia cyfrowe wykorzystują tylko dwie wartości: 0 (zero) i 1 (jeden). Te cyfry również można dodawać, odejmować, mnożyć, czy dzielić. Jednak tutaj wyniki mogą być inne! Zestaw tych wartości i operacji nazywamy właśnie tytułową algebrą Boole’a. Angielski matematyk George Boole opracował jej zasady już w XIX wieku.

George Boole.Źródło zdjęcia: Wikipedia.

George Boole.
Źródło: Wikipedia.

Informacje na temat algebry Boole’a zostały opisane, w dalszej części artykułu,
z pominięciem informacji zbędnych dla początkujących elektroników.

Do czego może się przydać w elektronice taka uproszczona algebra? Na przykład do opisania:

  • stanu przycisku, np. wciśnięty (1) lub puszczony (0),
  • stanu wyjścia układu – jest napięcie (1), nie ma napięcia (0).

Jest to symboliczny, umowny sposób, który pozwala w szybki i łatwy sposób przedstawić różne informacje w świecie komputerów i elektroniki cyfrowej.

Świat komputerów składa się z samych zer i jedynek!

Świat komputerów składa się z samych zer i jedynek!

Krótki słownik pojęć

Podczas całej serii artykułów będziemy posługiwać się nowymi pojęciami, które są często używane zamiennie. Dlatego już teraz warto zapamiętać, że następujące pojęcia są równoważne:

1 = jedynka = logiczna jedynka = stan wysoki = prawda
0 = zero = logiczne zero = stan niski = fałsz

Dodatkowo, pojedyncze wartości (0 lub 1) będziemy nazywać bitami.

Bit nazywany jest również jednostką logiczną, ponieważ jest to najmniejsza ilość informacji wystarczająca do opisania stanu przyjętego przez układ. Dokładnie tak, jak było to wspomniane wcześniej – za pomocą jednego bitu możemy opisać stan przycisku (wciśnięty/puszczony), stan wyjścia układu (np. dioda włączona/wyłączona) itd.

Zastosowanie takie jest zapewne intuicyjne dla wszystkich, którzy spotkali się z liczbami binarnymi, programowaniem (np. Arduino) lub ogólnie mają styczność z informatyką. Pozostali na pewno szybko przyswoją te informacje podczas dalszych ćwiczeń praktycznych.

Zestaw elementów do przeprowadzenia wszystkich ćwiczeń

Gwarancja pomocy na forum dla osób, które kupią poniższy zestaw!

Części pozwalające wykonać ćwiczenia z kursu techniki cyfrowej dostępne są w formie gotowych zestawów! W komplecie m.in. niezbędne układy scalone CMOS, przewody połączeniowe, diody, buzzer, kontaktron, wyświetlacz 7-segmentowy oraz znacznie więcej!


Kup w Botlandzie »

Podstawowe reguły algebry Boole’a

Mamy do dyspozycji tylko dwie cyfry, za to bardzo charakterystyczne. Zero (0) jest znane jako element neutralny dodawania (nie zmienia jego wyniku), a jeden (1) nie wpływa na wynik mnożenia. Dodatkowo, mnożenie przez zero zawsze da w rezultacie zero.

Powyższe zasady można opisać takimi równaniami (a oznacza 0 lub 1):

a · 1 = a
a + 0 = a
a · 0 = 0

Sprawdźmy to podstawiając za a różne wartości:

0 · 1 = 0
0 + 0 = 0
0 · 0 = 0

1 · 1 = 1
1 + 0 = 1
1 · 0 = 0

Zależności te będą spełnione dla dowolnych liczb. Sprawdź sam, jeśli nie wierzysz!

Podobnie, jak zero determinuje wynik mnożenia, tak w takiej algebrze Boole’a jedynka przesądza o wyniku sumowania. Dodanie 1 do jakiejkolwiek liczby zawsze da w efekcie 1.

a + 1 = 1

To jest nowość, która dla wielu wydaje się być nieintuicyjna: wprawdzie 1 + 0 = 1, ale już 1 + 1 = 2. Potwierdzi to każdy – nawet dziecko w szkole podstawowej. Jednak algebra Boole’a zawiera tylko dwa możliwe stany (0 lub 1), dlatego 1 + 1, będzie tutaj równało się 1 – taka jest największa wartość jaką możemy wykorzystywać. Dlatego 1 + 1 + 1 nadal będzie równało się 1.

Jeśli w tej chwili jest to mało zrozumiałe, to spokojnie proponuję
czytać dalej. Całość wyjaśni się podczas przykładów praktycznych.

Reprezentacja wartości logicznych w praktyce

Wartości 0 oraz 1 są pojęciami czysto abstrakcyjnymi – tak samo, jak wszystkie inne liczby. Na co dzień posługujemy się czymś, co je reprezentuje.

Dla stanów logicznych w układach cyfrowych są to
napięcia o odpowiednich wartościach.

W ramach niniejszego kursu, będziemy posługiwać się układami cyfrowymi z rodziny CMOS. Ich struktury oparte są o tranzystory unipolarne (jak pewnie pamiętasz, sterowanie tymi elementami przebiega napięciowo, a nie prądowo, jak w tranzystorach bipolarnych).

Producenci ustalili, że poziomy logiczne będą reprezentowane następująco:

  • 0% – 30% napięcia zasilania oznacza logiczne zero (0),
  • 30% – 70% napięcia zasilania jest przedziałem zabronionym,
  • 70% – 100% napięcia zasilania oznacza logiczną jedynkę (1).

Dla nas oznacza to tyle, że wymuszenie stanu logicznego 0 sprowadza się do podłączenia danego wejścia do masy zasilania. Jeżeli chcemy podać na dane wejście stan 1, trzeba je podłączyć do dodatniego bieguna zasilania.

Reprezentacja stanów logicznych w układach rodziny CMOS.

Reprezentacja stanów logicznych
w układach rodziny CMOS.

Nie jest to jedyny sposób rozróżniania w elektronice 0 od 1.
Metoda ta jest jednak obecnie najpopularniejsza!

Na nasze potrzeby, będziemy wykorzystywać następujące reprezentacje stanów logicznych:

Zero:

  • podłączenie do masy,
  • brak świecenia diody,
  • świecenie diody zielonej (jeśli do danego wyjścia jest podłączona czerwona i zielona),
  • brak wciśnięcia przycisku.

Jeden:

  • podłączenie do dodatniego bieguna zasilania,
  • świecenie diody,
  • świecenie diody czerwonej (jeśli do danego wyjścia jest podłączona czerwona i zielona),
  • wciśnięcie przycisku.

Będą one wykorzystywane we wszystkich częściach tego kursu.

Operacje na bitach, czyli funktory

Operacje bitowe (nazywane inaczej: funktorami) noszą swoje własne, specyficzne nazwy, którymi będziemy się posługiwać. Przed przejściem do układów cyfrowych warto zbudować opisane tutaj funktory samodzielnie. W tym celu wykorzystamy najprostsze możliwe elementy elektroniczne, które zostały opisane podczas kursu elektroniki (poziom I).

W przykładach wejścia układu (zera lub jedynki) symbolizowane są przez przyciski.
Wyjście układu (stan wysoki lub niski) widoczne jest na diodzie świecącej.

Negacja, zaprzeczenie – NOT

Negacja (zwana również zaprzeczeniem) jest operacją, która przyjmuje tylko jeden argument. W wyniku jej działania otrzymujemy wartość przeciwną. Wynikiem zaprzeczenia „prawdy” będzie „fałsz” i odwrotnie, negacją „fałszu” będzie „prawda”.

Negację oznacza się symbolem tyldy (~) lub w postaci funkcji, jako NOT():

~0 = NOT(0) = 1
~1 = NOT(1) = 0

Możemy, to zapisać w formie tabelki. Lewa kolumna, to wartość przed wykonaniem danej funkcji (tutaj negacji), a prawa kolumna, to wynik tej funkcji.

kurstc_2_1_not

Negacja, zaprzeczenie – NOT.

Do takiej formy zapisu (w tabeli) wrócimy w 3 części kursu.
Już teraz warto się do niego przyzwyczajać!

Sprawdźmy, jak negacja „wygląda” w praktyce, tym razem potrzebne będą:

  • płytka stykowa,
  • przycisk,
  • rezystor 1kΩ,
  • czerwona dioda świecąca,
  • przewody połączeniowe,
  • 4 baterie AA w koszyku.

Wszystkie elementy są częścią dostępnych zestawów. Powyższe części należy połączyć zgodnie z następującym schematem:

Schemat negatora logicznego.

Schemat prostego negatora logicznego.

Po włączeniu zasilania czerwona dioda będzie świecić – zgaśnie po wciśnięciu przycisku. Stanie się tak, ponieważ cały prąd wypływający z R1 będzie odprowadzany przez styki S1 do masy.

Według omówionych reguł mamy tutaj negację stanu przycisku.

Pomarańczowa linia wskazuje, którą drogą w danej sytuacji popłynie większość prądu:

Działanie układu w praktyce widoczne jest na poniższych zdjęciach:

Suma logiczna, alternatywa – OR

Suma logiczna (inaczej alternatywa) wymaga dwóch argumentów. Gdy przynajmniej jeden z nich ma wartość 1, to wtedy wynik całej funkcji ma wartość 1. W przeciwnym razie, wynik jest zerowy. Operację tę oznacza się symbolem plusa (+) lub pisząc OR.

0 OR 0 = 0
1 OR 0 = 1
1 OR 1 = 1

Ostatni przykład można przyrównać do sumowania „prawdy” z „prawdą”. Nie wyjdzie z tego „podwójna prawda”, ani prawda bardziej prawdziwa. To jest po prostu „prawda”.

Uniwersalny zapis w formie tabelki:

kurstc_2_2_or

Suma logiczna, alternatywa – OR

Pora, aby sprawdzić jak działa sumowanie zgodne z algebrą Boole’a. Do poprzedniego przykładu wystarczy dodać jeden przycisk. Dokładnie tak, jak na poniższym schemacie:

Schemat sumatora logicznego.

Schemat sumatora logicznego.

Wciśnięcie przynajmniej jednego przycisku spowoduje świecenie diody. Zwarcie większej liczby styków niczego nie zmieni (ich rezystancja jest pomijanie mała). Działanie tego układu w praktyce widoczne jest na poniższych 4 zdjęciach:

Pomarańczowa linia wskazuje, którą drogą w danej sytuacji popłynie prąd:

Według omówionych reguł mamy tutaj sumę logiczną dwóch wejść.

Sumę logiczną można rozszerzyć na większą liczbę argumentów, na przykład:

0 OR 0 OR 0 = 0
0 OR 1 OR 0 = 1
0 OR 1 OR 0 OR 1 OR 0 OR 1 OR 0 = 1

Teraz powinno być już jasne, dlaczego w algebrze Boole’a
dodawanie do siebie kilku jedynek daje nadal 1.

Niezależnie od tego, czy w powyższym przykładzie z sumą wciskalibyśmy 1, czy 10 przycisków (dodawanie 10 jedynek do siebie), to dioda świeciłaby zawsze tak samo, co symbolizowałoby cały czas na wyjściu układu wartość 1.

Iloczyn logiczny, koniunkcja – AND

Iloczyn logiczny (nazywany również koniunkcją) działa podobnie do znanego nam mnożenia: jeżeli wśród argumentów znajdzie się chociaż jedno 0, to wtedy cały wynik będzie zerowy. Symbolicznie zapisuje się je ampersandem (&), kropką (·) lub pisząc AND.

1 AND 1 = 1
1 AND 0 AND 1 AND 1 = 0
1 & 1 & 1 & 1 & 0 = 0

Uniwersalny zapis w formie tabeli:

kurstc_2_3_and

Iloczyn logiczny, koniunkcja – AND.

Działanie tej funkcji można odtworzyć na płytce stykowej korzystając z tych samych elementów, które zostały użyte wcześniej. Tym razem schemat wygląda następująco:

Schemat prostego funktora AND.

Schemat prostego funktora AND.

Przyciski są połączone szeregowo. Wciśnięcie tylko jednego, podczas gdy drugi jest zwolniony, nie wywołuje żadnej reakcji. Dopiero zwarcie obu przycisków sprawia, że prąd może popłynąć przez cały obwód. Działanie układu w praktyce widoczne jest na poniższych zdjęciach:

Pomarańczowa linia wskazuje, którą drogą w danej sytuacji popłynie prąd:

Zanegowana suma – NOR

Niekiedy bardzo przydaje się funktor, który zawiera w sobie dodatkowo negację.

Uwaga: zanegowane jest tylko wyjście!

Czyli NOR daje w wyniku 1 tylko, gdy wszystkie argumenty wejściowe są zerami. Działanie tego funktora w formie tabelki wygląda następująco:

Zanegowana suma - NOR.

Zanegowana suma – NOR.

Również tutaj wystarczą te same elementy, aby sprawdzić działanie tej funkcji w praktyce. Teraz trzeba połączyć je zgodnie z poniższym schematem.

Schemat prostego układu NOR.

Schemat prostego układu NOR.

Sytuacja w tym układzie wygląda podobnie jak w negatorze: wciśnięcie któregokolwiek przycisku odprowadza prąd bezpośrednio do masy, z pominięciem diody. Jeżeli wciśnięte są oba przyciski, reakcja układu nie zmienia się – prąd rozkłada się pomiędzy styki i nadal omija diodę.

Pomarańczowa linia wskazuje, którą drogą w danej sytuacji popłynie prąd:

Zanegowany iloczyn – NAND

W wyniku zanegowanego iloczynu (NAND) otrzymujemy tylko wtedy, kiedy wszystkie argumenty wejściowe są jedynkami. Działa tak samo, jak bramka AND z dołożoną negacją wyjścia.

W formie tabeli działanie tej funkcji można przedstawić następująco:

Zanegowany iloczyn - NAND.

Zanegowany iloczyn – NAND.

NOR i NAND są łatwe do zrealizowania w strukturach krzemowych, dlatego
częściej spotyka się właśnie wersje zanegowane, niż podstawowe (OR i AND).

Bazując na zdobytej już wiedzy oraz poprzednich eksperymentach, postaraj się samodzielnie  zbudować układ, który zadziała jak bramka NAND. Oczywiście do jego wykonania użyj tylko diod, rezystorów i przycisków. Koniecznie pochwal się efektem w komentarzu.

Nawiasy

Na razie nie będziemy korzystać z nawiasów, jednak warto wiedzieć o ich istnieniu. Oczywiście już chyba intuicyjnie wiadomo, że  porządkują kolejność wykonywania operacji.

1 · (0 + 0) = 1 · 0 = 0
~(1 · 0) + (0 + 1) = ~0 + 1 = 1 + 1 = 1

W ramach ćwiczenia, rozwiąż poniższe równania, korzystając z zasad algebry Boole’a. Swoimi wynikami podziel się w komentarzu!

  1. ((0 + 1 + 0) · (0 NAND 1)) NOR 1 = ?
  2. 1 NAND 1 NAND (1 NOR 0) = ?
  3. (~1 + 1 NOR 0) · (~(0 · 1) + (0 NOR 0)) = ?

Podsumowanie

Podczas tego artykułu poznaliśmy podstawy funkcjonowania cyfrowych układów logicznych. Najważniejsze, aby zapamiętać, czym różnią się operacje wykonywane w algebrze Boole’a od tych tradycyjnych. Od tej pory wszystkie NOTy, ANDy, ORy, NORy i NANDy będą towarzyszyły nam w każdym artykule!

Kluczową umiejętnością po tym artykule będzie samodzielne narysowanie tabel,
które tu się pojawiły i odniesienie ich zawartości do praktyki, czyli zrozumienie, jak wartości z tabeli przekładają się na stany wejść i wyjść układów.

W następnej części zajmiemy się budową bardziej złożonych układów logicznych z zastosowaniem scalonych układów cyfrowych. Poznamy również symbole bramek logicznych i uporządkujemy wiedzę dotyczącą poznanych tutaj funktorów.

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Autorzy: Michał Kurzela, Damian Szymański
Ilustracje: Piotr Adamczyk

Powiadomienia o nowych, darmowych artykułach!

Komentarze

daniel7745

0:48, 18.10.2016

#1

1. 0

2. 1

3. 1

Może jakaś podpowiedź do układu z NAND?

Treker
Administrator

10:39, 18.10.2016

#2

daniel7745, jesteś przekonany, co do poprawności swoich obliczeń :)?

Jeśli chodzi o NANDa, to nie chce zbyt mocno podpowiadać. Mamy opisany w artykule AND, wystarczy zanegować jego wyjście, a sama negacja też była omówiona. Trzeba połączyć odpowiednio oba funktory :)

daniel7745

15:10, 18.10.2016

#3

Ze schematem poradziłem sobie tak:

Czy teraz wyniki są poprawne?

latajaca

19:26, 18.10.2016

#4

Cześć! Mam pytanie odnośnie układu i zachowania się prądu przy NOR. Dlaczego w przypadku, gdy jeden z przycisków lub oba są wciśnięte prąd pomija LED? Przecież nadal może przez niego płynąć... Czy chodzi o to, że się rozkłada i dociera tam mniej prądu- niewystarczająco do zapalenia LEDówki, czy po prostu on tamtędy w ogóle nie płynie- ale jeśli tak, to dlaczego, skoro nic się tam prosto mówiąc 'nie rozrywa', jest ciągłość?

deshipu

19:47, 18.10.2016

#5

Prąd jest trochę jak woda -- jeśli ma do wyboru dwie drogi, jedna z większą opornością, druga z mniejszą, to rozdzieli się proporcjonalnie do tych oporności. No i teraz masz tam przycisk, który praktycznie robi zwarcie -- czyli ma oporność prawie 0, czuli nieskończenie mniej niż nawet najlepiej przewodząca dioda.

Inna sprawa, że zrobienie takiego układu w praktyce skończy się dymem i uszkodzoną baterią...

Wojciech

20:58, 18.10.2016

#6

deshipu napisał/a:

Inna sprawa, że zrobienie takiego układu w praktyce skończy się dymem i uszkodzoną baterią...

Coś źle spojrzałeś deshipu, przecież jest rezystor, który ogranicza prąd.

deshipu

21:07, 18.10.2016

#7

Wojciech napisał/a:

deshipu napisał/a:

Inna sprawa, że zrobienie takiego układu w praktyce skończy się dymem i uszkodzoną baterią...

Coś źle spojrzałeś deshipu, przecież jest rezystor, który ogranicza prąd.

To prawda, mea kupa.

leepa79

20:02, 04.11.2016

#8

Chwila przerwy z Arduino (dodałem dźwięki do uzbrojenia alarmu, 'todo' - 'bipy' do klawiatury), więc przyszła odpowiednia pora na Technikę cyfrową:

NAND

I zadanie do sprawdzenia ;)

Oczywiście wielkie podziękowania za kolejny kurs (powtarzam się?) :)

Treker
Administrator

8:22, 05.11.2016

#9

leepa79, super, dobra robota. Powodzenia w dalszej nauce, cieszę się, że kursy są przydatne :)

Zobacz powyższe komentarze na forum

FORBOT Damian Szymański © 2006 - 2017 Zakaz kopiowania treści oraz grafik bez zgody autora. vPRsLH.