При проектировании микропроцессорных систем возникает масса проблем с подачей питания. Неправильная последовательность включения/выключения на определенных выводах, очень быстрый подъем или снижение напряжения, слишком медленная стабилизация и так далее, требуют решения для нормального функционирования системы. Импульсные помехи от внешних компонентов вызывают выход из допуска питающего напряжения и системные батареи начинают "проваливаться". Проектировщики системы стараются минимизировать вредные факторы в пределах возможностей стоимости, габаритов, веса, но всегда есть потребность в благополучной работе изделия особенно тогда, когда качество питания не отвечает требованиям стандарта. Необходимо, чтобы был правильный запуск микропроцессорной системы, чтобы выход за допуск питания фиксировался и по сигналам сбоя питания можно было бы предпринимать действия, направленные на минимизацию сбоя всей системы.
Современная схема микропроцессорного супервизора (диспетчера) является дешевым и эффективным методом для контроля и автоматического поддержания работы операционной системы без сбоев. Эти приборы потребляют малую мощность, имеют низкую цену при широком диапазоне встроенных функций и размещаются в небольших корпусах.
Сброс при включении питания
Первая и всегда используемая защита микропроцессорной системы - это системный сброс при включении питания. Практически все процессоры, входящие в состав компьютера или процессорной системы включают средства для "холодного" старта изделия, когда включается питание. В течение определенного интервала (типовое время 200 мс) пока стабилизируется местный блок питания, устройство не должно работать. Если время сброса слишком мало, то нет гарантии правильной работы микропроцессора (да и, вообще, триггерных схем). В течение интервала времени сброса стабилизируется частота синхронизации, а внутренние регистры имеют время, чтобы загрузиться должным образом. Часто для удержания сигнала сброса на входе микропроцессора при подаче питания используют недорогой, но опасный метод с применением RC - задержки. На конденсаторе по показательной функции возрастает напряжение от "0" до Uпит, проходя через значение Vвх, когда оно соответствует пороговому напряжению, при котором микропроцессор может нормально функционировать.
Однако этот метод имеет следующие недостатки. Во первых, если напряжение питания повышается медленно во время периода сброса процессора, то напряжение на вводе сброса может достигать "правильного" уровня Vвх (0,7 Uпит. для большинства процессоров), составляющего (для Uпит 3,3В) 2,31В раньше, чем минимальное рабочее напряжение при допуске 10%, т.е. Uпит 2,97В. Это означает, что сигнал установки дает возможность работать микропроцессору, а его питающее напряжение на 20 % и более не достигло своего рабочего наминала Uпит.
Второй недостаток RC - схемы обнуления, заключается в том, что для цифровых схем (и для микропроцессоров) характерна высокая скорость нарастания (спада) входного сигнала. Используемый низкочастотный фильтр для получения задержки в 200 мс имеет низкую скорость нарастания напряжения V/µs, что может привести к нестабильной работе микропроцессора и-за перевозбуждения на цифровом входе. Если между RC - фильтром и входом микропроцессора поставить триггер Шмитта, то кроме дополнительной стоимости и усложнения схемы это приносит дополнительные неприятности самого триггера при включении питания.
Кратковременный провал напряжения питания и обнаружение сбоя
Еще одно требование сброса микропроцессора возникает в случае провала напряжения питания. Если для обнуления используется RC-фильтр, то он может не среагировать на кратковременный провал. В этом случае возможен сбой в регистровых схемах, выполнение неправильной команды и тому подобное. Для ускорения реакции RC-фильтра на отрицательный спад питающего напряжения следует подключить диод между питанием (катод) и конденсатором (анод). Однако, при низком напряжении питания (3,3 В), для того, чтобы фильтр сработал на спад напряжения, необходимо прямое включение диода. Питание должно снизиться на 20% от Uном. Это может отрицательно сказаться на работе микропроцессора, если допуск по питанию у него не должен превышать ±10%.
Интегральный генератор сброса
Проблемы, связанные со схемами задержки на RC фильтрах, легко решаются генераторами сброса таких микросхем, как DS1810/11/12/16/17, DS1833 и т.д. Типовое устройство сброса (рис. 1) состоит из термокомпенсированного источника опорного напряжения, резистивного делителя входного напряжения, компаратора, схемы фиксированного времени задержки и драйвера. При изготовлении микросхемы резистивная цепь может быть скорректирована на различные допуски питающего напряжения (5%, 10%, 15%, 20%), позволяя пользователю выбрать определенный порог сброса для каждого случая работы микропроцессора. Настройки генератора сброса - самостоятельные величины и не отслеживают высокий или низкий уровень логического сигнала на входе обнуляемой микросхемы.
Рис. 1. Генератор сброса с двухтактным выходом
Для вырабатывания сигнала сброса при включении питания внутренний компаратор включает схему задержки. Ее длительность для каждого прибора оговаривается в техдокументации. Компаратор также определяет спад напряжения. При прохождении установленного порога, генератор сброса производит активное управление остановкой и переинициализацией всех действий процессора. Временная диаграмма формирования сигнала "сброс" при включении и при спаде питания показаны на рис. 2. Все параметры, указанные на диаграмме можно найти в техдокументации соответствующего прибора.
Рис. 2. Временная диаграмма формирования сигнала RST
Сброс микропроцессора может быть активизирован в любое время: большой сбой или кратковременный провал питания, включение питания или завершение работы системы.
Ручной сброс
Более широкие возможности открываются у генератора сброса, если он может работать с кнопкой для ручного обнуления. Это полезное добавление дает возможность пользователю вызвать сброс микропроцессора даже тогда, когда питающее напряжение остается в пределах допуска. Если процессор блокируется по какой-то неизвестной причине, ручной сброс позволяет вам делать новый запуск не выключая системное питание.
Ручной сброс может быть осуществлен как независимый ввод к супервизору (в более сложных схемах, например DS1814/1819) или подключается к выходу в более простых приборах, как, например, DS1813/18. Здесь кнопка обнуления подключается параллельно выходному транзистору с резистивной нагрузкой (5,5 кОм). Внутри схемы имеется следящее устройство, которое при снижении уровня на выходе до Uil (0,4B max) даже на время 1 µсек, удерживает это состояние на время задержки данного прибора. Схема подключения кнопки к монитору DS1813 представлена на рис. 3. Временная диаграмма сброса от кнопки показана на рис. 4.
Рис. 3. Супервизор с кнопкой сброса
Рис. 4. Временная диаграмма сброса от кнопки
Сбой питания и индикаторы истощения батареи
Очень часто микропроцессорная система не должна терять данные даже если полностью пропадает питание. При жестком сбросе, который следует из потери напряжения питания, процессор формирует сброс любой информации, содержащейся во внутренних регистрах. Система может минимизировать эту потенциальную потерю, сохраняя непрерывно данные в энергонезависимой памяти. Однако такой подход снижает эффективность процессора и надежность записи в память flash или СППЗУ.
Существенно лучшие результаты можно получить при применении супервизоров с многоканальным измерением напряжений.
Например, MAX6342…MAX6345 или DS1830, DS1834 и др., могут делать одновременно замеры двух и более напряжений. Если, например, рабочее напряжение 5 вольт, то вспомогательное должно быть на ≥ 1 вольт ниже. Если основное напряжение начинает снижаться, то супервизор сигнализирует об этом микропроцессору и информация может сохраниться в энергонезависимом запоминающем устройстве прежде, чем произойдет системный сброс (см. рис. 5). Здесь питание системы производится от регулятора первичного напряжения или батареи. Напряжение питания процессора проверяется по стандарту включено/выключено. При этом, низковольтный индикатор также контролирует первичное напряжение. Порог для индикатора установлен выше выходного напряжения регулятора. Выход этого индикатора управляет немаскируемым прерыванием (NMI). Этот NMI указывает процессору о начале процедуры сохранения данных в энергонезависимой памяти. При правильной установке индикатора обеспечивается достаточное время для сохранения всех данных прежде, чем регулируемое напряжение питания снизится ниже минимального рабочего напряжения, указанного в спецификации на процессор.
Рис. 5. Применение супервизора с многоканальным измерением напряжения
Аварийное батарейное питание и схема подключения
Если большой объем данных необходимо переместить в энергонезависимую память, а для этого не достаточно времени, то альтернативой является дополнительное батарейное питание. Осуществить такую функцию могут приборы DS1236, DS1238, DS1836, MAX6361, MAX6363, MAX6364 и др. Возможная схема подключения указанных приборов представлена на рис. 6. Если напряжение питания Vcc находится в пределах допуска для микропроцессорной системы, то супервизор подключает сетевое питание. Если Vcc снижается ниже допустимого порога, установленного в супервизоре, то на микропроцессор выдается команда "сброс" и таким образом прекращается запись в оперативную память. Дальнейшее снижение сетевого питания вызывает подключение супервизором батарейного питания к оперативной памяти для хранения записанной информации. В режиме ожидания память ОЗУ потребляет небольшой ток, что позволяет хранить данные очень долго, пока системное питание Vcc не вернется к надлежащему операционному уровню. При необходимости, батарейное питание может поддержать работу часов реального времени и некоторые функции процессора.
Рис. 6. Подключение батареи при аварийном питании
Сторожевой таймер
Даже наилучшим образом разработанные системы могут иметь сбой не только от колебаний напряжения источника питания. Неправильная синхронизация, некачественная программа, слабые сигналы ответа периферийных устройств - всё это может привести процессор из нормального действующего кода в тупиковый цикл. Никто не знает, когда процессор выходит из ожидаемого маршрута команды и его необходимо перезапустить. Для решения указанной проблемы выпускается группа интегральных супервизоров типа MAX823, MAX6316, MAX6318, DS1814/19, DS1832 и др., которые имеют внутренний сторожевой таймер. Эти схемы требуют чтобы процессор непрерывно корректировал входную логику сторожевого таймера в пределах указанного минимального периода времени. Иначе, супервизор выпускает системное предупреждение (см. рис. 7).
Рис. 7. Схема включения супервизора с внутренним сторожевым таймером
Промышленный стандарт периода времени ожидания для сторожевого таймера составляет 1,6 сек., но поставщики супервизоров предлагают выбор от 1 µs до 1 минуты. Поскольку коррекция сторожевого таймера потребляет ресурсы процессора, необходимо определить период времени, когда система может работать неправильно прежде чем может быть введён сброс.
Выход сторожевого таймера может время от времени подключаться к немаскируемому входу процессора, что позволяет супервизору сделать попытку возврата процессора, на нормальную операцию без потери энергозависимых данных памяти.
Надо отметить такой фактор, как наличие сторожевого таймера в составе процессора. Они работают по программе и могут выполнять вышеописанные функции. Но нужно помнить, что питание в этом случае - единое и все неприятности от сбоя питания также воздействуют на внутренний сторожевой таймер. Таким образом, для получения наиболее устойчивых систем необходима независимая сторожевая схема, которая гарантирует надлежащую работу при сбоях в программе.
В заключении данного обзора супервизоров - диспетчеров для микропроцессоров необходимо отметить следующее.
Простые, малых резмеров микросхемы супервизоров могут иметь самое широкое применение не только в чисто микропроцессорных системах, а во всех электронных блоках, где есть потребность в использовании этих приборов.
Применение супервизоров не ограничено представленными выше примерами, т.к. выпускаемые компанией Maxim - Dallas Semiconductor приборы отличаются большим разнообразием и назначением для применения. Это можно увидеть по дереву супервизоров, представленному ниже.
Микропроцессорные "диспетчеры" и контроллеры NV RAM
- Микропроцессорные диспетчеры:
- небольшие SC-70 и SOT-упаковки (корпуса);
- простая установка (нет батарейного выключателя или сторожевой схемы);
– с компаратором пропадания питания;
– с ручным сбросом (кнопка); - со сторожевой схемой (схемой безопасности);
– с компаратором пропадания питания;
– с ручным управлением установки (кнопка); - с выключателем резервной батареи;
– с вентилем разрешения работы м. с.;
– с компаратором пропадания питания;
– с ручным сбросом (кнопка); - со сторожевой схемой и выключателем резервной батареи;
– с вентилем разрешения работы микросхемы;
– с компаратором пропадания питания;
– с ручным сбросом (кнопка); - диспетчеры (супервизоры) регулируемые пользователем;
– регулируемый порог сброса;
– регулируемое время сброса;
– регулируемый период сторожевой схемы; - все типы с компаратором пропадания питания;
- все типы с ручным вводом сброса;
- многоканальные сбросы.
- диспетчеры энергонезависимого ОЗУ:
- "интеллектуальная розетка" с внутренней батареей;
- монитор с литиевой батареей;
- с блокировкой секторов.
- переключатель с противодребезговой защитой (разрядник).
- детекторы напряжения:
- одноканальный;
- двухканальный;
- четырехканальный;
- пятиканальный.
- регулятор + схема обнуления.
Технические данные на приборы можно посмотреть на сайте www.dalsemi.com или www.maxim-ic.com, а также на www.rtcs.ru.
Приборы, выпускаемые в различных корпусах, в том числе и миниатюрных SOT-23 или SC-70, имеют собственную низкую цену, но могут сэкономить большие деньги для изготовителя и потребителей микропроцессорных систем. Используйте эту возможность.
Автор: Анатолий Шитиков