Kомпоненты, приборы, оборудование      
 |  Главная |  Каталог предприятий Украины |  Схемотехника |
 

Раздел на реконструкции, некоторые ссылки могут не работать!
  • Аудио
  • Безопасность
  • Бытовая электроника
  • Видео
  • Видеокамеры
  • Высоковольтные
  • Генераторы
  • Измерения
  • Интерфейсы
  • Коммутация
  • Компьютер
  • Медицина
  • Моделирование
  • Передатчики
  • Питание
  • Обработка данных
  • Предусилители
  • Радио

  • Веб-мастерам
    и писателям:
    Биржа статей. Продать - купить статью. Уникальные статьи: готовые и на заказ.


    Назад
       Проектирование микропроцессорных устройств. Часть 2
       
       А. Александров, г. Киев
       (Продолжение. Начало см. в РС 1/2006)
       Обнуление микроконтроллера
       В каждом устройстве, построенном на микроконтроллере, должна присутствовать схема, обеспечивающая генерирование сигнала обнуления. В результате обнуления (RESET) все линии портов микроконтроллера устанавливаются в состояние лог. "1", счетчик команд принимает значение 0000h, регистры SFR устанавливаются в соответствующие для себя начальные значения. Минимальная длительность сигнала RESET равняется двум машинным циклам (24 временных такта). Предполагается, что устройство запитано и работает генератор временных сигналов.
       Если обнуление наступает при включении напряжения питания (или в результате выхода из режима Power Down), то следует учесть время, необходимое на достижение напряжения питания номинального значения, и время, необходимое на возбуждение тактового генератора, - безопасное время длительности импульса RESET составит не менее 10 мс. Описываемые микроконтроллеры фирмы Atmel требуют подачи на вход RST уровня "лог. 1" с целью выполнения операции обнуления.
       Вход обнуления микроконтроллеров серии '51 представляет собой вход Шмитта, что позволяет применение самых простых схем обнуления в виде RC-цепей (см. рис.2 и рис.3). Достаточно использовать только один конденсатор, т.к. микроконтроллеры серии '51 содержат внутренний резистор сопротивлением 20...300 кОм, соединяющий внутри вывод RST на корпус. Значительный разброс величины сопротивления этого резистора не позволяет точно подобрать время обнуления. Фирма-производитель рекомендует использовать в таком устройстве конденсатор емкостью 2,2 мкФ. Часто используемая пара элементов, составляющая схему обнуления, конденсатор 10 мкФ и резистор 10 кОм - обеспечивает время обнуления от 50 до 70 мс (с учетом влияния внутреннего резистора), чего вполне достаточно для выполнения условия длительности сигнала RESET.
       Иногда возникает необходимость ручного или дополнительного обнуления микроконтроллера. Для этой цели применяется схема, соединяющая конденсатор цепи обнуления с целью повторного установления высокого уровня на выводе RST. Это может быть выполнено как при помощи кнопки, контактов реле, так и с использованием электронного элемента (например, транзистора и т.п.). Не рекомендуется выполнять дополнительное обнуление подключением к входу RST вместе со схемой RC выхода цифрового логического элемента (CMOS или TTL), исходя из значительного тока разряда конденсатора и короткого цифрового импульса, который может не справиться с разрядом конденсатора по причине ограниченного выходного тока цифрового элемента. На рис.4 показан вариант схемы, обеспечивающий обнуление при включении питания со стороны входа дополнительной цифровой схемы. В тоже время, достаточно внешнего обнуляющего импульса любого цифрового элемента длительностью не менее 2-х машинных циклов. В рассматриваемой схеме активным уровнем внешнего импульса RESET является низкий уровень. С целью гарантирования обнуления при включении питания применена стандартная RC-цепь, но элементы переставлены местами и используется элемент логики NAND. Исходя из малой скорости нарастания напряжения на конденсаторе, необходимым есть применение элемента с входом Шмитта.
       Стоит отметить, что существует много схем обнуления, построенных на интегральных схемах. Такие схемы отслеживают напряжение питания и, в случае необходимости, генерируют сигнал обнуления с соответствующими параметрами (например, DS1812, MAX810 и др.). Пример использования ИМС DS1812 показан на рис.5.
       В устройствах, работающих с батарейной или специальной поддержкой питания функции слежения, часто выполняют схемы контроля или самоконтроля (watchdog). Чаще всего это специально построенные счетчики, которые должны быть циклично обнуляемые соответствующими программами - прекращающими затянувшееся обнуление (например, в результате зависания процессора) через выработку сигнала RESET.
       Если применяемый микроконтроллер не содержит схемы с функцией watchdog, то можно построить такую систему, используя широко распространенные цифровые микросхемы. Подобно, как в случае обнуления, здесь также можно применить какую-то специальную ИМС и недорогие распространенные компоненты. На рис.6 показана схема обнуления на переполняемом счетчике, реализующая функцию watchdog. В схеме использована популярная микросхема таймер 4541. Резистор R1, R2 и конденсатор С1 составляют цепь, которая определяет частоту работы внутреннего генератора. Переполнение счетчика приводит к установлению на выходе Q низкого уровня, что приводит к обнулению процессора. Для схемы, показанной на рис.6, переполнение счетчика происходит через 0,5 с. Вход обнуления счетчика watchdog управляется с вывода Р3.5 через дифференцирующую цепь нарастающим фронтом сигнала. Ошибкой было бы непосредственное подключение вывода схемы watchdog и выхода процессора, так как схема не заработала бы в случае зависания программы, когда на выводе Р3.5 был бы уровень лог. "1" (watchdog был бы все время обнулен).
       Программное обеспечение устройства watchdog состоит в цикличном (чаще, чем один раз за 0,5 с для описанной схемы) генерировании нарастающего фронта (импульсов), способствующее разнулению счетчика. Программные прерывания для этой цели лучше не использовать. Лучше всего поместить команду отрицания выхода (или команды установки и обнуления) в теле главной программы и в выводящих процедурах, если можно ее реализовать дольше, чем время необходимое на переполнение счетчика watchdog. Пример программы показан на Листинге 2.
       Реализация подпрограммы FUNCTION3 приведена в Листинге 3.
       Следует помнить также о том, что рассматриваемая схема watchdog начинает работать после включения питания. Следовательно, команда обнуления должна быть помещена также в части, инициализирующей процессор (регистры, таймеры и т.п.), особенно когда процедуры инициализации требуют много времени, например, обнуление всей памяти данных, считывание данных с внешней памяти или инициализация медленных (свободных) устройств, подключенных к процессору. Если окажется, что программа инициализации не справится за время, необходимое для переполнения счетчика watchdog, микроконтроллер будет циклично обнуляться и главная программа не начнет выполняться.
       При проектировании устройства не следует забывать, что схемы обнуления и watchdog должны работать тогда, когда работает микроконтроллер, следовательно, если пользоваться цепью аварийного питания, то устройство должно быть запитано также со схемы поддержания питающего напряжения. В противном случае, в случае исчезновения основного питающего напряжения, микроконтроллер окажется заблокированным постоянно подаваемым сигналом RESET или станет лишенным контроля схемы watchdog.
       В случае устройства содержащего вспомогательные микросхемы, которые должны обнуляться вместе с микроконтроллером, сигнал обнуления можно получить из обнуляющего сигнала микроконтроллера. Простейшая реализация (см. рис.4) - достаточно непосредственного соединения выводов RESET всех микросхем с выводом RST микроконтроллера (или через инвертор, если вспомогательные схемы обнуляются сигналом лог."0"). Во многих случаях часто используют буфер (или если необходимо инвертор) с входом Шмитта, позволяющий управлять процессом заряда конденсатора. Если требуется получить обнуление независимо от внутреннего обнуления микроконтроллера, то следует как источник сигнала обнуления использовать один из каналов портов и к нему подключить вывод RESET вспомогательной микросхемы. Если активным состоянием выводов RESET будет высокий уровень, тогда внешние устройства останутся необнуленными также во время обнуления микроконтроллера - все порты установятся тогда в состояние лог."1".
       
       


     SVITEL © 2014  Мир электроники.  Admin  При перепечатке и цитировании активная гиперссылка на сайт обязательна. Rambler's Top100