Таймеры и процессоры событий. Управление в реальном времени означает способность МПС получить информацию о состоянии управляемого объекта
Управление в реальном времени означает способность МПС получить информацию о состоянии управляемого объекта, выполнить необходимые расчеты и сформировать управляющее воздействие в течение интервала времени, по истечении которого эти воздействия вызовут желаемое поведение объекта. От процессорного ядра зависит время вычислений. Но надо тратить как можно меньше времени на прием информации с датчиков и выдачу управляющих сигналов. Для решения этих задач используют прежде всего систему прерываний и модуль таймера. Развитая система прерываний позволяет сократить время реакции МП-системы на изменения состояния объекта. Модули таймеров служат для приема информации от датчиков с времяимпульсными выходами, а также для формирования управляющих воздействий в виде последовательности импульсов с изменяющимися параметрами.
Опыт построении МПС позволяет выделить типовые задачи, которые должен уметь решать МК для эффективного управления в реальном времени:
· отсчет равных интервалов времени заданной длительности, повтор алгоритма управления по истечении каждого такого временного интервала. Обычно эту функцию называют формированием меток реального времени;
· контроль за изменением состояния линии ввода МК;
· измерение длительности сигнала заданного логического уровня на линии ввода МК;
· подсчет числа импульсов внешнего сигнала на заданном временном интервале;
· формирование на линии вывода МК сигнала заданного логического уровня с программируемой задержкой по отношению к изменению сигнала на линии ввода;
· формирование на линии вывода МК импульсного сигнала с программируемой частотой и программируемым коэффициентом заполнения.
Каждая из перечисленных задач может быть выполнена программными средствами, без использования специальных аппаратных решений. Можно реализовать программную временную задержку, загрузив в регистр число и повторяя декрементирование регистра до нуля. Для контроля за изменением состояния линии ввода можно организовать постоянный опрос линии — поллинг. Однако нельзя будет параллельно с этим производить вычисления или решать несколько задач. Поэтому, для выполнения функций, связанных с управлением в реальном времени, в состав МК включают специальные аппаратные средства, называемые таймерами.
Модуль таймера 8-разрядного МК представляет собой 16-разрядный счетчик со схемой управления. В карте памяти он отображается двумя регистрами — TH и TL. Они доступны для чтения и записи. Счетчик работает на сложение. Может использовать для тактирования импульсную последовательность с управляемого делителя частоты fbus, либо внешнюю импульсную последовательность, поступающую на один из входов МК. При переполнении устанавливается флаг TF и генерируется запрос на прерывания, если прерывания разрешены. Классический модуль таймера используется в МК с архитектурой MCS-51. Дополнительная логика позволяет измерять длительность импульса, поступающего на одну из линий МК. Наличие режима перезагрузки позволяет получить метки реального времени с периодом, отличным от Ксч=216.
Совершенствование системы реального времени достигается увеличением числа модулей таймеров, а также введением аппаратных средств входного захвата (Input Capture) и выходного сравнения (Output Compare).
Канал входного захвата (рис. 9.1) содержит детектор событий, который наблюдает за уровнем напряжения на одном из входов МК. При изменении сигнала на линии с 0 на 1 или наоборот текущее состояние счетчика таймера записывается в 16-раз-рядный регистр данных TIC канала захвата. Выбор типа события захвата устанавливается в процессе инициализации модуля таймера и может многократно изменяться по ходу выполнения программы. Каждое событие захвата отмечается установкой в 1 триггера TIC. Состояние триггера может быть считано программно, а если разрешены прерывания по событию входного захвата, то генерируется запрос на прерывание.
Рис. 9.1 — Канал входного захвата таймера
В канале выходного сравнения (рис. 9.2) многоразрядный цифровой компаратор непрерывно сравнивает изменяющийся во времени код счетчика таймера с кодом, который записан в 16-раз-рядном регистре TОC канала сравнения.
Рис. 9.2 — Канал выходного сравнения таймера
В момент равенства кодов на одном из выводов МК устанавливается заданный уровень выходного сигнала. Каждое событие выходного сравнения отмечается установкой в 1 триггера TОC. Состояние триггера может быть считано программно, а если разрешены прерывания по событию выходного сравнения, то генерируется запрос на прерывание.
Следующий этап в развитии подсистемы реального времени — модули процессоров событий. Модуль содержит в себе 16-раз-рядный счетчик временной базы и некоторое количество универсальных каналов захвата/сравнения, которые могут работать в одном из трех режимов:
· режим входного захвата;
· режим выходного сравнения;
· режим широтно-импульсной модуляции.
Сторожевой таймер
Предназначен для защиты микроконтроллера от сбоев в процессе работы. Представляет собой многоразрядный счетчик. При сбросе он обнуляется. При переходе в активный режим работы увеличивает код независимо от выполняемой программы и при переполнении генерирует сигнал внутреннего сброса МК. Для исключения этого события прикладная программа должна периодически сбрасывать счетчик.
Дата добавления: 2016-01-09; просмотров: 1189;