Перейти к содержимому

Функция watchdog что это

  • автор:

Функция WATCHDOG или PD reboot в коммутаторах PoE.

Функция WATCHDOG в коммутаторах PoE , также встречающаяся по названием PD reboot, является эффективным инструментом автоматического управления питанием удаленных IP камер и прочих PoE устройств. Данная технология является вариантом одноименной технологии «сторожевого таймера» (англ. «watchdog timer»). Рассмотрим работу функции WATCHDOG подробнее.

Работа любого IP устройства подразумевает постоянный поток данных через коммутатор. Коммутатор PoE автоматически определяет отсутствие потока данных от подключенного устройства. Он отправляет периодический эхо-запрос на устройство. Если ответа нет, то коммутатор кратковременно отключает электропитания PoE. Тогда удаленное устройство совершает «жесткую» аппаратную перезагрузку и продолжает нормальную работу. Рисунок иллюстрирует работу WATCHDOG.

Функция WatchDog в PoE коммутаторах

В ряде случаев WATCHDOG незаменимый инструмент администрирования удаленных устройств. Оператор имеет возможность выполнить удаленную настройку без риска потери связи. Так, применив ошибочную настройку без её сохранения, оператор использует функцию WATCHDOG. Устройство выполняет «жесткую» перезагрузку. Корректные настройки восстановились. Проблема решена без выезда специалиста к месту установки IP камер.

Итак, несомненное преимущество WATCHDOG в автоматическом решении проблемы потери связи. «Зависания» устройств быстро обнаружены и исправлены. Однако эта функция в коммутаторах PoE требует гарантий доставки пакетов данных. Иначе потеря эхо-пакета приведет к нежелательной перезагрузке IP камеры. Поэтому функция WATCHDOG отключена по-умолчанию. Активация функции производится переключателем на передней панели коммутатора.

Посмотрите на рисунок:

Включение WATCHDOG в коммутаторах PoE

Это коммутатор HTV-PoE2182. Состояние блока переключателей коммутатора соответствует положению «по-умолчанию». Перевод переключателя 2 в положение «ON» включает функцию WATCHDOG в коммутаторах PoE.

Добавить комментарий Отменить ответ

Категории товаров

  • Проектирование систем видеонаблюдения (1)
  • Архив моделей (7)
    • Архив моделей NVR (1)
    • Архив моделей IPC (5)
    • Видеокамеры AHD/TVI/CVI/CVBS (45)
    • Видеорегистраторы гибридные AHD/TVI/CVI/IP (19)
    • IP видеорегистраторы NVR (48)
      • 128-256 канальные IP регистраторы (7)
      • 16 канальные IP регистраторы (12)
      • 25-64 канальные IP регистраторы (18)
      • 4 канальные IP регистраторы (6)
      • 8-9 канальные IP регистраторы (13)
      • H.265 IP видеорегистраторы (32)
      • IP регистраторы SMART IVS (25)
      • IP регистраторы с записью 3 — 5 Мп (31)
      • IP регистраторы с записью в 4K (22)
      • NVR 1080P (40)
      • IP видеорегистраторы NVR с PoE (16)
      • IP камеры 5 МП (36)
      • GSM 3G 4G IP видеокамеры (1)
      • H.265 IP видеокамеры (65)
      • IP видеокамера P2P (99)
      • IP видеокамеры SMART IVS (42)
      • IP видеокамеры с PoE (64)
      • IP видеокамеры с картой памяти (35)
      • IP видеокамеры со звуком (29)
      • IP камеры с тревожным входом (12)
      • PTZ Поворотные IP камеры (18)
      • Wi-Fi IP видеокамеры (3)
      • Антивандальные IP камеры (19)
      • Корпусные box IP видеокамеры (5)
      • Купольные IP видеокамеры (58)
      • Моторизированные IP камеры с автофокусом (52)
      • Уличные IP видеокамеры (58)
      • Управляемые PoE коммутаторы (7)
      • Уличные PoE коммутаторы (4)
      • 16 Портовые PoE коммутаторы (11)
      • 24 Портовые PoE коммутаторы (12)
      • 4 Портовые PoE коммутаторы (9)
      • 8 Портовые PoE коммутаторы (19)
      • Оптические SFP модули (2)
      • Промышленные PoE коммутаторы (8)
      • CS Объективы для камер (5)
        • Вариофокальные объективы CS 1-2-3-4-5-8-12 Мп (5)
        • UPS Источники бесперебойного питания 220 Вольт (11)
        • Блоки бесперебойного питания (17)
          • Блоки бесперебойного питания (15)
          • Источник вторичного питания (8)
          • Резервированные источники питания (6)
          • Автомобильные регистраторы (4)
            • 4-х канальные регистраторы (1)
            • 8-и канальные регистраторы (1)
            • Для дома, коттеджа (13)
            • Для магазина (22)
            • Для офиса (12)
            • Комплект на 2 камеры (6)
            • Комплектые на 4 камеры (9)
            • Комплект на 8 камер (8)
            • 18-25X Оптический зум (14)
            • 26-37X Оптический зум (6)
            • 4-10X Оптический зум (7)
            • Разрешение 1-2 Mpix (22)
            • Разрешение 3-6 Mpix (3)
            • Передатчики сигнала по витой паре (7)
            • Передатчики сигнала по коаксиалу (1)
            • Передатчики сигнала по оптике (5)
            • Брелки (3)
            • Датчики (7)
            • Извещатели охраны периметра (1)
            • Камеры (1)
            • Комплекты сигнализаций (2)
            • Сирены (2)

            Важно!

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

            Watchdog Timer

            Watchdog Timer – функция контроля зависания устройства с последующим его перезапуском (перезагрузкой).

            Современные компьютерные системы подвержены зависаниям и ошибкам.

            Работа любого IP устройства в сети подразумевает постоянный поток данных через коммутатор. Коммутатор с WatchDog Timer периодически отправляет запросы на устройство. Если от устройства ответ не приходит (зависание), то коммутатор кратковременно отключает электропитание PoE. Устройство перезагружается и возобновляет нормальную работу.

            Функция WatchDog необходима там, где требуется стабильная работа различных систем, в том числе охранного оборудования: IP-видеокамер, контролеров и считыватели доступа, Wi-Fi точек доступа и т.п.

            • Повышение эффективности и надежности работы IP систем, так как проблема обнаруживается и устраняется в течении нескольких секунд
            • Работает автоматически, не требует участия человека
            • Снижение расходов времени и денег на непредвиденные выезды для запуска оборудования

            Функции WatchDog может работать постоянно или включаться/отключаться пользователем.
            Включение WatchDog производится DIP-переключателем на передней панели коммутатора или в меню.

            В управляемых коммутаторах функцию WatchDog можно настроить в меню.

            Для каждого порта индивидуальные настройки по параметрам:

            • Период времени, через который система будет проверять питаемое устройство (2-30 секунд);
            • Период времени, в течение которого система будет ждать ответ от питаемого устройства. Если по истечении заданного времени ответ от устройства не будет получен, система его перезагрузит (рекомендуемые значения 2-10 секунд);
            • Время, требуемое питаемому устройству, для полного включения после перезагрузки. В это время WatchDog не будет его проверять, чтобы избежать циклических перезагрузок.
            • Расписание для плановой перезагрузки устройств, если такая потребность есть.

            Функции WatchDog может работать постоянно или включаться/отключаться пользователем.

            Отключение функции WatchDog может понадобиться при использовании IP оборудования, которое «забывает» настройки соединения при выключении питания.

            Что такое WatchDog и для чего он нужен

            WatchDog в переводе с английского — сторожевой пес. Сегодня так называют сторожевые таймеры, основная задача которых — своевременный перезапуск «зависшего» оборудования с целью восстановления его работоспособности. Отлично зарекомендовало себя устройство под названием IP WatchDog из линейки продуктов компании HW group (Чешская Республика). Поставляется оно в двух вариантах исполнения — промышленная версия в корпусе для монтажа на стандартную DIN-рейку IP WatchDog HWg-WR02a и облегченный вариант IP WatchDog Lite. Подробнее об этих устройствах, а также о том, каким должен быть оптимальный WatchDog и методы определения работоспособности оборудования, рассказывает эта статья.

            Не секрет, что высокие технологии в настоящее время охватывают все новые и новые сферы жизни человека. Еще в середине прошлого века трудно было себе представить тот рывок, который техника совершила за последние 20 лет.
            Сегодня никого не удивить электронными терминалами по приему платежей, банкоматами, комплексами бытовой автоматики («Умный дом»), сложными автономными системами видеонаблюдения и т.п.
            Список можно продолжать бесконечно долго, и все равно невозможно охватить сразу все области интеграции сложной электронно-вычислительной техники в современном обществе. Эти технологии делают нашу жизнь проще, комфортнее и, несомненно, гораздо интереснее.
            К сожалению, несмотря на стремление к технологическому совершенству, создать что-либо совершенно надежное невозможно в силу объективных причин. Человек по природе своей несовершенен, следовательно, и созданные им приспособления не всегда действуют так, как хотелось бы. Это касается абсолютно любой сферы деятельности, включая сложнейшие стратегические комплексы и космическую отрасль.
            Ведь не секрет, что чем сложнее устройство, чем больше элементов оно в себе содержит, тем выше риск возникновения непредвиденного сбоя. И дело здесь вовсе не в нежелании инженеров и программистов получить безупречный результат – просто невозможно предусмотреть абсолютно все ситуации.
            Да и, кроме того, есть целый ряд причин, защиты от которых просто может не быть, либо она будет неэффективна. Никто не застрахован от внезапных перепадов напряжения питания, даже, несмотря на целый комплекс защитных устройств на этот случай, от случайных статических разрядов, от умышленных вредоносных действий недоброжелателей (например, хакерские атаки на сервера в интернете). Последствия таких событий, наверное, известны всем.

            На практике, попав во внештатную ситуацию, оборудование ведет себя малопредсказуемо – происходят различные сбои, устройство «зависает», начинает «глючить», одним словом перестает корректно выполнять свои функции. Инженеры и программисты постоянно борются с подобными явлениями, регулярно обновляя программное обеспечение своих продуктов и совершенствуя их аппаратную часть. Но одно дело, когда «завис» или показал «синий экран смерти» домашний компьютер или ноутбук, и совсем другое дело – когда перестал функционировать тот же банкомат, подстанция сотовой связи, мощный сервер в центре обработки данных или сетевая камера видеонаблюдения.
            В первом случае все решается простым нажатием кнопки «Сброс» или кратковременным выключением прибора из сети, а со вторым случаем все сложнее. А что, если тот самый банкомат или видеокамера находятся за многие сотни или даже тысячи километров от администратора системы?
            Выход напрашивается сам собой – приставить к каждому устройству персонального смотрителя, который будет неустанно следить за его работоспособностью и вовремя нажимать нужные кнопки в случае сбоя. Но не все так просто.
            Во-первых, не стоит забывать о пресловутом «человеческом факторе», как мы уже говорили человек – существо несовершенное, может и отлучиться куда-нибудь, отвлечься или просто заснуть на посту.
            Во-вторых, порой, финансовые затраты на персонального сторожа для каждого устройства будут обходиться гораздо дороже самого этого устройства, что весьма расточительно, а в комплексе с первым утверждением вообще малоэффективно.

            Есть еще способ. Практически во все современные устройства, работающие под управлением контроллера (процессора) и содержащие управляющую микропрограмму или операционную систему, встраиваются т.н. «Сторожевые таймеры» (англ. WatchDog – Сторожевой Пёс).
            По своей сути они могут быть как программными, так и аппаратными, встроенными в микроконтроллер или иную микросхему внутри устройства.
            Основная задача таких таймеров – своевременный перезапуск «зависшего» оборудования с целью восстановления его работоспособности.
            Если в течение определенного времени или определенного в программе числа циклов операционная система устройства или порт микроконтроллера не отвечают на запросы таймера, устройству посылается команда сброса и перезагрузки.

            Несомненно, это весьма удобно и не требует таких больших затрат, как содержание штата сотрудников, следящих за каждым прибором, но и тут есть большой минус. Те сторожевые таймеры, про которые велась речь выше – встроены непосредственно в логику контролируемого прибора. И в этом их основной недостаток. При определенных условиях эти таймеры, независимо от того, аппаратно они реализованы или программно, могут «зависнуть» вместе со всем устройством. И тогда польза такого электронного сторожа будет нулевой – его самого придется сбрасывать вместе со всей начинкой подконтрольного прибора.

            Есть еще одно условие – иногда подачи только сигнала «Сброс» оказывается недостаточно, и для полного восстановления работоспособности устройства его необходимо на некоторое время полностью обесточить. Например, если по какой-то причине сработала защита встроенного в сетевую видеокамеру преобразователя питания? Устройство просто выключится, и сторожевой таймер тоже, следовательно, выходом из положения будет только кратковременное прекращение подачи напряжения питания на камеру с дальнейшим его восстановлением.

            Итак, каким же должен быть оптимальный WatchDog?
            Он должен быть независимым от контролируемого устройства, автономным, надежным, гибко программируемым и, самое главное, с возможностью дистанционного управления для того, чтобы оператор или администратор имели возможность при малейшем подозрении на неправильную работу контролируемого оборудования принять меры по исправлению ситуации. Так есть ли оптимальное решение? Конечно же, есть.

            В линейке продуктов компании HW group (Чешская Республика) есть интересное устройство под названием IP WatchDog.
            Поставляется оно в двух вариантах исполнения — прибор промышленного применения в корпусе, предназначенном для монтажа на стандартную DIN-рейку IP WatchDog HWg-WR02a и облегченный вариант IP WatchDog Lite.
            Как следует из названия, оба устройства позволяют контролировать работоспособность различного сетевого оборудования, такого как IP-видеокамеры, видеорегистраторы, маршрутизаторы, точки доступа WiFi, персональные компьютеры и ноутбуки, серверы, телекоммуникационные стойки и т.п.

            Устройство перезапуска WatchDog

            IP WatchDog HWg-WR02a так же дополнительно оснащен разъемом последовательного порта RS-232, что позволяет использовать его для контроля оборудования, не оснащенного Ethernet-портами — запрограммированное должным образом устройство будет ожидать периодической передачи от подконтрольного оборудования определенной последовательности символов (ASCII, HEX, DEC), передающихся через порт RS-232.

            Устройства полностью автономны и не требуют какого-либо дополнительного программного обеспечения для управления. Достаточно один раз сделать все необходимые настройки через Web-интерфейс в любом удобном интернет-браузере — поддерживаются как Internet Explorer, так и Mozilla Firefox, Google Chrome, Safari, Opera.
            Как IP WatchDog HWg-WR02a, так и IP WatchDog Lite имеют два независимых канала для мониторинга состояния подключенного к ним оборудования и два независимых выхода контактов реле, способных коммутировать любую нагрузку с напряжением питания до 230В при токе до 16А. Это означает, что данные устройства могут использоваться не только для сброса контролируемого оборудования, но и для управления питанием различных приборов — например, подключить резервный сервер или маршрутизатор в случае отказа основного.
            Сторожевые таймеры производства HW group используют 5 различных механизмов для определения работоспособности оборудования, что делает эти устройства очень гибкими и дает широкие возможности по внедрению их в различные системы, такие как сетевое видеонаблюдение, серверные стойки, телекоммуникации, медицинские приборы, охранно-пожарное оборудование, Web-сервера.
            И даже оборудование, не оснащенное сетевым интерфейсом, но имеющее стандартный последовательный порт RS-232 (COM-порт) может быть с легкостью использовано совместно с IP WatchDog Hwg-WR02a. Кроме того, оператор или администратор всегда могут оперативно вмешаться в работу устройства посредством локальной сети или удаленно, через интернет.
            Помимо мониторинга оборудования IP WatchDog ведет свой собственный журнал событий.

            Вот список всех методов определения работоспособности оборудования, используемых в сторожевых таймерах HW group:

            Ping Push: В этом режиме IP WatchDog через определенные интервалы времени отправляет на заданный IP-адрес запросы PING, тем самым определяя, откликается ли на них контролируемое устройство. В случае, если отклик от устройства не был получен, сработают контакты реле и, к примеру, будет произведена его перезагрузка. Данный метод очень удобен для мониторинга состояния сетевых видеокамер, маршрутизаторов, сетевых коммутаторов и т.п.

            Ping Request: В отличии от предыдущего режима, IP WatchDog не посылает запросы PING, а ожидает таковых от контролируемого устройства. Хорошо подходит для использования в серверных и телекоммуникационных стойках, на вышках сотовой связи.

            Web Push: Эта функция доступна только для IP WatchDog HWg-WR02a. Ее суть заключается в том, что сторожевой таймер периодически запрашивает определенную Web-страницу с указанного пользователем адреса. Это очень удобный метод контроля работоспособности Web-серверов – при отсутствии или недоступности запрашиваемой страницы (известная всем «Ошибка 404») сервер будет своевременно перезапущен.

            Web Request: В данном режиме IP WatchDog ожидает от контролируемого устройства запроса своей внутренней Web-страницы. Если страница не будет запрошена в течение определяемого пользователем интервала времени – устройство будет перезапущено. Метод так же удобен для контроля состояния Web-серверов. Доступна эта функция только в обновленном IP WatchDog HWg-WR02a.
            RS232 Rx: Как уже упоминалось выше, в этом режиме сторожевой таймер будет ожидать от подключенного к нему устройства определенную последовательность символов, переданную посредством стандартного порта RS-232.

            • Замки и доводчики Abloy
            • Видеонаблюдение
            • Дистанционный мониторинг
            • Системы охраны периметра
            • Охранно-пожарная сигнализация
            • Системы контроля доступа
            • Системы оповещения, музыкальной трансляции и конференцсистемы
            • Автоматические ворота и шлагбаумы
            • Охрана акваторий
            • Управление умным домом
            • Технологии анализа голоса
            • Сетевое оборудование Cisco
            • Заметки специалиста

            Функция watchdog что это

            В микроконтроллеры серии STM32F4 (как впрочем, и многих других серий STM32) встроены два таймера, которые удобно использовать в качестве сторожевых — независимый сторожевой таймер (Independent WatchDoG, IWDG [2]) и оконный сторожевой таймер (Window WatchDoG, WWDG). В этой статье приведен соответствующих разделов даташита RM0090. Вся информация, приведенная ниже, относится к семейству STM32F4xx, если не указано нечто иное. Все непонятные термины и сокращения см. в статье-словарике [3].

            Оба сторожевых таймера (IWDG и WWDG) предоставляют комбинацию дополнительного уровня безопасности, точного отсчета времени, гибкости в использовании. Сторожевые таймеры после их настройки работают независимо от основных потоков вычислений в приложении, давая возможность обнаруживать и устранять проблемы, возникающие в приложении (зависание, задержка обработки). В подобных ситуациях счетчик таймера достигает значения таймаута, и в этот момент можно генерировать прерывание (только для WWDG) или системный сброс.

            Независимый сторожевой таймер (IWDG) тактируется от своего собственного, внутреннего низкоскоростного генератора LSI (Low-Speed Internal clock), поэтому IWDG остается активным даже когда произошел отказ генерации основной тактовой частоты микроконтроллера (HSI или HSE). Частота тактирования оконного таймера (WWDG) поступает через прескалер от тактовой частоты APB1. Окно времени WWDG программируется, что позволяет детектировать ненормальное запаздывание отклика программы, либо слишком раннюю активацию действия программы.

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

            [Сторожевой таймер IWDG]

            Основные функции IWDG:

            • Независимо работающий счетчик, считающий вниз
            • Тактируется от внутреннего RC-генератора, поэтому остается активным в режимах пониженного энергопотребления Standby и Stop
            • Сбрасывает микроконтроллер (если сторожевой таймер активирован), когда счетчик при счете вниз достигает значения 0x000
            • Hardware watchdog

            На рис. 213 показаны функциональные блоки сторожевого таймера IWDG.

            STM32F4 IWDG block diagram fig213

            Рис. 213. Блок-схема Independent WatchDoG.

            Примечание: функция сторожевого таймера реализована в домене напряжения питания VDD, который остается функциональным в режимах Stop и Standby.

            IWDG запускается путем записи специального значения 0xCCCC в регистр ключа (IWDG_KR), при этом счетчик начинает счет вниз от значения сброса 0xFFF. Когда счетчик достигает конечного значения 0x000, генерируется сигнал сброса (IWDG reset). Всякий раз, когда значение ключа 0xAAAA записывается в регистр IWDG_KR, значение из регистра IWDG_RLR перезагружается в счетчик, что предотвращает его обнуление и как следствие предотвращает сброс микроконтроллера.

            Hardware watchdog. Функция «Hardware watchdog» разрешается через биты опций микроконтроллера, тогда сторожевой таймер автоматически разрешается при включении питания и будет генерировать сброс, если не было своевременно (до момента достижения счетчиком нуля) записано значение 0xAAAA в регистр ключа IWDG_KR.

            Защищенный доступ к регистрам. Доступ на запись в регистры IWDG_PR и IWDG_RLR снабжен защитой, что помогает избежать влияния на эти регистры ошибочных действий в программе. Чтобы изменить IWDG_PR и IWDG_RLR, сначала надо записать код 0x5555 в регистр ключа IWDG_KR. Запись в регистр ключа другого значения оборвет процедуру доступа к регистрам IWDG_PR и IWDG_RLR, и защита снова включается. Это верно и для случая операции перезагрузки счетчика (запись в IWDG_KR значения 0xAAAA).

            Имеется регистр статуса, показывающий состояние обновления прескалера или состояние выполнения перезагрузки счетчика.

            Режим отладки. Когда микроконтроллер STM32 входит в режим отладки (debug mode, в котором ядро Cortex®-M4 со встроенным блоком FPU останавливается), IWDG будет либо продолжать свой счет, либо остановится, в зависимости от конфигурационного бита DBG_IWDG_STOP в модуле DBG. Для получения дополнительной информации см. секцию 38.16.2 «Debug support for timers, watchdog, bxCAN and I2C» руководства [1].

            Таблица 107. Минимальный и максимальный период таймаута IWDG в миллисекундах, когда LSI работает на частоте 32 кГц (1) .

            Делитель
            прескалера
            PR[2:0] Min таймаут (мс)
            RL[11:0]=0x000
            Max таймаут (мс)
            RL[11:0]=0xFFF
            /4 0 0.125 512
            /8 1 0.25 1024
            /16 2 0.5 2048
            /32 3 1 4096
            /64 4 2 8192
            /128 5 4 16384
            /256 6 8 32768

            Примечание (1): указанные в таблице интервалы времени соответствует частоте тактов IWDG 32 кГц. Однако эту частоту вырабатывает внутренний RC-генератор микроконтроллера, и поэтому частота может изменяться от внешних условий (тепература, напряжение питания). Для получения информации о минимальной и максимальной частоте LSI обратитесь к даташиту на используемый микроконтроллер.

            Регистры IWDG. К регистрам можно обращаться как к половинкам слов (16 бит) или как к полным словам (32 бита). Смещение указано относительно базового адреса. Например, для микроконтроллера STM32F429 базовый адрес равен 0x40003000 (см. определение IWDG_BASE в заголовочном файле stm32f429xx.h библиотеки CMSIS).

            В обозначениях бит используются аббревиатуры r, w, rw, что означает следующее:

            r доступ к биту возможен только для чтения (Read)
            w доступ к биту возможен только для записи (Write)
            rw доступ к биту возможен и для чтения, и для записи.

            Смещение 0x00
            Значение сброса 0x00000000 (сброс в режиме Standby)

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            KEY[15:0]
            w

            Биты 31:16 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            KEY[15:0] (биты 15:0) значение ключа. Биты работают только на запись, считываются как 0x0000. Когда IWDG активирован, в эти биты должны записываться только определенные специальные значения:

            0xAAAA для предотвращения сброса по обнулению счетчика.
            0x5555 для разрешения доступа к регистрам IWDG_PR и IWDG_RLR.
            0xCCCC запуск сторожевого таймера. Эта запись нужна для запуска только если опциями не выбрана функция hardware watchdog.

            Смещение 0x04
            Значение сброса 0x00000000

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано PR[2:0]
            rw

            Биты 31:3 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            PR[2:0] (биты 2:0) выбор коэффициента деления прескалера для подачи тактов на счетчик IWDG. Запись в эти биты защищена специальной последовательностью ключа (см. выше секцию «Защищенный доступ к регистрам»). Бит PVU в регистре статуса IWDG_SR в состоянии 0 показывает, что в данный момент можно изменить коэффициент деления прескалера.

            000: деление частоты LSI на 4
            001: деление частоты LSI на 8
            010: деление частоты LSI на 16
            011: деление частоты LSI на 32
            100: деление частоты LSI на 64
            101: деление частоты LSI на 128
            110: деление частоты LSI на 256
            111: деление частоты LSI на 256

            Примечание: чтение регистра IWDG_PR вернет значение прескалера из домена напряжений VDD. Это прочитанное значение может быть недостоверным, если в настоящий момент активна операция записи в этот регистр. По этой причине значение, прочитанное из IWDG_PR, достоверно только если сброшен бит PVU в регистре IWDG_SR.

            Смещение 0x08
            Значение сброса 0x00000FFF (сброс в режиме Standby)

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано RL[11:0]
            rw

            Биты 31:12 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            RL[11:0] (биты 11:0) значение, которым перезагружается счетчик IWDG. Запись в эти биты защищена специальной последовательностью ключа (см. выше секцию «Защищенный доступ к регистрам»). Счетчик перезагрузится значением из IWDG_RLR, когда в регистр ключа IWDG_KR было записано специальное значение 0xAAAA. Счетчик считает вниз от значения регистра IWDG_RLR, поэтому время таймаута определяется значением IWDG_RLR и тактовой частотой, подаваемой на счетчик (определяется регистром прескалера IWDG_PR). Бит RVU в регистре статуса IWDG_SR в состоянии 0 показывает, что в данный момент можно изменить коэффициент деления прескалера.

            Примечание: чтение регистра IWDG_RLR вернет значение перезагрузки счетчика из домена напряжений VDD. Это прочитанное значение может быть недостоверным, если в настоящий момент активна операция записи в этот регистр. По этой причине значение, прочитанное из IWDG_RLR, достоверно только если сброшен бит RVU в регистре IWDG_SR.

            Смещение 0x0C
            Значение сброса 0x00000000 (сброс не в режиме Standby)

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано RVU
            r
            PVU
            r

            Биты 31:2 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            RVU (бит 1) Reload Value Update. Бит устанавливается и сбрасывается аппаратно. Лог. 1 в этом бите показывает, что в настоящий момент активна операция обновления значения для перезагрузки (регистр IWDG_RLR). Бит сбросится в лог. 0 аппаратно, когда завершится операция обновления в домене напряжений VDD (время обновления занимает до 5 тактов RC-генератора LSI). Значение перезагрузки в регистре IWDG_RLR можно обновить только если бит RVU сброшен в 0.

            PVU (бит 0) Prescaler Value Update. Бит устанавливается и сбрасывается аппаратно. Лог. 1 в этом бите показывает, что в настоящий момент активна операция обновления значения прескалера (регистр IWDG_PR). Бит сбросится в лог. 0 аппаратно, когда завершится операция обновления в домене напряжений VDD (время обновления занимает до 5 тактов RC-генератора LSI). Значение прескалера в регистре IWDG_PR можно обновить только если бит PVU сброшен в 0.

            Примечание: если приложение использует несколько значений перезагрузки или несколько значений прескалера, то перед обновлением значения перезагрузки важно подождать, когда биты RVU сбросится. Однако после обновления прескалера и/или значения перезагрузки не обязательно ждать сброса RVU или PVU перед продолжением выполнения кода (даже в случае входа в режим пониженного потребления энергии операция записи будет учтена и вступит в силу).

            [Оконный сторожевой таймер WWDG]

            Оконный сторожевой таймер используется для того, чтобы обнаружить незапланированное поведение программы в реальном времени. Обычно такое происходит из-за внешних помех или непредвиденных логических условий, что приводит к отказу в нормальной последовательности выполнения кода программы приложения. Схема сторожевого таймера WWDG генерирует сброс MCU по истечении запрограммированного периода времени, если программа не обновит значение считающего вниз счетчика до того, как бит T6 очистится. Сброс MCU также генерируется, если 7-битное значение счетчика (в регистре управления) обновится до того, как счетчик достигнет значения регистра окна. Таким образом эти 2 условия сброса обеспечивают необходимость обновления счетчика в строго определенном, ограниченном окне времени.

            Основные функции WWDG:

            • Программируемый свободно считающий вниз счетчик
            • Сброс (если сторожевой таймер активирован), когда считающий вниз счетчик станет меньше 0x40
            • Сброс (если сторожевой таймер активирован), когда считающий вниз счетчик был перезагружен вне установленного окна (см. рис. 215)
            • Генерация прерывания EWI (Early Wakeup Interrupt), если оно разрешено и сторожевой таймер активирован, когда считающий вниз счетчик становится равным 0x40

            Если сторожевой таймер активирован (установлен бит WDGA в регистре WWDG_CR), то будет инициирован сброс, когда 7-битный считающий вниз счетчик (биты T[6:0] регистра WWDG_CR) перейдет от значения 0x40 к значению 0x3F (бит T6 очистится). Если программа перезагрузит счетчик, когда он больше значения, сохраненного в регистре окна, то также генерируется сброс.

            STM32F4 WWDG block diagram fig214

            Рис. 214. Блок-схема оконного сторожевого таймера WWDG.

            Программа приложения во время своего нормального функционирования должна записывать регистр WWDG_CR в регулярные интервалы времени, чтобы предотвратить сброс MCU. Эта операция записи должна происходить только когда значение счетчика меньше, чем значение в регистре окна. Значение, сохраненное в регистре WWDG_CR, должно быть в интервале между 0xFF и 0xC0.

            Разрешение сторожевого таймера. После сброса сторожевой таймер всегда запрещен. Он разрешается установкой бита WDGA в регистре WWDG_CR, после чего сторожевой таймер не может быть запрещен, кроме как через сброс.

            Управление счетчиком. Счетчик свободно считает вниз, даже когда сторожевой таймер запрещен. Когда сторожевой таймер разрешен, бит T6 должен быть установлен, чтобы предотвратить немедленный сброс.

            Биты T[5:0] содержат количество инкрементов, которые представляют задержку времени перед тем, как сторожевой таймер сгенерирует сброс. Время меняется между минимальным и максимальным значением из-за неизвестного состояния прескалера, когда записывается регистр WWDG_CR (см. рис. 215). Регистр конфигурации (WWDG_CFR) содержит верхний предел окна: чтобы предотвратить сброс, счетчик должен быть перезагружен, когда его значение меньше, чем значение регистра окна, и при этом больше, чем 0x3F. Рис. 215 описывает работу окна сторожевого таймера.

            Примечание: бит T6 можно использовать для генерации программного сброса (для этого надо установить бит WDGA и очистить бит T6, либо подождать, когда он сам очистится).

            Функция прерывания оконного сторожевого таймера. Можно использовать прерывание The Early Wakeup Interrupt (EWI), если перед выполнением реального сброса необходимо выполнить какие-нибудь предварительные операции (наподобие очистки или записи информации в лог). Прерывание EWI разрешается установкой бита EWI в регистре WWDG_CFR. Когда считающий вниз счетчик достигает значения 0x40, генерируется прерывание EWI, и соответствующая подпрограмма обработки прерывания (ISR) может использоваться для выполнения необходимых специальных действий (таких как например обмен данными или запись данных в лог) перед тем, как устройство будет сброшен.

            В некоторых приложениях прерывание EWI может использоваться для управления программной проверки системы и/или корректного восстановления системы без генерации сброса. В этом случае соответствующий обработчик ISR должен перезагрузить счетчик WWDG, чтобы не произошел сброс WWDG, затем выполнить необходимые действия.

            Прерывание EWI очищается записью 0 в бит EWIF регистра WWDG_SR.

            Примечание: когда прерывание EWI не может быть обработано, например из-за блокировки системы в более высокоприоритетной задаче, то иногда будет генерироваться сброс WWDG.

            Как программировать значение таймаута WWDG. Предупреждение: когда записывается регистр WWDG_CR, всегда записывайте 1 в бит T6, чтобы избежать немедленного сброса.

            STM32F4 WWDG window timing diagram fig215

            Рис. 215. Диаграмма времени работы оконного сторожевого таймера.

            Формула для вычисления значения таймаута WWDG (в миллисекундах):

            tWWDG = tPCLK1 × 4096 × 2 WDGTB[1:0] × (T[5:0] + 1)

            tWWDG: таймаут WWDG
            tPCLK1: период APB1, измеренный в миллисекундах
            4096: значение, соответствующее внутреннему делителю

            Для примера предположим, что частота APB1 равна 24 МГц, биты WDGTB[1:0] установлены на 3 и биты T[5:0] установлены на 63:

            tWWDG = 1 ⁄ 24000 × 4096 × 2 3 × (63 + 1) = 21.85 мс

            Таблица 109. Минимальные и максимальные значения таймаута на 30 МГц (fPCLK1).

            Прескалер WDGTB Min таймаут (мкс)
            T[5:0]=0x00
            Max таймаут (мс)
            T[5:0]=0x3F
            1 0 136.53 8.74
            2 1 273.07 17.48
            4 2 546.13 34.95
            8 3 1092.27 69.91

            Режим отладки. Когда микроконтроллер STM32 входит в режим отладки (debug mode, ядро Cortex®-M4 с блоком FPU остановлено), счетчик WWDG либо продолжает свой счет, либо останавливается, в зависимости от бита конфигурации DBG_WWDG_STOP в модуле DBG. Для получения дополнительной информации см. секцию 38.16.2 «Debug support for timers, watchdog, bxCAN and I2C» руководства [1].

            Регистры WWDG. К регистрам можно обращаться как к половинкам слов (16 бит) или как к полным словам (32 бита). Смещение указано относительно базового адреса. Например, для микроконтроллера STM32F429 базовый адрес равен 0x40002C00 (см. определение IWDG_BASE в заголовочном файле stm32f429xx.h библиотеки CMSIS).

            В обозначениях бит используются аббревиатуры r, w, rw, rs, rc_w0, что означает следующее:

            r доступ к биту возможен только для чтения (Read)
            w доступ к биту возможен только для записи (Write)
            rw доступ к биту возможен и для чтения, и для записи
            rs read/set, программа может прочитать и установить этот бит. Запись 0 в бит не оказывает никакого влияния на значение бита
            rc_w0 read/clear, программа может прочитать и сбросить этот бит. Запись 1 в бит не оказывает никакого влияния на значение бита

            Смещение 0x00
            Значение сброса 0x0000007F

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано
            WDGA
            rs
            T[6:0]
            rw

            Биты 31:8 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            WDGA (бит 7) WatchDoG Activation, активация сторожевого таймера при записи лог. 1. Этот бит устанавливается программой, и он может сброситься только аппаратно после сброса. Когда WDGA = 1, сторожевой таймер может генерировать сброс.

            0: сторожевой таймер запрещен.
            1: сторожевой таймер разрешен.

            T[6:0] (биты 6:0) 7-битное значение счетчика (от старшего бита MSB к младшему биту LSB). Эти биты содержат значение счетчика сторожевого таймера. Он декрементируется каждые (4096 x 2 WDGTB[1:0] ) тактов PCLK1. Сброс генерируется, когда счетчик переваливает от значения 0x40 к значению 0x3F (когда бит T6 очищается).

            Смещение 0x04
            Значение сброса 0x0000007F

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано EWI
            rs
            WDGTB[1:0]
            rw
            W[6:0]
            rw

            Биты 31:10 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            EWI (бит 9) Early Wakeup Interrupt. Когда этот бит установлен, произойдет прерывание всякий раз, когда счетчик достигнет значения 0x40. Это прерывание очищается только аппаратурой после сброса.

            WDGTB[1:0] (биты 8:7) база времени сторожевого таймера, определяемая прескалером. Она может быть изменена следующим образом:

            00: частота счетчика равна (PCLK1 / 4096) / 1
            01: частота счетчика равна (PCLK1 / 4096) / 2
            10: частота счетчика равна (PCLK1 / 4096) / 4
            11: частота счетчика равна (PCLK1 / 4096) / 8

            W[6:0] (биты 6:0) 7-битное значение окна времени, которое сравнивается со значением считающего вниз счетчика.

            Смещение 0x08
            Значение сброса 0x00000000

            31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
            зарезервировано
            15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
            заререзвировано EWIF
            rc_w0

            Биты 31:1 зарезервированы и должны сохраняться в состоянии сброса (все нули).

            EWIF (бит 0) Early Wakeup Interrupt Flag. Этот бит установится аппаратно, когда значение счетчика достигнет 0x40. Бит может быть очищен программой путем записи в него лог. 0, запись лог. 1 не дает никакого эффекта. Этот бит также установится, если прерывание не было разрешено.

            [Ссылки]

            1. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced Arm®-based 32-bit MCUs site:st.com.
            2. STM32 IWDG.
            3. STM32: аббревиатуры и термины.
            4. Руководство по сторожевым таймерам для встраиваемых систем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *