Niektóre produkty muszą spełniać wymogi bezpieczeństwa określone przez producenta lub międzynarodowe standardy bezpieczeństwa, takie jak IEC 60730-1 lub starsza UL1998, która jest nadal używana w USA. Wewnętrzna funkcja watchdog w danym mikrokontrolerze może, ale nie musi być wystarczająca do użycia. W niektórych przypadkach można zastosować zewnętrzny WDT w połączeniu z wewnętrznym WDT.
Niektóre mikrokontrolery, takie jak seria Hercules firmy TI, traktują aplikacje systemowe o krytycznym znaczeniu dla bezpieczeństwa i częściej spełniają surowe wymagania, jednak mogą nie być odpowiednie dla aplikacji wrażliwych na koszty.
Zazwyczaj WDT jest jednym z wielu sposobów zmniejszenia prawdopodobieństwa awarii powodującej katastrofalne uszkodzenie mienia lub życia. Inne rzeczy, takie jak ochrona pamięci w celu wykrycia nieoczekiwanego dostępu do pamięci MCU lub pobrania programów z nieużywanej pamięci, są zwykle używane w połączeniu z WDT.
Przykładami niedrogich produktów spełniających kluczowe funkcje bezpieczeństwa są podsystemy samochodowe, sterowniki drzwi garażowych i sterowniki zapłonu gazu (gazu ziemnego lub propanu) stosowane w piecach, suszarkach i podgrzewaczach wody. Oczywiście wiele produktów medycznych i lotniczych ma również kluczowe znaczenie dla bezpieczeństwa, ale może istnieć wystarczająca przestrzeń dla redundancji i innych podejść. W niektórych przypadkach może nie być łatwo osiągalnego bezpiecznego stanu - na przykład w samolocie.
Idealnie czasomierz watchdoga jest bardzo prosty, niezależny od MCU (na przykład powinien mieć własne źródło zegara i być może monitor zegara), nie może być ustawiony (przez oprogramowanie) na dłuższy czas, niż spowodowałby uszkodzenie przez dowolny błąd oprogramowania, i sprawi, że system przejdzie w stan bezpieczny, jeśli nie zostanie „pogłaskany” na czas, z przerwą lub w trybie okienkowym, aby można było wykryć zbyt częste resetowanie. Na przykład WDT w aplikacji kontroli termicznej może być ustawiony na kilka sekund, ponieważ żadne uszkodzenie nie jest możliwe, jeśli mikrokontroler zostanie zablokowany na ten czas.
WDT jest najbardziej przydatny jako część systemowego podejścia do niezawodności i bezpieczeństwa.
Trudno argumentować, że wewnętrzny zegar wewnętrznego watchdoga jest w rzeczywistości niezależny od wszystkich innych zegarów i zawsze działa tak, jak powinien.
Dlatego w celu uzyskania certyfikatu zwykle znacznie łatwiej jest umieścić zewnętrzny organ nadzorczy na płycie i powiedzieć: patrz, jest nasz organ nadzorujący, musi on być uruchamiany przez MCU w tym przedziale czasu, który jest krótszy niż nasz czas do awarii, aby nasze urządzenie było bezpieczne jak to zdefiniowaliśmy.
Aby odpowiedzieć na niektóre komentarze:
Zazwyczaj dowodzi tego test wprowadzania usterki, który przedstawia się jednostce certyfikującej. Pokazujesz im więc kod, w którym następuje inicjalizacja i gdzie następuje wyzwolenie watchdoga. Zwykle proszą cię o zmodyfikowanie kodu w taki sposób, aby wyzwalanie watchdoga zostało zatrzymane po upływie określonego czasu i sprawdzenie, czy kontroler został zresetowany poprawnie.
Przynajmniej na niektórych kontrolerach watchdog jest nazywany niezależnym i ma własne źródło zegara i nie można go wyłączyć programowo, tylko reset kontrolera spowoduje wyłączenie watchdoga. Przynajmniej teoretycznie - łatwo jest pokazać, że nie można go zatrzymać za pomocą oprogramowania, ale trudno udowodnić, że zegar jest naprawdę niezależny i nie zatrzyma się pod wpływem EMI.
W takim przypadku korzystasz z funkcji nadzorowania okien, która musi być uruchamiana w określonych odstępach czasu, a jeśli tego nie zrobisz (zbyt często lub zbyt rzadko), resetuje obwód. STM32, z którym pracuję, ma wewnętrzny watchdog okna, ale działa z PCLK1, który pochodzi z głównego zegara, więc nie sądzę, aby był tak przydatny jak zewnętrzny watchdog z własnym źródłem zegara.
To z pewnością prawda, ale mam nadzieję, że recenzja sprawi, że ten geniusz powróci na swoje krzesło - ale hej, kiedy zaczynałem, to był mój pierwszy pomysł: D. Podczas procesów certyfikacyjnych, w których uczestniczyłem, zawsze patrzyli na oprogramowanie nadzorujące.
źródło
Watchdogi wbudowane w mikrokontrolery mają szczególne właściwości, co oznacza, że same mogą zawieść w sposób, w jaki inny zewnętrzny watchdog może nie.
Na przykład powszechnym rozwiązaniem jest użycie timera nadzorującego działającego z oscylatora RC o niskiej mocy. Oscylator może zawieść. Zewnętrzny organ nadzorujący oparty na rozładowaniu kondensatora zamiast oscylatora nadal może w wielu przypadkach zresetować mikrokontroler.
Innym powodem jest to, że zewnętrzny organ nadzorczy może być bardziej niezawodny. Mikrokontroler może działać niezawodnie tylko w określonym zakresie napięcia, a będąc złożonym urządzeniem może podlegać blokowaniu w sposób, który powoduje, że jego wewnętrzny organ nadzorujący jest nieskuteczny. Zewnętrzny organ nadzorujący może mieć szerszy dopuszczalny zakres zasilania i być mniej podatny na problemy w przypadku narażenia na zakłócenia elektryczne.
Zewnętrzne organy nadzoru często oferują również znacznie szerszy zakres wartości limitu czasu. Mikrokontroler, którego często używam, XMEGA, ma maksymalny limit czasu wynoszący około 7 sekund. Do jednego produktu dodałem dodatkowy zewnętrzny watchdog z limitem czasu wynoszącym 2 godziny. To pozwoliło mi obudzić mikrokontroler raz na godzinę, a nie raz na kilka sekund, co zmniejsza zużycie energii w urządzeniu zasilanym z baterii.
Zewnętrzne organy nadzorujące mają czasem wiele funkcji, takich jak zegar i kontrola napięcia / kontroli resetowania. Ponownie, mogą one mieć niższą moc niż wbudowany system mikrokontrolera.
Inną interesującą zaletą zewnętrznego watchdoga jest to, że można go użyć do resetowania urządzeń innych niż mikrokontroler. Na przykład może sterować stykiem aktywującym regulatora napięcia, odłączając zasilanie całego obwodu, aby zresetować wiele urządzeń jednocześnie. Korzystając z prostej logiki, sygnał resetowania watchdoga z wielu źródeł można łączyć, pozwalając watchdogowi wymagać, aby kilka urządzeń ciągle go resetowało.
źródło
Niektóre certyfikaty, takie jak UL , mogą wymagać ochrony przed dwoma punktami awarii. Zewnętrzny zegar nadzorujący byłby uważany za ochronę od pierwszego punktu awarii, czyli mikrokontrolera.
źródło
Watchdog naprawdę nie różni się pod tym względem od innych wbudowanych urządzeń peryferyjnych, które można znaleźć w MCU. MCU są dostarczane z zegarami, RTC, ADC, EEPROM i kontrolerami resetowania, ale wszystkie te funkcje istnieją również jako osobne układy scalone. Jeśli dostępne wbudowane bloki nie spełniają Twoich wymagań, musisz użyć zewnętrznych. Możesz też spróbować znaleźć MCU ze wszystkimi odpowiednimi blokami, które mogą nie istnieć, być zbyt drogie lub trudne do przeniesienia twojego kodu.
źródło
Watchdog jest zegarem i aktywuje swoje wyjście, gdy układ scalony utracił impuls wejściowy na pewien okres.
Jest to element składowy i może być używany do dowolnej aplikacji.
Tak więc, można je stosować w dowolnej aplikacji, na przykład dane zmiana trasy w fail-safe mode. Gdy zegar mikrokontrolera zawiedzie, nie możemy wyłączyć niektórych krytycznych wyjść.
Zewnętrzny organ nadzorujący nie jest powiązany ze złożoną domeną zegarową mikrokontrolera, a niektóre z nich mają analogowe taktowanie ładowania RC lub zegar wewnętrzny.
Obwody cyfrowe w promieniowaniu mogą wyzwalać wyjścia, gdy ładunek trafi w ich przerzutniki. Ale niektóre obwody analogowe są bezpieczniejsze, ponieważ integrują ładunek w kondensatorze i jest bezpieczne, gdy je zintegrujemy.
źródło