W systemach mikroprocesorowych często stosuje się układy czasowe. Służą one najczęściej do odmierzania czasu, wytwarzania przebiegów o określonej częstotliwości, podziału częstotliwości wejściowej itp. Zadania takie wykonuje się na potrzeby samego systemu mikroprocesorowego. Ponadto układy czasowe mogą także pełnić funkcje pomiarowo-kontrolne, zliczając impulsy pochodzące ze sterowanego obiektu lub wysyłające określone przebiegi do tego obiektu.
Programowalne układy czasowe zawierają po kilka niezależnych liczników, z których każdy może pracować w jednym z kilku dostępnych trybów. Tryby te można zmieniać w czasie pracy systemu, zależnie od potrzeb w danej chwili.
Układ 8253 firmy Intel jest programowalnym układem czasowym, zawierającym trzy niezależne liczniki o pojemności 16 bitów każdy. Liczniki mogą zliczać w kodzie dwójkowym lub BCD. Każdy licznik posiada trzy sygnały:
· CLK —– wejście zliczanych impulsów lub podstawy czasu,
· GATE —– wejście bramkujące,
· OUT —– wyjście.
Znaczenie poszczególnych sygnałów zmienia się w zależności od trybu pracy licznika. Każdy licznik może pracować w jednym z sześciu trybów. Liczniki zliczają od zadanej wartości do zera.
W trybie „0” układ pracuje jako licznik. Zapisanie trybu zeruje wyjście OUT, a zapisanie stałej —– rozpoczęcie zliczania (jeżeli GATE jest w stanie wysokim). Wyzerowanie licznika powoduje przejście wyjścia w stan wysoki.
W trybie „1” układ pracuje jako uniwibrator, tj. generator pojedynczego impulsu o zadanym czasie trwania. Narastające zbocze na wejściu GATE powoduje rozpoczęcie zliczania, czemu towarzyszy wyzerowanie wyjścia OUT. Po wyzerowaniu licznika wyjście to przyjmuje stan „1”.
W trybie „2” układ jest dzielnikiem częstotliwości. Narastające zbocze sygnału GATE powoduje automatyczne załadowanie licznika. Gdy GATE = „1”, to licznik zlicza impulsy wejściowe, a wyjście jest w stanie wysokim. Wyzerowanie licznika powoduje ustawienie stanu niskiego na wyjściu. Stan ten trwa przez jeden okres sygnału CLK. Jeżeli w czasie zliczania na wejściu GATE pojawi się stan niski, to zliczanie jest wstrzymywane, a licznik przechodzi do stanu czekania na zbocze narastające tego wejścia.
W trybie „3” układ jest generatorem fali prostokątnej. Zbocze narastające sygnału GATE rozpoczyna pracę licznika, a jego wyjście przyjmuje stan przeciwny logicznie do stanu poprzedniego. Po wyzerowaniu licznika wyjście także przechodzi w przeciwny stan logiczny. Pojawienie się stanu niskiego na wejściu GATE powoduje zatrzymanie zliczania i wysłanie na wyjście stanu wysokiego.
W trybie „4” układ działa jak programowo wyzwalany generator impuslu. Zapisanie trybu powoduje przejście wyjścia w stan wysoki. Zapisanie stałej rozpoczyna zliczanie, o ile wejście GATE jest w stanie wysokim. Wyzerowanie licznika powoduje ustawienie wyjścia OUT w stan niski przez jeden okres sygnału CLK.
W trybie „5” układ jest generatorem impulsu wyzwalanym sprzętowo. Rozpoczęcie zliczania następuje na wskutek wystąpienia zbocza narastającego na wejściu GATE, czemu towarzyszy przejście wyjścia OUT w stan wysoki. Wyzerowanie licznika powoduje ustawienie wyjścia OUT w stan niski przez jeden okres sygnału CLK.
Prócz sygnałów sterujących pracą liczników układ 8253 ma oczywiście także wyprowadzenia umożliwiające dołączenie go do magistrali systemowej. Są to sygnały:
· D0 – -D7 —– dwukierunkowa, 8-bitowa magistrala danych z wyjściami trójstanowymi;,
· A0 – -A1 —– wejścia adresowe układu, służące do wyboru jego rejestrów wewnętrznych;,
· —– wejście uaktywnienia układu, aktywne w staniem niskim;,
· —– wejście żądania odczytu informacji z układu, aktywne w staniem niskim;,
· —– wejście żądania zapisu informacji do układu, aktywne w staniem niskim.
Rysunek 7.1. 1. Wyprowadzenia układów 8253 i Z-80 CTC
Układ Z-80 PIO firmy Zilog jest programowalnym układem czasowym, zawierającym cztery niezależne liczniki o pojemności 8 bitów każdy. Liczniki mogą zliczać w kodzie binarnym, a każdy może pracować w jednym z dwóch trybów (licznikowym lub czasowym). Każdy licznik posiada dwa sygnały:
· CLK/TRG —– wejście impulsów zliczanych lub sygnałów wyzwalających,
· ZC/TO —– wyjście informujące o wyzerowaniu licznika (stan aktywny —– wysoki).
Wyjątkiem jest licznik 3., który nie ma wyjścia ZC/TO. Może on jednak, podobnie jak pozostałe liczniki, zgłaszać przerwania. Stan aktywny wejściae CLK/TRG można ustalić programowo jako wysoki lub niski. Zmiana ze stanu nieaktywnego na aktywny powoduje:
· w trybie licznikowym —– dekrementację licznika,
· w trybie czasowym —– rozpoczęcie pomiaru czasu.
W trybie czasowym wejściem podstawy czasu nie jest sygnał CLK/TRG, lecz CLK. Dokładność odmierzania czasu wynosi 16 okresów tego sygnału. Częstotliwość fali taktującej układ można podzielić wewnątrz układu przez 16 lub 256, a następnie przez dowolną liczbę z zakresu 1 – -256. Wyzerowanie licznika powoduje ustawienie wyjścia ZC/TO, może też być powodem zgłoszenia przerwania.
Oprócz sygnałów sterujących pracą liczników układ posiada także wyprowadzenia umożliwiające podłączenie go do magistrali systemowej. Są to sygnały:
· CS0 – -CS1 —– wejścia adresowe układu, służące do wyboru rejestrów wewnętrznych liczników;,
· —– wejście zerujące (poziom aktywny niski);,
· —– wejście sygnału z mikroprocesora;,
· IEI —– wejście zezwolenia na generację przerwania;,
· IEO —– wyjście zezwolenia na generację przerwania;,
· —– wyjście zgłoszenia przerwania, aktywne w staniem niskim;,
· CLK —– wejście zegarowe.
Układ generuje cztery różne wektory przerwań w zależności od tego, który licznik zgłasza przerwanie. Można zatem wykorzystać układ jako sterownik przerwań wektorowych dla mikroprocesora Z-80 (tryb IM 2) dla układów, które nie mają możliwości bezpośredniej pracy w tym trybie — –czyli właściwie wszystkich układów spoza rodziny Z-80. W tym celu należy podłączyć sygnały przerwań do wejść liczników. Każdy licznik powinien pracować w trybie licznikowym ze stałą 1. Wówczas sygnał zgłoszenia przerwania (którego stan aktywny można określić programowo) powoduje wyzerowanie licznika i w konsekwencji zgłoszenie odpowiedniego przerwania do mikroprocesora Z-80. Praca niektórych liczników w roli sterownika przerwań nie wyklucza stosowania innych liczników jako „normalnych” liczników —– dla układu CTC sygnał przerwania jest po prostu zliczanym impulsem. Z punktu widzenia całego systemu przerwań Z-80 licznik 0. ma najwyższy priorytet, a licznik 3. —– najniższy. Jeśli liczba przerwań przekracza 4, można dołączyć kolejny układ CTC, a priorytety między nimi ustala się na podstawie sygnałów IEI i IEO.
Zaprojektować miernik częstotliwości. Układ powinien sygnalizować koniec pomiaru oraz przekroczenie zakresu pomiarowego. Rozpoczęcie pomiaru następuje na wskutek sygnału od mikroproce...
buszek3320