Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл3_06.unlocked.docx
Скачиваний:
27
Добавлен:
09.02.2015
Размер:
635.45 Кб
Скачать

3.3. Супервизорные схемы

Супервизорные схемы относятся к классу последовательностныхсхем и предназна- чены для обеспечения условий и наблюдения за работой микропроцессоров и однокри- стальных микроконтроллеров. Образно говоря, они выполняют функции заботливой нянь- ки, точнее дядьки при микроконтроллере (МК). Почему не просто няньки, а дядьки? По- тому что они вооружены дубинкой и не дают микроконтроллеру делать свою работу пло- хо. Они так зарекомендовали себя, что в современные микроконтроллеры их просто ин- тегрируют с другими штатными устройствами, такими, как таймеры, приемопередатчики, аналого-цифровые и цифроаналоговыми преобразователями.

А. Функции супервизора МАХ-691

Разберем работу схем этого типа на примере схемы МАХ-691, являющейся супер- визором для знакомого нам семейства MCS-51. Функциональная схема супервизора приве- дена на рис. 3.22. Микросхема способна выполнять следующие две укрупненные функции:

BATT ON

мониторинг за напряжением пита-

ния МК и защиту от программных

Vcc

VBATT

CE ON

OSC IN OSC SEL

WDI PFI

+

+ 4,65В

+

+

&

Управление выходом СЕ

Генератор сброса

Таймер

RESET и WD

Детектор сигнала WDI

Таймер WD

LOW LINE

Vout

CE out RESET

RESET

WDO PFO

сбоев микроконтроллера.

  1. Мониторинг за напряжением питания МК. Одной из основных причин сбоев в работе МК является снижение напряжения питания ни- же установленного уровня. Таким порогом для для ИС семейства MCS-51 является 4.65В. Функции мониторинга включают:

    1. Подключение резервной бата- рей, если основное питание падает ниже резервного.

    2. Сброс МК при включении питания.

    3. Сброс МК, если питание ниже

+

1,25В

GND

4.65В.

    1. Блокировка линий выбора кри- сталла памяти данных СЕ, если

Рис. 3.22. Функциональная схема супервизора

питание ниже 4.65В.

    1. Выдача предупреждающего прерывания в начальной фазе снижения напряжения питания.

  1. Защита от программных сбоев. Супервизор должен обнаружить «зависание»

программы и восстановить работоспособность системы управления.

Б. Назначение выводов супервизора и работа схемы

Рассмотрим работу схемы и назначение его выводов, разбирая выполнение приве- денных ранее функций супервизора.

Функция 1.1. Подключение резервной батарей, если основное питание ниже резервного.

Вывод Vcc вход основного питания микроконтроллера. От этого же напряжения питается и супервизорная схема.

Вывод Vout предназначен для подачи питания на микроконтроллер.

VBATT – вывод для подключения резервной батареи. К этому выводу подключается ре- зервный источник питания: аккумулятор, батарея и т.п. Супервизор содержит опорный источ- ник напряжения на 4.65В, подключенный к прямому входу первого компаратора. Как только напряжение на выводе Vcc становится ниже этого порога, на выводе компаратора появляется высокий уровень. Выход компаратора через инвертор подключен к выводу /LOW LINE.

Вывод /LOW LINE сигнализирует о том, что напряжение питания Vcc ниже 4,65В.

Второй компаратор супервизора сравнивает напряжение батареи, подключенной к выводу VBATT с напряжением основного питания. Сигналы с обоих компараторов приходят на ячейку «И». Если основное напряжение Vcc менее 4,65В и меньше напряжения на батарее VBATT, то ячейка «И» выдает единицу и переключает вывод выходного напряжения Vout с основного на батарейное питание.

Нагрузочная способность внутреннего ключа супервизора не превышает 30 мА. Этого достаточно для k-МОП схем серии MCS-51, но не хватает для n-МОП. Для них не- обходимо подключать внешний ключ, для управления которым предусмотрен вывод BATT ON.

Функция 1.2, 1.3. Сброс МК при включении питания. Сброс МК, если питание ниже 4.65В.

Вывод первого компаратора подключен также генератору сброса МК. Генератор сброса, еслинанегопоступаетактивный высокий уровень, формирует сигнал сброса мик- роконтроллера. Длительность и уровень этого сигнала соответствует требуемому сигналу RESET семейства MCS-51 и он через повторитель поступает на вывод RESET супервизо- ра. Этот вывод достаточноподключить к выводу RST и при каждом снижении питающего напряженияниже 4,65В микроконтроллер будет сброшен. При подаче питанияна МК, по- скольку Vcc нарастает от нуля, микроконтроллер каждый раз предварительно будет сбра- сываться.

Вывод /RESET является инверсией сигналаRESET и также предусмотрен в суперви- зоре для возможности его использования для других МК, сбрасываемых низким уровнем.

Функция 1.4. Блокировка линий выбора кристалла памяти данных СЕ, если питание ниже 4.65В. Поддержка работы энергонезависимого ОЗУ

Выводы /CE ON и /CE out предназначены для блокировки линий выбора кристалла внешней памяти данных, если питание ниже 4,65В и для сохранения информации в энер- гонезависимом ОЗУ. Какуже отмечалось, еслипитание ниже 4,65В, возможнысбои рабо- ты МК и в эти моменты вероятно несанкционированное обращение к памяти и запись в нее ошибочной информации. Чтобы этого не происходило, сигнал линии выбора кристал- ла CS или СЕ пропускают через супервизор, подключая его к выводу /CE ON и, затем, к

/CE out. Супервизор содержит внутри себя двунаправленный аналоговый коммутатор, управляемый блоком «Управление выходом СЕ». Как только напряжение питания стано- вится ниже порога 4,65В, компаратор активизирует этот блок и линия /CE ON - /CE out размыкается. Одновременно на вывод /CE out подается высокий уровень с Vout. Схемы энергонезависимого ОЗУ сохраняют информацию, если на вывод CS подана единица. Если сигнал CS формируется супервизором, то при пропадании или выключении основного пи- тания на этом выводе будет напряжение батареи, т.е. супервизор будет поддерживать со- хранение информации в энергонезависимом ОЗУ. При включении питания выводCS также будет блокирован.

Функция 1.5. Выдача предупреждающего прерывания в начальной фазе снижения напряжения питания.

Микросхема содержит также третий компаратор, подключенный к опорному источ- нику 1,25В. На прямой вход этого компаратора подается напряжение с вывода PFI (Power Fail Input), а его выход подключен к выводу PFO (Power Fail Output). Описанное устройст- во предназначено для выдачи предупреждающего прерывания в начальной фазе снижения напряжения питания.

На рис. 3.23 б), показано, что с момента выключения напряжения питаниядо момента сброса, когда напряжение становится ниже 4,65В проходит некоторое время tR. Оно зависит от емкостей, шунтирующих цепи питания и составляет обычно несколько десятков и даже со- тен миллисекунд. Это, малое по нашим меркам, время весьма заметно для микроконтроллера. Подключим к цепи питания делитель напряжения, настроенный с помощью переменного ре-

Vcc

R1

R2 PFI R3

Vcc, B

5,0

4,80

4,65

пряжение на PFI составит 1,25В и под-

Тогда мы сможем зафиксировать мо- мент начала падения напряжения пита- ния с опережением tS в несколько мил- лисекунд или даже десятков миллисе- кунд. За это время МК сможет сделать до 1000 и более коротких операций.

Если подключит вывод PFO су-

а) б)

t S t

t R

первизора к входу внешнего прерыва- ния МК, например INT0, мы сможем

Рис. 3.23. Подача предупредительного прерывания

запустить подпрограмму обслужива- ния этого прерывания по сигналу су-

первизора и сохраним критичную информацию в энергонезависимом ОЗУ, прежде чем микроконтроллер будет сброшен.

Функция 2. Защита от программных сбоев.

Для обнаружения зависаний в супервизоре использована система «Watch dog» (WD) – сторожевой таймер. Это чрезвычайно эффективная система для защиты от про- граммных сбоев. Практически во все современные микроконтроллеры такая система бы- вает встроена.

Как она действует? Ведь микроконтроллер сам никогда не сможет обнаружить, что он завис при выполнении управляющей программы, как человек сам объективно не смо- жет оценить адекватность своего поведения.

Через определенный период времени некая внешняя система WD пытается сбро- сить микроконтроллер. МК, в свою очередь, при нормальной работе должен периодически сбрасывать WD. Для этого в управляющей программе предусматривается специальный процесс. Если управляющая программа «подвисла», упреждающий сигнал на WD послан не будет и микроконтроллер будет сброшен сторожевым таймером. По сбросу он восста- новит исходное значение в своем счетчике команд и начнет управляющую программу сначала. Дело программиста написать программу так, чтобы она восстановила состояние объекта и продолжила управление, как будто ничего не случилось.

В супервизоре предусмотрено специальноеустройство«Таймер RESET и WD», за- дающий длительность стандартного сигнала СБРОС и период «тиков» встроенного сто- рожевого таймера «Таймер WD». Исходно «Таймер WD» срабатывает за период около се- кунды (см. техническую документацию на конкретную схему супервизора). Для упреж- дающего сброса сторожевого таймера служит «Детектор сигнала WDI», подключенный к выводу WDI супервизора.

Вывод WDI предназначен для подачи упреждающего сигнала от управляющейпро- граммы. Притом сигнал фиксируется детектором как по фронту, так и по спаду, поэтому изуправляющей программы для сброса сторожевого таймера следует периодически пода- вать следует то ноль, то единицу. Период следования этого сигнала должен быть меньше периода срабатывания сторожевого таймера.

На вывод /WDO будет подан активный низкий уровень, если сторожевой таймер сработает, одновременно будет активизирован генератор сброса и выдан высокий уровень сигнала RESET. Микроконтроллер будет сброшен. После перезапуска управляющей про- граммы может быть определена причина сброса, так как вывод /WDO будет оставаться в низком уровне до тех пор, пока сторожевой таймер не будет сброшен микроконтроллером. Период от момента «подвисания» программы до момента определения этого факта супервизором не может быть больше периода времени, на которое настроен сторожевой таймер. По умолчанию это около секунды, значит на это время объект теряет управление. Увеличение периода настройки сторожевого таймера, с одной стороны уменьшает нагруз-

ку на микроконтроллер, т.к. он может реже запускать программу сброса WD, с другой, увеличивает время неправильного функционирования объекта. Баланс этих явлений по- зволяет обоснованно выбирать время настройки сторожевого таймера. Если для нас очень критичныпоследствия программныхсбоев, время срабатываниясторожевого таймера может быть уменьшено до нескольких миллисекунд. Сделать это можно с помощью вы- водов OSC SEL и OSC IN супервизора. Если эти выводы оставлены неподключенными или на OSC SEL подан низкий уровень, будет настроен штатный период настройки WD.

Вывод OSC SEL – выбор осциллятора, при подаче на него активного высокого уровня перестраивает таймер RESET и WD (рис. 3.21) и переключает его от встроенного задатчика периода к внешним тактовым импульсам.

Вывод OSC IN служит в этом случае для подачи внешних тактовых импульсов, по- зволяющих переопределить период задержки сторожевого таймера в широких пределах.

В завершение еще раз напомним, что внешний, либо встроенный в МК супервизор является неотъемлемой частью современных локальных микроконтроллеров и эффектив- но защищает его от программных и аппаратных сбоев.

Вопросы к экзамену.

  1. Супервизорная схема МАХ 691. Назначение и функциональная схема.

  2. Аппаратная и программная поддержка энергонезависимого ОЗУ для защиты от сбоев по питанию.

3. Защита МК от помех по питанию и программных сбоев.

Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»

МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]