Как проектировать электронные схемы
Шрифт:
На практике обычно выбирают один из двух более совершенных форматов — скорее, по причине их стандартизации, а не из-за других свойств, которые в конечном итоге обеспечивают лишь незначительную экономию объема памяти при разработке небольших программ.
Рассмотрим представление информации в различных форматах.
Пусть устройство памяти объемом 8 Кб должно содержать по адресу 01 00Н следующие 16 байт:
9В А6 FF В7 04 В7 05 А6 F7 В7 06 11 00 15 00 13
В двоичном формате файл займет 8192 байт, включая 256 (FFH) пустых байтов, после которых размещаются 16 байт данных, и затем опять 7920 пустых байтов.
В формате S19 файл будет записан таким образом:
В
53 31 31 31 33 30 31 30 30 39 42 41 36 46 46 42 37 30 34 42 37 30 35 41 36 46 37 42 37 30 36 31 31 30 30 31 35 30 30 31 33 41 35
Эквивалентная запись в формате Intel имеет вид:
Соответствующая последовательность кодов ASCII в шестнадцатеричной форме займет 42 байта:
31 30 30 31 30 30 30 30 39 42 41 36 46 46 42 37 30 34 42 37 30 35 41 36 46 37 42 37 30 36 31 31 30 30 31 35 30 30 31 33 41 35
ЭНЕРГОНЕЗАВИСИМОЕ ОПЕРАТИВНОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО
Сохранение данных в устройстве памяти при отключении напряжения питания можно обеспечить путем использования специальных компонентов. В случае применения классических компонентов оперативной памяти тот же результат достижим при организации бесперебойного питания ЗУ.
В первом варианте используются постоянные ЗУ, представляющие собой программируемые устройства, в которых информация стирается не оптическим, а электрическим способом. Недостатками таких ЗУ являются относительная сложность их применения (требуется специальное программное обеспечение, рассматриваемое ниже), довольно большое время доступа, недостаточная емкость наиболее распространенных моделей и высокая стоимость.
Есть микросхемы энергонезависимых ОЗУ, которые в своем несколько увеличенном корпусе содержат статическую память и одну или две батарейки питания. В этом случае основным недостатком также является высокая стоимость и невозможность замены израсходованных батареек. Следует, однако, отметить, что батарейки теоретически имеют очень большой срок службы.
В технической документации указывается, что подобные ЗУ можно монтировать в существующие системы, но в действительности это достаточно рискованно, поскольку в момент снятия напряжения (или при его повторном включении) возможно появление ошибочной записи. Поэтому разумнее использовать классические схемы статических ЗУ на дискретных элементах или (что предпочтительнее) монолитные ИС.
Имеется много схем, контролирующих напряжение питания, которые при необходимости переключают устройства на питание от батарейки или аккумулятора, а также обеспечивают управление логическими сигналами, запрещающими некоторые операции в режиме автономного питания. На рис. 4.3 приведен пример использования одной из таких схем, а именно микросхемы МАХ690.
При необходимости (если используется достаточно мощная батарейка) аварийным питанием можно обеспечить не только элементы памяти, но и все компоненты устройства. Микросхемы
Рассмотренная небольшая схема успешно обеспечивает бесперебойную работу встроенной энергонезависимой памяти. Если вместо батареек используется аккумулятор, потребуется дополнительное зарядное устройство.
НАЧАЛЬНАЯ УСТАНОВКА МИКРОКОНТРОЛЛЕРА
Начальная установка микропроцессора или микроконтроллера — важная стадия работы, от которой зависит нормальное выполнение программы. Даже кратковременное отключение напряжения питания должно вызывать перезапуск устройства (если отсутствует резервное питание, например батарейное). Тогда схема типа МАХ690, как было показано выше, успешно генерирует управляющий импульс. Простой операционный усилитель, включенный по схеме компаратора напряжения (рис. 4.4), также может генерировать сигнал установки в исходное состояние.
На инвертирующий вход усилителя подано фиксированное опорное напряжение. К другому входу подключена интегрирующая цепочка, на которую подается переменный сигнал с выходной обмотки трансформатора источника питания. Как только отключается напряжение питания, потенциал на выходе схемы переключается от высокого уровня к низкому. Это переключение происходит за время полупериода сетевого напряжения, то есть задолго до того, как конденсаторы фильтра источника питания успеют разрядиться. Полученный таким образом управляющий сигнал обеспечит своевременную установку процессора в начальное состояние.
Параметры резисторов входных делителей, приведенные на рис. 4.4, соответствуют напряжению 9 В на выходе трансформатора и напряжению питания Vcc — 5 В. Эти параметры корректируются в зависимости от характеристик реальной схемы.
ТИПОВЫЕ ПОДПРОГРАММЫ
Ниже приводятся листинги нескольких подпрограмм, обеспечивающих взаимодействие между микроконтроллером и распространенными периферийными устройствами. Приведены также примеры протоколов коммуникаций и логических функций. При этом используется язык, разработанный фирмой Motorola. Он имеет высокую степень совместимости с программным обеспечением микроконтроллеров типа 6805 и 68НС11. Рекомендуется обратиться к справочному изданию производителя, что поможет лучше понять используемые команды.
Существуют эквивалентные команды и для других микроконтроллеров, что дает возможность «подгонять» программы для устройств различных типов. Для управления встроенными устройствами входа/выхода при необходимости применяются специальные команды в двоичных кодах. При использовании независимых периферийных устройств эти команды заменяются эквивалентными инструкциями, хранящимися в ячейках памяти по определенному адресу. Такие инструкции обычно представляют собой подпрограммы, заканчивающиеся командой возврата в точку основной программы, которая следует за точкой вызова.