Как проектировать электронные схемы
Шрифт:
В приведенной ниже подпрограмме для создания временных задержек в очередной раз используется длительность выполнения команд. Информация хранится в регистрах А и X; выходной сигнал подается на линию, соответствующую биту 1 порта А. Его частота составляет приблизительно 1000 Гц при длительности 250 мс.
Формирование временной задержки
Во многих приложениях в процессе работы используются подпрограммы временной задержки. Выполнение заданной задержки — обычная задача для микропроцессора, обладающего скоростью
Можно привести много примеров использования этой подпрограммы: задание частоты мигания светодиода, счет времени в часах или генерация калиброванных по длительности импульсов для самых различных целей — от запуска серводвигателя и до создания последовательности двоичных слов. При этом можно задавать различные временные промежутки: от нескольких микросекунд до многих часов.
Однако во всех случаях применяется принцип повторения (нередко многократного) одной или нескольких команд, задающих калиброванную базовую задержку. Таким образом, чтобы обеспечить ожидание в течение 20 мс, нужно 20 раз выполнить подпрограмму задержки на 1 мс или 200 раз повторить подпрограмму задержки на 100 мкс.
Многие процессоры содержат на кристалле таймер, обычно построенный на каскадном соединении делителей частоты. На его вход подается сигнал тактовой частоты. Управление таймером может включать разнообразные опции, например установку заданного начального значения, автоматический запуск по сигналу прерывания в конце счета или при подаче внешнего управляющего сигнала и др. Специальные функции таймера предназначены в основном для фиксации отрезков относительно большой длительности и не всегда просты в реализации. Поэтому разработчику часто приходится искать другие способы для осуществления нужных временных задержек.
В этих случаях очень важно иметь точные характеристики микропроцессора, чтобы знать длительность выполнения каждой из команд. Данные величины указываются в виде числа машинных циклов, равных, как правило, части периода тактового генератора. Так, для некоторого цикла в документации может быть указано время: tcycl = 2tosc. Это означает, что при рабочей частоте кварцевого генератора 2 МГц данный цикл будет длиться 1 мкс (2 х 0,5 мкс). Если команда Ida 48 выполняется за два цикла, она длится 2 мкс. Повторяя команду n раз, можно обеспечить временную задержку n х 2 мкс.
Теперь следует вставить ее в цикл, который увеличит задержку в нужное число раз. Поскольку речь идет о подпрограмме, продолжительность операций вызова и возвращения должна входить в общую временную задержку, как показано на рис. 4.5.
Команда пор (операция без какого-либо действия) обеспечивает дополнительную задержку (1 мкс) с целью получения нужного результата. Наконец, следует добавить, что для формирования некоторых нестандартных длительностей можно воздействовать на частоту кварцевого тактового генератора, которая лежит в основе всех расчетов времени задержки.
ФОРМИРОВАНИЕ СИГНАЛА СИНХРОНИЗАЦИИ
Иногда для синхронизации операций измерения или счета необходимо использовать внешнее задающее устройство. Обычно опорный сигнал подается на вход прерывания микропроцессора. При этом не всегда нужно выполнять прерывание, иногда можно обойтись операцией простого программного считывания. Достаточно дождаться изменения состояния на входе и убедиться в том, что счетчик в этот момент показывает заданное значение.
Электрическая сеть — довольно точный источник задающего сигнала. При ее использовании обычно удается исключить ошибки считывания, вызываемые внешними помехами.
В регулирующих устройствах с широтно-импульсной модуляцией (см. главу 2, раздел «Широтно-импульсная модуляция») при наличии счетчика, синхронизированного с напряжением сети, можно управлять симистором в нужный момент без создания дополнительной схемы синхронизации.Принцип запуска схемы синхронизации от сети подобен принципу генерации сигнала установки системы в исходное состояние (см. раздел «Начальная установка микроконтроллера»). Отметим, что обе схемы могут сосуществовать в одном устройстве. Используемый в схеме стабилитрон ограничивает сверху напряжение, снятое с выхода трансформатора (перед диодным мостом), до величины, приемлемой для микроконтроллера (рис. 4.6).
Полученный прямоугольный сигнал подается на вход прерывания (или на другой вход) через резистор ограничения тока. При необходимости этот сигнал можно использовать в качестве опорного для внутреннего таймера.
ОХЛАЖДЕНИЕ АППАРАТУРЫ
Современные микропроцессоры и микроконтроллеры потребляют значительно меньше энергии, чем модели предыдущих поколений.
В некоторых случаях мощность уменьшилась в 50-100 раз. Одновременно с этим можно наблюдать впечатляющий рост возможностей и быстродействия электронных устройств. Тем не менее мощность, рассеиваемая процессором, продолжает оставаться его важной характеристикой. Особенно это касается материнских плат IBM-совместимых компьютеров.
Часто вентилятор охлаждения закрепляется на корпусе процессора, который снабжен пластинчатым радиатором. В некоторых моделях предыдущих поколений (процессоры типа 486) для размещения вентилятора были предусмотрены только направляющие. Цена вентилятора сравнительно невелика, поэтому обычно его ставят на все микропроцессоры, работающие при напряжении питания 5 В. Рекомендуется регулярно чистить вентилятор и проверять его состояние. Во всяком случае, эти операции следует выполнять, если издаваемый вентилятором шум усиливается.
СТОРОЖЕВАЯ СХЕМА
Сторожевая схема (Watch-dog — дословно «сторожевая собака») представляет собой устройство, контролирующее работу микропроцессора и вызывающее его перезагрузку при возникновении сбоя.
Речь может идти о бесконечном программном цикле, вызванном ошибкой программирования, о сбоях, связанных с нестандартными обстоятельствами или с неисправностью (помехи, отказ источника питания и др.).
Как правило, сторожевая схема вводится в аппаратуру, когда сбой может привести к серьезным последствиям (например, при управлении силовыми элементами). Многие современные микроконтроллеры содержат устройство слежения, активизирующееся по запросу.
Принцип работы сторожевой схемы достаточно прост и требует минимального программного обеспечения. На одном из выходов микропроцессора должен быть сформирован однобитный сигнал, который может использоваться и для других целей. Для этого в ключевую точку программы нужно вставить подпрограмму, генерирующую в нормальном режиме непрерывную последовательность импульсов, которая прерывается при возникновении сбоя. Эти импульсы управляют работой одновибратора, выход которого соединен со схемой перезагрузки процессора. Постоянная времени одновибратора определяется параметрами RC-цепи и рассчитывается так, что превышение заданного временного промежутка между двумя импульсами вызывает переключение выходного сигнала. Таким образом, важна именно длительность временного промежутка, а не ширина импульса. Это обеспечивает определенную свободу выбора при создании программы.