Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSoC.doc
Скачиваний:
24
Добавлен:
11.02.2015
Размер:
2.72 Mб
Скачать

2.14. Условия системного сброса

Существует несколько источников системного сброса, и все они воздействуют на систему на кристалле по-разному.

Типы системного сброса и их воздействие на устройства Таблица 39

Например, сброс системы при включении питания приводит к сбросу всех функциональных устройств, включая ускоренный 8051 микроконтроллер, периферию, подключенную к внутренней системной шине, регистры (блок конфигурирующих регистров), систему тактирования и блок JTAG – интерфейса.

В другом случае, появление сигнала на выводе RST приведет к сбросу большинства устройств, но при этом состояние регистров системы тактирования и JTAG – интерфейса останется неизменным.

И, наконец, сброс, вызванный сторожевым таймером или прикладным сигналом RSTC, подействует только на микроконтроллер, оставив другую системную логику неизменной.

Таблица 39 объединила в себе перечень возможных видов сбросов и их воздействие на функциональные устройства системы. Также, в таблице показано поведение устройств после сброса: одни заново инициализируются и перезапускают выполнение кодов с адреса 0000Н, другие только перезапускают выполнение кодов.

Сброс системы после включения питания

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

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

В случае провала питания, то есть занижения его уровня ниже порогового VRST, устройство снова войдет в состояние сброса, а как только питание достигнет надлежащего действующего уровня, произойдет очередной сброс системы, и снова выставится флаг POR.

Сигнал сброса - RST

Появившийся на выводе RST сигнал низкого уровня приведет к сбросу всех внутренних ресурсов, исключая контрольные регистры системы тактирования и JTAG – интерфейс.

Система может быть сброшена сигналом RST в любой момент времени, но выход ее из этого состояния будет автоматически синхронизирован тактовым сигналом BCLK.

Специальный фильтр предотвращает ошибочное восприятие сигнала сброса, удерживаемого на выводе RST менее 2 нс. Главное требование к сигналу является его длительность, которая не должна быть менее 8 нс.

Сигнал на выводе RST может игнорироваться в двух случаях:

  1. если система на кристалле введена в безопасный режим, и при этом установлен бит MIU (SECURITY.0) в регистре SECURITY;

  2. если в процессе отладки через JTAG – интерфейс системе была передана команда FORCE_NOBRST, при этом команда должна удерживаться определенное время, чтобы быть функционально действующей.

Сброс через JTAG – интерфейс

В целях отладки блок JTAG – интерфейса может вызвать сброс системы или микроконтроллера.

Существуют три взаимосвязанные команды, которые используются для этих целей и могут быть переданы системе на кристалле через JTAG-интерфейс:

  1. J_RESET – сброс микроконтроллера;

  2. FORCE_BRST – сброс всех узлов системы кроме сторожевого таймера, контрольных регистров системы тактирования и JTAG – интерфейса;

  3. FORCE_NOBRST – блокировка вывода RST от сигналов возможного сброса. Эта команда превосходит предыдущую команду по функциональному значению.

Дополнительный сброс системы через сигнал RSTC

RSTC – входной сигнал сброса, активный по высокому уровню. После его появления произойдет сброс только микроконтроллера, а периферия и другие системные ресурсы останутся в активном состоянии. Что касается сторожевого таймера, то его положение до сброса сохранится и после, но с некоторыми изменениями.

Обычно сигнал RSTC генерируется функциями логической матрицей либо поступает от разрядов портов ввода/вывода.

Сброс, вызванный сторожевым таймером

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

По достижению таймером заданной границы устанавливается флаг прерывания. Если сброс от сторожевого таймера разрешен, то он вызывается им при следующих условиях:

  1. бит EWT (WDCON.1) установлен;

  2. таймер достиг заданного блокировочного значения;

  3. бит RWT (WDCON.0) не был установлен программным обеспечением в течение 512 тактов после достижения блокировочного значения.

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

Поведение системы после сброса

В зависимости от того, каким образом был вызван сброс, система может повести себя по-разному: либо произвести реконфигурацию и перезапуск выполнения кодов, либо только перезапуск.

Реконфигурация

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

Перезапуск выполнения кодов

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

Микроконтроллер в состоянии сброса

Большинство регистров специального назначения и регистры общего назначения при сбросе теряют свои значения и обнуляются. Счетчик команд также сбрасывается и удерживает значение 0000h до тех пор, пока сохраняется условие сброса. Между тем, данные в ОЗУ сохраняются на протяжении всего времени пребывания системы в этом состоянии. Стековый указатель принимает значение 07h, а данные в стековой памяти теряются. Содержимое ОЗУ тоже может быть утеряно, если уровень питания упадет ниже 2 вольт, поскольку это минимальный уровень требуемого питания для нормальной работы оперативной памяти. Поэтому после первого сброса системы при включении питания, данные ОЗУ будут считаться неопределенными. А при дальнейшем сбое питания, когда его уровень не будет превышать 2-х вольт, данные будут потеряны.

Содержимое регистров после системного сброса отображено в таблице 40. Таймеры и прерывания при этом запрещены.

После сброса при включении питания сторожевой таймер становится неактивным. Биты его контрольного регистра WDCON устанавливаются и очищаются в зависимости от источника сброса, как показано в таблице 41.

Символом ‘х’ обозначены биты, значения которых не изменяются. Бит WDCON.6 устанавливается только при сбросе после включения питания, а WDCON.4 – при снижении уровня питания ниже порогового. Бит WDCON.2 устанавливается, когда сброс организован сторожевым таймером, и очищается при сбросе системы после включения питания. Бит EWT (WDCON.1) также очищается при сбросе питания и не изменяется при сбросе, вызванном сторожевым таймером или внешним сигналом.

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