Dismiss
The InnovationQ application will be updated on Sunday, May 31st from 10am-noon ET. You may experience brief service interruptions during that time.
Browse Prior Art Database

Verfahren zur Sicherung einer exakten Watchdogfunktion bei Mikrocontrollern

IP.com Disclosure Number: IPCOM000016884D
Original Publication Date: 1998-Oct-01
Included in the Prior Art Database: 2003-Jul-21

Publishing Venue

Siemens

Related People

Authors:
Hans Rehaag Bernd Ette Peter Schust Andreas Pancke [+details]

Abstract

Die korrekte Funktion von Mikrocontroller, wie sie z.B. in elektrischen Überstromauslösern von Niederspannungs-Leistungsschaltern eingesetzt werden, wird üblicherweise durch Watchdog-Schaltungen überwacht. Hierbei wird die Watchdog-Schaltung periodisch mit einem Signal beaufschlagt, welches in der Hauptprogrammschleife generiert wird. Bleibt dieses Signal eine Zeit lang aus, so wird das System durch den Watchdog zurückgesetzt und neu gestartet. Ein Generieren des Signals in der Interrupt-Serviceroutine eines Timers verbietet sich, weil trotz eines Programmabsturzes die Interrupt-Serviceroutine noch weiterarbeiten kann und dem Watchdog so ein intaktes System vorspiegeln könnte. Verfängt sich das Programm nach dem Absturz in der signalerzeugenden Hauptschleife, so könnten trotz zerstörter Initialisierung der Interrupt-Serviceroutinen noch korrekte Signale erzeugt werden. Dies führt dazu, daß ein gefährlicher Zustand des Auslösers nicht erkannt wird. Bei der nun vorgeschlagenen Lösung nimmt man den Umstand zur Hilfe, daß die Interrupt- Serviceroutinen ohnehin nach Prioritäten geordnet sind. Zuerst erzeugt die Routine mit der niedrigsten Priorität ein „Watchdog-Signal-Enable“-Signal. Erkennt die nächst höhere Routine dieses Signal, so erzeugt sie ihrerseits ein derartiges Signal. Dieser Vorgang setzt sich solange fort, bis auch die Routine mit der höchsten Priorität ihr Signal erzeugt hat. Das Signal, mit dem der Watchdog periodisch beaufschlagt wird, wird nach wie vor in der Hauptschleife generiert. Diese Generierung erfolgt aber erst dann, wenn das „Watchdog- Singal-Enable“-Signal der höchstpriorsierten Routine vorliegt. Nach Ausgabe des Signals, welches den Watchdog periodisch beaufschlagt, werden sofort alle Enable-Signale zurückgenommen. Erst wenn wieder alle Interrupt-Serviceroutinen in der Reihenfolge ihrer Priorität durchlaufen wurden, kann in der Hauptschleife ein neues Signal generiert werden.