Выбрать главу

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

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

Имеется много схем, контролирующих напряжение питания, которые при необходимости переключают устройства на питание от батарейки или аккумулятора, а также обеспечивают управление логическими сигналами, запрещающими некоторые операции в режиме автономного питания. На рис. 4.3 приведен пример использования одной из таких схем, а именно микросхемы МАХ690.

При необходимости (если используется достаточно мощная батарейка) аварийным питанием можно обеспечить не только элементы памяти, но и все компоненты устройства. Микросхемы ОЗУ выбираются из многочисленных существующих типов (6116 и др.), изготовленных по КМОП технологии, с различными размерами корпуса. При переходе в режим питания от батарейки логический сигнал низкого уровня с вывода 7 микросхемы М АХ690 поступает на определенный вход ЗУ и запрещает всякий доступ к нему. Имеется в виду вход выбора кристалла CS или соответствующий дополнительный вход при инвертировании сигнала. Для более сложных вариантов адресации иногда необходимо добавить нескольких логических вентилей.

Рассмотренная небольшая схема успешно обеспечивает бесперебойную работу встроенной энергонезависимой памяти. Если вместо батареек используется аккумулятор, потребуется дополнительное зарядное устройство.

НАЧАЛЬНАЯ УСТАНОВКА МИКРОКОНТРОЛЛЕРА

Начальная установка микропроцессора или микроконтроллера — важная стадия работы, от которой зависит нормальное выполнение программы. Даже кратковременное отключение напряжения питания должно вызывать перезапуск устройства (если отсутствует резервное питание, например батарейное). Тогда схема типа МАХ690, как было показано выше, успешно генерирует управляющий импульс. Простой операционный усилитель, включенный по схеме компаратора напряжения (рис. 4.4), также может генерировать сигнал установки в исходное состояние.

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

Параметры резисторов входных делителей, приведенные на рис. 4.4, соответствуют напряжению 9 В на выходе трансформатора и напряжению питания Vcc — 5 В. Эти параметры корректируются в зависимости от характеристик реальной схемы.

ТИПОВЫЕ ПОДПРОГРАММЫ

Ниже приводятся листинги нескольких подпрограмм, обеспечивающих взаимодействие между микроконтроллером и распространенными периферийными устройствами. Приведены также примеры протоколов коммуникаций и логических функций. При этом используется язык, разработанный фирмой Motorola. Он имеет высокую степень совместимости с программным обеспечением микроконтроллеров типа 6805 и 68НС11. Рекомендуется обратиться к справочному изданию производителя, что поможет лучше понять используемые команды.

Существуют эквивалентные команды и для других микроконтроллеров, что дает возможность «подгонять» программы для устройств различных типов. Для управления встроенными устройствами входа/выхода при необходимости применяются специальные команды в двоичных кодах. При использовании независимых периферийных устройств эти команды заменяются эквивалентными инструкциями, хранящимися в ячейках памяти по определенному адресу. Такие инструкции обычно представляют собой подпрограммы, заканчивающиеся командой возврата в точку основной программы, которая следует за точкой вызова.