__15. Obniżanie pobor
• 'V " ^
'
*
Zakłócenia impulsowe indukowane w ścieżkach przewodzących sygnały elektryczne na płytce drukowanej, niedoskonała filtracja napięcia w zasilaczach (stabilizatorach napięcia), w szczególności w zasilaczach impulsowych, zmianv fizyko-chemiczne połączeń (utlenianie, korozja elektrochemiczna) mogą prowadzić do zmiany zawartości przesyłanych bajtów lub błędnego adresowania pamięci. Zmiana treści programu powoduje realizację zadań, które nie występują w oryginalnym programie. Jeśli są to tylko procedury wew-nętrznego przetwarzania to efektem takiego programu są błędy obliczeń. Jeśli mikrokontroler steruje obiektem, to zakłócenia jego pracy mogą mieć bardzo poważne konsekwencje. Przygotowując oprogramowanie wprowadza się pewne elementy sa-mokorekcji programu. Ale jeśli zasadniczy program może zostać zniekształcony, to również tak samo podatne na zakłócenia są programy korekcyjne. Najskuteczniejszym sposobem są środki sprzętowe. Takim rozwiązaniem jest zastosowanie dodatkowego układu nadzorującego działanie programu, który charakteryzowałby się następującymi cechami:
• układ raz uruchomiony nie mógłby być programowo zatrzymany,
• program musiałby okresowo zmieniać stan tego układu, odświeżać go, w przeciwnym razie układ generowałby sygnał przerwania o najwyższym dla mikrokontrolera priorytecie; takim sygnałem dla każdego procesora jest sygnał RESET.
Oznacza to, że istniałyby dwa różne źródła zerowania mikrokontrolera:
• zerowania zewnętrznym sygnałem doprowadzonym do wypro-wadzenia
procesora oznaczonego jako RST (8051 /52) lub RESET (SAB 80515/535),
• zerowania wewnętrznym sygnałem generowanym przez układ nadzorujący działanie programu.
W mikrokontrolerach 8051/52 nie ma wewnętrznego układu, który spełniałby powyższe wymagania. Jedynym rozwiązaniem jest dołączenie zewnętrznego układu. W takim przypadku nie ma możliwości rozróżnienia źródła zerowania mikrokontrolera. Dołączenie zewnętrznego elementu do układu przerwań nie do końca rozwiązuje problem. Jeśli zasadniczy program może być zakłócony, to także procedury obsługi przerwań mogą działać nieprawidłowo. W mikrokontrolerach rodziny '51 nie ma przerwań niemaskowalnych.
Konstruktorzy mikrokontrolerów SAB 80515/535 rozwiązali postawiony problem i wyposażyli mikrokontrolery w watchdog.
Watchdog jest układem nadzorującym działanie wykonywanego programu, którego podstawowym elementem jest licznik. Przepełnienie licznika generuje sygnał wewnętrznego zerowania mikrokontrolera.