-
Die Erfindung betrifft ein Steuersystem umfassend einen Microcontroller und ein EEPROM zur Speicherung von Daten für den Microcontroller.
-
Derartige Steuersysteme, bei welchen ein Microcontroller mit einem EEPROM zusammenwirkt, um Daten des Microcontrollers zu speichern und für den Microcontroller zur Verfügung zu stellen, sind aus dem Stand der Technik bekannt. So beschreibt beispielsweise die Veröffentlichung von David Chen: „Using the 87C751 microcontroller to gang program PCF8582/PCF8581 EEPROMs. In: Shanghai Phillips Technology Applications Lab.. Schanghai: AN453. December 1994. – Firmenschrift, ein Steuersystem mit einem Microcontroller und einem EEPROM zur Speicherung von Daten für den Microcontroller, wobei zwischen einer Spannungsversorgung und einem Versorgungsanschluss des EEPROM ein Schalter vorgesehen ist, welcher durch einen Steueranschluss des Microcontrollers steuerbar ist.
-
Bei diesen bekannten Steuersystemen besteht das Problem, dass bei einer Funktionsstörung des Microcontrollers in der Datenkommunikation zwischen dem Microcontroller und dem EEPROM undefinierte Zustände auftreten können und auch Undefinierte Datensätze anliegen können, so dass das EEPROM in diesem Fall entweder falsche Daten abspeichert oder falsche Daten dem Microcontroller zur Verfügung stellt.
-
Der Erfindung liegt daher die Aufgabe zugrunde, ein Steuersystem der eingangs genannten Art derart zu verbessern, dass der Zugriff des Microcontrollers auf das EEPROM auch im Störungsfall sicher erfolgen kann.
-
Diese Aufgabe wird durch ein Steuersystem mit den Merkmalen des Anspruchs 1 gelöst. Das Steuersystem gemäß der Erfindung umfasst einen Microcontroller und ein EEPROM zur Speicherung von Daten für den Microcontroller, wobei zwischen einer Spannungsversorgung und einem Versorgungsanschluss des EEPROM ein Schalter vorgesehen ist, welcher durch einen Steueranschluss des Microcontrollers steuerbar ist. Das Steuersystem zeichnet sich dadurch aus, dass in dem Microcontroller eine Systemresetroutine vorgesehen ist, welche nach einer Funktionsstörung des Microcontrollers automatisch im Microcontroller gestartet wird und bei einem Durchlauf an dem Steueranschluss ein Unterbrechungssignal ausgibt, welches für eine Unterbrechungszeitdauer den Schalter öffnet und das EEPROM zurücksetzt.
-
Der Vorteil der erfindungsgemäßen Lösung ist darin zu sehen, dass somit durch die Systemresetroutine im Microcontroller, die nach einer Funktionsstörung des Microcontrollers automatisch in diesem gestartet wird, sichergestellt werden kann, dass auch ein Zurücksetzen des EEPROM erfolgt, also dass insbesondere an dessen Eingängen anliegende Informationen oder Steuerbefehle gelöscht werden und bei einem späteren Zugriff des Microcontrollers auf das EEPROM die zu übertragenden Daten nicht verfälschen.
-
Damit kann sichergestellt werden, dass nach jeder Funktionsstörung des Microcontrollers wieder eine zuverlässige Übertragung von Daten zwischen Microcontroller und EEPROM möglich ist, ohne dass durch die Funktionsstörung nicht gelöschte Signale oder Daten vorhanden sind.
-
Da bei der erfindungsgemäßen Lösung die Systemresetroutine ohne Berücksichtigung des Zustandes des Microcontrollers und des EEPROM, in welchem die Funktionsstörung erfolgte, das Unterbrechungssignal ausgibt, ist vorzugsweise vorgesehen, dass die Systemresetroutine das Unterbrechungssignal nach einer definierten Wartezeit ab dem Start der Systemresetroutine ausgibt.
-
Diese Lösung hat den Vorteil, dass damit die Möglichkeit geschaffen wird, das EEPROM nach Start der Systemresetroutine des Microcontrollers noch so lange zu betreiben, dass dieses bereits begonnene Vorgänge abschließen kann.
-
Eine besonders zweckmäßige Lösung sieht dabei vor, dass die definierte Wartezeit mindestens der Schreibzeitdauer des EEPROM entspricht. Damit kann sichergestellt werden, dass für den Fall, dass dann, wenn beim Auftreten der Funktionsstörung das EEPROM bereits begonnen hat, die übertragenen Daten in seinen Speicher zu schreiben, das EEPROM die Möglichkeit hat, diesen Schreibvorgang zu beenden, ohne dass dieses durch das Unterbrechungssignal zurückgesetzt wird, so dass die bereits vollständig übertragenen Daten zuverlässig im EEPROM abgelegt werden können.
-
Vorzugsweise ist dabei vorgesehen, dass die definierte Wartezeit mindestens 10 ms noch besser 20 ms beträgt.
-
Hinsichtlich der Kommunikation zwischen dem Microcontroller und dem EEPROM wurden bislang keine näheren Angaben gemacht.
-
So ist vorzugsweise vorgesehen, dass der Microcontroller mit dem EEPROM Daten über ein Interface austauscht.
-
Ein derartiges Interface ist beispielsweise ein übliches für EEPROM's eingesetztes Interface.
-
Beispielsweise ist das Interface ein SPI-Interface.
-
Um zu verhindern, dass auch durch das Interface noch Signale oder Daten vorhanden sind, die nach Auftreten der Funktionsstörung des Microcontrollers nicht gelöscht wurden, ist vorzugsweise vorgesehen, dass die Systemresetroutine vor dem Auslösen des Unterbrechungssignals einen Reset des Interface bewirkt.
-
Damit werden in dem Interface noch vorhandene Daten und Befehle, die aufgrund der Funktionssteuerung des Microcontrollers nicht zur Ausführung kamen, gelöscht.
-
Ferner ist vorzugsweise vorgesehen, dass das Unterbrechungssignal beendet ist, bevor eine Initialisierung des Interface durch die Systemresetroutine erfolgt.
-
Das heißt, dass auch durch das Unterbrechungssignal das EEPROM vollständig zurückgesetzt wird und alle gegebenenfalls noch durch die Funktionsstörung nicht gespeicherten Daten oder nicht ausgeführten Befehle beim EEPROM gelöscht sind, bevor wiederum durch den Microcontroller eine Initialisierung des Interface erfolgt.
-
Weitere Merkmale und Vorteile der Erfindung sind Gegenstand der nachfolgenden Beschreibung sowie der zeichnerischen Darstellung eines Ausführungsbeispiels.
-
In der Zeichnung zeigt:
-
1 eine schematische Darstellung eines erfindungsgemäßen Steuersystems mit einem Microcontroller und einem EEPROM.
-
Ein Ausführungsbeispiel eines erfindungsgemäßen Steuersystems, dargestellt in 1, umfasst einen als Ganzes mit 10 bezeichneten Microcontroller, welcher zum Betrieb an einer Versorgungsspannung einerseits an eine Versorgungsspannung UV und andererseits an Masse angeschlossen ist.
-
Der Microcontroller 10 umfasst eine Vielzahl von Anschlüssen 12, die entweder Ausgänge für Steuersignale oder Eingänge für Signale sein können.
-
Ferner umfasst der Microcontroller 10 Anschlüsse 14 einer SPI-Interfaceeinheit 16, über welche eine Datenkommunikation mit einer SPI-Interfaceeinheit 18 eines als Ganzes mit 20 bezeichneten EEPROM, beispielsweise einen EEPROM des Typs 25AA256 oder 25LC256 mit SPI Interface der Firma Microchip Technology Inc., erfolgt, die ihrerseits den Anschlüssen 14 des Microcontrollers 10 entsprechende Anschlüsse 22 aufweist, die durch einen Leitungsstrang 23 miteinander verbunden sind.
-
Zum Betrieb des EEPROM 20 ist ein Versorgungsanschluss 24 desselben mit der Versorgungsspannung UV verbunden und ein Masseanschluss 26 desselben mit der Masse M.
-
Ferner hat das EEPROM noch einen Hold-Anschluss 28, welcher separat angesteuert werden könnte, jedoch bei dem beschriebenen Ausführungsbeispiel nicht separat angesteuert ist und daher über einen Abgriff 32 mit dem Versorgungsanschluss 24 verbunden ist.
-
Ferner liegt zwischen dem Abgriff 32 und der Masse M noch ein Kondensator 34, welcher dazu dient, am Abgriff 32 auftretende Störungen durch das EEPROM zu filtern. Die Kapazität des Kondensators 34 liegt dabei beispielsweise im Bereich von 10 nF bis 100 nF.
-
Zwischen dem Abgriff 32 und der Versorgungsspannung UV liegt ein Schalter 40, welcher als Transistor ausgebildet ist, wobei eine Basis 42 dieses Transistors 40 über einen Spannungsteiler 44 mit der Masse M verbunden ist und ein Mittelabgriff 46 des Spannungsteilers 44 mit einem Steueranschluss 48 des Microcontrollers 10 verbunden ist, so dass über den Steueranschluss 48 des Microcontrollers 10 der Schalter 40 steuerbar ist.
-
An dem Steueranschluss 48 liegt im Normalbetrieb kein Signal an, so dass der Schalter 40 geschlossen, das heißt der Transistor durchgesteuert, ist und folglich das EEPROM 20 mit seinem Versorgungsanschluss 24 und dem Hold-Anschluss 28 direkt mit der Versorgungsspannung UV verbunden ist.
-
Zum Schreiben oder Lesen von Daten werden über die Anschlüsse 14 des Microcontrollers und die Anschlüsse 22 die bei dem SPI-Interface 16, 18 üblichen Befehle ausgetauscht.
-
Beispielsweise erfolgt eine Datenübertragung über die Anschlüsse SI und SO des EEPROM 20, während ein Schreibbefehl über den Anschluss CS des EEPROM 20 erfolgt, wobei der Schreibbefehl über den Anschluss CS seitens des Microcontrollers 10 nur dann gegeben wird, wenn bereits Daten über den Anschluss SI auf das EEPROM 20 übertragen werden. Zum Abschluss der Übertragung der Daten erfolgt dann über den Anschluss CS der Befehl zum Schreiben der Daten in das EEPROM 20.
-
Erfolgt jedoch eine Störung der Funktion des Microcontrollers 10, beispielsweise durch eine Spannungsschwankung oder ähnliches, während der Übertragung von Daten von dem Microcontroller 10 auf den EEPROM 20 und wird die Datenübertragung nicht vollständig durchgeführt oder das Signal zum Schreiben der Daten in dem EEPROM 20 nicht gegeben, so tritt eine Systemstörung auf, da an den Anschlüssen 22 des EEPROM 20 ein Undefinierter Zustand vorliegt.
-
Nach einer derartigen Störung des Microcontrollers 10 wird in diesem üblicherweise eine Systemresetroutine 50 gestartet, die ihrerseits jedoch ebenfalls nicht in der Lage ist, zu erkennen, in welchem Zustand der Zugriff auf das EEPROM 20 stehen geblieben ist.
-
Aus diesem Grund ist in der Systemresetroutine 50 des Microcontrollers 10 ein Rücksetzschritt 52 vorgesehen, welcher dazu führt, dass am Steueranschluss 48, beispielsweise durch das Signal ”High”, ein Unterbrechungssignal US ausgegeben wird, welches während einer Unterbrechungszeitdauer im Bereich von beispielsweise 50 ms bis 200 ms die Basis 42 des Transistors 40 so ansteuert, dass der Schalter 40 die Verbindung zwischen dem Abgriff 32 und der Spannungsversorgung UV unterbricht und dadurch das EEPROM 20 ausschaltet und nach der Unterbrechungszeitdauer wieder einschaltet, wobei alle Undefinierten Zustände an den Anschlüssen 22 gelöscht werden.
-
Damit besteht die Möglichkeit, alle Undefinierten Zustände an den Anschlüssen 22 des EEPROM zu löschen und somit wiederum die Kommunikation zwischen dem Microcontroller 10 und dem EEPROM 20 mit einem eindeutig definierten Zustand neu zu starten.
-
Vorzugsweise führt die Systemresetroutine 50 den Rücksetzschritt 52 erst nach einer definierten Wartezeit ab dem Start 54 der Systemresetroutine 50 aus, um dem EEPROM 20 gegebenenfalls noch die Möglichkeit zu geben, einen bereits begonnenen Schreibvorgang abzuschließen, so dass die Wartezeit mindestens der Schreibzeitdauer des EEPROM 20 entspricht.
-
Ferner folgt in der Systemresetroutine 50 nach dem Start 54 und vor dem Rücksetzschritt 52 ein Resetschritt 56 für das SPI-Interface 16 und die Initialisierung des SPI-Interface 16 folgt in einem Initialisierungsschritt 58 der auf den Rücksetzschritt 52 folgt, so dass zu Zeiten des Initialisierungsschritts 58 für das SPI-Interface bereits das EEPROM 20 wieder voll funktionsfähig ist.
-
Erfindungsgemäß hat das Unterbrechungssignal US dabei eine Unterbrechungszeitdauer, die mit Sicherheit zu einem Rücksetzen des EEPROM 20 führt, insbesondere eine Zeitdauer, die größer ist als die Zeitkonstante des Kondensators 34 und parasitärer Kapazitäten, so dass mit Sicherheit die Spannung am Versorgungsanschluss 24 und dem Hold-Anschluss 28 auf ein Maß abfällt, welches zu einem Löschen der Daten an sämtlichen Anschlüssen 22 des EEPROM 20 führt.
-
Damit lassen sich bei einer Funktionsstörung des Microcontrollers 10 zum Beispiel folgende Zustände beherrschen.
-
Erfolgt beispielsweise in einem ersten Fall die Störung der Funktion des Microcontrollers 10 in einem Zustand, in welchem noch Daten über das SPI-Interface 16, 18 von den Anschlüssen 14 des Microcontrollers 10 zu den Anschlüssen 22 des EEPROM 20 übertragen werden, so gibt der Microcontroller 10 beispielsweise an dem Anschluss CS nicht den Befehl zum Schreiben der Daten in das EEPROM 20, da die Funktion des Microcontrollers 10 gestört ist.
-
Würde nun die Systemresetroutine 50 gestartet werden, und einen System-reset des Microcontrollers 10 bewirken, so würden an den Anschlüssen 22 des EEPROM 20 nicht mehr definierte Zustände und Signale vorliegen.
-
Im Übrigen würde das EEPROM 20 immer noch auf den Abschluss der Datenübertragung und am Anschluss CS auf das Signal zum Schreiben der Daten warten.
-
Aus diesem Grund ist in der Systemresetroutine 50 der Rücksetzschritt 52 vorgesehen, welcher nach einer Wartezeit nach dem Start 54 der Systemresetroutine 50 an dem Ausgang 48 das Unterbrechungssignal US ausgibt, das dazu führt, dass der Schalter 40 den Mittelabgriff 32 und somit auch den Versorgungsanschluss 24 und den Hold-Anschluss 28 von der Versorgungsspannung UV für die Unterbrechungszeitdauer trennt, so dass ein vollständiges Zurücksetzen des EEPROM 20 unter Löschen der an den Anschlüssen 22 anliegenden Signale erfolgt.
-
Damit sind alle Undefinierten Zustände an den Anschlüssen 22 des EEPROM 20 gelöscht.
-
Somit kann die Systemresetroutine 50, die nach dem Start 54 bereits im Resetschritt 56 einen Reset des SPI-Interface 16, 18 ausgelöst und damit im SPI-Interface 16, 18 unvollständig übertragene Informationen gelöscht hat, nach dem Rücksetzschritt 52 den Initialisierungsschritt 58 für das SPI-Interface durchführen und nach Abschluss der Systemresetroutine 50 in bereits bekannter Weise über das SPI-Interface Daten übertragen.
-
Erfolgt nun beispielsweise in einem zweiten Fall eine Störung des Microcontrollers 10 zu einem Zeitpunkt, zu dem über das SPI-Interface 16, 18 bereits Daten zu dem EEPROM 20 übertragen wurden und auch der Schreibbefehl über den Anschluss CS des EEPROM 20 gegeben wurde, so nimmt das EEPROM 20 während der Zeitdauer, welche benötigt wird, um die Daten in dem Speicher des EEPROM 20 zu schreiben, keine Veränderung der Signale an den Anschlüssen 22 wahr.
-
Eine Störung der Funktion des Microcontrollers 10 während der zum Schreiben benötigten Zeitdauer ist somit für die Funktion und den Schreibvorgang des EEPROM 20 irrelevant.
-
Allerdings ist sicherzustellen, dass selbst bei einer Störung der Funktion des Microcontrollers 10 und somit dem Start der Systemresetroutine 50 während der Zeitdauer zum Schreiben keine Unterbrechung der Spannungsversorgung des EEPROM 20 erfolgt.
-
Aus diesem Grund ist in der Systemresetroutine 50 die Wartezeit zwischen dem Start 54 und dem Durchführen des Rücksetzschritts 52 mindestens so groß wie die Zeitdauer des EEPROM 20 zum Schreiben, beispielsweise größer als 20 ms, noch besser größer als 50 ms, so dass nach einem Ausgeben des Schreibbefehls seitens des Microcontrollers 10 das EEPROM 20 auf jeden Fall die Möglichkeit hat, die empfangenen Daten in seinen Speicher einzuschreiben bevor ein Unterbrechen der Verbindung zwischen der Versorgungsspannung UV und dem Abgriff 32 und somit dem Versorgungsanschluss 24 und dem Hold-Anschluss 28 des EEPROM 20 erfolgt.
-
Damit hat das EEPROM 20 die Möglichkeit, unbehelligt von der Störung des Microcontrollers 10 und dem Anlaufen der Systemresetroutine 50 im Microcontroller 10 den Schreibvorgang für die Daten zu beenden und erst dann erfolgt, ausgelöst durch den Rücksetzschritt 52, die Ausgabe des Unterbrechungssignals 48, das zwar in diesem Fall nicht zwingend erforderlich ist, jedoch aufgrund des in der Systemresetroutine 50 vorgesehenen Rücksetzschritts 52 stets beim Ablauf der Systemresetroutine 50 erfolgt, zu einem Zeitpunkt, zu dem der Schreibvorgang für die Daten in dem EEPROM 20 abgeschlossen ist, und somit zu einem Zeitpunkt, zu dem ein Rücksetzen desselben durch Unterbrechen der Verbindung zwischen der Spannungsversorgung UV und dem Abgriff 32 durch den Schalter 40 ohne Funktionsbeeinträchtigung des EEPROM 20 erfolgen kann.
-
Somit kann auch durch den nachfolgenden Initialisierungsschritt 58 das SPI-Interface wieder in vollem Umfang initialisiert und die Kommunikation zwischen dem Microcontroller 10 und dem EEPROM 20 aufgenommen werden.