4.7. Минимизация энергопотребления в системах на основе МКМалый уровень энергопотребления
является зачастую определяющим фактором при выборе способа реализации
цифровой управляющей системы. Современные МК предоставляют пользователю
большие возможности в плане экономии энергопотребления и имеют, как правило, следующие основные режимы работы: -
активный режим (Run mode) — основной режим работы
МК. В этом режиме МК исполняет рабочую программу, и все его ресурсы
доступны. Потребляемая мощность имеет максимальное значение PRUN.
Большинство современных МК выполнено по КМОП-технологии, поэтому
мощность потребления в активном режиме сильно зависит от тактовой
частоты;
-
режим ожидания (Wait mode, Idle mode или Halt
mode). В этом режиме прекращает работу центральный процессор, но
продолжают функционировать периферийные модули, которые контролируют
состояние объекта управления. При необходимости сигналы от периферийных
модулей переводят МК в активный режим, и рабочая программа формирует
необходимые управляющие воздействия. Перевод МК из режима ожидания в
рабочий режим осуществляется по прерываниям от внешних источников или
периферийных модулей, либо при сбросе МК. В режиме ожидания мощность
потребления МК PWAIT снижается по сравнению с активным режимом в 5…10 раз;
- режим
останова (Stop mode, Sleep mode или Power Down mode). В этом режиме
прекращает работу как центральный процессор, так и большинство
периферийных модулей. Переход МК из состояния останова в рабочий режим
возможен, как правило, только по прерываниям от внешних источников или
после подачи сигнала сброса. В режиме останова мощность потребления МК PSTOP снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микроватт.
Два последних режима называют режимами пониженного энергопотребления. Минимизация энергопотребления
системы на МК достигается за счет оптимизации мощности потребления МК в
активном режиме, а также использования режимов пониженного энергопотребления.
При этом необходимо иметь в виду, что режимы ожидания и останова
существенно отличаются временем перехода из режима пониженного энергопотребления
в активный режим. Выход из режима ожидания обычно происходит в течение
3…5 периодов синхронизации МК, в то время как задержка выхода из режима
останова составляет несколько тысяч периодов синхронизации. Кроме
снижения динамики работы системы значительное время перехода в активный
режим является причиной дополнительного расхода энергии. Мощность
потребления МК в активном режиме является одной из важнейших
характеристик контроллера. Она в значительной степени зависит от
напряжения питания МК и частоты тактирования. В зависимости от диапазона питающих напряжений все МК можно разделить на три основные группы: - МК
с напряжением питания 5,0 В±10%. Эти МК предназначены, как правило, для
работы в составе устройств с питанием от промышленной или бытовой сети,
имеют развитые функциональные возможности и высокий уровень энергопотребления.
- МК
с расширенным диапазоном напряжений питания: от 2,0…3,0 В до 5,0-7,0 В.
МК данной группы могут работать в составе устройств как с сетевым, так и
с автономным питанием.
- МК с пониженным напряжением питания: от
1,8 до 3 В. Эти МК предназначены для работы в устройствах с автономным
питанием и обеспечивают экономный расход энергии элементов питания.
Зависимость
тока потребления от напряжения питания МК почти прямо пропорциональная.
Поэтому снижение напряжения питания весьма существенно понижает
мощность потребления МК. Необходимо, однако, иметь в виду, что для
многих типов МК с понижением напряжения питания уменьшается максимально
допустимая частота тактирования, то есть выигрыш в потребляемой мощности
сопровождается снижением производительности системы. Большинство современных МК выполнено по технологии КМОП, поэтому мощность потребления в активном режиме PRUN практически прямо пропорциональна тактовой частоте. Поэтому, выбирая частоту тактового генератора,
не следует стремиться к предельно высокому быстродействию МК в задачах,
которые этого не требуют. Часто определяющим фактором оказывается
разрешающая способность измерителей или формирователей временных
интервалов на основе таймера или скорость передачи данных по
последовательному каналу. В
большинстве современных МК используется статическая КМОП-технология,
поэтому они способны работать при сколь угодно низких тактовых частотах
вплоть до нулевых. В справочных данных при этом указывается, что
минимальная частота тактирования равна dc
(direct current). Это означает, что возможно использование МК в
пошаговом режиме, например, для отладки. Мощность потребления МК при
низких частотах тактирования обычно отражает значение тока потребления
при fOSC = 32768 Гц (часовой кварцевый резонатор). 4.8. Тактовые генераторы МКСовременные МК содержат встроенные тактовые генераторы,
которые требуют минимального числа внешних времязадающих элементов. На
практике используются три основных способа определения тактовой частоты
генератора: с помощью кварцевого резонатора, керамического резонатора и
внешней RC-цепи. Типовая схема подключения кварцевого или керамического резонатора приведена на рис. 4.9а.
Рис. 4.9.
Тактирование с использованием кварцевого или керамического резонаторов (а) и с использованием RC-цепи (б).Кварцевый или керамический резонатор Q подключается к выводам XTAL1 и XTAL2, которые обычно представляют собой вход и выход инвертирующего усилителя. Номиналы конденсаторов C1 и C2
определяются производителем МК для конкретной частоты резонатора.
Иногда требуется включить резистор порядка нескольких мегаом между
выводами XTAL1 и XTAL2 для стабильной работы генератора. Использование
кварцевого резонатора позволяет обеспечить высокую точность и
стабильность тактовой частоты (разброс частот кварцевого резонатора
обычно составляет менее 0,01%). Такой уровень точности требуется для
обеспечения точного хода часов реального времени или организации
интерфейса с другими устройствами. Основными недостатками кварцевого
резонатора являются его низкая механическая прочность (высокая
хрупкость) и относительно высокая стоимость. При
менее жестких требованиях к стабильности тактовой частоты возможно
использование более стойких к ударной нагрузке керамических резонаторов.
Многие керамические резонаторы имеют встроенные конденсаторы, что
позволяет уменьшить количество внешних подключаемых элементов с трех до
одного. Керамические резонаторы имеют разброс частот порядка нескольких
десятых долей процента (обычно около 0,5 %). Самым дешевым способом задания тактовой частоты МК является использование внешней RС-цепи, как показано на рис. 4.9б.
Внешняя RC-цепь не обеспечивает высокой точности задания тактовой
частоты (разброс частот может доходить до десятков процентов). Это
неприемлемо для многих приложений, где требуется точный подсчет времени.
Однако имеется масса практических задач, где точность задания тактовой
частоты не имеет большого значения. Зависимость
тактовой частоты МК от номиналов RC-цепи зависит от конкретной
реализации внутреннего генератора и приводится в руководстве по
применению контроллера. Практически все МК допускают работу от внешнего источника тактового сигнала, который подключается ко входу XTAL1 внутреннего усилителя. При помощи внешнего тактового генератора можно задать любую тактовую частоту МК (в пределах рабочего диапазона) и обеспечить синхронную работу нескольких устройств. Некоторые
современные МК содержат встроенные RC или кольцевые генераторы, которые
позволяют контроллеру работать без внешних цепей синхронизации. Работа
внутреннего генератора обычно разрешается путем программирования
соответствующего бита регистра конфигурации МК. В большинстве моделей МК частота времязадающего элемента (резонатора или RC-цепи) и частота тактирования fBUS
жестко связаны коэффициентом деления встроенного делителя частоты.
Поэтому изменение частоты программным путем не представляется возможным.
Однако ряд последних семейств МК (например, HC08 фирмы Motorola) имеют в
своем составе схему тактирования, основанную на принципе синтезатора
частоты с контуром фазовой автоподстройки (PLL — phase loop lock). Такая
схема работает как умножитель частоты и позволяет задавать тактовую
частоту с помощью низкочастотного кварцевого резонатора, что снижает
уровень электромагнитного излучения МК. Коэффициенты деления контура PLL
могут быть изменены программным путем, что позволяет снизить тактовую
частоту (и, соответственно, потребляемую мощность) в промежутки времени,
когда высокое быстродействие не требуется. В
некоторых МК семейства AVR фирмы Atmel тактовая частота контроллера,
задаваемая внутренней RC-цепью, также может изменяться программными
средствами. 4.9. Аппаратные средства обеспечения надежной работы МКПрикладная
программа, записанная в память программ МК, должна обеспечивать его
надежную работу при любых комбинациях входных сигналов. Однако в
результате электромагнитных помех, колебаний напряжения питания и других
внешних факторов предусмотренный разработчиком ход выполнения программы
может быть нарушен. С целью обеспечения надежного запуска, контроля
работы МК и восстановления работоспособности системы в отсутствие
оператора все современные МК снабжаются аппаратными средствами
обеспечения надежной работы. К ним относятся: - схема формирования сигнала сброса МК;
- модуль мониторинга напряжения питания;
-
сторожевой таймер.
4.9.1. Схема формирования сигнала сброса МКПри
включении напряжения питания МК должен начать выполнять записанную в
памяти программу работы. На этапе нарастания напряжения питания МК
принудительно переводится в начальное состояние, которое называют
состоянием сброса. При этом устанавливаются в исходное состояние
внутренние магистрали МК, сигналы управления и регистры специальных
функций. Последние определяют начальное состояние периферийных модулей
МК, которое чаще всего по умолчанию неактивно. С
целью обеспечения надежного запуска от любых источников питания с
различной динамикой нарастания напряжения большинство современных МК
содержат встроенный детектор напряжения питания (схема Power-On-Reset —
POR), который формирует сигнал сброса при нарастании напряжения питания.
В частности, входящий в состав МК семейства PIC16 таймер установления
питания (PWRT) начинает отсчет времени
после того, как напряжение питания пересекло уровень около 1,2…1,8 В. По
истечении выдержки около 72 мс считается, что напряжение достигло
номинала. Сразу после выхода из состояния сброса МК выполняет следующие действия: - запускает генератор синхронизации МК. Для стабилизации частоты тактирования внутренними средствами формируется задержка времени;
- считывает энергонезависимые регистры конфигурации в соответствующие регистры ОЗУ (если необходимо);
- загружает в счетчик команд адрес начала рабочей программы;
- производит выборку первой программы из памяти программ и приступает к выполнению программы.
Адрес
ячейки памяти, в которой хранится код первой исполняемой команды,
называют вектором начального запуска или вектором сброса. В некоторых МК
этот адрес однозначно определен и приведен в техническом описании. Про
такие МК говорят, что они имеют фиксированный вектор сброса. В других МК
вектор сброса может быть произвольно определен пользователем. На этапе
программирования МК необходимый вектор начального запуска записывается в
ячейки с фиксированными адресами, и при выходе МК из сброса
автоматически загружается в счетчик команд. О таких МК говорят, что они
имеют загружаемый вектор сброса. Загружаемый вектор сброса имеют все
8-разрядные МК фирмы Motorola, выполненные по структуре с единым
адресным пространством команд и данных. Для
перевода МК в состояние сброса при установившемся напряжении питания
достаточно подать сигнал высокого или низкого уровня (в соответствии со
спецификацией МК) на вход сброса (RESET).
Обычно для формирования сигнала сброса при включении напряжения питания и
нажатии кнопки сброса используют RC-цепь. Типовые схемы формирования
сигнала сброса представлены на рис 4.10. Кнопка Кн предназначена для "ручного" сброса МК при отладке. Диод VD препятствует попаданию на вход RESET отрицательного напряжения при выключении питания. Номиналы R и C
определяют задержку времени, необходимую для завершения всех переходных
процессов при сбросе (указываются в техническом описании на МК).
Триггер Шмитта на входе допускает подачу сигнала сброса с
ненормированной длительностью фронта. При отсутствии триггера Шмитта на
входе приходится использовать специальную внешнюю схему формирователя. В
современных МК линия RESET обычно является двунаправленной и имеет
низкий активный уровень. При нажатии кнопки "сброс" или включении
питания буфер линии устанавливается в режим ввода и реализует так
называемый внешний сброс. МК может перейти в состояние сброса также по
сигналам устройств контроля состояния, которые имеются в составе
контроллера. В этом случае говорят, что МК находится в состоянии
внутреннего сброса. При этом буфер линии RESET
устанавливается в состояние вывода с низким логическим уровнем на
выходе. Данный сигнал может быть использован для установки в начальное
состояние периферийных ИС.
Рис. 4.10.
Типовые схемы формирования сигнала внешнего сброса для МК с
высоким активным уровнем сигнала сброса (а) и низким активным уровнем
сигнала сброса (б).Порядок выхода МК из состояний внешнего и внутреннего сброса в целом одинаков. 4.9.2. Блок детектирования пониженного напряжения питанияВ
реальных условиях эксплуатации может сложиться такая ситуация, при
которой напряжение питания МК опустится ниже минимально допустимого, но
не достигнет порога отпускания схемы POR. В этих условиях МК может
"зависнуть". При восстановлении напряжения питания до номинального
значения МК останется неработоспособным. Для
восстановления работоспособности системы после "просадки" напряжения
питания МК необходимо снова сбросить. Для этой цели в современных МК
реализован дополнительный блок детектирования пониженного напряжения
питания. Такой модуль используется в МК семейства HC08 фирмы Motorola,
аналогичный модуль имеется в составе семейства PIC17 фирмы Microchip.
Рассматриваемый модуль генерирует сигнал внутреннего сброса при снижении
напряжения питания до уровня чуть ниже минимально допустимого. Уровень
срабатывания блока детектирования пониженного напряжения питания
значительно превышает напряжение сохранения данных в ОЗУ МК. Событие
сброса по сигналу блока пониженного напряжения питания отмечается
специальным битом в одном из регистров МК. Следовательно, программно
анализируя этот бит после сброса МК, можно установить, что данные целы, и
продолжить выполнение программы. 4.9.3. Сторожевой таймерЕсли,
несмотря на все принятые меры, МК все же "завис" , то на случай выхода
из этого состояния все современные контроллеры имеют встроенный модуль сторожевого таймера. Принцип действия сторожевого таймера показан на рис 4.11.
Рис. 4.11.
Принцип действия сторожевого таймера.Основу сторожевого таймера
составляет многоразрядный счетчик. При сбросе МК счетчик обнуляется.
После перехода МК в активный режим работы значение счетчика начинает
увеличиваться независимо от выполняемой программы. При достижении
счетчиком максимального кода генерируется сигнал внутреннего сброса, и
МК начинает выполнять рабочую программу сначала. Для исключения сброса по переполнению сторожевого таймера рабочая программа МК должна периодически сбрасывать счетчик. Сброс счетчика сторожевого таймера осуществляется путем исполнения специальной команды (например, CLRWDT)
или посредством записи некоторого указанного кода в один из регистров
специальных функций. Тогда при нормальном, предусмотренном
разработчиком, порядке исполнения рабочей программы переполнения
счетчика сторожевого таймера не происходит,
и он не оказывает влияния на работу МК. Однако, если исполнение рабочей
программы было нарушено, например, вследствие "зависания", то велика
вероятность того, что счетчик не будет сброшен вовремя. Тогда произойдет
сброс по переполнению сторожевого таймера, и нормальный ход выполнения рабочей программы будет восстановлен. Модули сторожевых таймеров конкретных МК могут иметь различные особенности: - в ряде МК векторы внешнего сброса и сброса по переполнению сторожевого таймера
совпадают. Это не позволяет выявить причину сброса программным путем и
затрудняет написание рабочей программы. Более высокоуровневые МК имеют
либо различные векторы сброса, либо отмечают событие сброса по
переполнению сторожевого таймера установкой специального бита в одном из регистров специальных функций;
- в некоторых МК при переходе в один из режимов пониженного энергопотребления, когда рабочая программа не выполняется, автоматически приостанавливается работа сторожевого таймера. В других МК сторожевой таймер имеет независимый тактовый генератор,
который продолжает функционировать и в режиме ожидания. В этом случае
необходимо периодически выводить МК из состояния ожидания для сброса сторожевого таймера.
В PIC-контроллерах фирмы Microchip выработка таких сбросов может быть
запрещена путем записи нуля в специальный бит конфигурации WDTE.
Использование сторожевого таймера существенно повышает способность к самовосстановлению системы на основе МК. 4.10. Дополнительные модули МКОписанные выше
модули составляют так называемый базовый комплект МК и входят в состав
любого современного контроллера. Очевидна необходимость включения в
состав МК дополнительных модулей, состав и возможности которых
определяются конкретной решаемой задачей. Среди таких дополнительных
модулей следует, прежде всего, отметить: - модули последовательного ввода/вывода данных;
- модули аналогового ввода/вывода.
4.10.1. Модули последовательного ввода/выводаНаличие
в составе 8-разрядного МК модуля контроллера последовательного
ввода/вывода стало в последнее время обычным явлением. Задачи, которые
решаются средствами модуля контроллера последовательного ввода/вывода,
можно разделить на три основные группы: - связь
встроенной микроконтроллерной системы с системой управления верхнего
уровня, например, с персональным компьютером. Чаще всего для этой цели
используются интерфейсы RS-232C и RS-485;
- связь с внешними по
отношению к МК периферийными ИС, а также с датчиками физических величин с
последовательным выходом. Для этих целей используются интерфейсы I2C, SPI, а также нестандартные протоколы обмена;
- интерфейс
связи с локальной сетью в мультимикроконтроллерных системах. В системах
с числом МК до пяти обычно используются сети на основе интерфейсов I2C,
RS-232C и RS-485 с собственными сетевыми протоколами высокого уровня. В
более сложных системах все более популярным становится протокол CAN.
С
точки зрения организации обмена информацией упомянутые типы интерфейсов
последовательной связи отличаются режимом передачи данных (синхронный
или асинхронный), форматом кадра (число бит в посылке при передаче байта
полезной информации) и временными диаграммами сигналов на линиях
(уровни сигналов и положение фронтов при переключениях). Число линий, по которым происходит передача в последовательном коде, обычно равно двум (I2C,
RS-232C, RS-485) или трем (SPI, некоторые нестандартные протоколы).
Данное обстоятельство позволяет спроектировать модули контроллеров
последовательного обмена таким образом, чтобы с их помощью на аппаратном
уровне можно было реализовать несколько типов последовательных
интерфейсов. При этом режим передачи (синхронный или асинхронный) и
формат кадра поддерживаются на уровне логических сигналов, а реальные
физические уровни сигналов для каждого интерфейса получают с помощью
специальных ИС, которые называют приемопередатчиками, конверторами,
трансиверами. Среди
различных типов встроенных контроллеров последовательного обмена,
которые входят в состав тех или иных 8-разрядных МК, сложился стандарт
"де-факто" — модуль UART (Universal Asynchronous Receiver and
Transmitter). UART — это универсальный асинхронный приемопередатчик.
Однако большинство модулей UART, кроме асинхронного режима обмена,
способны также реализовать режим синхронной передачи данных. Не
все производители МК используют термин UART для обозначения типа модуля
контроллера последовательного обмена. Так, в МК фирмы Motorola модуль
асинхронной приемопередачи, который поддерживает те же режимы
асинхронного обмена, что и UART, принято называть SCI (Serial
Communication Interface). Следует отметить, что модуль типа SCI обычно
реализует только режим асинхронного обмена, то есть его функциональные
возможности уже по сравнению с модулями типа UART. Однако бывают и
исключения: под тем же именем SCI в МК МС68НС705В16 скрывается модуль
синхронно-асинхронной передачи данных. Модули
типа UART в асинхронном режиме работы позволяют реализовать протокол
обмена для интерфейсов RS-232C, RS-422А, RS-485, в синхронном режиме —
нестандартные синхронные протоколы обмена, и в некоторых моделях — SPI. В
МК фирмы Motorola традиционно предусмотрены два модуля
последовательного обмена: модуль SCI с возможностью реализации только
протоколов асинхронной приемопередачи для интерфейсов RS-232C, RS-422A,
RS-485 и модуль контроллера синхронного интерфейса в стандарте SPI. Протоколы интерфейсов локальных сетей на основе МК (I2C
и CAN) отличает более сложная логика работы. Поэтому контроллеры CAN
интерфейса всегда выполняются в виде самостоятельного модуля. Интерфейс I2C с возможностью работы как в ведущем, так и ведомом режиме, также обычно поддерживается специальным модулем (модуль последовательного порта в МК 89С52 фирмы Philips). Но если реализуется только ведомый режим I2C,
то в МК PIC16 фирмы Microchip он успешно сочетается с SPI: настройка
одного и того же модуля на один из протоколов осуществляется путем
инициализации. В
последнее время появилось большое количество МК со встроенными модулями
контроллеров CAN и модулями универсального последовательного интерфейса
периферийных устройств USB (Universal Serial Bus). Каждый из этих
интерфейсов имеет достаточно сложные протоколы обмена, для ознакомления с
которыми следует обращаться к специальной литературе. 4.10.2. Модули аналогового ввода/выводаНеобходимость приема и формирования аналоговых сигналов требует наличия в МК модулей аналогового ввода/вывода. Простейшим
устройством аналогового ввода в МК является встроенный компаратор
напряжения. Компаратор сравнивает входное аналоговое напряжение с
опорным потенциалом VREF и
устанавливает на выходе логическую "1", если входное напряжение больше
опорного. Компараторы удобнее всего использовать для контроля
определенного значения входного напряжения, например, в термостатах. В
комбинации с внешним генератором линейно изменяющегося напряжения
встроенный компаратор позволяет реализовать на МК интегрирующий
аналого-цифровой преобразователь (АЦП). Однако более широкие возможности для работы с аналоговыми сигналами дает АЦП, встроенный в МК. Чаще всего он реализуется в виде модуля многоканального АЦП,
предназначенного для ввода в МК аналоговых сигналов с датчиков
физических величин и преобразования этих сигналов в двоичный код.
Структурная схема типового модуля АЦП представлена на рис 4.12.
Рис. 4.12.
Структура модуля АЦП.Многоканальный аналоговый коммутатор К служит для подключения одного из источников аналоговых сигналов (PTx0...PTx7) ко входу АЦП.
Выбор источника сигнала для преобразования осуществляется посредством
записи номера канала коммутатора в соответствующие разряды регистра
управления АЦП. Два вывода модуля АЦП используются для задания опорного напряжения Uоп: VREFH — верхний предел Uоп, VREFL — нижний предел. Разность потенциалов на входах VREFH и VREFL и составляет Uоп. Разрешающая способность АЦП составляет Uоп/2n, где n
— число двоичных разрядов в слове результата. Максимальное значение
опорного напряжения, как правило, равно напряжению питания МК. Если
измеряемое напряжение Uизм > VREFH, то результат преобразования будет равен FF, код 00 соответствует напряжениям Uизм < VREFL. Для достижения максимальной точности измерения следует выбрать максимально допустимое значение Uоп. В этом случае напряжение смещения нуля входного буфера и нелинейность передаточной характеристики АЦП будут вносить относительно малые погрешности. Собственно
аналого-цифровой преобразователь выполнен по методу последовательного
приближения. Практически во всех моделях 8-разрядных МК разрядность АЦП также составляет 8 разрядов. Соответственно, формат представления результатов измерения АЦП — однобайтовый. Исключение составляют лишь модули АЦП
микроконтроллеров для управления преобразователями частоты для
электроприводов, разрешающая способность которых равна 10 разрядам. Два
младших разряда результата получают с помощью дополнительного емкостного
делителя, не связанного с регистром последовательного приближения. Длительность такта преобразования задает генератор синхронизации: один цикл равен двум периодам частоты генератора tADC. Время преобразования для типовых модулей АЦП микроконтроллеров составляет от единиц до десятков микросекунд. Источником синхронизации модуля АЦП
может служить встроенный RC-генератор (Г) или импульсная
последовательность тактирования межмодульных магистралей МК. В первом
случае частота синхронизации АЦП
обязательно окажется оптимальной, то есть той, которая рекомендуется в
техническом описании. Во втором случае выбранная по другим соображениям fBUS может оказаться неподходящей для модуля АЦП. На этот случай в составе некоторых модулей предусмотрен программируемый делитель частоты fBUS. Момент завершения каждого цикла преобразования отмечается установкой триггера готовности данных. Если прерывания от модуля АЦП разрешены, то генерируется запрос на прерывания. Как правило, чтение регистра результата сбрасывает триггер готовности. Большинство модулей АЦП
имеют только режим программного запуска: установка одного из битов
регистра режима запускает очередное измерение. Наиболее универсальные
модули АЦП имеют также режим
автоматического запуска, при котором после завершения одного цикла
преобразования немедленно начинается следующий. Однако данные измерения
каждого цикла должны быть считаны программным способом. Цифро-аналоговые
преобразователи в составе МК являются большой редкостью. Функция
цифро-аналогового преобразователя реализуется средствами модуля
программируемого таймера в режиме ШИМ. На одном из выводов МК
формируется высокочастотная импульсная последовательность с регулируемой
длительностью импульса. Полученный сигнал сглаживается фильтром нижних
частот на операционном усилителе. Разрешающая способность такого ЦАП определяется дискретностью регулирования коэффициента заполнения в режиме ШИМ.
|