KursyPoradnikiInspirujące DIYForum

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

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

Nadszedł 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.

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.

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

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.

Gotowe zestawy do kursów Forbota

 Komplet elementów  Gwarancja pomocy  Wysyłka w 24h

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!

Zamów w Botland.com.pl »

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

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.

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.

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.

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.

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).

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.

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.

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

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:

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

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ę.

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.

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!

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.

Czy wpis był pomocny? Oceń go:

Średnia ocena 4.8 / 5. Głosów łącznie: 266

Nikt jeszcze nie głosował, bądź pierwszy!

Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!

Nawigacja kursu

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

algebra, and, bool, funktor, kurs, kursTechnikaCyfrowa, nand, nor, not, or

Trwa ładowanie komentarzy...