Основы микропроцессорной техники | |
Раздел 4 Организация микроконтроллеров | |
| «Структура курса | Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Раздел 7 | Глава 8 | Дополнения | |
| Раздел 4 - Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | » | |
4.5. Таймеры и процессоры событийБольшинство задач управления, которые реализуются с помощью МК, требуют выполнения их в реальном времени. Под этим понимается способность системы получать информацию о состоянии управляемого объекта, выполнять необходимые расчетные процедуры и выдавать управляющие сигналы в течение интервала времени, достаточного для желаемой изменения состояния объекта. Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, потому что это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров). Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени. Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером / счетчиком. Структура типового 16-разрядного таймера / счетчика в составе МК приведена на Рис. 4.5.
В памяти МК 16-разрядный счетчик отображается двумя регистрами: TH - старший байт счетчика, TL - младший байт. Регистры доступны для чтения и записи. Направление отсчета - только прямой, т.е. при поступлении входящих импульсов содержимое счетчика инкрементуеться. В зависимости от настройки счетчик может использовать один из источников входных сигналов:
В первом случае говорят, что счетчик работает в режиме таймера, во втором - в режиме счет чика событий. При переполнении счетчика устанавливается в "единицу" триггер переполнения TF, генерирующий запрос на прерывание, если прерывания от таймера разрешены. Пуск и остановка таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольный состояние или прочитать текущий код счетчика. Рассмотрен "классический" модуль таймера / счетчика широко применяется в различных моделях простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками "классического" таймера / счетчика являются:
Первые из двух перечисленных недостатков были устранены в усовершенствованному модули таймера / счетчика, который применяется в МК семейства MCS-51 (Intel). Дополнительная логика счетного входа позволяет тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен "1". Такое решение повышает точность измерения временных интервалов, так как запуск и остановка таймера происходит аппаратно. Также в усовершенствованному таймеру реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента отсчета. Однако эти усовершенствования не устраняют главного недостатка модуля "классического" таймера - одноканального режима работы. Совершенствование подсистемы реального времени МК ведется по следующим направлениям:
Принцип действия канала входного захвата таймера / счетчика иллюстрирует Рис. 4.6.
Схема детектора события "наблюдает" за уровнем напряжения на одном из входов МК. Зачастую это одна из линий порта ввода / вывода. При изменении уровня логического сигнала с "0" на "1" и наоборот производится строб записи, и текущее состояние счетчика таймера записывается в 16-разрядный регистр входного захвата. Описанную действие в микропроцессорной технике называют событием захвата. Предусмотрена возможность выбора типа сигнала на входе, и это воспринимается как событие:
Выбор типа события захвата устанавливается в процессе инициализации таймера и может неоднократно меняться в ходе выполнения программы. Каждое событие захвата приводит к установке в "1" триггера входного захвата и появлению на его выходе флага (признаки) входного захвата ICF. Состояние триггера входного захвата может быть считанных программно, а если прерывания по событию захвата разрешены - формируется запрос на прерывание INT IC. Использование режима входного захвата позволяет исключить ошибки измерения входного интервала времени, связанные со временем перехода к подпрограммы обработки прерывания, так как копирование текущего состояния счетчика осуществляется аппаратными, а не программными средствами. Однако при переходе на подпрограмму обработки прерывания накладывает ограничения на длительность измеряемого интервала времени, поэтому предполагается, что второе событие захвата состоится позднее код первого события будет считанных МК. Структура аппаратных средств канала выходного сравнения приведена на Рис. 4.7. Цифровой компаратор непрерывно сравнивает текущий код счетчика таймера с кодом, который записан в 16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК (Pxj на Рис. 4.7) устанавливается заданный уровень логического сигнала. Обычно предусмотрено три типа изменения сигнала на выходе Pxj в момент происшествия выходного сравнения:
При наступлении события сравнения устанавливаются в "1" триггер выходного сравнения и соответствующая ему признак (флаг) выходного сравнения OCF. Аналогично режиму входного захвата состояние триггера выходного сравнение может быть считанных программно, а если прерывания по событию сравнения разрешены - формируется запрос на прерывание INT OC. Режим выходного сравнения предназначен прежде всего для формирования временных интервалов заданной длительности. Продолжительность сформированного временного интервала определяется только разницей кодов, загружаемых последовательно в регистр выходного сравнения, и не зависит от программного обеспечения МК. Время, необходимое для записи нового значения кода в регистр канала сравнения, ограничивает минимальную длительность формируемого временного интервала.
Модули усовершенствованного таймера используются в составе МК в различных модификациях. При этом количество каналов входного захвата и выходного сравнения в модуле может быть разной. Так, в МК семейства HC05 фирмы Motorola типовыми решениями являются модули 1IC +1 OC или 2IC +2 OC, а модуль таймера в составе МК только один. В ряде модулей каналы могут быть произвольно настроены на функцию входного захвата или исходящего сравнение с помощью инициализации. Счетчик модуля усовершенствованного таймера может не иметь функции программной остановки. В этом случае состояние счетчика нельзя синхронизировать с каким-либо моментом работы МК, и такой счетчик характеризуется как таковой, свободно считает (free counter). Аппаратные средства усовершенствованного таймера позволяют решить многие задачи управления в реальном времени. Однако по мере роста сложности алгоритмов управления обнаруживаются ограничения модулей усовершенствованного таймера, а и енно:
Поэтому следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий. Впервые модули процессоров событий были использованы компанией Intel в МК семейства 8x51Fx. Этот модуль получил название программированного счетного массива (Programmable Counter Array - PCA). РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймер / счетчик. К преимуществам РСА также можно отнести более простое программирование и более высокую точность. Например, РСА может обеспечить лучшее временную разрешение, чем таймеры 0, 1 и 2 МК семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА может решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала). РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-замыкания, как показано на Рис. 4.8. Таймер-счетчик РСА используется как базовый таймер для функционирования всех пяти модулей сравнения-замыкания. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
Любой из модулей сравнения-замыкания может быть запрограммирован для работы в следующих режимах:
Модуль 4 может быть также запрограммирован как сторожевой таймер (Watchdog Timer - WDT). Режим замыкания при импульсом на входе МК эквивалентный режиму входного захвата (IC) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (OC). В режиме ШИМ на соответствующем выводе МК формируется последовательность импульсов с периодом, равным периоду базового таймера / счетчика PCA. Значение 8-разрядного кода, записанное в младший байт регистра-замка соответствующего модуля задает скважнисть сформированного сигнала. При изменении кода от 0 до 255 скважнисть изменяется от 100% до 0,4%. Режим ШИМ очень простой с точки зрения программного обслуживания. Если изменения скважности не предвидится, то достаточно один раз занести соответствующий код в регистр данных модуля проинициализировать режим ИМ и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы. Назначение и особенности работы сторожевого таймера будут рассмотрены далее отдельно. При работе модуля сравнения-замыкания в режиме замыкания, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-замыкания и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывание разрешено, то и сигнал переполнения таймера PCA и сигнал от каждого из модулей вызывают ту же подпрограмму прерываний. Она должна сама идентифицировать источник, ее вызвало. Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-замыкания используют выводы P1 порта МК. Если какой-либо вывод порта не применяется РСА, или РСА не задействован, порт может применяться стандартным способом. Реализованный в 8x51FX PCA оказался настолько удачным, что архитектура данных МК стала промышленным стандартом де-факто, а сам PCA многократно воспроизводился в различных модификациях микроконтроллеров разных фирм. Тенденция развития подсистемы реального времени современных МК находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей. | |
| «Структура курса Раздел 4 - Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | » | |