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



ЗНАЕТЕ ЛИ ВЫ?

Цена «деления», диапазон измерения и управление входной частотой

Таймерная подсистема

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

Набор действий, которые можно выполнять, используя «канал таймера», может несколько отличаться для разных УВС, но и в способах реализации (как сделан таймер) и в способах использования (как и в каких ситуациях это применяют) – много общего.

 

Почему в УВС делают несколько таймерных каналов:
а) они могут различаться свойствами и позволять выполнять различные операции со временем
б) одного таймерного канала может быть недостаточно для того, чтобы выполнять все необходимые действия.

 

Основной счетчик

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

 

Для проведения измерений времени и других действий, счетчик обязательно должен быть программно доступен для чтения. В дальнейшем этот счетчик будем кратко называть «таймер». Таймер последовательно проходит (при счете «на сложение») все значения от 0 до 2n‑1, где n – число разрядов в счетчике таймера, а затем возвращается в состояние 0 (пересчет по модулю 2n). Переход из максимального в нулевое состояние называют переполнением (OV). Время пересчета (между переполнениями) составляет Tп=2nt, где t=1/FВХ ‑ период входной частоты таймера.

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

Техника измерения времени (чтение счетчика)

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

Говоря далее о событиях, будем иметь в виду любое изменение в УВС.

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

Для измерения интервала времени необходимо прочитать в переменную содержимое таймера в момент первого события, затем еще раз (в другую переменную) в момент второго события, вычислить разность двух этих значений и умножить ее на длину периода входной частоты таймера. Эта техника работоспособна, если интервал времени между событиями не превышает времени пересчета таймера Tп=2nt.

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

Отметим, что если таймер программно доступен по чтению, то схемотехника чтения таймера обеспечивает (в большинстве реализаций, но не во всех!) несовпадение моментов чтения и модификации значения счетчика, т.е. опасность прочитать нестабильное значение исключена.

При этом способе измерения момент захвата времени несколько запаздывает по отношению к (внешнему) событию, и возникает систематическая ошибка, включающая следующие составляющие:
1) время выявления внешнего события,
2) время чтения таймера.
При вычислении разности двух захваченных значений эти ошибки могут частично или полностью скомпенсировать друг друга.

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

Отметим два момента.

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

2) Задержка между моментом наступления события и моментом, когда программно считывается содержимое таймера, должна быть минимальной и стабильной.

 

Техника формирования события в заранее заданное время

Под формирование события может пониматься любое изменение управляющего воздействия на объект управления, выдаваемого микроконтроллером. Обычно управляющая программа должна формировать такие изменения в строго определенные моменты времени (правильнее сказать – обеспечивать строго определенные промежутки времени между отдельными управляющими воздействиями). Формирование интервала времени можно осуществить, используя несколько разных техник.

Сравнение с уставкой

Эта техника предполагает следующую последовательность действий (которую можно реализовать программно):

a) вычислить величину, соответствующую приращению содержимого таймера за требуемый интервал времени (она равна: U=T/t).

b) в начале интервала прочитать текущее содержимое таймера t1;

c) вычислить и запомнить в переменной значение U+ t1;

d) периодически читать текущее содержимое таймера ti, пока не выполнится ti³U+ t1. Выполнение условия говорит об истечении интервала времени T. После этого можно

e) выполнить требуемое действие (например, изменить управляющее объектом воздействие).

Этот метод имеет систематическую составляющую ошибки, определяемую длительностью выполнения операций (чтение_таймера + проверка_условия). Если указанная последовательность действий выполняется программно, то:
а) процессор целиком занят в цикле «чтение_таймера – проверка условия;
б) указанная систематическая ошибка не очень мала.

Величина ошибки может быть уменьшена, если операция сравнения ti><(t1+U)mod2n выполняется аппаратно. Для этого в состав таймерного канала добавляют регистр уставки, в который следует записать вычисленное значение t1+U, а также устройство сравнения кодов. При равенстве (изменяющегося) содержимого счетчика таймера и (неизменного) содержимого регистра уставки, компаратор:

а) устанавливает флаг, состояние которого можно анализировать программно;

б) может быть, вызывает запрос аппаратного прерывания;

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

 

Такую аппаратную реализацию канала таймера формирования интервала времени называют каналом генерации событий (по английски Output-Compare OC).

 

Таймерная подсистема

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

Набор действий, которые можно выполнять, используя «канал таймера», может несколько отличаться для разных УВС, но и в способах реализации (как сделан таймер) и в способах использования (как и в каких ситуациях это применяют) – много общего.

 

Почему в УВС делают несколько таймерных каналов:
а) они могут различаться свойствами и позволять выполнять различные операции со временем
б) одного таймерного канала может быть недостаточно для того, чтобы выполнять все необходимые действия.

 

Основной счетчик

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

 

Для проведения измерений времени и других действий, счетчик обязательно должен быть программно доступен для чтения. В дальнейшем этот счетчик будем кратко называть «таймер». Таймер последовательно проходит (при счете «на сложение») все значения от 0 до 2n‑1, где n – число разрядов в счетчике таймера, а затем возвращается в состояние 0 (пересчет по модулю 2n). Переход из максимального в нулевое состояние называют переполнением (OV). Время пересчета (между переполнениями) составляет Tп=2nt, где t=1/FВХ ‑ период входной частоты таймера.

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

Техника измерения времени (чтение счетчика)

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

Говоря далее о событиях, будем иметь в виду любое изменение в УВС.

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

Для измерения интервала времени необходимо прочитать в переменную содержимое таймера в момент первого события, затем еще раз (в другую переменную) в момент второго события, вычислить разность двух этих значений и умножить ее на длину периода входной частоты таймера. Эта техника работоспособна, если интервал времени между событиями не превышает времени пересчета таймера Tп=2nt.

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

Отметим, что если таймер программно доступен по чтению, то схемотехника чтения таймера обеспечивает (в большинстве реализаций, но не во всех!) несовпадение моментов чтения и модификации значения счетчика, т.е. опасность прочитать нестабильное значение исключена.

При этом способе измерения момент захвата времени несколько запаздывает по отношению к (внешнему) событию, и возникает систематическая ошибка, включающая следующие составляющие:
1) время выявления внешнего события,
2) время чтения таймера.
При вычислении разности двух захваченных значений эти ошибки могут частично или полностью скомпенсировать друг друга.

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

Отметим два момента.

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

2) Задержка между моментом наступления события и моментом, когда программно считывается содержимое таймера, должна быть минимальной и стабильной.

 

Цена «деления», диапазон измерения и управление входной частотой

При измерениях времени с помощью таймера ошибка измерения имеет порядок величины t, а максимальный интервал, который можно измерить не превышает 2nt. Количество n разрядов счетчика в таймере жестко определено разработчиками микросистемы и составляет обычно степень двух (8 или 16 или 32, хотя иногда можно встретить и другие разрядности).

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

Независимое уменьшение ошибки и увеличение измеримого интервала возможно, только если есть возможность увеличения разрядности таймера.

 

При управлении входной частотой таймера может предоставляться несколько возможностей:

а) программно управляемый делитель частоты на входе таймера, который позволяет, уменьшая частоту, увеличивать максимальный измеримый интервал, ценой увеличения ошибки; обычно коэффициенты деления делаются кратными степени «двойки»;

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

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

г) возможность изменять направление счета таймера (выбирать режим «сложение» либо «вычитание» ‑ иногда это бывает полезно, см. далее «режим с автоперезагрузкой»).

 



Поделиться:


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

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