Leseprobe zu "Mikroprozessortechnik: Elektronik 5 (eBook)"
9 Sicherheitsmaßnahmen und Energieeinsparung (S. 289-290)
Da Steuerungen oft in einer elektrisch stark gestörten Umgebung einwandfrei arbeiten müssen, etwa neben großen Elektromotoren oder in Schaltschränken, muß Vorsorge getroffen werden, daß bei einem Programmabsturz – sei es durch Störimpulse oder durch Softwarefehler – die Steuerung nicht außer Kontrolle gerät, was evtl. großen Schaden anrichten könnte. Hardwareseitig kann die Störfestigkeit durch metallische Gehäuse, HF-dichte Durchführungen für Stecker, Filter in allen Signalleitungen und den Spannungsanschlüssen, also EMV-gerechtes Design, erhöht werden. Softwareseitig gibt es Zähler (Watchdog-Timer), die vom Programm, falls es korrekt arbeitet, periodisch zurückgesetzt werden. Unterbleibt wegen eines Programmabsturzes das Rücksetzen, läuft der Zähler über und löst einen Reset und damit einen Programmneustart aus. Maßnahmen zur Energieeinsparung sind bei batteriebetriebenen Geräten wichtig, um die Betriebsdauer zu erhöhen. Beim 80C537 gibt es drei Betriebsarten, die den Stromverbrauch vermindern.
Sicherheitsmaßnahmen und Energieeinsparung schließen sich zum Teil gegenseitig aus, bei hohen Sicherheitsanforderungen sollte das Umschalten in Stromsparmodi unterbleiben, da die Reaktivierung Zeit kostet und für Störungen anfälliger ist als der Normalbetrieb. Aus diesem Grund gibt es einen externen Steueranschluß (PE#/SWD, Power saving enable/Start watchdog timer), der das Einschalten von energiesparenden Betriebsarten verhindert und das Starten des Watchdog-Timers erzwingt. PE#/SWD =H Alle energiesparende Betriebsarten sind gesperrt. Maschinenbefehle, die sonst eine dieser drei Betriebsarten aktivieren können, haben keine Wirkung. Ist PE#/SWD gleich High während eines Reset, wird unmittelbar nach Reset der Watchdog Timer gestartet. PE#/SWD = L Jede der energiesparenden Betriebsarten kann durch Maschinenbefehle eingeschaltet werden. Der Watchdog-Timer muß, wenn gewünscht, durch Maschinenbefehle gestartet werden. Ist PE#/SWD nicht beschaltet, wird er durch einen hochohmigen Pull-up-Widerstand nach +5 V gezogen – als zusätzliche Sicherheit bei einem Drahtbruch an diesem Anschluß. Durch diese Maßnahmen wird mit sehr hoher Wahrscheinlichkeit ein versehentliches Einschalten der energiesparenden Betriebsarten verhindert. Der Steueranschluß PE#/SWD darf auch während des Betriebs umgeschaltet werden.
9.1 Watchdog (Fail Save)
Der 80C517 besitzt zwei Einheiten, die den Programmfluß überwachen und bei Hardwaredefekten oder bei Programmaufhängern einen Reset auslösen:
- ,den programmierbaren Watchdog-Timer (WDT) mit variabler Time-out-Periode von 512 μs bis etwa 1,1 s (bei fOSZ = 12 MHz),
- ,den Oszillator-Watchdog (OWD), der den Oszillator überwacht und bei Fehlern einen Reset auslöst.
9.1.1 Programmierbarer Watchdog-Timer
Ein Watchdog-Timer wird vom Oszillatortakt hochgezählt. Ein Überlauf löst einen internen Reset aus, der das Programm neu startet. Um den Überlauf des Watchdog-Timers zu verhindern, muß er durch das Anwenderprogramm periodisch innerhalb einer bestimmten Zeit zurückgesetzt werden. Der Watchdog-Timer nach Bild 9.1 besteht aus einem 15 Bit langen Zähler (WDTL und WDTH), der alle 2 oder alle 32 Maschinenzyklen einen Zählimpuls erhält (ein Maschinenzyklus benötigt 12 Oszillatortakte). Unmittelbar nach dem Start des Watchdog-Timers wird der Inhalt des Watchdog-Timer-Reload-Registers (WDTREL.0 - WDTREL.6) in den Watchdog- Timer geladen und bestimmt damit die Zeit zwischen zwei Überläufen. Zwischen Laden und Überlauf ergeben sich die in Tabelle 9.1 aufgeführten Zeiten. Nach einem Hardware-, Hardware-Power-down-, Oszillator-Power-on- oder einem Watchdog- Timer-Reset wird WDTREL gelöscht. Die niederwertigen 7 Bits von WDTREL können jederzeit durch einen Maschinenbefehl mit einem Wert geladen werden.