Instytut Informatyki Stosowanej Prowadzący: dr inż. Stanisław Witkowski |
Wykonawcy ćwiczenia: 1. Kierownik 2. 3. 4. |
IIS PWSZ Rok - Grupa - Rok akademicki - |
||
LABORATORIUM Techniki Cyfrowej i Mikrokomputerów |
||||
Data ćwiczenia:
Nr ćwiczenia - VI |
|
Ocena: |
Cel ćwiczenia.
Celem ćwiczenia jest poznanie podstawowych zagadnień związanych z cyfrowymi dzielnikami częstotliwości oraz licznikami stosowanymi w technikach cyfrowych przemysłowych i akademickich.
Wymagane wiadomości:
Kody binarne, rodzaje dzielników, liczniki,
DZIELNIKI CZĘSTOTLIWOŚCI
1.1. Wiadomości podstawowe
Dzielnikiem częstotliwości nazywany jest układ, na którego wyjściu otrzymuje się jeden impuls co p impulsów wejściowych, czyli częstotliwość wyjściowa dzielnika jest p-krotnie mniejsza od częstotliwości wejściowej. W odróżnieniu od liczników, dzielnik częstotliwości ma tylko jedno wyjście. Oczywiście każdy licznik może pełnić funkcję dzielnika częstotliwości, natomiast odwrotne twierdzenie nie jest prawdziwe. Sposób kodowania stanów nie jest w przypadku dzielnika częstotliwości istotny, co stwarza niekiedy możliwość uproszczenia struktury dzielnika.
Synchroniczne dzielniki częstotliwości można projektować przy użyciu tych samych metod algebraicznych, co w przypadku liczników synchronicznych. Dzielniki asynchroniczne można projektować metodą rozkładu współczynnika podziału p na czynniki według zależności: p= 2n(2k+1) n,k=0,1,2, …
1.2. Dzielnik częstotliwości modulo 2
a)
b)
1.3. Dzielnik modulo 3
a)
b)
Dzielnik modulo 4
a)
b)
Dzielnik modulo 6
a)
b)
Układ 7490 dzielnik
a)
b)
Układ 7493 dzielnik
a)
b)
LICZNIKI
2.1. Wiadomości podstawowe
Podział liczników:
Podział liczników ze względu na sposób oddziaływania impulsów zliczanych na stan przerzutników licznika:
Asynchroniczne
Synchroniczne
Asynchroniczno- synchroniczne
Podział liczników pod względem sposobu powtarzania cyklu:
Licznik mod n
Licznik do n
Podział liczników pod względem długości cyklu:
Licznik o stałej długości cyklu
Licznik o nastawianej długości cyklu
Podział liczników pod względem kierunku zliczania:
Liczniki dwukierunkowe (rewersyjne)
Liczniki jednokierunkowe
Zliczające w przód
Zliczające wstecz
Podział liczników ze względu na kod zliczania:
Liczniki dziesiętne BCD
Liczniki dwójkowe
Inne (oktalne, Johnsona)
Licznik jest układem zliczającym w pewnym kodzie binarnym (najczęściej NBC) impulsy podawane na wejście zliczające. Liczniki konstruowane są z odpowiednio skonfigurowanych przerzutników synchronicznych typu D lub J-K. Podstawowym elementem jest tzw. dzielnik lub dwójka licząca. Jest to przerzutnik, który przy każdym impulsie zegarowym zmienia swój stan na przeciwny. Poniżej przedstawiam model takiej dwójki liczącej utworzony z dynamicznego przerzutnika D wyzwalanego narastającym zboczem sygnału zegarowego.
Dwójka licząca
Ponieważ do wejścia D podłączone jest wyjście komplementarne Q przerzutnika, to przy każdym impulsie zegarowym stan wyjścia Q zmienia się na przeciwny. Licznik uzyskamy łącząc w szereg odpowiednią liczbę dwójek liczących. Poniżej przedstawiamy model licznika 4-bitowego.
Cztero bitowy licznik asynchroniczny
Licznik tego typu nosi nazwę licznika asynchronicznego, ponieważ poszczególne przerzutniki nie przełączają się jednocześnie, lecz z pewnym opóźnieniem wynikającym z czasu propagacji sygnału w poprzednim przerzutniku (wyjście Q steruje wejściem zegarowym C następnego przerzutnika, więc zmiana stanu nastąpi dopiero przy przejściu tego wyjścia ze stanu 0 na 1). Ogranicza to maksymalną częstotliwość zliczania impulsów. Na wejście C podajemy impulsy do zliczania. Na wyjściach Q3, Q2, Q1 oraz Q0 otrzymujemy wartość dwójkową, która jest numerem kolejnego, zliczonego impulsu zegarowego. Poniżej przedstawiamy wykres czasowy stanów poszczególnych wyjść licznika. Wykresy takie często stosuje się przy projektowaniu urządzeń cyfrowych.
Wykres stanów na poszczególnych wyjściach licznika
Licznik zlicza od wartości 0 (wszystkie wyjścia Q mają stan 0) do 15 (wszystkie wyjścia Q mają stan 1). Gdy osiągnie on stan 15 i nadejdzie kolejny impuls zegarowy, licznik przewinie się na 0 i zliczanie nastąpi od nowa. Mówimy, iż licznik zlicza z modułem 16. Konstruowanie liczników asynchronicznych zliczających z innym modułem polega na zerowaniu wszystkich przerzutników, gdy stan licznika osiągnie wartość tego modułu. Do realizacji tego zadania wykorzystywana jest najczęściej bramka NAND. Poniżej przedstawiamy licznik zbudowany z trzech przerzutników D, zliczający z modułem 6 (tzn. na jego wyjściu będą pojawiały się stany kolejno 0, 1, 2, 3, 4, i 5 - stan 6 również pojawi się, ale na bardzo krótki okres czasu równy czasowi propagacji bramki NAND oraz przerzutników, po czym wszystkie przerzutniki zostaną wyzerowane).
Licznik o module 6
Działanie tego licznika jest dosyć proste. Zliczane są kolejne impulsy zegarowe, co powoduje odpowiednią zmianę stanu wyjść Q0, Q1, Q2. Gdy na wyjściach Q1 i Q2 pojawi się stan 1 (co odpowiada wartości binarnej 6 (Q2 = 1, Q1 = 1, Q0 = 0) zadziała bramka NAND i na jej wyjściu pojawi się stan 0. Ponieważ wyjście tej bramki połączone jest z wejściami zerowania przerzutników, to licznik zostanie wyzerowany - na wszystkich jego wyjściach Q pojawi się stan 0, a bramka NAND wróci do stanu 1. Nadejście kolejnego impulsu zegarowego na wejściu C rozpocznie nowy cykl zliczania. Poniżej przedstawiamy wykres czasowy tego licznika. Moment zadziałania bramki NAND zaznaczyliśmy kolorem czerwonym.
Wykres stanów logicznych na wejściu C oraz na wyjściach Q licznika
Z wykresu czasowego wynika, iż w tak skonstruowanym liczniku na wyjściach przez krótką chwilę utrzymuje się stan 6. Może to mieć niepożądane skutki dla układów logicznych, którymi licznik steruje. W takich sytuacjach stosujemy inne liczniki, zwane synchronicznymi. W liczniku synchronicznym stany wszystkich przerzutników zmieniają się równocześnie - sygnał zegarowy jest doprowadzony do wejścia każdego z przerzutników. Przełączaniem przerzutników steruje odpowiednio skonstruowana sieć logiczna. Zaprojektowanie takiego licznika może być trochę skomplikowane lecz nie przekracza możliwości uważnego czytelnika. Dla przykładu przedstawię wam sposób postępowania przy tworzeniu synchronicznego licznika o module 6.
Najpierw musimy utworzyć tabelkę kolejnych stanów wyjść licznika, które będą zmieniane kolejno przy każdym zboczu narastającym sygnału zegarowego. Tabelka jest następująca:
n |
Q2 |
Q1 |
Q0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
3 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
5 |
1 |
0 |
1 |
6 |
0 |
0 |
0 |
Z tabelki tej można wyciągnąć informację o tym, jaki stan powinien wystąpić na wejściu D każdego przerzutnika przed impulsem zegarowym, aby na wyjściach otrzymać stan następny. Na przykład, jeśli wyjścia licznika są w stanie 3 (Q2 = 0, Q1 = 1, Q0 = 1), to następnym stanem po nadejściu impulsu zegarowego będzie stan 4, czyli Q2 = 1, Q1 = 0, Q0 = 0. Aby tak się stało, przy stanie 3 na wejściach przerzutników muszą wystąpić stany D2 = 1, D1 = 0, D0 = 0, co wynika bezpośrednio z własności przerzutnika typu D. Możemy więc utworzyć tabelkę stanów wejść D w funkcji wyjść Q:
n |
Q2 |
Q1 |
Q0 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
2 |
0 |
1 |
0 |
0 |
1 |
1 |
3 |
0 |
1 |
1 |
1 |
0 |
0 |
4 |
1 |
0 |
0 |
1 |
0 |
1 |
5 |
1 |
0 |
1 |
0 |
0 |
0 |
6 |
0 |
0 |
0 |
|
|
|
Od impulsu 6 cykl się powtarza. Stany wejść D są funkcjami logicznymi stanów wyjść Q, co możemy zapisać następująco:
D2 = d2(Q2, Q1. Q0)
D1 = d1(Q2, Q1. Q0)
D0 = d0(Q2, Q1. Q0)
Zadanie sprowadza się, zatem do znalezienia postaci tych funkcji. Zrobimy to przy pomocy odpowiednich map Karnaugha utworzonych zgodnie z powyższą tabelką. Pozycji oznaczonej na czerwono (stan 111 wyjść) licznik nigdy nie osiąga, więc można tam wpisać dowolną wartość. Skorzystałem z tego faktu, aby uprościć maksymalnie funkcje przełączania przerzutników.
D0 |
Q1Q0 |
D0 = Q0 |
||||
|
00 |
01 |
11 |
10 |
|
|
Q2 |
0 |
1 |
0 |
0 |
1 |
|
|
1 |
1 |
0 |
0 |
1 |
|
D1 |
Q1Q0 |
D1 = Q2·Q1·Q0+Q1·Q0 |
||||
|
00 |
01 |
11 |
10 |
|
|
Q2 |
0 |
0 |
1 |
0 |
1 |
|
|
1 |
0 |
0 |
0 |
1 |
|
D2 |
Q1Q0 |
D2 = Q1·Q0+Q2·Q0 |
||||
|
00 |
01 |
11 |
10 |
|
|
Q2 |
0 |
0 |
0 |
1 |
0 |
|
|
1 |
1 |
0 |
1 |
1 |
|
Poniżej przedstawiamy model tego licznika.
Model synchronicznego licznika z modułem 6
Licznik ten nie posiada wady liczników asynchronicznych polegającej na pojawianiu się stanu 6 na wyjściach. Przeniesienia są generowane jednocześnie na podstawie aktualnego stanu licznika, więc może on działać z dużo większą częstotliwością. Należy zwrócić uwagę, iż w podany sposób możemy zaprojektować dowolny układ sekwencyjny, który wraz z kolejnymi impulsami zegarowymi przyjmuje wybrane stany wyjść.
2.2. Licznik pierścieniowy na przerzutnikach D
a)
b)
2.3. Licznik samokorygujący
a)
b)
2.4. Licznik Johnsona na przerzutnikach typu D
a)
b)
2.5. Licznik rewersyjny
a)
b)
2.6. Układ 7493 licznik
a)
b)
2.7. Układ licznika - 7490
a)
b)
7. Wykonać zamodelowania układów oraz ich opisu zgodnie z poleceniem prowadzącego.
Literatura
J.Pieńkos, J. Turczyński: Układy scalone TTL w systemach cyfrowych. Wydawnictwo komunikacji i Łączności. Warszawa 1986.
M. Nadachowski, Z. Kulka Analogowe układy scalone.
Paweł Sadowski - Praca licencjacka Pomiar napięcia i prądu z zastosowaniem komputera. UMK WFiA.
Craig M., Gillian E.: Zarys cyfrowego przetwarzania sygnałów. Wydawnictwa Komunikacji i Łączności, Warszawa 1999.
Szabatin J.: Podstawy teorii sygnałów. Wydawnictwa Komunikacji i Łączności, Warszawa 2000.
Barbara i Marek Pióro „Podstawy elektroniki 2”
Sasal W.: Układy scalone serii UCA64/UCY74. Parametry i zastosowania, WKiŁ, Warszawa, 1985.
Misiurewicz P.: Podstawy techniki cyfrowej, WNT, Warszawa, 1982.
Gajewski P., Turczyński J.: Cyfrowe układy scalone CMOS, WKiŁ, Warszawa, 1990.
Kalisz J. Podstawy elektroniki cyfrowej, WKiŁ, 2002.