Предыдущая Следующая

СТОРОЖЕВОЙ ТАЙМЕР (WDT)

Сторожевой таймер WDT микроконтроллеров семейства LPC2000 обладает следующими основными особенностями:

• осуществляет внутренний сброс микроконтроллера, если не производится периодической перезагрузки WDT;

• имеет режим отладчика;

• работа WDT разрешается пользовательской программой, но для ее запрета требуется аппаратный сброс, или сброс/прерывание от WDT;

• позволяет производить некорректные/неполные варианты сброса/прерывания, если они разрешены;

• имеет флаг, выставляемый при сбросе от WDT;

• представляет собой программируемый 32-битный таймер с внутренним предделителем;

• период времени тайм-аута может быть задан от (t^ х 256 х 4) до

в единицах (множителях) fpclk х 4.

Цель работы сторожевого таймера состоит в том, чтобы сбросить микроконтроллер на некоторое разумное время (интервал тайм-аута сторожевого таймера), например, если микроконтроллер перешел в ошибочное, непредусмотренное алгоритмом состояние выполнения пользовательской программы. Когда сторожевой таймер разрешен, он генерирует системный сброс, если пользовательская программа, в течение заданного промежутка времени (тайм-аута), не осуществляет «подачу» (перезагрузку) сторожевого таймера.

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

19.1. Описание WDT

Сторожевой таймер состоит из предделителя с фиксированным коэффициентом деления 4 и 32-битного счётчика. Тактовые импульсы поступают на сторожевой таймер через предделитель. Счетчик сторожевого таймера считает на убывание. Минимальное значение, с которого может начаться счет на убывание, равно OxFF. Задание значения, меньшего OxFF, приводит к загрузке в счетчик значения OxFF. Таким образом, минимальная длительность сторожевого интервала (тайм-аута) составляет (/^^ х 256 х 4), максимальная — (/pc)k х 232 х 4), а дискретность задания тайм-аута составляет (tpak х 4).

Сторожевой таймер должен использоваться в приложении в соответствии со следующим алгоритмом:

• установить значение константы перезагрузки сторожевого таймера в регистре WDTC;

• задать установки режима сторожевого таймера в регистре WDMOD;

• запустить сторожевой таймер, путем записи числа ОхАА, а сразу вслед за ним — числа 0x55 в регистр WDFEED, т. е. произвести «подачу» сторожевого таймера;

• для того, чтобы предотвратить сброс/прерывание от сторожевого таймера, «подача» сторожевого таймера должна быть вновь произведена прежде, чем наступит антипереполнение" его счетчика.

Когда происходит антипереполнение счетчика сторожевого таймера, в программный счетчик микроконтроллера автоматически записывается значение 0x00000000, как и в случае внешнего сброса.

Флаг тайм-аута сторожевого таймера (WDTOF) может быть опрошен программой, чтобы определить, не был ли вызван сброс сторожевым таймером. Флаг WDTOF сбрасывается пользовательской программой.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_212.html on line 134

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_212.html on line 134

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_212.html on line 134