Back

Pierwsze kroki w cyfrówce – część 12

W poprzedniej części dywagowaliśmy o różnego rodzajach generatorach monostabilnych i generatorach VCO. W tej części przyjrzymy się przerzutnikom RS i D.

Przerzutniki

Na początek uporządkujmy sobie trochę sprawę nazewnictwa.

Sama nazwa przerzutnik niewiele mówi. Ogólnie biorąc, pod tym hasłem rozumiemy proste układy logiczne, mające dwa stany wyjściowe. Pod ogólną nazwą przerzutnik kryją się różne urządzenia o zupełnie odmiennym działaniu. Zauważ, że może tu powstać pewien galimatias w nazewnictwie.

1. Wcześniej mówiliśmy o generatorach. Generator przebiegu prostokątnego ma dwa stany (wysoki i niski), a żaden z nich nie jest stanem stabilnym. Generatory cyfrowe czasami nazywane są przerzutnikami astabilnymi (czyli niestabilnymi) lub nawet generatorami astabilnymi. Inna spotykana nazwa generatora przebiegu prostokątnego to multiwibrator. Proponuję, byśmy trzymali się ogólnej nazwy generator, a nie mieszali tu określenia przerzutnik.

2. Omówiliśmy układy mające jeden stan stabilny, generujące po pobudzeniu jeden impuls. Układy takie często nazywane są uniwibratorami, monowibratorami, przerzutnikami monostabilnymi, przerzutnikami jednostabilnymi, a czasami także generatorami monostabilnymi lub generatorami jednostabilnymi.

Proponuję i tu nie używać określenia przerzutnik, a pozostać przy nazwie uniwibrator.

3. Trzecią grupą przerzutników są układy bistabilne, inaczej dwustabilne, czyli mające dwa stany stabilne. Po przerzuceniu wyjścia w dany stan (wysoki albo niski), wyjście może pozostać w tym stanie przez dowolnie długi czas.

Umówmy się, że w dalszej części artykułu przerzutnikami będziemy nazywać tylko układy bistabilne.

4. W literaturze często spotyka się nazwę przerzutnik Schmitta. Chodzi o układ bramki logicznej z histerezą.

Nie nazywajmy tego przerzutnikiem – pozostańmy przy określeniu bramka lub inwerter Schmitta.

W tym odcinku zajmiemy się trzecią grupą – układami bistabilnymi.

Przeczytałeś przed chwilą, że taki przerzutnik ma dwa stabilne stany wyjściowe. Ale o co tu chodzi?

Najprościej mówiąc przerzutnik jest prostym układem pamiętającym. Możemy do niego (na jego wyjście) wpisać jeden z dwóch stanów logicznych (wysoki lub niski) i przerzutnik będzie pamiętał ten stan aż do wpisania innego stanu lub do chwili wyłączenia zasilania.

Zapamiętaj więc, że przerzutnik w zasadzie jest najprostszym elementem pamiętającym.

Istnieje kilka typów podstawowych przerzutników, zaraz je poznasz, ale już teraz wiedz, iż różnią się one sposobem sterowania, czyli sposobem zmiany stanów wyjściowych.

Kiedyś poinformowałem cię, że bramki są podstawowymi cegiełkami wszelkich układów logicznych i cyfrowych. Właśnie, każdy przerzutnik można wykonać z kilku lub kilkunastu bramek. Czasami tak robimy, ale tylko w przypadku przerzutników najprostszych. Częściej wykorzystujemy gotowe przerzutniki produkowane jako układy scalone.

W każdym razie przerzutniki wyznaczają kolejny stopień skomplikowania układów logicznych. Są bardziej skomplikowane niż bramki. Ale pojedyncze przerzutniki są swego rodzaju cegiełkami – trochę większymi niż bramki, ale też w sumie bardzo drobnymi cegiełkami. Już teraz przyjmij do wiadomości, że wszelkie liczniki zbudowane są właśnie z odpowiednio połączonych przerzutników. To samo dotyczy rejestrów, o których niedługo dowiesz się czegoś więcej.

Natomiast typowe pamięci niekoniecznie składają się z przerzutników, choć przerzutnik jest elementem pamiętającym. Taka na przykład pamięć EPROM, o której na pewno słyszałeś, z przerzutnikami nie ma praktycznie nic wspólnego.

Informacje wstępne

W przypadku bramek mamy do czynienia z bramkami prostymi (AND, OR), oraz z bramkami z negacją stanu wyjściowego (NAND, NOR). Chyba nie spotkałeś bramki, która jednocześnie miałaby dwa wyjścia: proste i zanegowane (układy scalone zawierające takie twory istnieją, ale są bardzo rzadko używane). Stany obu wyjść są zawsze przeciwne, a zmiany na nich następują praktycznie w tym samym momencie (z dokładnością do kilku, najwyżej kilkunastu nanosekund). Mówimy, że są to wyjścia komplementarne, czyli dopełniające.

W przerzutnikach jest inaczej: bardzo często przerzutnik ma dwa wyjścia: proste i zanegowane.

Zapamiętaj: każdy przerzutnik ma przynajmniej jedno wyjście główne: proste, niezanegowane, oznaczane zwykle literą Q. Drugie wyjście – zanegowane (jeśli występuje) oznaczane jest Q z kreską nad literą lub Q\ czyli dużą literę Q i pochyłą kreskę – tak zwany backslash (czyt. bekslesz). Zapamiętaj więc, że Q z kreską nad literą i Q\ oznacza to samo – wyjście zanegowane.

Zapamiętaj też pewne przyjęte określenia. Wpisanie wysokiego poziomu logicznego (jedynki) na główne, niezanegowane wyjście nazywane jest ustawieniem przerzutnika (po angielsku set). Natomiast wpisanie na to główne wyjście stanu niskiego (zera logicznego), nazywane jest wyzerowaniem przerzutnika (po angielski reset).

Czasem, zwłaszcza w układach scalonych zawierających więcej niż jeden przerzutnik, nie wpisuje się przy wyprowadzeniach wyjściowych liter Q, stosuje się natomiast typowe oznaczenia, z którymi się już spotkałeś w bramkach – zwykła kreska przedstawia wyjście proste, kreska z kółeczkiem oznacza wyjście zanegowane.

Wbij to sobie do głowy raz na zawsze! Pomocą niech będzie rysunek 1.

Rysunek 1

Istnieje kilka rodzajów przerzutników. Różnią się one sposobem wpisywania i zerowania wyjścia. Omówimy teraz ich działanie i pokażę ci, jak wykorzystuje się je w praktyce.

Zaczynamy!

Przerzutnik RS

Podstawowy symbol przerzutnika RS jest pokazany na rysunku 2a.

Rysunek 2

Działanie tego przerzutnika jest beznadziejnie proste: pobudzenie wejścia S (Set – ustaw) ustawia przerzutnik, czyli wpisuje na wyjście Q wysoki stan logiczny. Natomiast pobudzenie wejścia R (Reset – zeruj) zeruje przerzutnik, czyli wpisuje na wyjście Q stan niski. To w zasadzie wszystko. Proste?

Jak drut!

Ale zapytasz może, co to znaczy pobudzenie? Słusznie!

Dla niektórych przerzutników RS pobudzenie to podanie na wejście stanu wysokiego, dla innych – niskiego.

Możemy tu mówić o stanie spoczynkowym i stanie aktywnym (stanie pobudzenia) tych wejść. Jeśli stanem spoczynkowym jest stan niski, a stanem aktywnym wysoki, to mówimy, że są to wejścia proste (niezanegowane). Jeśli stanem aktywnym jest stan niski, to dla późniejszej łatwiejszej analizy działania układu na wejściach przerzutnika rysujemy kółeczka oznaczające negację – pokazuje to rysunek 2b.

Czy jednak koniecznie musimy mówić o stanie spoczynku i stanie aktywnym wejść? Chyba dopuszczalne są cztery kombinacje stanów wejściowych: LL LH HL HH.

W zasadzie masz rację, że na wejściach mogą pojawić się wszystkie cztery kombinacje. Jednak jednej z nich należy w miarę możliwości unikać. Dlaczego?

Jak sądzisz, co się stanie przy jednoczesnym podaniu na wejścia Set i Reset stanu aktywnego? Jak zareaguje przerzutnik?

No właśnie! Z podanej wcześniej definicji przerzutnika RS nie wynika, co się wtedy stanie. Wszystko zależy od budowy wewnętrznej takiego przerzutnika. W praktyce okazuje się, że poszczególne przerzutniki RS reagują na to nietypowe wymuszenie różnymi stanami na wyjściach. Na przykład na obu wyjściach może pojawić się wtedy stan wysoki. W innym przerzutniku RS na obu wyjściach może pojawić stan niski. W niektórych podręcznikach takie podanie na oba wejścia stanu aktywnego nazywa się stanem zabronionym. Nie znaczy to, że przerzutnik ulegnie wtedy uszkodzeniu, albo zdarzy się coś podobnego. Nic strasznego się nie stanie, ale wyjścia przestaną pełnić swoje przepisowe role i zazwyczaj nie będą wyjściami komplementarnymi.

W każdym razie unikaj podawania stanu aktywnego na oba wejścia przerzutnika RS jeśli nie wiesz dokładnie, jak zareaguje on na takie schizofreniczne wymuszenie.

Jeśli nie wiadomo, co dzieje się na wyjściach w stanie zabronionym, to może zapytasz, po co utrudniać życie wprowadzając różnego typu przerzutniki – wystarczyłby jeden przerzutnik z wejściami jednego typu, reagujący na dwa stany aktywne w ściśle określony sposób.

Jak się za chwilę dowiesz, nie jest to wcale utrudnianie życia. Przerzutniki RS realizowane są w różny sposób, niektóre realizacje pozwalają szybko określić reakcję przerzutnika na stan zabroniony. Popatrz na rysunek 3. To są właśnie dwa przykłady realizacji przerzutnika RS za pomocą bramek NOR albo NAND (ale przerzutnika RS nie można zbudować z bramek OR ani AND – zastanów się dlaczego).

Rysunek 3

Działanie przerzutników z rysunku 3 musisz dobrze poznać, bo często będziesz je stosował w swoich konstrukcjach.

Przeanalizujmy działanie przerzutnika zbudowanego z bramek NOR (rysunek 3a). Stanem spoczynkowym wejść przerzutnika jest stan niski. Załóżmy, że w pewnej chwili podajemy stan aktywny (wysoki) na wejście oznaczone S. Niezależnie od stanu drugiego wejścia bramki A, na wyjściu tej bramki (wyjście Q\) na pewno pojawi się stan niski. Tym samym na obydwu wejściach bramki B pojawi się stan niski. Na wyjściu tej drugiej bramki wystąpi więc na pewno stan wysoki. Nawet gdy po chwili z wejścia S zniknie stan aktywny (znów pojawi się stan niski), to stan wysoki z wyjścia bramki B zapewni pozostanie wyjścia bramki A w stanie niskim. Ewentualne następne impulsy na wejściu S nic nie zmienią.

Jeśli jednak przy obecności stanu niskiego na wejściu S, pojawi się stan aktywny (wysoki) na wejściu R, to stan wyjść Q i Q\ zmieni się na przeciwny. Ewentualne następne impulsy na wejściu R nic w tej sytuacji nie zmienią. Dopiero impuls aktywny na wejściu S znów zmieni stan wyjść.

A co się stanie, gdy na oba wyjścia podamy stan wysoki (aktywny)?

Przeanalizuj to samodzielnie!

Nie bój się, nic się nie zepsuje, ani nie wybuchnie! Rzeczywiście, na obu wyjściach pojawi się po prostu stan niski. I co dalej?

Dalej wszystko będzie zależeć od tego, które wejście pierwsze powróci do stanu spoczynkowego, a które pozostanie w stanie aktywnym choćby odrobinkę dłużej. O stanie wyjść zadecyduje to wejście, na którym stan aktywny pozostawał choć odrobinę dłużej.

Sam to dokładnie przeanalizuj, bo jest to ważna sprawa praktyczna.

Tak samo starannie przeanalizuj, jak działa przerzutnik RS zbudowany z bramek NAND (rysunek 3b), bo na pewno będziesz taki przerzutnik często stosował.

Na rysunku 4 podałem ci schematy przerzutników RS zbudowanych z inwerterów. Ten nietypowy sposób realizacji przerzutnika także przydaje się w praktyce.

Rysunek 4

Czasami do budowy przerzutników RS stosuje się bramki wielowejściowe. Zastanów się, w jakich warunkach zmieniają stany wyjściowe przerzutniki z rysunku 5.

Rysunek 5

Powinieneś też pamiętać, że kostki CMOS4043 i 4044 zawierają po cztery proste przerzutniki RS (4043 z bramek NOR, 4044 z bramek NAND). Dodatkową zaletą tych kostek jest obecność na wyjściach buforów trójstanowych i wejścia sterującego ENABLE, które, jeśli jest w stanie niskim, powoduje ustawienie wszystkich wyjść w stanie trzecim, czyli odcina te wyjścia i zachowują się one wtedy jak nie podłączone końcówki. Układy 4043 i 4044 są często wykorzystywane w praktyce – zainteresuj się nimi.

Przerzutnik D

Symbol przerzutnika D znajdziesz na rysunku 6a. Wejście D nazywa się wejściem informacyjnym lub wejściem danych (od angielskiego Data), a wejście CL – wejściem zegarowym (od ang. CLock). Często zamiast CL, spotyka się równoznaczny napis CLK.

Rysunek 6

Działanie przerzutnika D też jest beznadziejnie proste.

Stan wejścia D jest wpisywany (inni mówią przepisywany) na wyjście Q w momencie, gdy na wejściu zegarowym występuje aktywne zbocze. Mówimy, że przerzutnik D jest wyzwalany zboczem. Inaczej było w przypadku przerzutników RS, bo tam o stanach wyjściowych decydowały poziomy, a nie zbocza.

Uważaj! Pojawiło się nowe pojęcie! Oprócz aktywnego poziomu, tu mamy do czynienia z aktywnym zboczem.

Zbocze to moment zmiany stanu logicznego. Gdy stan zmienia się z niskiego na wysoki mówimy o zboczu rosnącym (często w literaturze nazywanym zboczem dodatnim). Gdy stan zmienia się z wysokiego na niski, mamy zbocze opadające, inaczej ujemne – spójrz na rysunek 6b .

W przerzutniku D pojawiła się pewna nowość. O ile w przerzutnikach RS stan wyjścia zmieniał się pod wpływem poziomu sygnału wejściowego, o tyle w przerzutniku D zmiany związane są z aktywnym zboczem czyli zmianą stanu sygnału zegarowego. W przerzutnikach tylko jedno zbocze (rosnące albo malejące) jest zboczem aktywnym.

Zapamiętaj! W przerzutnikach zawsze tylko jedno ze zboczy jest aktywne. Jeśli aktywne jest zbocze opadające (ujemne), to na symbolu przerzutnika przy wejściu zegarowym rysujemy kółeczko oznaczające negację – zobacz rysunek 6c. Zapewne zauważyłeś, że kółeczko zawsze oznacza negację albo „coś odwrotnego”. Na przykład w bramkach i podobnych układach kółeczko na wejściu oznacza, że poziomem aktywnym jest poziom niski (stan niski – L). Nie przegap, że tym razem nie chodzi o poziom, tylko o zbocze – zbocze ujemne (opadające).

Często, w przerzutnikach (oraz niektórych bardziej złożonych układach) żeby uwidocznić wejście zegarowe reagujące nie na poziom tylko na zbocze, rysuje się przy takim wejściu coś podobnego do strzałki – wygląda to mniej więcej tak, jak na rysunku 6d. W niektórych katalogach wejście zegarowe oznaczane jest nie literami CL lub CLK, tylko literą T. Zapamiętaj i tę informację.

Na rysunku 7a znajdziesz przebiegi ilustrujące działanie przerzutnika D, gdzie zbocze rosnące jest zboczem aktywnym (czyli przerzutnika z rysunku 6a). Na rysunku 7b – przerzutnika ze zboczem aktywnym ujemnym (z rysunku 6c). Zauważ, że na obu rysunkach przebiegi na wejściach są identyczne.

Rysunek 7

Pionowymi czerwonymi liniami przerywanymi zaznaczyłem aktywne zbocza. W miejscach, gdzie są znaki zapytania, nie wiadomo, jaki stan został wpisany do przerzutnika, bo sygnał na wejściu informacyjnym D zmieniał się akurat podczas aktywnego zbocza sygnału zegarowego. Ale nie martw się – do przerzutnika na pewno nie zostanie wtedy wpisana żadna pośrednia wartość napięcia – na pewno będzie to albo „czysty” stan niski, albo wysoki, problem jedynie w tym, że nie sposób określić, jaki to będzie stan. W praktyce takie sytuacje zdarzają się rzadko, bo oba zbocza muszą wystąpić (powiedzmy w uproszczeniu) w tym samym momencie z dokładnością do miliardowych części sekundy.

Teraz kolejna ważna sprawa. Przy okazji omawiania bramek wkładałem ci do głowy, że bramki nie lubią na wejściach powolnych zmian napięcia, czyli łagodnych zboczy (na wyjściach bramek mogą pojawić się wtedy pasożytnicze drgania). Tym bardziej przerzutniki wymagają ostrych zboczy na wejściu zegarowym. Obraz z rysunku 6b może być mylący, sugerując że zbocza te mogą być nachylone, czyli łagodne. Naturalnie w rzeczywistości nie ma idealnie stromych zboczy. Można przyjąć w uproszczeniu, że dla układów rodziny CMOS 4000 zbocza sygnału zegarowego powinny trwać krócej niż 1 mikrosekundę. Czy to dużo, czy mało? Na przykład w układach logicznych CMOS typowe czasy narastania (i opadania) zboczy wynoszą kilkadziesiąt nanosekund (poniżej 0,1 mikrosekundy) – tym samym zupełnie nie trzeba się martwić, gdy sygnał zegarowy wytwarzany jest przez inny układ CMOS. Problemy mogą wystąpić tylko wtedy, gdy sygnał zegarowy wytwarzany jest gdzie indziej, a nie przez układ CMOS (lub TTL). Tym problemem zajmiemy się w jednym z następnych odcinków.

Teraz idziemy dalej. Nie będę ci podawał sposobów realizacji przerzutnika D z bramek. Mnie ktoś kiedyś w szkole wkładał to do głowy. Nie ma to najmniejszego sensu! Nikt zdrowy na umyśle nie będzie budował przerzutnika D z bramek, jeśli ma do dyspozycji gotowe kostki zawierające takie przerzutniki. Na rysunku 8 znajdziesz układ wyprowadzeń kostki 4013, zawierającej dwa przerzutniki D. Zapoznaj się dokładnie z tą kostką, bo jest to układ bardzo często używany w amatorskich konstrukcjach.

Rysunek 8

Zauważ, że przerzutniki D z tej kostki oprócz wejść CL i D, mają także poznane wcześniej wejścia R i S.

Tak! Przerzutniki D z kostki 4013 (a także z kostek rodziny TTL, np. 7474) mogą pracować również jako przerzutniki RS. I co ciekawe, wejścia R, S mają pierwszeństwo przed wejściami D i CL. To znaczy, jeśli przykładowo wymusisz na wyjściu Q stan niski, podając na wejście R na stałe stan aktywny, to nie uda się wpisanie w tym czasie do przerzutnika sygnałem zegarowym CL stanu wysokiego z wejścia D.

Powinieneś też wiedzieć, co dzieje się na wyjściach po podaniu na oba wejścia R i S kostki 4013 stanu aktywnego (wysokiego). Otóż na obu wyjściach pojawia się wtedy stan wysoki.

Oprócz pojedynczych przerzutników D produkuje się także zespoły takich przerzutników, mających połączone wejścia zegarowe. Układy takie stosowane są w sprzęcie komputerowym – podczas dodatniego zbocza zegara jednocześnie wpisywany jest do przerzutników cały bajt danych. Na rysunku 9 możesz zobaczyć blokowy schemat wewnętrzny układów: 74374 i 74574, zawierających po osiem przerzutników typu D ze wspólnym wejściem zegarowym. Oba układy mają identyczną budowę wewnętrzną, a różnią się jedynie rozkładem wyprowadzeń – częściej używane są kostki 574. Niewykluczone, że kiedyś przydadzą ci się takie kostki, zapamiętaj, że takowe istnieją.

Rysunek 9

Pojedyncze przerzutniki z kostek 4013 będziesz wykorzystywał rozmaicie: czasem jako przerzutniki RS (na jedno wychodzi: budować dwa przerzutniki z kostki 4001 czy 4011, albo wykorzystać układ 4013), czasem jako D, czasem w obu tych rolach (tak!), a często jeszcze inaczej – o tym dowiesz się w następnych odcinkach. Jeśli nie będziesz wykorzystywał wejść R i S, nie zapomnij, że musisz je zewrzeć do masy (stanem spoczynkowym jest niski). Nigdy nie pozostawiaj żadnych nie podłączonych wejść kostek wykonanych w technologii CMOS.

Jeśli nie będziesz wykorzystywał wejść D i CL, powinieneś je podłączyć do plusa zasilania albo do masy. Nie ma to znaczenia, czy będzie to plus czy masa, bo przecież zmiany następują tylko podczas aktywnego zbocza na wejściu CL.

A kolejny odcinek cyklu znajdziesz tutaj.

Piotr Górecki