Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модуль сторожевого таймера COP08



Все микроконтроллеры семейства 68HC08/908 содержат сторожевой таймер COP08 (Computer Operating Properly – 08), с помощью которого производится контроль выполнения текущей программы. При работе сторожевого таймера COP08 программа должна периодически производить запись произвольного байта в регистр управления COPCTL. Этот регистр имеет адрес $FFFF (совпадает с адресом младшего байта вектора запуска, см. табл.10) и доступен только для записи (при чтении будет считан младший байт вектора запуска). Если запись в регистр COPCTL не будет произведена в течении определенного периода времени Tw, то сторожевой таймер вызывает перезапуск микроконтроллера (см. раздел 5). Таким образом при работе модуля COP08 текущая программа будет выполняться только в том случае, если она будет производить запись в регистр COPTL не реже одного раза за время Tw. Такую запись удобно производить с помощью команды STA $FFFF, которая должна быть включена в текст программы и периодически выполняться.

Сторожевой таймер реализован в виде 18-разрядного счетчика, который образован путем последовательного соединения 12-разрядного счетчика, входящего в состав модуля SIM08, и 6-разрядного счетчика в модуле COP08. Переключение счетчика производится сигналами с частотой кварцевого резонатора Fq. При записи произвольного байта в регистр COPTL старшие разряды счетчика (с 5-го по 18-ый) сбрасываются в 0. Если такого сброса не происходит, то при переполнении счетчика формируется сигнал, вызывающий начальный запуск микроконтроллера.

Включение сторожевого таймера производится при установке значения бита COPD=0 в регистре конфигурации микроконтроллера (см. раздел 8). При этом бит COPRS в регистре конфигурации задает разрядность используемого счетчика: 18 разрядов (полная разрядность) при значении COPRS,COPL=0; 13 разрядов (сокращенная разрядность) при COPRS=1. В зависимости от значения этого бита устанавливается период срабатывания сторожевого таймера Tw, которое определяется моментом переполнения 18- или 13-разрядного счетчика:

Tw = (2*18 – 2*4)/Fq = 262128Tq при установке значения COPRS =0,

Tw = (2*13 – 2*4)/Fq = 8176Tq при установке значения COPRS=1.

Таким обазом при использовании кварца с резонансной частотой Fq = 4 МГц период срабатывания сторожевого таймера составит Tw = 65,5 мс или 2,04 мс.

В режиме ожидания модуль COP08 продолжает свою работу и может вызвать переход микроконтроллера в рабочий режим (запуск) по истечении времени Tw или ранее (в зависимости от содержимого счетчика при поступлении команды WAIT). Если перед выполнением команды WAIT произвести сброс сторожевого таймера, то спустя время Tw произойдет выход из режима ожидания путем запуска микроконтроллера.

В режиме останова модуль COP08 прекращает работу, но сохраняет свое состояние. После выхода из этого режима возможно срабатывание сторожевого таймера через промежуток времени существенно меньший, чем заданное значение Tw. Поэтому целесообразно производить сброс сторожевого таймера непоcредственно перед выполнением команды STOP, переводящей микроконтроллер в режим останова.





Дата публикования: 2014-11-02; Прочитано: 502 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...