Podręcznik
6. Układy we/wy, DMA, magistrale
6.2. Układ czasowo-licznikowy
Układ czasowo-licznikowy (ang. timer-counter circuit) służy do zliczania impulsów przychodzących na jedną z jego końcówek lub odmierzaniu odcinków czasu w systemie komputerowym. Mówimy też o programowanych układach czasowo-licznikowych (ang. programmable timer-counter), ale praktycznie wszystkie stosowane w praktyce układy tego typu są programowane, tzn. wstępnie przed podjęciem przez nie akcji ustawiany jest ich tryb pracy.
Odmierzanie czasu łatwo można zrealizować sprzętowo (odciążając procesor) przez zliczanie impulsów zegarowych w licznikach o zadanej pojemności (tzw. liczniki programowane) i podejmowanie wymaganych działań w chwili wyzerowania się licznika lub jego przepełnienia się.
Układy czasowo-licznikowe (w skrócie CTC) produkowane są jako niezależne układy scalone (np. układ firmy Intel 8254) lub są włączane do chipu mikroprocesorowego (np. w mikroprocesorze jednoukładowym Intel 8051).
Układy czasowo-licznikowe zawierają na ogół kilka niezależnych liczników. Np. układ 8254 ma 4 liczniki programowalne służące do odmierzania czasu lub zliczania impulsów.
Budowa typowego układu CTC pokazana jest na rys. 2.
Rys. 2. Typowy układ licznikowo-czasowy
Układ działa w sposób następujący: Wstępnie do układu sterującego przesyłamy słowo sterujące ustawiające tryb pracy układu. Następnie do rejestru stałej przesyłamy liczbę m programującą okres licznika programowanego, która wpisywana jest do licznika. Impulsy przychodzące z wejścia zewnętrznego lub wejścia zegarowego są zliczane przez licznik (rewersyjny) aż do momentu, gdy komparator zera wykryje 0 na wyjściu licznika. Powoduje to wyprowadzenie sygnału 1 na wyjściu układu (jest to na ogół jednocześnie sygnał przerwania).
Cykl zliczania może się automatycznie powtórzyć lub nie, zależnie od tego, w jakim trybie pracy znajduje się układ czasowo-licznikowy.
Zauważmy, że komparator zera w powyższym schemacie nie musi być blokiem funkcjonalnym komparatora. Komparatorem zera jest bowiem znacznie prostszy wielowejściowy układ NOR.