Основные советы по проектированию печатных плат: Как реализовать сторожевой таймер в вашем проекте печатной платы

Создано: 1 Ноября, 2017
Обновлено: 16 Октября, 2020
Boiling kettle

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

Иногда, когда я невнимателен, я не правильно закрываю крышку. В результате чайник остается тихим, несмотря на то, что жидкая вода внутри него быстро превращается в газ. Моя невнимательность в этом случае означает только то, что я буду пить меньше чая, но во встроенных системах последствия гораздо серьезнее, если вы не знаете, как управлять сторожевым таймером (WDT). Когда ваш таймер не работает, остановленный микроконтроллер останется остановленным, и ваша встроенная система не будет работать. Давайте посмотрим, как работает сторожевой таймер, как реализовать схему сторожевого таймера и как заставить их правильно функционировать с первой попытки, чтобы избежать этой ситуации.

Почему встроенные системы не восстанавливаются, несмотря на наличие WDT

Сторожевой таймер (Watchdog Timer, WDT) — это простая функция безопасности в электронике, которая помогает перезагрузить микроконтроллер в случае сбоя аппаратного или программного сторожевого цепи. Сторожевые таймеры STM32 доступны как отдельная интегральная схема (ИС) или как встроенная функция в самом микроконтроллере. Не использовать WDT в проектировании встроенных систем часто считается непростительной ошибкой.

Принцип работы сторожевых таймеров прост. Он программирован на обратный отсчет в течение установленного интервала времени сторожевого таймера. В нормальном режиме работы микроконтроллер периодически обновляет таймер обратного отсчета, чтобы предотвратить его истечение. Если микроконтроллер не отвечает, то он не будет обновлять сторожевой таймер. В результате, когда время сторожевого таймера истекает, он активирует импульс или сигнал для сброса микроконтроллера сторожевым таймером. Эта простая функция компенсирует ошибки проектирования или внешние факторы, которые могут привести к сбою микроконтроллера.

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

На самом деле, за многие годы проектирования и внедрения сотен устройств на основе микроконтроллеров, я ни разу не сталкивался с отказом Сторожевого Таймера STM32. Коренная причина часто заключается просто в человеческой ошибке.

The Community for Creative Electronics

Powerful Free ECAD Software with Online Collaboration

Error on a red screen
Что вы видите, когда WDT не удается перезапустить зависший микроконтроллер

Почему WDT Может Работать Неправильно

Для встроенных систем, использующих внутренний WDT, уходящий в бесконечный цикл код может деактивировать Сторожевой Таймер, если биты конфигурации были случайно перезаписаны. Внешние микросхемы Сторожевого Таймера сталкиваются с совершенно другими проблемами. В этом случае обычно имеется перемычка, которая может отключить сигнал сброса от внешнего Сторожевого Таймера, когда инженеры-программисты разрабатывают и отлаживают программу. Часто эти перемычки нужно вручную подключать перед тем, как устройства будут развернуты на месте. Если это не сделать, то сигналы сброса WDT останутся отключенными и не смогут сбросить микроконтроллер.

Более распространенная причина, по которой таймеры сторожевого пса (Watchdog Timers) не функционируют, заключается в ошибках кодирования. Если функции, обновляющие таймеры WDT, размещены в неправильной части программы, они не будут работать, когда это необходимо. Прошивка для микроконтроллеров становится сложной, когда есть несколько задач с разными приоритетами в реально-временной операционной системе (RTOS). Задачи схемы сторожевого пса более высокого приоритета могут продолжать выполняться, даже когда задачи более низкого приоритета находятся в аномальном бесконечном цикле. Если обновление схемы таймера сторожевого пса является задачей с самым высоким приоритетом, то микроконтроллер не будет обновляться, когда он работает некорректно.

Man programming at computer
Это хорошая практика убедиться, что Таймеры сторожевого пса обновляются корректно

Как обеспечить надежную работу WDT

Для того чтобы WDT выполнял свою работу, необходимы усилия разработчика прошивки, установщика системы и конструктора аппаратного сторожевого пса. Разработчики прошивок должны применять лучшие практики программирования, чтобы избежать переполнений кода, которые отключают внутренний WDT. Разработчики прошивок должны хорошо понимать архитектуру памяти микроконтроллера и как правильно использовать указатели памяти и выделение памяти в коде.

Кроме того, структура программы должна быть разработана таким образом, чтобы Сторожевые Таймеры обновлялись в соответствующих местах программы. Это означает, что программа будет инициировать сброс Watchdog, если в любой точке программы возникнет бесконечный цикл. Вы также можете разработать утилиту для тестирования функциональности WDT на месте. Это также исключает риск пропуска любых отсоединенных перемычек между внешним Сторожевым Таймером и микроконтроллером.

Когда вам нужен легкий в использовании инструмент для разработки печатных плат, который включает все необходимое для создания качественных производственных плат, не ищите ничего, кроме CircuitMaker. В дополнение к простому в использовании программному обеспечению для проектирования печатных плат, все пользователи CircuitMaker имеют доступ к личному рабочему пространству на платформе Altium 365. Вы можете загружать и хранить данные своих проектов в облаке, а также легко просматривать свои проекты через веб-браузер на защищенной платформе.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

Начните использовать CircuitMaker сегодня и следите за новинками CircuitMaker Pro от Altium.

 

Посмотрите Altium Designer в действии...

Мощное проектирование печатных плат

Связанные ресурсы

Вернуться на главную
Thank you, you are now subscribed to updates.
Altium Need Help?