Принципы построения таймеров Печать

Вернуться к оглавлению

Таймеры предназначены для формирования временных интервалов, позволяя микропроцессорной системе работать в режиме реального времени.

Таймеры представляют собой обычные цифровые счётчики, которые подсчитывают импульсы от высокостабильного генератора частоты. К системной шине микропроцессора таймеры подключаются при помощи параллельных портов.

Генератор частоты, входящий в состав таймера, определяет минимальный интервал времени, который может определять таймер. Интервалы времени, задаваемые таймером, могут устанавливаться только из дискретного набора допустимых времён. Дискретность установки этих интервалов времени тоже определяется частотой задающего генератора. Разрядность цифрового счётчика, входящего в состав таймера, определяет максимальный интервал времени, который может определять таймер.

Обычно используются 16-ти разрядные таймеры, поэтому, для подключения такого таймера к 8-ми разрядному процессору требуется два параллельных порта. Кроме того, таймером нужно управлять. Таймер нужно включать и выключать, часто требуется определять не возникало ли переполнение таймера (факт переполнения легко запомнить в дополнительном триггере, подключенном к выходу переноса счетчика таймера). Этот триггер называется флагом переполнения таймера. Триггер (флаг) включения и выключения таймера и флаг переполнения таймера подключают к системной шине микропроцессора через дополнительный порт ввода вывода.

Структурная схема таймера, построенного по описанным выше принципам, приведена на рисунке 1.

Рисунок 1. Структурная схема таймера.

В зависимости от типа использованного цифрового счетчика таймеры бывают суммирующие или вычитающие. Если в таймере используется суммирующий счётчик, то таймер называется суммирующим. Если в таймере используется вычитающий счётчик, то таймер называется вычитающим.

Использование вычитающего счётчика позволяет проще задавать интервалы времени. В этом случае записываемый в таймер код будет соответствовать интервалу времени:

В случае использования суммирующего таймера код, записываемый в таймер для задания интервала времени, определяется из другой формулы:

В этой формуле код, который заносится в таймер, представляет собой дополнение кода интервала времени до максимального кода, который можно записать в таймер. Максимальный код таймера определяется по разрядности таймера. В рассмотренном примере разрядность таймера равна 16. Это означает, что максимальный код равен 65535.

Достаточно часто суммирующие таймеры используются в режиме свободнобегущего таймера. Схема такого таймера приведена на рисунке 2.

 

Рисунок 2. Структурная схема свободнобегущего таймера с модулем сравнения.

Свободнобегущие таймеры используются как системные часы, задающие время внутри микропроцессорной системы. Для задания промежутков времени микропроцессор считывает значение текущего системного времени и суммирует с ним код задаваемого промежутка времени. Полученный результат записывается в регистр сравнения таймера. При совпадении значений таймера и регистра сравнения устанавливается флаг совпадения. Значение этого флага можно определить программным опросом или воспользоваться механизмом прерывания работы процессора.

Часто с одним свободно бегущим таймером работает несколько модулей сравнения. В этом случае они образуют набор модулей сравнения (PCA). Практически все современные микроконтроллеры и сигнальные процессоры оснащены таймерами с такими наборами модулей.

Кроме модулей сравнения с свободнобегущим таймером работают модули захвата, которые позволяют аппаратно запоминать время какого-либо внешнего события без участия центрального процессора. Структурная схема свободнобегущего таймера с модулем захвата приведена на рисунке 3.

Рисунок 3. Структурная схема свободнобегущего таймера с модулем захвата.

Вернуться к оглавлению