На выходе кодового компаратора

ЛЕКЦИЯ № 13

по учебной дисциплине

"ЦУ и МП в РЭО"

 

Раздел 2. Микропроцессорные устройства в РЭО

Тема 2.3. Принципы построения и работы микропроцессорных систем

 

Занятие 2.3.4: "ВИДЫ И ПРИНЦИПЫ ПОСТРОЕНИЯ ТАЙМЕРОВ"

 

План лекции:

 

Введение.

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

Таймеры с автозагрузкой.

Реверсивные таймеры.

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

Заключение.

 

Учебная литература: [1] – [5].


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

 

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

 

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

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

Применительно к этим устройствам часто используют термин «таймер-счетчик». В этом термине отражается существование двух режимов работы таймеров:

1. Режим таймера. Если на вход поданы тактирующие импульсы (сигналы постоянной частоты), то его роль состоит в формировании требуемых интервалов.

2. Режим счетчика. Если на вход подаются внешние сигналы от каких-либо устройств, то ведется подсчет поступающих сигналов.

(слайд 5). Различают:

- суммирующие и вычитающие таймеры;

- таймеры с автозагрузкой;

- реверсивные таймеры;

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

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

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

 

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

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

(слайд 7). Триггер включения и выключения таймера и триггер переполнения подобно любым ВУ подключают к системной шине МП через дополнительный порт ввода-вывода.Содержимое этих триггеров обычно называют флагами и объединяют в восьмиразрядный регистр управления таймером. Этот регистр одновременно является регистром данных внутреннего порта ввода-вывода. Оставшиеся шесть разрядов этого регистра остаются неиспользуемыми. Запись в эти разряды нулевых или единичных значений ни к каким действиям не приводит. При чтении этих разрядов могут быть получены случайные комбинации нулей и единиц.

Формат подобного регистра управления таймером показан на рисунке 13.1, а структурная схема таймера, реализующая описанные выше принципы, приведена на рисунке 13.2.

 

 

Рисунок 13.1 – Формат регистра управления таймером

(слайд 8).

 

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

 

В данном регистре бит TF отображает содержимое флага переполнения таймера, а бит TR определяет, включен ли таймер.

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

 

 

где  – период импульсов внутреннего генератора.

Это объясняется тем, что счет начинается от заданного числа и заканчивается при достижении счетчиком таймера нулевого значения. Например, при записи в таймер числа 100 потребуется ровно 100 импульсов на входе вычитающего счетчика для того, чтобы его содержимое приняло нулевое значение. Если генератор вырабатывает колебание с частотой 1 МГц, то его период равен 1 мкс, а это означает, что переполнение вычитающего таймера произойдет ровно через 100 мкс.

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

 

 

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

В данном случае для задания интервала времени 100 мкс в таймер потребуется записать число 65435. После поступления на вход счетчика таймера 100 импульсов частоты задающего генератора это число станет равным 65535 (все разряды счетчика содержат единичное значение), а это в свою очередь означает, что произошло переполнение таймера и в триггер флага переполнения запишется единичный потенциал. Результат работы будет тем же самым, что и при использовании вычитающего таймера – флаг переполнения установился ровно через 100 мкс.

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

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

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

 

 


Таймеры с автозагрузкой

 

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

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

Структурная схема таймера с автозагрузкой приведена на рисунке 13.3.

 

 

Рисунок 13.3 – Структурная схема таймера а автозагрузкой

 

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

 


Реверсивные таймеры

 

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

 

 

Рисунок 13.4 – Формат регистра управления реверсивным таймером

 

В данном регистре бит TF отображает содержимое флага переполнения таймера, бит TS задает направление счета внутреннего счетчика таймера, а бит TR определяет, включен ли таймер.

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

 

 

Рисунок 13.5 – Структурная схема таймера без механизма

Автоматической загрузки

 

В схеме, приведенной на рисунке 13.5, направление счета двоичного реверсивного счетчика определяется потенциалом на входе выбора режима счета «+/-1» этого счетчика.

 


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

 

Достаточно часто в МПС требуется одновременно формировать несколько временных интервалов. В этом случае приходится применять несколько таймеров (см. рисунок 13.5).

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

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

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

 

 

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

С модулем сравнения

 

В данной схеме вычисленное время окончания временного интервала заносится в регистры модуля сравнения RGL и RGH. Как только содержимое этих регистров и содержимое таймера совпадет, кодовый компаратор выдаст еди ничный потенциал . Этот сигнал записывается в флаг совпадения кодов ТР, который в данном случае работает точно так же, как и флаг переполнения обычного таймера TF. В качестве кодового компаратора можно применить схему вычитателя. В качестве выхода кодового компаратора используется выход переноса, на котором будет сформирован знак результата вычитания.

Часто с одним свободнобегущим таймером применяется несколько модулей сравнения. Это похоже на использование часов с несколькими будильниками. В результате один свободнобегущий таймер может обеспечить формирование сразу нескольких временных интервалов.

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

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

 

 

Рисунок 13.7 – Формирование широко-импульсного сигнала

на выходе кодового компаратора

 

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

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

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

 

 

Рисунок 13.8 – Структурная схема свободнобегущего

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

 

Флаг захвата в этой схеме позволяет определить – произошло внешнее событие или нет. Этот флаг добавляется в регистр управления таймера. При необходимости этот флаг может вызывать аппаратное прерывание выполнения программы МПС.

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

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


Дата добавления: 2021-12-10; просмотров: 30; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!