Генератор периодических импульсов, входящий в состав таймера, определяет минимальный интервал времени, который может формировать таймер. Интервалы времени, задаваемые таймером, могут устанавливаться только из дискретного набора допустимых интервалов времени. Их значения тоже определяются частотой задающего генератора. Разрядность цифрового счетчика, входящего в состав таймера, определяет максимальный интервал времени, который может формировать таймер.
Обычно используются 16-разрядные таймеры, поэтому для их подключения к 8-разрядному процессору требуется два параллельных порта. Кроме того, таймером нужно управлять, для чего используется дополнительный порт. С его помощью таймер можно включать и выключать. Часто требуется определять, не возникало ли переполнение таймера. Факт переполнения легко запомнить в дополнительном триггере, подключенном к выходу переноса счетчика таймера. Выходной сигнал этого триггера называется флагом переполнения таймера. Сигнал с выхода триггера (флаг) включения и выключения таймера и флаг переполнения таймера подключают к системной шине микропроцессора через дополнительный порт ввода-вывода.
Структурная схема таймера, построенного по описанным выше принципам, приведена на рис. 5.27.
Рис. 5.27.
В зависимости от типа использованного цифрового счетчика таймеры бывают суммирующие (с суммирующим счетчиком) или вычитающие (с вычитающим счетчиком). Использование вычитающего счетчика позволяет проще задавать интервалы времени. В этом случае записываемый в таймер код
Ttimer = Codesub x Tgen
где
В случае использования суммирующего таймера код, записываемый в таймер для задания интервала времени
Ttimer = (Codemax — Codemin)∙Tgen
В этой формуле код
Достаточно часто применяются свободно бегущие суммирующие таймеры. Схема такого таймера приведена на рис. 5.28.
Рис. 5.28.
Свободно бегущие таймеры используются как системные часы, задающие время внутри микропроцессорной системы. Для задания промежутков времени микропроцессор считывает значение текущего системного времени и суммирует с ним код задаваемого промежутка времени. Полученный результат записывается в регистр сравнения таймера. При совпадении значений таймера и регистра сравнения устанавливается флаг совпадения. Значение этого флага можно определить программным опросом или воспользоваться механизмом прерывания работы процессора. То есть работа со свободнобегущим таймером похожа на работу с обычным будильником, к которому мы привыкли в обычной жизни.
Часто с одним свободно бегущим таймером работает несколько модулей сравнения. Это похоже на использование часов с несколькими будильниками.
Кроме модулей сравнения, со свободно бегущим таймером работают модули захвата, которые позволяют аппаратно запоминать состояния внутренних счетчиков в момент какого-либо внешнего события (как, например, фронта входного сигнала при измерении его периода) без участия центрального процессора. Структурная схема свободно бегущего таймера с модулем захвата приведена на рис. 5.29.
Рис. 5.29.
Использование модулей захвата позволяет повысить точность измерения времени каких-либо событий, т. к. нее перестает влиять такой нестабильный параметр, как время реакции программы и она будет определяться только быстродействием цифровых микросхем свободно бегущего таймера.
В главе были рассмотрены схемы подключения к микропроцессору устройств хранения, ввода и вывода данных. Кроме того, были рассмотрены основные методы расширения адресного пространства микропроцессорной системы и некоторые решения, позволяющие повысить ее быстродействие. Структурные схемы приведены с уровнем детализации, достаточным для превращения их в принципиальные схемы.
Однако в настоящее время никто не разрабатывает схемы, подобные рассмотренным в данной главе, ведь это стандартные схемы. Поэтому в настоящее время на мировом рынке представлено огромное количество готовых микросхем, построенных по рассмотренным принципам. Теперь можно перейти к изучению этих микросхем, представляющих собой универсальные цифровые устройства.