Головна

Сторожовий таймер (Watchdog Timer)

  1.  А2 Використання таймера Timer_А - файл RTC11xTAs43 File
  2.  Можливості таймера - порту Timer Port
  3.  Генерація прямокутних сигналів з використанням 8-бітного таймера і таймера - порту Timer Port
  4.  Глава 3. Декодування ТВ ІК ДУ-сигналів використовуючи Таймер A3
  5.  Глава 3. Декодування ТВ ІК ДУ-сигналів використовуючи Таймер A3
  6.  Глава 3. Декодування ТВ ІК ДУ-сигналів використовуючи Таймер A3
  7.  Глава 4. Реалізація функції UART з використанням таймера A3

Сторожовий таймер (WatchDog Timer) призначений для запобігання катастрофічним наслідкам від випадкових збоїв програми. Ідея використання стоpожевого таймера гранично проста і полягає в pегуляpно його сбpасиваніі під упpавлением програмі або зовнішнього впливу до того, як закінчиться його видеpжка часової і не стається збій процесора. Якщо пpогpамма працює ноpмально, то команда сбpоса сторожового таймеpа повинна pегуляpно виконуватися, пpедохpаняя поцессоp від сбpоса. Якщо ж процесор випадково вийшов за межа програмі (напpимеp, від сильної перешкоди по ланцюгу харчування) або зациклився на якій-небудь ділянці програмі, команда сбpоса стоpожевого таймеpа нічого очікувати виконано протягом достатнього часової і в результаті пpоізойдет сбpос процесора, ініціалізіpующій все регістри і пpіводящій систему в pабочий стан.

Мал. 22. Структура сторожового таймера

Сторожовий таймер тактується окремим вбудованим генератором, що працює з частотою 1 МГц при типовому напрузі живлення VCC = 5 В (див. Типові значення при інших значеннях VCC). Установкою коефіцієнта попереднього розподілу можна змінювати тривалість інтервалу до скидання по сторожовому таймері від 16 тис. До 2048 тис. Циклів (від 16 до 2048 мс). Команда WDR (Watchdog Reset) скидає сторожовий таймер.

З моменту скидання сторожового таймера можна встановити вісім періодів тривалості тактового сигналу, встановлюючи, таким чином тривалість періоду скидання (тайм-ауту). Якщо період скидання завершується (протягом цього періоду не надійшов сигнал скидання сторожового таймера), то мікроконтролер ATmega8515 скидається і його робота триває по вектору скидання.

При вирішенні сторожового таймера його стан невідомий і перш, ніж вирішувати сторожовий таймер, необхідно виконати команду WDR. В іншому випадку прилад може бути скинутий перш, ніж буде виконана команда WDR прописана після дозволу.

Безпосередньо перед включенням сторожового таймера рекомендується виконати скидання командою WDR. Для виключення або зміни періоду тайм-ауту сторожового таймера необхідно виконати послідовність команд. Це зроблено для того, щоб звести до мінімуму ймовірність ненавмисного зміни конфігурації сторожового таймера.

Регістр управління сторожовим таймером - WDTCR

(Watchdog Timer Control Register)

Таблиця 16. Формат регістра WDTCR

 біти
 $ 21 ($ 41)
- - -  WDСE  WDE  WDP2  WDP1  WDP0
 WDTCR
 Читання / Запис
R R R  R / W  R / W  R / W  R / W  R / W
 
 Початковий стан
 

Bits 7..5 - Res: - Зарезервовані біти. Ці біти в мікроконтролерах ATmega8515 зарезервовані і при зчитуванні завжди будуть 0.

Bit 4 - WDСE: - Дозвіл відключення сторожового таймера.Даний біт необхідно встановити в стан 1 при очищенні біта WDE. В іншому випадку сторожовий таймер не буде заборонений.

Bit 3 - WDE: - Дозвіл сторожового таймера.Якщо біт WDE встановлений в стан 1 (сторожовий таймер дозволений) і якщо біт WDE очищений, то функціонування сторожового таймера заборонено. Біт WDE може бути очищений тільки якщо встановлений біт WDСE.

Для заборони дозволеного сторожового таймера необхідно виконати наступну процедуру:

1. В одній операції записати логічну 1 в WDСЕ і WDE. Логічна 1 повинна бути записана в WDE навіть якщо цей біт був встановлений перед початком операції заборони сторожового таймера.

2. За час наступних чотирьох тактових циклів записати логічний 0 в WDE. Сторожовий таймер буде заборонений.

Bits 2..0 - WDP2, WDP1, WDP0: - біти установки коефіцієнта попереднього розподілу сторожового таймера.Стану бітів WDP2, WDP1 і WDP0 визначають коефіцієнт попереднього ділення тактової частоти дозволеного сторожового таймера. Коефіцієнти і відповідні їм проміжки часу представлені в табліце17.

Таблиця 17. Вибір коефіцієнта попереднього розподілу тактовою частоти сторожового таймера

 WDP2  WDP1  WDP0  Тривалість циклу сторожового таймера
 16 тис. Циклів
 32 тис. Циклів
 64 тис. Циклів
 128 тис. Циклів
 256 тис. Циклів
 512 тис. Циклів
 1024 тис. Циклів
 2048 тис. Циклів

МК ATmega8515 передбачає кілька «рівнів безпеки» - (0,1,2), кожен з яких накладає певні обмеження щодо зміни конфігурації сторожового таймера.

-рівень 0 - При включенні МК сторожовий таймер вимкнений, але він може бути включений в будь-який момент часу, записом логічної 1 в розряд WDE Rg WDTCR.

-рівень 1- При включенні МК сторожовий таймер включений. Для виключення сторожового таймера необхідно однією командою записати логічну 1 в розряди WDE і WDСE, а протягом наступних чотирьох машинних циклів записати теж однією командою 1 в WDE і 0 в WDСE. Щоб змінити період тайм-ауту необхідно однією командою записати логічну 1 в розряди WDE і WDTCE. Протягом наступних чотирьох машинних циклів теж однією командою встановити WDE = 1, WDTCE = 0 і необхідні значення в розряди WDP2,1,0.

-рівень 2 - сторожовий таймер включений постійно (WDE = 1 завжди) і не може бути виключений. Щоб змінити період тайм-ауту необхідно однією командою записати логічну 1 в розряди WDE і WDСE, а протягом наступних 4 машинних циклів записати однією командою необхідні значення в розряди WDР2- WDР0, одночасно скидаючи розряд WDСE. Значення записується в розряд WDE байдуже.




 Умовне графічне позначення (УДО) мікроконтролера AVR ATmega8515 |  Структура мікроконтролера АTmega8515 |  Карта пам'яті |  Реєстрова пам'ять (РОН і РВВ) |  Оперативна пам'ять (ОЗУ або RAM) |  Непряма адресація даних зі зміщенням |  Непряма адресація даних з постинкрементом |  тактовий генератор |  Скидання. джерела скидання |  Режими енергозбереження (Sleep Modes) |

© 2016-2022  um.co.ua - учбові матеріали та реферати