Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Многофункциональные таймеры в микроконтроллерах схем управления копиров и принтеров.

Многофункциональные таймеры в микроконтроллерах схем управления копиров и принтеров.

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

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

Центральное процессорное устройство (ЦПУ) — основа микроконтроллера. Оно принимает из памяти программ коды команд, декодирует их и выполняет. ЦПУ состоит из регистров, арифметико-логического устройства (АЛУ) и цепей управления.

Память программ. Здесь хранятся коды команд, последовательность которых формирует программу для микроконтроллера.

Оперативная память данных. Здесь хранятся переменные про
грамм. У большинства микроконтроллеров здесь расположен также стек.

Тактовый генератор. Этот генератор определяет скорость работы микроконтроллера.

Цепь сброса. Эта цепь служит для правильного запуска микроконтроллера.

Последовательный порт — элемент микроконтроллера, который позволяет обмениваться данными с внешними устройствами при малом количестве проводов.

Цифровые линии ввода/вывода. По сравнению с последовательным портом с помощью этих линий возможно управлять одновременно несколькими линиями (или проверять несколько линий).

Таймер. Используется для отсчета временных интервалов.

Сторожевой таймер. Это специальный таймер, предназначенный для предотвращения сбоев программы. Он работает следующим образом: после запуска он начинает отсчет заданного временного интервала. Если программа не перезапустит его до истечения этого интервала времени, сторожевой таймер перезапустит микроконтроллер. Таким образом, программа должна давать сторожевому таймеру сигнал — все в порядке. Если она этого не сделала, значит, по какой-либо причине произошел сбой.

Микроконтроллеры с расширенными возможностями управления содержат в себе и

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

Каждый такой таймер построен на основе 16-разрядных регистров. Кроме того, каждому из них соответствуют 4 вывода микроконтроллера: один вывод — вход тактового сигнала, 2 вывода — входы захвата и еще один вывод — выход таймера. Каждый многофункциональный таймер может работать в четырех различных режимах.

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

Режим ШИМ (широтно-импульсная модуляция) заключается в генерировании сигнала с программируемыми частотой и коэффициентом заполнения (рис.1). Для использования этого режима необходимо загрузить в регистры сравнения R1 и R2 значения, равные количеству машинных циклов, в течение которых сигнал на выходе таймера равен «0» и «1» соответственно. Таким образом, содержимое регистра R1 определяет длительность сигнала НИЗКОГО, а содержимое регистра R2 — длительность сигнала ВЫСОКОГО уровня на выходе таймера.

Рис. 1. Формирование ШИМ-сигнала

Сначала счетчик инициализируется значением 0000h. Затем содержимое счетчика инкрементируется до тех пор, пока не станет равным содержимому регистра R1. В этот момент генерируется прерывание (если оно разрешено), изменяется уровень на выходе таймера, а в счетчик вновь записывается значение 0000h. Во втором цикле содержимое счетчика инкрементируется до тех пор, пока не станет равным содержимому регистра R2. В этот момент генерируется прерывание (если оно разрешено), изменяется уровень на выходе таймера, а в счетчик вновь записывается значение 0000h. Описанный процесс постоянно повторяется с поочередным использованием регистров R1 и R2. Значения, записанные в регистрах R1 и R2, определяют коэффициент заполнения и период, а следовательно, и частоту выходного сигнала. Если в регистрах R1 и R2 записано одно и то же число, на выходном контакте таймера будет присутствовать сигнал меандра, имеющий коэффициент заполнения, равный 50%. Если в момент записи в регистр R1 значение таймера больше, чем записываемое, а на выходе таймера НИЗКИЙ уровень (т.е. таймер считает до совпадения с R1), то таймер досчитает до FFFFh и затем до нового значения R1, сохраняя на выходе НИЗКИЙ уровень. Аналогичная ситуация будет и при обновлении R2, только на выходе таймера сохранится ВЫСОКИЙ уровень.

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

Режим программного таймера полностью аналогичен режиму ШИМ, за исключением того, что сигнал на выходе таймера отсутствует. В этом режиме по каждому совпадению содержимого счетного регистра с содержимым регистров R1 или R2 просто генерируется прерывание. Этот режим предназначен для выполнения каких-либо действий по каждому из прерываний. В программе причина прерывания определяется путем проверки флагов прерывания таймера. Каждому источнику прерывания (совпадение с R1, совпадение с R2 или переполнение счетчика) соответствует свой флаг.

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

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

В режиме «захват/сравнение» инкремент содержимого счетчика таймера производится непрерывно без генерации прерывания. При обнаружении на любом из двух входов таймера заданного перехода уровня сигнала содержимое счетчика сохраняется в соответствующем регистре. Эта возможность захвата может быть использована для определения интервала времени, прошедшего между двумя внешними событиями. Более того, содержимое счетчика может непрерывно сравниваться с содержимым регистра R1. Каждый раз, когда состояние счетчика равно числу, находящемуся в регистре R1, меняется состояние выходного сигнала таймера и генерируется прерывание (если оно разрешено). После наступления этого события счет продолжается без сброса счетчика в состояние 0000h, в отличие от режима ШИМ.

В режиме «захват/сравнение» инкремент счетчика производится по внутреннему тактовому сигналу микроконтроллера, прошедшему через 3-битный предделитель. Коэффициент деления предделителя (степень числа 2) задается в диапазоне от 1 до 128.

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

По сигналу на выводе «Захват 1» содержимое счетчика сохраняется в специальном 16-битном регистре CAPTURE 1, который доступен только для чтения. По сигналу на выводе «Захват 2» содержимое счетчика сохраняется в регистре R2. При выполнении захвата генерируется прерывание и устанавливается соответствующий флаг.

При переполнении счетчика (при переходе из состояния FFFFh в 0000h) генерируется прерывание (если оно разрешено) и устанавливается соответствующий флаг. Поскольку счетчик работает непрерывно, переполнение происходит регулярно, каждые 65536 приращений. Прерывание по переполнению счетчика может использоваться программой для различения двух последовательных событий, произошедших через большой промежуток времени.

Как уже было сказано, при совпадении содержимого счетчика с содержимым регистра R1 изменяется состояние выходного сигнала. Кроме того, при этом событии генерируется прерывание (если оно разрешено) и устанавливается соответствующий флаг. После этого счет продолжается без сброса счетчика в состояние 0000h. Однако если необходимо четко задать период этого прерывания, в подпрограмме обработки прерывания следует скорректировать содержимое R1 для получения требуемой длительности сигнала.

 

 

 


Лицензия