Dzielniki częstotliwości
Transkrypt
Dzielniki częstotliwości
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Energoelektroniki i Maszyn Elektrycznych Laboratorium Techniki Cyfrowej i Mikroprocesorowej Liczniki i dzielniki częstotliwości Ćwiczenie V Opracował: mgr inż. Marek Adamowicz Gdańsk 2003 Liczniki i dzielniki częstotliwości Liczniki i dzielniki częstotliwości Instrukcja 1. Cel i zakres ćwiczenia Celem ćwiczenia jest utrwalenie i uzupełnienie wiedzy na temat liczników i dzielników częstotliwości oraz zapoznania się z najczęściej stosowanymi rozwiązaniami praktycznymi tych układów w oparciu o konfigurowalny układ logiczny EPF6016QC firmy ALTERA. 2. Wprowadzenie Licznikiem nazywa się układ cyfrowy służący do zliczania impulsów i pamiętania ich liczby. Każdy impuls wejściowy powoduję zmianę stanu licznika. Stan licznika utrzymuje się aż do chwili pojawienia się kolejnego impulsu. Liczba różnych stanów licznika P nazywana jest pojemnością (okresem, długością cyklu) licznika. Licznik o pojemności P nazywany jest licznikiem modulo P. Pojemność licznika jest zależna od liczby przerzutników, z których składa się licznik. Liczba przerzutników s potrzebna do zbudowania licznika o pojemności P musi spełniać warunek: 2s ≥ P . Liczbę s nazywa się długością lub liczbą bitów licznika. Zazwyczaj jeden spośród P stanów licznika jest przyjęty jako początkowy (zerowy) i może być ustawiany za pomocą specjalnego wejścia zerującego, działającego niezależnie od aktualnej zawartości licznika. Ze względu na sposób doprowadzania zliczanych impulsów do wejść poszczególnych przerzutników rozróżnia się trzy typy liczników: • • • asynchroniczne (szeregowe), synchroniczne (równoległe), asynchroniczno – synchroniczne (szeregowo – równoległe). W licznikach asynchronicznych impulsy są podawane tylko na wejście pierwszego przerzutnika. Wyjście pierwszego przerzutnika steruje drugim przerzutnikiem itd. Zmiana stanu każdego członu następuje więc dopiero po zmianie poprzedniego członu, a nie synchronicznie z sygnałem wejściowym. Ostatni człon otrzymuje impulsy wejściowe opóźnione o sumę czasów przełączania wszystkich poprzednich członów. W licznikach synchronicznych sygnał wejściowy podawany jest równocześnie na wszystkie stopnie. Zmiana stanu danego stopnia następuje wówczas, gdy wszystkie poprzednie stopnie znajdują się w stanach końcowych. Informacja o tym, że dany stopień znajduje się w stanie końcowym , jest przesyłana do następnych stopni w postaci sygnału przeniesienia za pośrednictwem dodatkowego układu kombinacyjnego. Zaletą liczników synchronicznych jest większa szybkość działania wynikająca z faktu, że zmiana stanu wszystkich przerzutników następuje jednocześnie (z dokładnością do czasów propagacji przeniesień przez układ kombinacyjny); natomiast wadą – większa złożoność wynikająca z konieczności generowania przeniesień. Układy asynchroniczno – synchroniczne są wykorzystywane w przypadku liczników o dużej pojemności (większej od 16), budowanych z liczników scalonych MSI Katedra Energoelektroniki i Maszyn Elektrycznych 2 Liczniki i dzielniki częstotliwości (ang. Medium-Scale Integration –o średnim stopniu scalenia). Zazwyczaj łączy się szeregowo kilka scalonych liczników synchronicznych (natomiast równoległego łączenia liczników asynchronicznych raczej nie stosuje się). Każdemu stanowi licznika można przyporządkować liczbę odpowiadająca kombinacji zer i jedynek logicznych na wyjściach przerzutników. Jeśli liczby te są reprezentacjami naturalnego kodu dwójkowego, to licznik nazywamy dwójkowym lub binarnym. Jeśli natomiast reprezentują one wybrany kod dwójkowo –dziesiętny to licznik nazywamy dziesiętnym lub dekadą. W układach sterowania binarnego stosuje się często inne kody pracy liczników, np. kod 1 z n (licznik pierścieniowy), kod Johnsona (licznik Johnsona) i inne. Układy wykorzystujące kody tego typu są badane w ramach ćwiczenia „Rejestry”. Liczniki dwójkowe i dziesiętne mogą zliczać w przód (tzn. każdy kolejny impuls zwiększa o 1 liczbę reprezentującą stan licznika), względnie wstecz (liczba odpowiadająca stanowi licznika jest zmniejszana o jeden po każdym impulsie). Liczniki zliczające tylko wprzód lub tylko wstecz nazywane są licznikami jednokierunkowymi. Stosowane są również tzw. liczniki rewersyjne (dwukierunkowe), zliczające wprzód lub wstecz w zależności od sygnału określającego kierunek zliczania. Do syntezy liczników synchronicznych można wykorzystać dobrze opracowane metody algebraiczne. Przy użyciu tych metod można przeprowadzić syntezę licznika działającego zgodnie z dowolnym grafem zmian stanu. Dla liczników asynchronicznych (i układów asynchronicznych w ogóle) takiej ogólnej metody, jak dotąd nie opracowano. Istnieje jednak praktyczna metoda pozwalająca na uzyskanie dowolnej pojemności licznika asynchronicznego przez skrócenie cyklu licznika dwójkowego o odpowiedniej długości. Metoda ta polega na detekcji żądanego stanu końcowego i zerowaniu licznika po wykryciu tego stanu (rys. 1). Detektor stanu końcowego ... we QN .. } wy licznika Q1 Licznik dwójkowy N-bitowy zerowanie wy dzielnika Rys. 1. Licznik/dzielnik częstotliwości z detekcją stanu końcowego i zerowaniem Metodę te można stosować w odniesieniu do dowolnego licznika, także w wersji scalonej. Jeśli długość cyklu licznika ma być równa P, to detektor powinien wykrywać wystąpienie na wyjściach licznika stanu reprezentującego liczbę P w kodzie binarnym. Wykrycie stanu P powinno spowodować wyzerowanie licznika. Następuje to w tym samym takcie zegara, w którym licznik osiąga stan P, a więc w jednym takcie zegara na wyjściu licznika można obserwować dwa różne stany. Innymi słowy, w ciągu P taktów zegara licznik przyjmuje P+1 stanów (0,1,...,P), z których jeden, stan P, należy traktować jak stan pasożytniczy. Jego obecność jest niezbędna dla właściwego działania układu, lecz niepożądana (w idealnym liczniku każdemu taktowi zegara odpowiada tylko jeden stan). Czas trwania tego stanu jest dla układów TTL rzędu kilkudziesięciu nanosekund i jest to Katedra Energoelektroniki i Maszyn Elektrycznych 3 Liczniki i dzielniki częstotliwości suma czasu propagacji stanu P przez detektor stanu końcowego ( wytworzenie impulsu zerującego) oraz czasu propagacji impulsu zerującego do wyjść licznika (zerowanie licznika). Jeśli proces zerowania licznika przebiega nierównomiernie, tzn. niektóre przerzutniki w liczniku są zerowane wcześniej niż pozostałe, to w procesie przejściowym związanym z zerowaniem licznika mogą pojawić się także inne niż P, niepożądane stany. Należy zwrócić uwagę na fakt, że z chwilą gdy stan P przechodzi w inny stan na skutek działania impulsu zerującego, impuls ten przestaje być wytwarzany przez detektor, co może prowadzić do niepełnego wyzerowania licznika. Wystąpienie takiej sytuacji oznaczałoby poważne zakłócenie cyklu pracy licznika. Z tego względu często stosuje się środki zapewniające dostatecznie długi czas trwania impulsu zerującego. Jeden z popularnych sposobów przedstawiono na rys. 5 ( działanie tego układu należy samodzielnie przeanalizować przed przystąpieniem do ćwiczenia). 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) Część parzystą realizuje się za pomocą n dwójek liczących (tj. dzielników częstotliwości przez 2), natomiast część nieparzystą zgodnie z rys. 2. 1:k Rys. 2. Dzielnik asynchroniczny modulo 2k+1. Na wejścia K obu przerzutników podany stan wysoki „1”. Blok dzielnika 1:k z rys. 2 można dalej dekomponować według wzoru (1) aż do uzyskania k =1. Na przykład dla p =502 kolejne kroki rozkładu są następujące: 1) 2) 3) 4) 5) 6) 502 = 2 * (2 * 125 + 1) 125 = 2 * 62+1 62 = 2 * (2 * 15 + 1) 15 = 2 * 7 + 1 7=2*3+1 3=2*1+1 Katedra Energoelektroniki i Maszyn Elektrycznych 4 Liczniki i dzielniki częstotliwości W praktyce wygodniej jest zakończyć dekompozycję wcześniej, korzystając ze znanych z literatury rozwiązań dzielników przez 3, 5, 7. Możliwość podziału przez 3, 5 lub 7 można także wykorzystać na wcześniejszych etapach dekompozycji, np.: 1) 2) 502 = 2* (2 * 125 + 1) 125 = 5 * 5 * 5 Powyższy rozkład wymaga użycia 12 przerzutników JK, podczas gdy dla poprzedniego rozkładu (zakończonego dla k=7) potrzeba 14 przerzutników. Metoda rozkładu na czynniki jest nieekonomiczna i mało uniwersalna (nieprzydatna do syntezy dzielników synchronicznych i dzielników budowanych z liczników scalonych). Dlatego znacznie częściej realizuje się dzielniki częstotliwości wykorzystując liczniki (zazwyczaj scalone) z układem detekcji żądanego stanu końcowego i zerowaniem (rys. 1). Wyjściem dzielnika jest w tym przypadku wyjście detektora stanu końcowego P, gdzie uzyskuje się jeden impuls zerujący na każde P taktów zegara (podział częstotliwości wejściowej przez P). Ponieważ czas trwania impulsu zerującego jest bardzo krótki i trudny do precyzyjnego określenia, a niezawodność całego układu może budzić pewne wątpliwości, często stosuje się wspomnianą już wersję układu z rys. 5. Dla uzyskania odpowiednio dużych pojemności liczników (współczynników podziału dzielników) budowanych z liczników scalonych często niezbędne jest kaskadowe łączenie kilku mikroukładów. W przypadku scalonych liczników asynchronicznych zazwyczaj łączy się najbardziej znaczące wyjście młodszego stopnia z wejściem starszego stopnia. Scalone liczniki synchroniczne posiadają zwykle specjalne wyprowadzenia służące do łączenia tych układów w bloki o większej pojemności (w ogólnym przypadku dla prawidłowego wykorzystania tych wyprowadzeń konieczne jest odwołanie się do literatury pomocniczej np.: not aplikacyjnych zamieszczanych na stronach internetowych producentów). Liczniki zliczające wprzód mają zazwyczaj tzw. wyjście przeniesienia, na którym poziomem aktywnym, zwykle niskim sygnalizowane jest osiągnięcie przez licznik stanu 11...1. Liczniki zliczające wstecz wyposażone są w wyjście pożyczki sygnalizujące osiągnięcie przez licznik stanu 00...0. Scalone liczniki synchroniczne wyposażone są często w tzw. wejścia ustawiające, umożliwiające ustalenie dowolnego stanu początkowego licznika. Stwarza to możliwość łatwej realizacji liczników o programowanej długości cyklu, szczególnie w przypadku liczników zliczających wstecz. Wyjście pożyczki można połączyć z wejściem wpisującym tj. wejściem uaktywniającym ustawienie licznika, tak aby wystąpienie stanu 00...0 powodowało przepisanie do licznika stanu wejść ustawiających. Długość cyklu takiego licznika jest równa liczbie P reprezentowanej przez stan wejść ustawiających, względnie P+1 zależnie od zastosowanego w wykorzystywanym liczniku scalonym sposobu ustawiania licznika (asynchroniczny lub synchroniczny) oraz od sposobu połączenia wyjścia pożyczki wejściem wpisującym. Przykład licznika/dzielnika o programowanej długości cyklu pracującego według omawianej zasady przedstawia rys. 6. Zastosowany w układzie licznik scalony UCY 74193 charakteryzuje się ustawianiem asynchronicznym. W przypadku połączenia wyjścia pożyczki układu UCY 74193 z wejściem wpisującym, jak na rys. 6, długość cyklu licznika jest równa P. Liczba stanów, jakie można zaobserwować na wyjściu, jest jednak równa P+1 (dwa stany: 0 i P pojawiają się w tym samym takcie zegara). Stan P należy uznać za niepożądany, choć jego obecność, podobnie jak w poprzednim rozpatrywanym układzie z rys. 1, warunkuje prawidłowe działanie układu. Ponadto, analogicznie jak w układzie z rys. 1, istnieje w rozważanym układzie niebezpieczeństwo wystąpienia zakłóceń cyklu pracy licznika w przypadkach dużych różnic w czasach propagacji sygnałów od wejść ustawiających do wyjść poszczególnych przerzutników. Podobnie czas trwania impulsu wyjściowego dzielnika jest Katedra Energoelektroniki i Maszyn Elektrycznych 5 Liczniki i dzielniki częstotliwości bardzo krótki, rzędu kilkudziesięciu nanosekund. W wielu przypadkach dla zwiększenia niezawodności działania układu należy zastosować środki wydłużające impuls wpisujący. W technologii TTL (seria UCY 74...) dostępne są 4-bitowe scalone liczniki dwójkowe i dziesiętne (zarówno synchroniczne jak i asynchroniczne). Niektóre spośród liczników asynchronicznych są rewersyjne. W technologii CMOS (seria MCY 74...) dostępne są ponadto podwójne liczniki synchroniczne (dwa 4-bitowe liczniki w jednej obudowie) oraz 8-bitowe liczniki synchroniczne z wejściami ustawiającymi. W czasie ćwiczenia badane są scalone liczniki TTL: UCY 7493 – asynchroniczny 4-bitowy licznik dwójkowy; UCY 74193 – synchroniczny, rewersyjny, 4-bitowy licznik dwójkowy z wejściami ustawiającymi. 3. Program ćwiczenia – część symulacyjna 3.1. Zarejestrować cykl pracy licznika UCY 7493 WE licznika 7493 RO1 RO2 0 X X 0 1 1 FUNKCJA Licznika 7493 Zliczanie Zliczanie Zerowanie Rys. 3. Scalony licznik asynchroniczny 7493 oraz tabela funkcji, X- bez znaczenia. Uwaga: wyjście przerzutnika A licznika 7493 nie jest połączone wewnętrznie z wejściem następnego przerzutnika i należy je połączyć z wejściem CLKB licznika. 3.2. Zarejestrować diagramy czasowe 4 przykładów skróconego cyklu licznika 7493 dla pojemności 2, 7, 11 i 15 (z uwzględnieniem stanów pasożytniczych). Skrócenie cyklu uzyskać przez dekodowanie za pomocą bramki AND stanu N przerzutnika i jego wyzerowanie. Połączyć wyjścia przerzutników licznika będące w stanie ‘1’ po zliczeniu przez licznik zadane N impulsów z wejściami bramki AND4 (lub równoważnie NAND4 + NOT). Wyjście bramki dołączyć do wejść zerujących licznika. Niewykorzystane wejścia bramki podłączyć do stanu wysokiego ‘1’. Katedra Energoelektroniki i Maszyn Elektrycznych 6 Liczniki i dzielniki częstotliwości Rys. 4. Licznik/dzielnik nastawny z wykorzystaniem licznika scalonego UCY 7493. Tablica ilustrująca programowanie układu z rys. 4. Pojemność /Współczynnik x4 x3 x2 x1 licznika / podziału dzielnika – 0 0 0 0 1 0 0 0 z 2 0 0 z 0 3 0 0 z z 4 0 z 0 0 5 0 z 0 z 6 0 z z 0 7 0 z z z 8 z 0 0 0 9 z 0 0 z 10 z 0 z 0 11 z 0 z z 12 z z 0 0 13 z z 0 z 14 z z z 0 15 z z z z z – zwarte 0 – rozwarte 3.3. Połączyć licznik z przerzutnikiem RS (rys. 5). Rys. 5. Zastosowanie przerzutnika RS dla wyeliminowania wyścigów czasowych podczas zerowania. Katedra Energoelektroniki i Maszyn Elektrycznych 7 Liczniki i dzielniki częstotliwości 3.4. Badanie synchronicznego dwukierunkowego licznika dwójkowego UCY 74193 Count up (C+) X X Impulsy 1 WEJŚCIA LICZNIKA 74193 Count down Clear Load (C-) WR X 1 X X 0 0 1 0 1 Impulsy 0 1 FUNKCJA LICZNIKA 74193 Zerowanie Wprow. równol. infor. Zliczanie wprzód Zliczanie wstecz Rys. 6. Scalony licznik synchroniczny 74193 oraz tabela funkcji, X – bez znaczenia . a) zanotować cykl pracy licznika dla obu kierunków zliczania (wraz z wyjściem przeniesienia Carry i pożyczki Borrow); b) określić typ wejść zerującego CLEAR i ustawiającego LOAD licznika (synchroniczne czy asynchroniczne); c) sprawdzić zachowanie się układu przy jednoczesnym podaniu impulsów na wejścia zliczania w górę Count up i zliczania w dół Count down (C+ i C-). 3.5. Połączyć licznik jak na rys. 6 a następnie rys. 7. Przeprowadzić czynności jak w punkcie 3.2 (wejście CLEAR jest nie używane). Rys. 6. Licznik/dzielnik o programowalnej długości cyklu z wykorzystaniem licznika UCY 74193. Katedra Energoelektroniki i Maszyn Elektrycznych 8 Liczniki i dzielniki częstotliwości Rys. 7. Zastosowanie przerzutnika RS dla wyeliminowania wyścigów czasowych podczas ustawiania wejść. 3.6. Połączyć licznik UCY 74193 według zasady jak na rys. 4. Wejścia A,B,C,D podłączyć do stanu niskiego. Wyjście przeniesienia i wyjście pożyczki są nie używane. Sygnał detekcji stanu końca skróconego cyklu podłączyć na wejście CLEAR. 3.7. Zaprojektować układ kombinacyjny realizujący funkcję jak na rys. 8. we impulsów UK C+ 74193 C- w przód/ wstecz Rys. 8. Układ wyboru kierunku zliczania licznika UCY 74193. 3.8. Zaprojektować i połączyć wyzwalany generator serii impulsów oparty na liczniku UCY 74193 o ustalanej długości serii. 4. Program ćwiczenia – część praktyczna Po sprawdzeniu w oknie edytora przebiegów czasowych programu MAX+plusII poprawności działania badanych układów z punktów 3.1 do 3.8 należy przeprowadzić weryfikację praktyczną każdego układu. W tym celu należy w każdym z wymienionych układów przyporządkować wejściom i wyjściom na schematach układów odpowie numery wyprowadzeń ALTERY oraz ponownie przeprowadzić kompilację każdego projektu z punktów 3.1 do 3.8. Następnie należy dokonać konfiguracji układu logicznego EPF6016QC firmy ALTERA za pomocą ikony „programowanie”. Katedra Energoelektroniki i Maszyn Elektrycznych 9 Liczniki i dzielniki częstotliwości Przyporządkowanie wejść i wyjść Ad 3.1. nazwa wejścia/wyjścia oznaczenie przycisku Numer nóżki w projekcie w zestawie ZLA1 ALTERY (blok generatora 74 wejscie ręcznego) P7 93 R01 SW0 92 R02 SW1 41 QA LED4 42 QB LED5 48 QC LED6 49 QD LED7 UWAGA: diody z linijki LED (LED4..LED7) świecą w chwili wystawienia przez ALTERĘ sygnału logicznego ‘0’ dlatego łączymy je poprzez negacje (‘NOT’). Do projektu należy dołączyć blok generatora ręcznego połączony z przyciskiem P7. Ad 3.2. oraz 3.3. Używane wejścia i wyjścia podłączyć jak w punkcie 3.1. Dodatkowo: nazwa wejścia/wyjścia oznaczenie przycisku Numer nóżki w projekcie w zestawie ZLA1 ALTERY DO0 94 wy_dzielnika UWAGA: dioda DO0 na złączu JP2 świeci w chwili wystawienia przez ALTERĘ sygnału logicznego ‘0’ dlatego łączymy ją poprzez negację (‘NOT’). Ad 3.4. nazwa wejścia/wyjścia oznaczenie przycisku Numer nóżki w projekcie w zestawie ZLA1 ALTERY 93 A SW0 92 B SW1 91 C SW2 90 D SW3 86 LOAD SW7 87 CLEAR SW6 104 Carry DO7 103 Borrow DO6 UWAGA: Wejścia Count_down oraz Count_up w przypadku zliczania podłączyć zgodnie z tabelą funkcji licznika 74193 do generatora ręcznego impulsów (z przyciskiem P7) lub w projekcie do stanu wysokiego (VCC). Wyjścia QA..QD połączyć tak jak w punkcie 3.1. Ad 3.5 oraz 3.6. Używane wejścia i wyjścia podłączyć jak w punkcie 3.4. Dodatkowo wy_dzielnika połączyć tak jak w punkcie 3.2. 5. Opracowanie wyników 5.1. W sprawozdaniu umieścić schematy z plików *.gdf, diagramy czasowe z okna edytora przebiegów czasowych programu MAX+plusII badanych liczników i dzielników częstotliwości oraz narysować odpowiednie grafy przejść. 5.2. Wyjaśnić obecność dodatkowego (nieprawidłowego) stanu przy przejściu od stanu 0 do stanu następnego w układzie licznika z rys. 6. Jak należy odczytywać stan licznika aby dodatkowy stan nie powodował przekłamań? 5.3. Przeprowadzić (metodą rozkładu na czynniki) syntezę asynchronicznego dzielnika częstotliwości o współczynniku podziału podanym przez prowadzącego zajęcia. Katedra Energoelektroniki i Maszyn Elektrycznych 10 Liczniki i dzielniki częstotliwości 5.4. Przeprowadzić syntezę algebraiczną licznika synchronicznego działajacego według grafu przejść podanego przez prowadzącego zajęcia. 5.5. Wyjaśnić na podstawie literatury [3] zasadę działania tzw. układu antykoincydencyjnego (tj. układu zabezpieczającego przed jednoczesnym pojawieniem się impulsów zliczanych na obu wejściach licznika rewersyjnego). 5.6. Zaprojektować układ sterujący kierunkiem zliczania licznika rewersyjnego UCY 74193 w taki sposób, by zmiana kierunku zliczania następowała zawsze w przerwie między impulsami. 5.7. W oparciu o literaturę [3] wyjaśnić zasadę działania tzw. podzielnika częstotliwości. 6. Pytania kontrolne 1) Wyjaśnić podstawowe różnice między licznikami synchronicznymi i asynchronicznymi. 2) Jaka jest minimalna liczba przerzutników potrzebnych do realizacji dzielnika przez 519? 3) Jaka jest minimalna długość licznika dwójkowego niezbędna dla realizacji dzielnika przez 519metodą dekodowania i zerowania? 4) Ile liczników scalonych TTL – MSI potrzeba dla realizacji dzielnika przez 519? 5) Narysować przewidywany diagram czasowy licznika z rys. 5 dla długości cyklu równej 2. Literatura [1] A. Haras, J. Nieznański: Komputery i programowanie II. Materiały pomocnicze do laboratorium. Wydawnictwo PG, Gdańsk 1988. [2] J. Pienkoś, J. Turczyński: Układy scalone TTL w systemach cyfrowych. WKiŁ, W-wa 1980. [3] P. Misiurewicz, M. Grzybek: Półprzewodnikowe układy logiczne TTL. WNT, Wa-wa 1982. [4] E. Kuhn, U. Schmied: Układy scalone. WKiŁ, W-wa 1976. Katedra Energoelektroniki i Maszyn Elektrycznych 11