r7-1.doc

(289 KB) Pobierz
Szablon dla tlumaczy

Rozdział 7.
Układy czasowe

W systemach mikroprocesorowych często stosuje się układy czasowe. Służą one najczęściej do od­mierzania czasu, wytwarzania przebiegów o określonej częstotliwości, podziału często­tli­wości wejściowej itp. Zadania takie wykonuje się na potrzeby samego systemu mikroproceso­rowego. Ponadto układy czasowe mogą także pełnić funkcje pomiarowo-kontrolne, zliczając im­pulsy pochodzące ze sterowanego obiektu lub wysyłające określone przebiegi do tego obiektu.

Programowalne układy czasowe

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

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 czeka­nia na zbocze narastające tego wejścia.

W trybie „3” układ jest generatorem fali prostokątnej. Zbocze narastające sygnału GATE rozpo­czyna pracę licznika, a jego wyjście przyjmuje stan przeciwny logicznie do stanu poprzed­nie­go. 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 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:

·         D0-D7 dwukierunkowa, 8-bitowa magistrala danych z wyjściami trójstanowymi;,

·         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 uaktywnienia układu, aktywne w staniem niskim;,

·         wejście sygnału z mikroprocesora;,

·         wejście sygnału z mikroprocesora;,

·         wejście żądania odczytu informacji z układu, aktywne w staniem niskim;,

·         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 przer­wa­nie. Można zatem wykorzystać układ jako sterownik przerwań wektorowych dla mi­kro­pro­ceso­ra 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 mi­kropro­cesora 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.

Przykłady

Przykład 1.

Zaprojektować miernik częstotliwości. Układ powinien sygnalizować koniec pomiaru oraz prze­kro­czenie zakresu pomiarowego. Rozpoczęcie pomiaru następuje na wskutek sygnału od mikro­pro­ce­...

Zgłoś jeśli naruszono regulamin