Czym jest watchdog?
Watchdog (często oznaczany jako WDT, ang. Watchdog Timer) to specjalny timer nadzorujący pracę mikroprocesora lub mikrokontrolera. Jego zadaniem jest wykrycie sytuacji, w której program przestał działać prawidłowo, np. zawiesił się w pętli nieskończonej lub nie reaguje na zdarzenia.
Zasada działania
Watchdog odmierza określony czas. Program pracujący poprawnie musi cyklicznie zerować licznik watchdog-a, co potocznie nazywa się „karmieniem watchdog-a”. Jeśli program tego nie zrobi w ustalonym czasie, układ uznaje, że mikroprocesor działa nieprawidłowo.
Wtedy watchdog może:
- wykonać reset mikroprocesora,
- zgłosić przerwanie,
- przełączyć urządzenie w stan bezpieczny.
Po co stosuje się watchdog?
Watchdog zwiększa niezawodność urządzeń elektronicznych, szczególnie tych pracujących bez stałego nadzoru człowieka. Stosuje się go m.in. w sterownikach, systemach alarmowych, automatyce przemysłowej, urządzeniach IoT i elektronice samochodowej.
Przykład sytuacji
Mikrokontroler steruje wentylatorem. Program powinien co 100 ms zerować watchdog. Jeśli wskutek błędu program się zawiesi, watchdog nie zostanie wyzerowany i po upływie ustawionego czasu zresetuje mikrokontroler. Dzięki temu urządzenie może wrócić do poprawnej pracy.
Ważne skojarzenie egzaminacyjne
Watchdog nie jest systemem dostępu do pamięci ani portów I/O. Nie jest też zwykłym licznikiem impulsów zewnętrznych. To rodzaj timera kontrolującego działanie mikroprocesora.