Дата последнего обновления файла 23.10.2009

Схемы таймеров

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

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

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

Суммирующие и вычитающие таймеры

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

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

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

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

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

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

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

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

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

В этой формуле код, который заносится в таймер, представляет собой дополнение кода интервала времени до максимального кода, который можно записать в таймер. Максимальный код таймера, а следовательно максимального интервала времени, определяется по разрядности таймера. В рассмотренном примере разрядность таймера равна 16. Это означает, что максимальное значение двоичного кода равно 65535 и в случае применения в составе таймера генератора с частотой 1 МГц (период колебаний равен 1 мкС) максимальный интервал времени, который можно задать при помощи данного таймера будет равен 65,5 мС.

Код в таймер микропроцессора или микроконтроллера записывается программой, написанной на одном из языков программирования. Обычно запись кода осуществляется непосредственно перед формированием временного интервала. Затем микропроцессорная система периодически проверяет не истек ли заданный интервал времени, обращаясь к регистру управления таймера. Более производителен вариант, когда таймер сам вызывает прерывание вычислительного процесса микропроцессорной системы.

Свободнобегущие таймеры

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

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

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

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

Таймеры с модулями захвата

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

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

Литература:

  1. Микушин А.В., Сажнев А.М., Сединин В.И. Цифровые устройства и микропроцессоры. СПб, БХВ-Петербург, 2010.
  2. http://ru.wikipedia.org/wiki/RISC
  3. С.А. Майоров В.В. Кириллов А.А. Приблуда "Введение в микро ЭВМ" Мир 1988

Вместе со статьей "Схемы таймеров" читают:

Принципы построения параллельного порта
http://digteh.ru/proc/port.php

Принципы построения последовательного порта
http://digteh.ru/proc/SerPort.php

Системная шина микропроцессора
http://digteh.ru/proc/SysBus.php

Подключение внешних устройств к микропроцессору
http://digteh.ru/proc/ExtCirc.php


Автор Микушин А. В. All rights reserved. 2001 ... 2017

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

Поиск по сайту сервисом Яндекс

Поиск по сайту сервисом ГУГЛ

пЕИРХМЦ@Mail.ru


Яндекс.Метрика
Rambler's Top100