Таймеры и процессоры событий 


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



ЗНАЕТЕ ЛИ ВЫ?

Таймеры и процессоры событий



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

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

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

Модуль«классического» таймера8-разрядного МК представляет собой8 или16-разрядный счетчик со специальной схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера как в режиме формирования последовательности импульсов, так и в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком.

Направление счета– только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется.

В зависимости от настройки счетчик может использовать один из источников входных сигналов:

ƒ импульсную последовательность с выхода управляемого делителя частоты;

ƒ сигналы внешних событий, поступающие на вход МК.

В первом случае говорят, что счетчик работает в режиме таймера, во втором– в режиме счетчика событий. При переполнении счетчика устанавливается в«единицу» триггер переполнения, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера, а также установка или чтение текущего состояния счетчика выполняются программным способом.

Рассмотренный«классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками такого таймера/счетчика являются:

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

ƒ сложности при формировании временных интервалов(меток времени), отличных от периода полного коэффициента счета;

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

Первые из двух перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семействаMCS-51 (Intel) посредством введения дополнительной логика счетного входа. Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится уже аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета.

Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера– одноканального режима работы. Совершенствование подсистемы реального времени МК в данной области ведется по следующим направлениям:

увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структуройMCS-51, а также для МК компанийMitsubishi и Hitachi;

модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата(input capture – IC) и выходного сравнения(output compare – OC). Такой подход используется, в частности, в МК компанииMotorola.

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

Предусмотрена возможность выбора типа сигнала на входе, воспринимаемого как событие:

· положительный(передний) фронт сигнала;

· отрицательный(задний) фронт сигнала;

· любое изменение логического уровня сигнала.

Выбор типа события захвата устанавливается в процессе инициализации таймера и может неоднократно изменяться в ходе выполнения программы. Каждое событие захвата приводит к установке в«1» триггера входного захвата и появлению на его выходе флага входного захвата. Состояние триггера входного захвата может быть считано программно, а если прерывания по событию захвата разрешены– формируется запрос на прерывание.

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

Аппаратные средства канала выходного сравнения построены следующим образом.

Цифровой компаратор непрерывно сравнивает текущий код счетчика таймера с кодом, который записан в16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК устанавливается заданный уровень логического сигнала.

Обычно предусмотрено три типа изменения сигнала на выходе в момент события выходного сравнения:

· ƒ установка высокого логического уровня;

· ƒ установка низкого логического уровня;

· ƒ инвертирование сигнала на выходе.

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

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

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

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

ƒ однозначно определенная конфигурация канала(или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;

ƒ формирование сигналов по методу широтно-импульсной модуляции(ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.

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

Модуль прерываний

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

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

следующие события:

· переполнение таймеров/счетчиков;

· сигналы от каналов входного захвата и выходного сравнения таймеров/счетчиков или от процессора событий;

· готовность памятиEEPROM;

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

Любой запрос прерывания поступает на обработку, если прерывания в МК разрешены и разрешено прерывание по данному запросу. Адрес, который загружается в программный счетчик при переходе к обработке прерывания, называется«вектором прерывания». В зависимости от организации модуля прерываний конкретного МК различные источники прерываний могут иметь разные векторы или использовать некоторые из них совместно.

Вопрос о приоритетах при одновременном поступлении нескольких запросов на прерывание решается в различных МК по-разному. Есть МК с одноуровневой системой приоритетов, в рамках которой все запросы равноценны, многоуровневой системой с фиксированными приоритетами и многоуровневой программируемой системой приоритетов.

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

Режимы энергопотребления

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

ƒ активный режим(Run mode) – основной режим работы МК. В этом режиме МК исполняет рабочую программу, и все его ресурсы доступны. Потребляемая мощность имеет максимальное значениеPRUN. Большинство современных МК выполнено по КМОП-технологии, поэтому мощность потребления в активном режиме сильно зависит от тактовой частоты;

ƒ режим ожидания(Wait mode, Idle mode илиHalt mode). В этом режиме прекращает работу центральный процессор, но продолжают функционировать периферийные модули, которые контролируют состояние объекта управления. При необходимости сигналы от периферийных модулей переводят МК в активный режим, и рабочая программа формирует необходимые управляющие воздействия.

Перевод МК из режима ожидания в рабочий режим осуществляется по прерываниям от внешних источников или периферийных модулей, либо при сбросе МК. В режиме ожидания мощность потребления МКPWAIT снижается по сравнению с активным режимом в5…10 раз;

ƒ режим останова(Stop mode, Sleep mode илиPower Down mode). В этом режиме прекращает работу как центральный процессор, так и большинство периферийных модулей. Переход МК из состояния останова в рабочий режим возможен, как правило, только по прерываниям от внешних источников или после подачи сигнала сброса. В режиме останова мощность потребления МКPSTOP снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микроватт.

Два последних режима называют режимами пониженного энергопотребления.

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

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

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

В большинстве современных МК используется статическая КМОП-технология, поэтому они способны работать при сколь угодно низких тактовых частотах вплоть до нулевых. В справочных данных при этом указывается, что минимальная частота тактирования равнаDC (direct current). Это означает, что возможно использование МК даже в пошаговом режиме, например, для отладки. Мощность потребления МК при низких частотах тактирования обычно соответствует частотеfOSC= 32768 Гц(часовой кварцевый резонатор).

Тактовые генераторы

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

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

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

При менее жестких требованиях к стабильности тактовой частоты возможно использование более стойких к ударной нагрузке керамических резонаторов. Многие керамические резонаторы уже имеют встроенные конденсаторы, что позволяет уменьшить количество внешних подключаемых элементов с трех до одного. Керамические резонаторы имеют разброс частот обычно порядка0,5 %.

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

Зависимость тактовой частоты МК от номиналовRC-цепи зависит от конкретной реализации внутреннего генератора и приводится в руководстве по применению контроллера.

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

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

Ряд последних семейств МК(например, HC08 фирмыMotorola) имеют в своем составе схему тактирования, основанную на принципе синтезатора частоты с контуром фазовой автоподстройки(PLL – phase loop lock). Такая схема работает как умножитель частоты и позволяет задавать тактовую частоту с помощью низкочастотного кварцевого резонатора, что снижает уровень электромагнитного излучения МК. Коэффициенты деления контураPLL могут быть изменены программным путем, что позволяет снизить тактовую частоту(и, соответственно, потребляемую мощность) в промежутки времени, когда высокое быстродействие не требуется.

В некоторых МК семействаAVR фирмыAtmel тактовая частота контроллера, задаваемая внутреннейRC-цепью, также может изменяться программными средствами.



Поделиться:


Последнее изменение этой страницы: 2016-12-26; просмотров: 403; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.109.5 (0.025 с.)