Hallo Dirk,

Das einfachste ist ein Watchdog. Hat heute fast jeder µC mit drauf.

Bei der einfachsten Variante darf der Timer einfach nie ablaufen, andernfalls wird ein Hardware-Reset ausgelöst.

Nun kann aber das Programm so durchdrehen, dass es nur noch dauernd den Watchdog zurücksetzt
Für diesen Fall gibt es eine verbesserte Variante, bei welcher das zurücksetzen innerhalb eines bestimmten Zeitfensters erfolgen muss.
Wird zu früh oder zu spät zurückgesetzt gibt es einen Reset.

Ein Problem ist natürlich der Aufwand und die Komplexität der ganzen Überwachung. Wird das System zu kompliziert, führt alleine dieses schon zu vermehrten Ausfällen.

Bei kritischen Systemen (z.B. Flugzeug) baut man alles 3-fach auf, hier liegt das Optimum.
Bei 3 System geht man dann davon aus, dass die Mehrheit recht hat. Auch die Aktoren sind 3-fach vorhanden, wobei jeder Aktor die nötigen Kräfte alleine aufbringen kann. Im Fehlerfall arbeiten dann zwei Aktoren gegeneinander und kompensieren sich Kräftemässig, der Dritte hat dann die eigentliche Arbeit!
Bei der Zivilluftfahrt hat man dann auch noch an mögliche Systematische Fehler gedacht. Jeder der 3 Rechner benutzt eine andere CPU-Architektur eines anderen Herstellers. Zudem wird alles von 3 unabhängigen Teams entwickelt, auch die Software. Damit versucht man zu verhindern, dass Architektur- oder Herstellungsfehler, auch der CPU, nicht auf allen 3 Systemen gleichzeitig auftreten können. z.B. hatte der 80386 anfänglich mehrere, temperaturabhängige Rechenfehler im 32-Bit Teil.

Das Spaceshuttle hatte 3 identische Rechner und einen Backuprechner zur Überwachung. die ersten 1 oder 2 Starts wurden verhindert, weil die Rechner nicht ganz synchron liefen und deshalb dauernd eine fehlerhafte Datenverarbeitung gemeldet wurde.

Die Leitstelle der BVB (Basler Verkehrs Betriebe) bestand in den 70er Jahren aus zwei PDP11. Einer kleineren, welche normalerweise die Arbeit machte und einer grösseren, welche die erste überwachte und im Fehlerfall die Arbeit der ersten übernahm.

Beim Mars-Rover wird natürlich Verschiedenes verwendet.
Wichtige Systeme sind, wenn möglich, mehrfach vorhanden, Ist auch eine Gewichts und Kostenfrage, weshalb man auch nicht alle Experimente doppelt mitnehmen kann.
Im Fehlerfall stoppt das Teil erst mal und fährt unwichtiges runter.
Das wichtigste ist dann die Funkverbindung, wenn die unterbrochen ist, werden erst mal die Antennen in die Grundposition gefahren und ausgerichtet.
Dann kann das Teil eine Menge an internen Spannungen, Strömen, Temperaturen, Positionen usw. messen und zwecks Analyse Richtung Erde funken.
Auch hat man verschieden Versorgungsspannungs-Busse und die Geräte können da unterschiedlich um- und abgekoppelt werden.
Festverdrahtet ist dann noch ein Monitorprogramm um das ganze Teil notfalls wieder hoch zu bekommen.
Für den Mars-Rover gab es übrigens zwei unterschiedliche Programme. Eines für den ganzen Flugbetrieb und eines für die Mission. Dasjenige für die Mission war irgendwo versteckt und komprimiert abgelegt. Nach der Landung wurde dann das Flugprogramm gelöscht und durch das eigentliche Missionsprogramm ersetzt.

MfG Peter(TOO)