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




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

Таймеры представляют собой обычные цифровые счетчики, которые

подсчитывают импульсы от высокостабильного генератора частоты.

К системной шине микропроцессора таймеры подключаются при помощи параллельных портов.

Генератор периодических импульсов, входящий в состав таймера, определяет минимальный интервал времени, который может формировать

таймер. Интервалы времени, задаваемые таймером, могут устанавливаться только из дискретного набора допустимых интервалов времени.

Их значения тоже определяются частотой задающего генератора. Раз-

рядность цифрового счетчика, входящего в состав таймера, определяет

максимальный интервал времени, который может формировать таймер.

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

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

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

В зависимости от типа использованного цифрового счетчика таймеры

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

Ttimer = Codesub *Tgen

Где,Тgen - период импульсов внутреннего генератора.

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

таймер для задания интервала времени Ttimer определяется из другой

формулы:

Ttimer = (Codemax — Codesum) *Tgen.

В этой формуле код Codesum, который заносится в таймер, представляет

собой дополнение кода интервала времени до максимального кода Codemax,

который можно записать в таймер. Максимальный код Codemax определяется разрядностью таймера. В рассмотренном примере разрядность таймера равна 16. Это означает, что максимальный код равен Codemax = 216 = 65536.

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

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

 

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

времени и суммирует с ним код задаваемого промежутка времени. Полученный результат записывается в регистр сравнения таймера. При сов-

падении значений таймера и регистра сравнения устанавливается флаг

совпадения. Значение этого флага можно определить программным

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

обычным будильником, к которому мы привыкли в обычной жизни.

Часто с одним свободно бегущим таймером работает несколько модулей

сравнения. Это похоже на использование часов с несколькими будильниками.

Кроме модулей сравнения, со свободно бегущим таймером работают

модули захвата, которые позволяют аппаратно запоминать состояния

внутренних счетчиков в момент какого-либо внешнего события (как, на-

пример, фронта входного сигнала при измерении его периода) без участия центрального процессора. Структурная схема свободно бегущего

таймера с модулем захвата приведена на рисунке ниже.

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

 

Использование модулей захвата позволяет повысить точность измерения

времени каких-либо событий, т. к. нее перестает влиять такой нестабильный параметр, как время реакции программы и она будет определяться

только быстродействием цифровых микросхем свободно бегущего тай-

мера.

 

 

Литература:

1. Микушин А. В. Занимательно о микроконтроллерах. — СПб.: БХВ-Петербург, 2006. — 432 с: ил.

2. Микропроцессорные системы [ Электронный ресурс ]: электрон. учеб. посо -бие / О. В. Непомнящий, Е. А. Вейсов, Г. А. Скотников, М. В. Савицкая. – Электрон. дан. (4 Мб). – Красноярск: ИПК СФУ, 2009.

3. https://avr.ru/ready/inter/usart/uart

4. https://chipenable.ru/index.php/programming-avr/item/193-uchebnyy-kurs-avr-analogovyy-komparator.html

5. https://life-prog.ru/2_78673_universalniy-asinhronniy-priemoperedatchik-UART-mk-AVR.html

6. https://nauchebe.net/2011/03/rabota-posledovatelnogo-kanala-spi-na-mk-avr

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-01-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: