Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (2024)

Angesichts der hohen Komplexität von eingebetteten Systemen mit ihren Multithreading-, Echtzeit- und Multitasking-Funktionen kann zunehmend schwerer bestimmt werden, wann ein Mikrocontroller nicht ordnungsgemäß funktioniert. Bei den vielen nebeneinander laufenden Service-Routinen ist es durchaus möglich, dass einige Mikrocontroller funktionstüchtig sind, während andere blockiert oder „tot“ sind oder unsinnigen Code ausführen.

Dementsprechend ist es für die Entwickler von eingebetteten Systemen heute schwieriger, ein Gesamtsystem vor Fehlern zu schützen, die bei einfachen Service-Routinen oder in einem auf Abwege geratenen Core auftreten können.

Dieser Artikel nun beschäftigt sich mit dem zunehmenden Bedarf an ausgefeilteren Watchdog-Funktionen und den Techniken, mit denen Ingenieure eine sichere Funktion von Mikrocontrollern gewährleisten können. Darüber hinaus befasst sich der Artikel mit den Schwachpunkten, die sowohl extern auf Hardwareseite als auch intern auf Softwareseite angegangen werden müssen und untersucht beispielhaft einige Watchdog-Bauteile. Alle in diesem Artikel erwähnten Komponenten, Datenblätter, Anleitungen und Entwicklungshinweise sind auf der Website von DigiKey verfügbar.

Einfacher Schutz

Der Bedarf an Watchdog-Funktionen findet sich bei 4-Bit-Systemen ebenso wie bei komplexen 32-Bit-Rechnern. Dabei ist häufiger zu beobachten, wie einfache Prozessoren in potenziell gefährlichen Situationen zum Einsatz kommen. Eine Schleife zur Regelung einer Drosselklappe zum Beispiel benötigt unter Umständen nur einen einfachen lokalen Mischsignal-8-Bit-Mikrocontroller, um eine zuverlässige Regelung bieten zu können. Der Mikrocontroller kann dabei über den CAN-Bus eines Fahrzeugs Befehle erhalten und die gesamte Verarbeitung von einem Remote-Fahrzeugrechner übernommen werden. Wenn dieser einfache Prozessor jedoch ausfällt, kann das resultierende Vollgas tödlich sein.

Es kann davon ausgegangen werden, dass praktisch jeder moderne Mikrocontroller über irgendeine Art von einfacher Watchdog-Funktion verfügt – ob nun in Form von eigens für diesen Zweck integrierten Hardware-Blöcken oder in Form von Mehrzweck-Timern, mit denen softwaregesteuerte Watchdog-Funktionen implementiert werden können. Diese sind alle auf die Systemuhr im Prozessor abgestimmt.

Da die Prozessoren immer ausgeklügelter werden, können auch die Taktstrukturen und die Taktverteilung im Prozessor selbst immer komplexer werden. So können Oszillatoren besonders anfällig für ESD-Stöße sein, und wenn die Uhr daraufhin ausfällt, nutzen synchrone Watchdogs nicht viel.

RC-Oszillatoren und Zeitkonstanten mögen keine innovativen Elemente sein, können aber unabhängige Takt- und Resetmechanismen als Notfall- oder Reservelösung zur Verfügung stellen. Ebenso können redundante interne und externe Oszillatorquellen einen Herzschlag bereitstellen, um die Überwachungsschaltung bei Ausfällen am Leben zu halten. Die wählbare Integration von Uhren ist genauso wichtig wie der Standort der Uhren im Baum (Abbildung 1).

Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (1)


Abbildung 1: Mit der Kombination von Systemuhren mit RC-Oszillatoren als Reservelösung werden Stromeinsparungen ermöglicht sowie eine zuverlässige, unabhängige Reserveuhr für Watchdog-Funktionen bereitgestellt für den Fall, dass die Systemuhren korrumpiert werden. Zu beachten ist, wie die zwei RC-Oszillatoren hier verwendet werden.

Das Gleiche gilt für Niederspannungsschaltkreise zur Erkennung von Fehlern. Interne Referenzspannungsquellen, Komparatoren und Melder können hierbei eine einfache Präzision bieten, während externe Schaltkreise eine höhere Auflösung und eine präzisere Selektivität beim Spannungspegel liefern. Wenn Ihre Software zum Spannungsausfallzustand zum Beispiel auch eine Funktion zum Schreiben ins EEPROM enthält, möchten Sie vielleicht die Schwelle für das Auslösen der Niederspannungserkennung niedrig ansetzen, damit die kapazitive Ladungsspeicherung vor der geordneten Abschaltung genug Zeit für das Schreiben ins EEPROM hat. Eine moderne Spannungserkennung kann eine Spannungsauflösung von bis zu 0,05 V erzielen und so eine präzise Nutzung aller Energie ermöglichen. Das ist üblicherweise eine weitaus bessere Auflösung als die, die intern mit einem Mikrocontroller möglich ist.

Weiterhin ist zu bedenken, dass maximale Timeouts allein nicht immer effektiv sind. Die meisten Watchdog-Systeme implementieren im Wesentlichen eine mehrfach auslösbare (One-Shot-)Funktion mit monostabilem Multivibrator. Wenn der Timer durch die Taktzyklen von Software oder Hardware nicht innerhalb eines maximal zulässigen Zeitrahmens zurückgesetzt wird, wird der Watchdog ausgelöst und setzt den Prozessor zurück (oder stößt eine Service-Routine zur Wiederherstellung nach dem Ausfall an).

Die zeitlichen Mindestanforderungen sind ebenfalls von Interesse. Wenn eine Service-Routine beispielsweise mit dem Nulldurchgang einer 60-Hz-Leitung synchronisiert ist, sollten die Impulse 8,33 ms auseinanderliegen. Kommen sie schneller hintereinander, muss sich mit Geräuschen und Fehlern auseinandergesetzt werden, häufig mit Konsequenzen für die allgemeine Sicherheit.

Konstruktionen mit mehreren Prozessoren und mehreren Cores stellen besondere Situationen dar. Hier sollten einzelne Watchdogs eingerichtet werden und die einzelnen Prozessoren bzw. Cores mit den speziellen Bedingungen des Codes überwachen, der jeweils in dem speziellen Prozessor läuft. Das bedeutet wiederum, dass bei der Software-Entwicklung im Hinblick auf einen Core in einer Multicore-Umgebung die spezifischen Watchdog-Bedingungen berücksichtigt werden sollten, die Hinweise auf einen Fehler in diesem spezifischen Code-Block geben.

Zudem sollten die Watchdog-Meldungen hierarchisch strukturiert sein. So sollte jeder Core dem Watchdog einer höheren Ebene berichten, der dann alle von sämtlichen Cores und Prozessen gemeldeten Fehlerzustände bündelt. Als eine Systemfunktion der oberen Ebene arbeitet ein Watchdog Hand in Hand mit der für die Hauptaufgabe zuständigen Funktion, die den jeweiligen Cores Code-Blöcke zuweist. Darüber hinaus sollte der Watchdog auch eng mit externen Watchdog-Systemen zusammenarbeiten.

Ein kabelgebundener OR-Multi-Watchdog-Block kann problemlos um einen speziellen E/A erweitert werden, über den ein Core dann seine Meldungen abgibt (Abbildung 2). Dabei kann es sich um einen eigenständigen logischen Block in einem FPGA oder CPLD handeln, der mehrere Prozessoren und Blöcke überwacht und einfach erweitert werden kann. Ein Register kann den jeweiligen Status der berichtenden Blöcke dann sammeln und versuchen, den betreffenden Core wiederherzustellen. Es lässt sich leicht denken, dass die Routinen zur Wiederherstellung auf dieser Ebene komplexer werden, genauso wie der Neustart eines Cores, während der Rest des Systems weiterläuft.

Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (2)


Abbildung 2: Auf der obersten Ebene der Watchdog-Hierarchie kann eine erweiterbare kabelgebundene OR-Funktion verwendet werden, damit alle Mikrocontroller bzw. Cores in ihrem eigenen Takt berichten können. Jede One-Shot-Funktion sollte es dem von ihr überwachten Prozess ermöglichen, die jeweilige Dauer des Intervalls zu programmieren. Jeder Code-Block trägt die Watchdog-Parameter mit sich.

Bauteile mit speziellen Watchdog-Funktionen

Etliche Mikrocontroller bieten bei der Art der Implementierung ihrer Watchdogs einzigartige oder verschiedene Funktionen. Ein Beispiel hierfür ist die Reihe 16-Bit-MaxQ von Maxim, die eine umfangreiche Palette an Timern mit intelligenten Schaltungen für eine optimale Nutzung verbindet. Bauteile wie der MAXQ2000-RBX+ von Maxim haben eine zweite Alarmebene. Wenn der Watchdog-Timer des MAXQ2000 nicht gepflegt wird und überläuft, löst er einen Interrupt mit einer zusätzlichen Zählung von 512 weiteren Systemtaktzyklen aus. Anschließend setzt er alles zurück, was nicht deaktiviert oder überschrieben ist.

Dieser Interrupt bietet eine „letzte Chance“ zum Speichern von Informationen zur Fehlersuche, eine Chance, die nach übereinstimmender Meinung der meisten Ingenieure bei der Schaltkreisentwicklung und bei der Fehlerbeseitigung nützlich ist. Darüber hinaus könnte der Interrupt sogar dafür verwendet werden, den Fehler zu überwinden und den Watchdog zu löschen, anstatt die Informationen zur Fehlersuche zu speichern. Dieser Ansatz kann allerdings die Zuverlässigkeit des Systems beeinträchtigen, falls ein systembedingter Fehler vorliegt.

Wie andere interne Watchdog-Timer auch kann der Watchdog des MAXQ2000 durch Software deaktiviert werden. Hierbei ist jedoch zu bedenken, dass diese Funktion ein zweischneidiges Schwert ist: So kann ein irregeleiteter Code erst den Watchdog deaktivieren und dann seine Irrfahrt fortsetzen.

Einige Mikroprozessoren schließen ihren Watchdog-Timer an einen internen Oszillator an, der von der Systemuhr getrennt ist. Manche verwenden dabei entweder interne oder externe RC-Oszillatoren, manche können auch beide einsetzen. Der Watchdog-Timer von Maxims MAXQ2000 verfügt hierbei über eine interessante Funktion: Das Watchdog-Timing orientiert sich an der Systemuhr, wechselt bei einem Fehler im Hauptoszillator aber zu einem Reserve-RC-Oszillator.

Weitere interessante Mikrocontroller mit einzigartiger Watchdog-Funktion sind die Mikrocontroller der Reihe STM32F100 von STMicroelectronics, die zwei Watchdog-Timer besitzen. Bauteile wie der STM32F100CBT6B sind für Anwendungen im Bereich intelligente Netze und Gesundheit gedacht, die besonders zuverlässig sein müssen. Wie die meisten Mikrocontroller verfügt er über mehrere Timer – in diesem Fall sechs Stück – sowie weiterhin über zwei 16-Bit-Timer speziell für die Watchdog-Funktion.

Jeder Watchdog hat einen wählbaren Vorteiler (von 1 bis 64 K), mit dem die Watchdog-Timer getaktet werden können, die auch DMA-Anforderungen und Capture/Compare-Einheiten auslösen können. Ein weiterer eigenständiger Watchdog basiert auf einem 112-Bit-Abwärtszähler und 8-Bit-Vorteiler, die von einem eigenständigen internen 40-kHz-RC-Oszillator getaktet werden. Bemerkenswert ist hier, wie diese beiden Bauteile auf RC-Komponenten als extrem zuverlässige Reservetechnik setzen.

Ein interessantes Merkmal des Bauteils von STMicroelectronics ist die analoge Watchdog-Funktion. Mit der präzisen Überwachung einer oder mehrerer von den A-D-Wandlern umgewandelten Spannungspegeln kann ein Reset ausgelöst werden, wenn die analogen Pegel außerhalb der programmierten Grenzwerte liegen. Das kann insbesondere für medizinische Anwendungen nützlich sein, bei denen Sensoren an ein Body Area Network angeschlossen sind und den Gesundheitszustand oder die aktive Einnahme von Medikamenten überwachen (Abbildung 3). Als Hilfe für die Entwicklung bietet STMicroelectronics Ingenieuren ein Produktschulungsmodul für Entwicklungen im Bereich Gesundheit und Wellness an.

Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (3)


Abbildung 3: Da medizinische Geräte immer stärker in unser Body Area Network integriert werden, können einige der Geräte (Schrittmacher, Defibrillatoren, Insulinpumpen usw.) eine entscheidende Rolle für ein längeres Leben spielen. Für diese Systeme müssen zuverlässige Watchdogs konzipiert werden.

Von außen nach innen schauen

Etliche gute modulare externe Lösungen enthalten einfache RC-Schwellenwertgeneratoren, Schwellentransistoren, stromsparende Timer und spezielle Power-On-Reset- und Watchdog-Prozessoren. Zudem stehen Entwicklungsumgebungen zur Verfügung, mit denen Experimente und Tests leicht gemacht werden. Texas Instruments zum Beispiel bietet eine interessante Lösung mit seinem programmierbaren Timer TPL5000 mit Nano-Power-Management, der bei einem breiten Bereich von 1,8 bis 5 VCC 30 nA benötigt. Mit dem Evaluierungskit TPL5000EVM kann diese Funktion im Rahmen eines eigenständigen Moduls getestet und optimiert werden.

Es sind verschiedene diskrete Watchdogs erhältlich, die weitere nützliche Funktionen enthalten, zum Beispiel Echtzeituhren und Überwachungsfunktionen. Eine interessante Kombination wird dabei von Lattice Semiconductor mit seinem ISPPAC-POWR607-01SN32I angeboten, der Stromversorgungswächter, Watchdog und Reset-Generator in einem ist (Abbildung 4). Hervorzuheben ist hier der 1-Prozent-Schritt beim analogen Auslösepunkt sowie die in das System integrierte programmierbare Makrozelle für Zustandsmaschinen und kundenspezifische Anpassungen mit verschiedenen Kombinationen.

Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (4)


Abbildung 4: In das System integrierte benutzerprogrammierbare Parameter erlauben die dynamische Bestimmung von Watchdog-Funktionen mithilfe einer benutzerkonfigurierbaren Logik, die auf Kombinationen und Zustandsmaschinen beruht.

Fazit

Es gibt Situationen, bei denen nichts auf der Welt ein System wiederherstellen kann. Einige Fehlerzustände können einfach nicht behoben werden. Wenn der Systemspeicher zum Beispiel korrupt ist, kann nichts und niemandem mehr getraut werden.

Ein anderer Fall ist ein sehr hohes Rauschen. Auch wenn der Watchdog dann den Prozessor zurücksetzt, kann sich das Rauschen störend auf den Start des Prozessors der Watchdog-Stufe auswirken. Wird die Watchdog-Funktion also nicht initialisiert, dann ist es so, als gäbe es gar keinen Watchdog.

Niemand kann sich auf einen 100-prozentig fehlerfreien Betrieb eines Mikrocontrollers rund um die Uhr verlassen. Schließlich können Mikrocontroller auf Abwege geraten. Der intelligente Einsatz von internen und externen Ressourcen aber kann den entscheidenden Unterschied markieren zwischen einem zu verkraftenden Ausfall und einem katastrophalen Sachschaden oder gar Schaden mit Todesfolge.

Weitere Informationen zu den in diesem Artikel beschriebenen Produkten finden Sie über die bereitgestellten Links zu den Produktseiten auf der DigiKey-Website.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Die Watchdog-Funktion in Mikrocontrollern wird zunehmend wichtiger (2024)
Top Articles
Latest Posts
Article information

Author: Lakeisha Bayer VM

Last Updated:

Views: 6217

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Lakeisha Bayer VM

Birthday: 1997-10-17

Address: Suite 835 34136 Adrian Mountains, Floydton, UT 81036

Phone: +3571527672278

Job: Manufacturing Agent

Hobby: Skimboarding, Photography, Roller skating, Knife making, Paintball, Embroidery, Gunsmithing

Introduction: My name is Lakeisha Bayer VM, I am a brainy, kind, enchanting, healthy, lovely, clean, witty person who loves writing and wants to share my knowledge and understanding with you.