Konieczność zewnętrznego timera nadzorującego

19

Jaka jest potrzeba zewnętrznego kontrolera czasowego dla mikrokontrolera?

Większość mikrokontrolerów jest zaprojektowana z wewnętrznym zegarem nadzorującym. Jednak w niektórych obwodach używają zewnętrznego timera nadzorującego (takiego jak PIC16F1824).

Photon001
źródło

Odpowiedzi:

10

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.

Spehro Pefhany
źródło
33

Strażnik może chronić przed błędami sprzętowymi w wadliwym kawałku ... najnowocześniejszych mikrokontrolerów. Jeden, którego ostatnio używaliśmy, od znanej marki, miał piny I / O, które czasami brakowały przerwania, czasami nie uruchamiały się poprawnie, a gdzie zintegrowany watchdog czasami nie resetował systemu w znanym dobrym stanie.

Nie pojawiło się to, dopóki nie zaczęliśmy od długich testów niezawodności, i łatwiej było dodać zewnętrzny watchdog niż zmienić mikrokontroler.

Jeśli masz więcej niż jeden układ scalony na płytce drukowanej, możesz również potrzebować zewnętrznego resetu układu scalonego lub monitora napięcia, aby wszystko działało niezawodnie. Wiele z nich może również służyć jako strażnik.

rura
źródło
9
„zintegrowany watchdog czasami nie resetował systemu w znanym dobrym stanie” - jest to funkcjonalnie równoważne z „nie ma wewnętrznego watchdoga”.
Dmitrij Grigoryev,
32

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:

„i zawsze działa tak, jak powinno” - Dobra uwaga. Może być trudniej udowodnić, że oprogramowanie prawidłowo inicjuje wewnętrzny watchdog we wszystkich okolicznościach, niż po prostu zastosować chip watchdog i zapoznać się z jego arkuszem danych.

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.

Lub udowodnić, że twój kod nie zawiera błędu, który przypadkowo wyłącza wewnętrzny watchdog.

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.

Lub, aby udowodnić, że Twój kod nie działa dziko, resetując zewnętrzny watchdog tak szybko, jak to możliwe. Problem rozwiązany. ;-)

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.

Albo, że jakiś geniusz nie umieszcza procedury obsługi watchdoga w ISR timera, więc główny kod może się zawiesić, ale przerwanie wciąż uruchamia i serwisuje watchdoga ...

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.

Arsenał
źródło
4
„i zawsze działa tak, jak powinno” - Dobra uwaga. Może być trudniej udowodnić, że oprogramowanie prawidłowo inicjuje wewnętrzny watchdog we wszystkich okolicznościach, niż po prostu zastosować chip watchdog i zapoznać się z jego arkuszem danych.
JimmyB
4
@ JimmyB Lub, aby udowodnić, że Twój kod nie zawiera błędu, który przypadkowo wyłącza wewnętrzny watchdog.
TripeHound,
2
@TripeHound Lub, aby udowodnić, że Twój kod nie działa dziko, ciągle resetując zewnętrzny watchdog tak szybko, jak to możliwe. Problem rozwiązany. ;-)
JimmyB
2
Albo, że jakiś geniusz nie umieszcza rutyny usługi watchdog wewnątrz ISR timera, więc główny kod może ulec awarii, ale przerwanie wciąż strzela i serwisuje watchdoga doskonale ...
John U
@JohnU, to jednak nie wydaje się czymś, w czym mógłby pomóc zewnętrzny układ scalony.
ilkkachu
12

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.

użytkownik
źródło
Opierając się na moim doświadczeniu z zewnętrznymi wdogami, powiedziałbym, że są one znacznie mniej odporne niż wewnętrzne, po prostu dlatego, że inny obwód zewnętrzny to kolejna rzecz, która może się zepsuć. Lutowanie, EMI, ESD i tak dalej. Jeśli uda ci się zwierać wejście zegara do czegoś, wówczas zewnętrzny wdog zostanie skutecznie wyłączony. Więc tak naprawdę nie kupuję zwiększonego bezpieczeństwa. Jeśli masz oba na raz, na pewno nieznacznie zwiększysz bezpieczeństwo.
Lundin,
@Lundin większość z nich używa wewnętrznego oscylatora RC lub rozładowania kondensatora, a nie zewnętrznego zegara. W rzeczywistości nie mogę wymyślić żadnej innej ręki, która używałaby zewnętrznego zegara. Również awarie nie są addytywne, jeśli masz zewnętrzny i wewnętrzny organ nadzorczy, a jeden zawodzi, co jest wyraźnie lepsze niż posiadanie jednego.
użytkownik
3

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.

da66en
źródło
2

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.

Dmitrij Grigoriew
źródło
1

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.

M KS
źródło