KWALIFIKACJA ELM2 + ELM5 - CZERWIEC 2008

PYTANIE NR 21.
Watchdog jest to
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Watchdog (WDT) to układ/timer nadzorujący pracę programu w mikroprocesorze lub mikrokontrolerze.
Jeśli oprogramowanie nie odświeża go w zadanym czasie (np. po zawieszeniu), watchdog generuje reset lub przerwanie, przywracając urządzenie do działania. Pozostałe opcje opisują liczniki lub mechanizmy transferu danych (DMA/I/O).

Pełne wyjaśnienie:

Watchdog (WDT) jest mechanizmem nadzoru poprawnej pracy systemu mikroprocesorowego/mikrokontrolerowego. Najczęściej ma postać sprzętowego timera, który odlicza czas do "przekroczenia limitu".

W prawidłowo działającym programie wykonywana jest cyklicznie instrukcja odświeżenia (często nazywana "karmieniem" watchdoga). Dzięki temu licznik WDT nie dojdzie do końca. Jeżeli jednak program zawiesi się, wpadnie w pętlę lub przestanie wykonywać fragment odświeżający WDT, timer dobiega do zera i następuje reakcja bezpieczeństwa: zwykle reset mikrokontrolera, a czasem przerwanie, które może uruchomić procedury ratunkowe.

Dlatego poprawna odpowiedź to: rodzaj timera nadzorującego pracę mikroprocesora — bo podkreśla funkcję czasowego nadzoru i reakcji awaryjnej.

Dlaczego pozostałe odpowiedzi są błędne?

  • Licznik impulsów zewnętrznych służy do zliczania zdarzeń (np. impulsy z enkodera, czujnika, wejścia T0/T1). Nie wymusza resetu przy zawieszeniu programu.
  • DMA do pamięci (bezpośredni dostęp do pamięci) to mechanizm transferu danych bez angażowania CPU, używany np. z ADC, UART, SPI. Nie jest mechanizmem nadzoru czasu wykonywania programu.
  • DMA do portów I/O również dotyczy transferu danych do/z peryferiów. Watchdog nie służy do przyspieszania przesyłu danych, tylko do podniesienia niezawodności.

Wskazówka egzaminacyjna: jeśli w odpowiedzi pojawia się "nadzór" oraz konsekwencja typu reset/przerwanie po upływie czasu, to najczęściej chodzi o WDT, a nie o licznik zdarzeń czy DMA.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Watchdog (WDT) to sprzętowy timer nadzorujący działanie programu. Gdy program działa poprawnie, cyklicznie "odświeża" licznik WDT. Jeśli odświeżanie nie nastąpi w czasie (np. po zawieszeniu), watchdog wywoła reset lub przerwanie, aby przywrócić pracę urządzenia.
Reset jest reakcją bezpieczeństwa na sytuację, gdy oprogramowanie przestaje wykonywać się przewidywalnie (zawieszenie, błąd, zakłócenia). Watchdog zakłada, że brak odświeżenia w czasie oznacza awarię i uruchamia reset, aby system wrócił do znanego stanu startowego.
Odświeżanie polega na wykonaniu w programie instrukcji zapisu do rejestru WDT lub wywołaniu procedury, która zeruje/odnawia licznik. Trzeba to robić regularnie w poprawnie działającej pętli lub zadaniu, ale nie "na ślepo" w każdym miejscu, bo to może maskować błędy.
Warto go włączyć, gdy urządzenie ma pracować długo bez nadzoru (automatyka, rejestratory, IoT), a zawieszenie programu byłoby groźne lub kosztowne. Watchdog pomaga samoczynnie wrócić do działania po chwilowej awarii oprogramowania lub zakłóceniach zasilania/EMC.
Watchdog mierzy czas i kontroluje, czy program "żyje" (odświeża licznik), a jego skutkiem bywa reset/przerwanie. Licznik impulsów zewnętrznych zlicza zdarzenia na wejściu (np. impulsy z czujnika) i nie służy do wykrywania zawieszeń programu ani do automatycznego restartu.
Nie. DMA (bezpośredni dostęp do pamięci) służy do szybkiego przenoszenia danych między peryferiami a pamięcią bez dużego udziału CPU. Watchdog jest mechanizmem nadzoru czasu pracy programu i reaguje, gdy program nie wykonuje odświeżenia. To zupełnie inne funkcje w mikrokontrolerze.
Typowe objawy to cykliczne restarty urządzenia, utrata komunikacji, krótkie "zawieszki" i powrót do ekranu startowego. W diagnostyce szuka się informacji o przyczynie resetu (flag resetu) oraz miejsc, gdzie program powinien odświeżać WDT, a z jakiegoś powodu tego nie robi.
Częste błędy to: zbyt krótki czas WDT (fałszywe restarty), odświeżanie w przerwaniu bez kontroli (maskowanie zawieszeń), brak zapisu stanu diagnostycznego przed resetem oraz nieuwzględnienie, że niektóre tryby uśpienia lub długie operacje blokujące mogą przekroczyć czas WDT.
Zależy od układu, ale typowo sprawdza się rejestry/flagę przyczyny resetu (np. bity statusu resetu). W praktyce firmware po starcie może odczytać te flagi i zapisać je do pamięci nieulotnej lub wysłać diagnostykę przez UART, co ułatwia serwis i analizę błędów.
Skup się na: definicji WDT, roli odświeżania, skutku braku odświeżenia (reset/przerwanie) oraz odróżnianiu WDT od DMA i liczników zdarzeń. Przećwicz na przykładach z dokumentacji mikrokontrolera: gdzie ustawia się preskaler/czas i jak odczytuje się przyczynę resetu.
info

To pytanie poprawnie rozwiązuje 57% zdających egzamin. średnie

Eksperci podkreślają: "Pozostałe opcje opisują liczniki lub mechanizmy transferu danych (DMA/I/O)."

Źródła:

  • https://en.wikipedia.org/wiki/Watchdog_timer - accessed 2026-02-18

Materiały:

  • Dokumentacje (datasheet/reference manual) mikrokontrolerów – rozdziały o WDT i resetach
  • Podstawy systemów wbudowanych: timery, przerwania, obsługa wyjątków i resetu
  • Materiały dydaktyczne z mikroprocesorów/mikrokontrolerów (laboratoria) dotyczące peryferiów czasowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego