-
Die Erfindung beschreibt ein Verfahren zum Schreiben von Daten in und zum Lesen von Daten aus einem elektronischen Datenspeicher, sowie einen Mikrocontroller der zur Durchführung der Verfahren ausgebildet ist.
-
Die Erfindung ist insbesondere im Kontext eines integrierten Mikrocontrollers zu sehen, der zur Steuerung eines elektrischen oder elektronischen Geräts, beispielsweise eines Aktuators in einem Automobil, verwendet wird. Der Mikrocontroller hat in der Regel Zugriff auf einen Datenspeicher, in dem das Betriebsprogramm und beispielsweise Betriebsparameter des Aktuators oder andere Daten gespeichert sind.
-
Insbesondere im Automobilbereich muss zu jeder Zeit sichergestellt sein, dass der Aktuator mit gültigen Betriebsparametern betrieben wird. Elektronische Speicher haben zwar eine sehr hohe Datensicherheit, dennoch können Bereiche oder einzelne Speicherzellen einen Datenverlust erleiden. Dies kann beispielsweise durch äußere Einflüsse erfolgen oder durch Fehlfunktionen im Speicher selbst verursacht werden.
-
Dies trifft sowohl auf magnetische Speicher, wie insbesondere Festplatten, als auch auf sogenannte Festkörperspeicher, wie EEPROM- oder Flash-Speicher, zu. Ein solcher Datenverlust kann daher dazu führen, dass keine gültigen Betriebsparameter zur Verfügung stehen.
-
Ein solcher Datenverlust kann nicht verhindert werden. Es können lediglich Maßnahmen ergriffen werden, die einen Datenfehler korrigieren können.
-
Bei Computermainboards ist es beispielsweise bekannt, für das Betriebsprogramm (BIOS) zwei identische ROMS oder Flash-Speicher zu verwenden, für den Fall, dass einer der Datenspeicher von einem solchen Datenverlust betroffen ist. Dies ist jedoch in einer integrierten Steuerung nicht immer möglich, da oft nicht genug Platz auf der Platine der Steuerung vorhanden ist und die Kosten zu hoch sind.
-
Aufgabe der Erfindung ist es daher, eine einfache und hinreichend sichere Methode der Datenspeicherung zu schaffen, die mit einem kostengünstigen Mikrocontroller für integrierte Steueraufgaben realisierbar ist.
-
Diese Aufgabe wird erfindungsgemäß durch einen Mikrocontroller mit den Merkmalen des Anspruch 11 sowie durch die Verfahren nach Anspruch 1, 7 und 9 gelöst.
-
Erfindungsgemäß werden alle Daten in sogenannten Datenworten im Datenspeicher gespeichert. Ein Datenwort hat eine definierte Breite, beispielsweise 3 Byte.
-
Jedes Datenwort wird zusätzlich mit einer Prüfsumme versehen, die zusammen mit dem Datenwort im Datenspeicher an einer eindeutigen Adresse abgelegt wird um beispielsweise eine zyklische Redundanzprüfung (cyclic redundancy check, CRC) zu ermöglichen. Zur Redundanzprüfung eignet sich beispielsweise eine CRC Prüfsumme oder eine andere bekannte Prüfsumme.
-
Im folgenden wird das Schreiben oder Lesen von Daten an einer Speicheradresse in dem Sinne von Schreiben oder Lesen von Daten in dem einer Speicheradresse zugeordnetem Datenspeicher verwendet.
-
Aufgrund der begrenzten Ressourcen im Mikrocontroller wird erfindungsgemäß eine Prüfsumme verwendet, die einfach zu berechnen ist, beispielsweise eine invertierte Modulo-256-Summe über alle Bytes des Datenwortes. Mit dieser Prüfsumme ist ein Fehler im Datenwort erkennbar. Die Prüfsumme enthält aufgrund der Einfachheit aber keine Informationen zur Widerherstellung des Datenwortes, da dies die Rechenleistung und Speicherausstattung eines kleinen integrierten Mikrocontrollers überfordern würde.
-
Damit auch im Fehlerfall jederzeit korrekte Daten vorliegen, sind daher erfindungsgemäß alle Datenwörter mehrfach im Datenspeicher abgelegt. Erfindungsgemäß wird zur Ermittlung der zweiten Adresse ein fester Adressversatz verwendet, der zur ersten Adresse einfach hinzuaddiert wird. Dies kann auch in einem einfachen Mikrocontroller implementiert werden. Alternativ kann anstelle des Adressversatzes auch eine andere eindeutige Zuordnungsvorschrift zwischen mindestens zwei Speicheradressen verwendet werden, wobei die mindestens zwei Speicheradressen auch in verschiedenen Speichern liegen können.
-
Ist ein Datenwort nicht gültig, was durch die Prüfsumme feststellbar ist, wird erfindungsgemäß auf eine Datenkopie zugegriffen. Ist keines der im Datenspeicher befindlichen Datenworte gültig, wird erfindungsgemäß ein Standardwert (default value) verwendet und/oder eine Fehlermeldung ausgegeben und/oder bei Bedarf eine Fehlerfunktion ausgeführt. Dieser Standardwert kann in einem separaten Datenspeicher, wie einem Flash-Speicher, gespeichert sein, beispielsweise als Nur-Lese Daten. Der Standardwert kann dann vorzugsweise beim ersten Starten der Applikation vom separaten Datenspeicher in den eigentlichen Datenspeicher kopiert werden. Bei allen weiteren Starts der Applikation ist es nicht mehr notwendig alle Standardwerte vom separaten Datenspeicher in den Datenspeicher zu kopieren. Beispielsweise können auch die Standardwerte im separaten Datenspeicher mit einer Prüfsumme versehen sein, die beim Start der Applikation mit einer Prüfsumme der im Datenspeicher abgelegten Daten verglichen wird. Stimmen diese Prüfsummen nicht überein, werden die entsprechenden Standardwerte erneut in den Datenspeicher kopiert. Insbesondere bei für den Betrieb notwendigen Daten ist das Bereitstellen eines Standardwertes vorteilhaft. Dies kann beispielsweise die Drehrichtung eines Elektromotors oder ein Verfahrweg eines Aktuators sein.
-
Voraussetzung für die Datensicherheit ist dabei, dass die Daten jeweils mehrfach im Datenspeicher vorliegen.
-
Die Daten im Datenspeicher können dabei beispielsweise Nur-Lese Daten sein, die einmalig im Datenspeicher abgelegt werden, beispielsweise nach erfolgter Erstinbetriebnahme des Systems. Die Daten können aber auch während dem Betrieb durch den Mikrocontroller laufend verändert und zur späteren Verwendung wieder im Datenspeicher abgelegt werden.
-
Die Erfindung umfasst daher auch ein Verfahren, mit dem Daten in den Datenspeicher geschrieben werden, wobei automatisch mindestens eine Kopie an mindestens einer weiteren Adresse im selben Datenspeicher mit einem festen Adressversatz (Offset) oder an einer weiteren Adresse eines anderen Datenspeichers, die durch eine feste Zuordnungsvorschrift aus der ersten Adresse bestimmbar ist, angelegt wird. Dadurch kann das erfindungsgemäße Leseverfahren angewendet werden und es stehen immer gültige Daten zur Verfügung.
-
Die Datensicherheit kann beim erfindungsgemäßen Verfahren beliebig erhöht werden, in dem statt einer mehrere Kopien im Datenspeicher gehalten werden. Wobei lediglich der zur Verfügung stehende Speicher ein limitierender Faktor ist.
-
In einer alternativen Ausführung des erfindungsgemäßen Schreibverfahrens ist für jedes Datenwort ein Adressbereich mit mehreren Adressen reserviert. Abweichend von dem oben beschriebenen Schreibverfahren wird hier jedoch jeweils nur ein Datenwort geschrieben, jedoch bei jedem Schreibvorgang in eine andere der reservierten Adressen. Dabei wird immer die Adresse mit dem ältesten Inhalt überschrieben. Dieses alternative Verfahren ist insbesondere zum Speichern von Zählerständen geeignet, wo der Zählerstand bei jedem Schreibvorgang um beispielsweise 1 inkrementiert wird.
-
Beim Lesen wird dann immer nur die Adresse mit dem jüngsten Wert ausgelesen. Ist dieser Wert ungültig, wird wie beim oben beschriebenen Leseverfahren die nächste Adresse im Adressbereich gelesen. Der Unterschied besteht nun darin, dass hier nicht der aktuellste, sondern ein älterer Zählerstand gespeichert ist. Der ausgelesene Wert unterscheidet sich lediglich um den letzten Inkrement Wert, beispielsweise 1, vom eigentlich richtigen Wert. Bei vielen Anwendungen ist es jedoch absolut unkritisch, wenn der Zählerstand eine minimale Abweichung aufweist. So spielt es für den Betrieb eines Geräts keine Rolle, ob der Betriebsstundenzähler eine Stunde mehr oder weniger aufweist, weshalb dieser Fehler zwar nicht gewünscht, jedoch üblicherweise akzeptierbar ist, da hier beispielsweise die Größenordnung des Wertes unverändert ist.
-
Um beispielsweise bei einem Zähler den neuesten Wert zu erhalten, werden alle Adressen im Adressbereich gelesen und miteinander verglichen. Der größte Wert ist hier der neueste.
-
Ist der Inhalt des Zählers kritisch, kann hier selbstverständlich auch für jede Adresse im Adressbereich mindestens eine weitere Kopie in mindestens einem weiteren Adressbereich angelegt werden, so dass genau der richtige Wert zur Verfügung steht.
-
Die Erfindung umfasst auch einen Mikrocontroller, der ein Mittel zum Lesen eines Datenwortes aus dem Datenspeicher, ein Mittel zur Bildung einer Prüfsumme über dieses Datenwort und ein Mittel zur Berechnung eines Adressversatzes aufweist. Dadurch ist er zur Ausführung des erfindungsgemäßen Verfahrens geeignet. Die Erfindung ist bisher so beschrieben, dass die Daten und die Datenkopien im selben Datenspeicher aber an einer Speicheradresse mit festem Versatz im Vergleich zur Speicheradresse der Daten gespeichert werden. Jedoch können die Datenkopien in einer anderen Ausführung der Erfindung ebenso in einem anderen Speicher ausgelagert sein, wobei jeweils eine eindeutige Zuordnungsvorschrift zwischen der Speicheradresse der Daten und der Speicheradresse der Datenkopie existieren muss.
-
In einer vorteilhaften Weiterbildung der Erfindung weist der Mikroprozessor zusätzlich ein Mittel zum Schreiben von Daten in den Datenspeicher nach dem erfindungsgemäßen Verfahren auf.
-
Das erfindungsgemäße Verfahren ist nachfolgend anhand eines bevorzugten Ausführungsbeispiels mit Bezug auf die beiliegenden Zeichnungen näher erläutert.
-
Es zeigt:
-
1 eine schematische Darstellung eines Datenspeichers mit mehreren Datenworten,
-
2 eine schematische Darstellung eines Datenspeichers mit einem Datenwort, für das mehrere Adressen eines Adressbereichs reserviert sind,
-
3 eine schematische Darstellung eines Stellmotors zum Ansteuern von Luftklappen in einem Automobil,
-
4 ein Blockschaltbild eines erfindungsgemäßen Mikrocontrollers,
-
5 ein Ablaufdiagramm des Leseverfahrens und
-
6 ein Ablaufdiagramm des Schreibverfahrens.
-
Die Erfindung ist am Beispiel eines Stellmotors 1, der zum Ansteuern von Luftklappen 2 in einem Automobil dient, erläutert (3). Selbstverständlich ist die Erfindung in keiner Weise auf diese Anwendung beschränkt und ohne weitere Änderung für viele weitere Anwendungen einsetzbar.
-
Der Stellmotor 1 ist eine vollständig integrierte Lösung, bei der ein Antriebsmotor 3, ein Getriebe 4 und die Ansteuerelektronik 5 mit einem Mikrocontroller 6 in einem wasser- und staubdichten Gehäuse 7 angeordnet sind. Durch die Anwendung in einem Automobil unterliegt der Stellmotor 1 einer Reihe von Anforderungen, die nur durch diese integrierte Bauweise erfüllt werden können.
-
Der Antriebsmotor 3 ist ein bürstenloser Gleichstrommotor, der über einen Motortreiber 8 mit einer Schaltbrücke 9 angesteuert wird. Der Motortreiber 8 ist Teil Ansteuerung dieser Schaltbrücke 9 erfolgt durch den Mikrocontroller 6. Der Motor hat beispielsweise 6 oder 12 Magnetpole und 9 Statorslots. Durch die verteilte Geometrie werden die harmonischen Frequenzen im EMV-Spektrum gesenkt.
-
Der Mikrocontroller 6 (4) enthält das Betriebsprogramm, das zur Ansteuerung des Motors notwendig ist. Zusätzlich ist es für den Betrieb im Automobil vorgeschrieben, dass der Mikrocontroller 6 Fehlerzustände erkennt und protokolliert. Das Betriebsprogramm und die Fehlerdaten werden im Datenspeicher 10 des Mikrocontrollers 6 gespeichert.
-
Der Mikrocontroller 6 ist so ausgelegt, dass er an beliebigen Spannungen von 6 V bis 19 V DC direkt betrieben werden kann, so dass keine zusätzlichen Spannungswandler notwendig sind. Dabei erfüllt der Mikrocontroller die Anforderungen für die in der ISO 7637-2 genormten Spannungsimpulse und kann auch bei kurzzeitigen Spannungsspitzen von bis zu 45 V betrieben werden. Somit kann der Mikrocontroller 6 in Automobilanwendungen direkt am Bordnetz betrieben werden. Weiterhin sind alle für den Betrieb notwendigen Bausteine in einer Ansteuerschaltung 5 integriert, unter anderem eine LIN-Schnittstelle 11, weitere Schnittstellen 12, der Motortreiber 8, ROM, Flash-Speicher, EEPROM, PWM-Schnittstelle 13 und Digital-IO-Schnittstelle. Der Stellmotor 1 weist insbesondere eine LIN-Bus Schnittstelle 11 auf, wie sie im Automobilbau verwendet wird. Über diesen Bus kann die Ansteuerschaltung 5 konfiguriert und eventuelle Fehler ausgelesen werden. Alternativ können der oder die Datenspeicher, wie die erwähnten Flash-Speicher oder EEPROMs, einerseits auch direkt im Mikrocontroller 6 integriert sein oder andererseits auch ausserhalb der Ansteuerschaltung 5 beispielsweise in einem separaten Baustein untergebracht sein.
-
Der Elektromotor wird sensorlos angesteuert, wodurch im Wesentlichen auf Lagesensoren verzichtet werden kann. Die Ansteuerschaltung 5 weist lediglich einen Hall-Sensor 14 auf, mit dem festgestellt werden kann, ob sich der Motor 3 dreht. Insbesondere ist es vorteilhaft, wenn die Pol-Slot-Kombination so gewählt ist, dass die Anzahl der Hall-Wechsel ein Vielfaches von 360° beträgt.
-
Die Ansteuerelektronik des Stellmotors ist so auf einer Leiterplatte angeordnet, dass alle Bauteile auf einer Leiterplattenseite angeordnet sind. Insbesondere ist die Leiterplatte so dicht am Antriebsmotor 3 angeordnet, dass der Hall-Sensor 14 ebenfalls auf der Leiterplatte der Ansteuerelektronik 5 angeordnet sein kann. Dadurch kann die Rückseite der Leiterplatte als zusätzliche Kühlfläche und als elektrische Abschirmung dienen.
-
Die Ansteuerelektronik 5 weist umfassende Kontroll- und Diagnosefunktionen auf. Sie kann elektrische Fehler und Abweichungen von Betriebsparametern, wie beispielsweise Unter- oder Überspannungen, Temperatur, Überstrom sowie Abweichungen im Verhalten des Aktuators, eigenständig erkennen, auswerten und sich bei Bedarf schützen sowie auf Anforderung von einem Bus-Master Fehlerzustände mitteilen. Dazu kann sie weitere Sensoren enthalten, oder weitere Sensoren können über die Schnittstelle 12 angesteuert werden.
-
Für die beschriebene Anwendung im Automobil ist ein fehlerloser Betrieb unter allen Umständen notwendig, da eine Fehlfunktion unter Umständen Einfluss auf die Sicherheit der Personen haben kann.
-
Aus diesem Grund ist es insbesondere wichtig, dass die Ansteuerelektronik 5 stets auf korrekte Daten zurückgreifen kann. Dies betrifft insbesondere Konfigurationsdaten und Betriebsparameter, die im Datenspeicher 10 des Mikrocontrollers 6 gespeichert sind.
-
Die 1 zeigt schematisch einen solchen Datenspeicher 10, der in Form einer Tabelle dargestellt ist. Dieser Datenspeicher 10 ist beispielsweise ein EEPROM oder Flash-Speicher, der im Mikrocontroller 6 integriert ist.
-
Der Datenspeicher 10 im Beispiel ist so organisiert, dass er an jeder Speicheradresse vier Byte Daten aufnehmen kann. Diese vier Byte sind unterteilt in ein drei Byte großes Datenwort 15 und ein Byte Prüfsumme (CRC). Die Prüfsumme CRC ist im Beispiel eine invertierte Modulo-256-Summe über die drei Byte des Datenwortes 15. Diese Prüfsumme ist beispielsweise im LIN-Protokoll Standard und daher hinreichend bekannt.
-
In anderen Anwendungen kann der Datenspeicher anders organisiert sein, insbesondere können die Datenwörter und/oder die Prüfsumme andere Byte-Größen aufweisen.
-
Als Datenspeicher 10 kann neben einem integrierten Festspeicher aber auch ein separater Speicherbaustein oder auch eine Festplatte verwendet werden.
-
Zum Lesen eines Datenwortes wird zunächst gemäß 5 das Datenwort 15 und die Prüfsumme CRC von der gewünschten Adresse aus dem Speicher 10 gelesen 17 und 18. Danach wird aus dem Datenwort 15 die Prüfsumme CRC berechnet und mit der gelesenen Prüfsumme 19 verglichen. Sind die Prüfsummen nicht identisch, liegt ein Datenfehler vor. In diesem Fall wird zunächst die Adresse mit dem festen Adressversatz (Offset) addiert 20 und die Kopie des Datenworts 21 und die Prüfsumme der Kopie von dieser zweiten Adresse gelesen 22 und erneut mit der errechneten Prüfsumme verglichen 23. Sind auch diese Daten nicht gültig, wird für den Wert des Datenwortes ein Standardwert verwendet 24, der einen sicheren Weiterbetrieb des Systems erlaubt. Ist dies nicht möglich, beispielsweise bei kritischen Daten, wird eine Fehlermeldung ausgegeben und/oder der Betrieb verweigert beziehungsweise eine Fehlerfunktion ausgeführt. Der Standardwert 24 kann beim Start der Applikation aus einem separaten Datenspeicher gelesen werden, wobei der Standardwert 24 ebenfalls mit einer Prüfsumme versehen sein kann. Bei Bedarf können die Prüfsummen der Standartwerte 24 mit der Prüfsumme ihrer jeweiligen Kopie verglichen werden. Anhand der Prüfung kann dann jeweils entschieden werden, ob ein Kopieren eines Standarwertes 24 in den Datenspeicher 10 notwendig ist.
-
Ein Datenfehler kann nicht nur durch einen Fehler im Datenspeicher verursacht werden. Es könnte auch beispielsweise beim Lesevorgang durch externe Einflüsse zu einer Veränderung der Daten, etwa auf dem Signalweg, kommen. Daher ist es zweckmäßig, wenn der Lesevorgang der Datenkopie erst mit einer Verzögerung stattfindet, damit eventuell die äußeren Einflüsse beim zweiten Lesen nicht mehr vorliegen. Alternativ könnte auch zunächst immer ein zweites Mal von der ersten Adresse gelesen werden, bevor auf die Kopie an der zweiten Adresse zurückgegriffen wird, um solche äußeren Effekte auszuschließen oder zu minimieren.
-
Dieses Verfahren wird für alle Daten verwendet, die im Datenspeicher abgelegt sind, insbesondere auch für Nur-Lese-Daten, die einmalig im Datenspeicher abgelegt werden. Das sind in der Regel Konfigurationsdaten, die sich im Betrieb nicht ändern.
-
Neben den Nur-Lese-Daten existieren auch Daten, die im Betrieb geschrieben werden müssen. Zum Schreiben eines solchen Datenwortes, wird gemäß 6 zunächst die Prüfsumme des Datenwortes berechnet. Die vorgesehene Speicheradresse kann zuvor gelöscht 25 werden, da sich dies bei einem EEPROM oder einem Flash-Speicher, im Vergleich zu einem direkten Überschreiben der Daten, positiv auf die Beständigkeit der gespeicherten Information auswirken kann. Im Allgemeinen können vorhanden Daten ohne Löschvorgang überschrieben werden, weshalb dieser Schritt meist entfallen kann. Das Datenwort wird dann zusammen mit der Prüfsumme an die vorgesehene Adresse im Datenspeicher geschrieben 26.
-
Der Trick der Erfindung ist nun, dass der gleiche Schreibvorgang an der Adresse mit einem festen Versatz N (Offset) oder nach einer eindeutigen Zuordnungsvorschrift an einer Adresse in einem anderen Datenspeicher wiederholt wird (27). Das heißt, dass ein Datenwort beispielsweise an Adresse 2 und Adresse 2+N geschrieben wird. Die Daten stehen somit doppelt zur Verfügung. Da die zweite Adresse erst nach Beendigung des Schreibens 26 der ersten Adresse geschrieben 28 wird ist sichergestellt, dass immer mindestens ein sinnvolles Datenwort im Speicher liegt.
-
Alternativ kann zur Reduzierung der Wahrscheinlichkeit eines Bitfehlers erst die erste Adresse gelöscht 25 und geschrieben 26 wird. Die zweite Adresse wird dann wiederum nach Abschluss des ersten Schreibvorgangs gelöscht 27 und dann geschrieben 28. Somit wird auch in diesem Fall sichergestellt, dass immer mindestens ein sinnvolles Datenwort im Speicher liegt. Würden erst beide Adressen gelöscht, könnte es bei einem Stromverlust vor den Schreibvorgängen zu einem totalen Datenverlust kommen. Die beiden in 6 gezeigten Löschvorgänge 25 und 27 sind also, wie oben beschrieben, als optionale Schritte aufzufassen.
-
Das Prinzip der Datenkopie kann auch auf mehr als eine Kopie ausgeweitet werden. Es könnte beispielsweise auch jeweils eine zweite Kopie mit dem Offset 2N gespeichert werden.
-
Im Beispiel ist der Datenspeicher ein EEPROM. Prinzip bedingt kann jede Speicherzelle des EEPROMs nur eine begrenzte Anzahl an Lösch- und Schreibvorgängen durchführen, bevor sie durch interne Effekte unbrauchbar wird. Diese Anzahl liegt bei EEPROM beispielsweise bei 1 Million und mehr Schreibzyklen. Bei Flash-Speichern liegt diese Zahl jedoch wesentlich niedriger, beispielsweise zwischen 100 und 10000 Schreibzyklen.
-
Muss ein Datenwort sehr häufig geschrieben werden, etwa ein Betriebsstundenzähler, kann die Lebensdauer einer Speicherzelle bereits nach sehr kurzer Zeit erreicht sein. Es könnten dann keine Daten mehr an dieser Adresse in den Datenspeicher geschrieben werden. Um sicherzustellen, dass der Datenspeicher über die gesamte Laufzeit des Gesamtsystems uneingeschränkt nutzbar ist, weist das erfindungsgemäße Verfahren eine Erweiterung der Schreib- und Leseverfahrens auf.
-
Für jedes Datenwort ist nun nicht nur eine Adresse, sondern ein ganzer Adressbereich 16 reserviert, der beispielsweise 10 Adressen pro Datenwort beinhaltet (2). Das Datenwort 15 wird nun zufällig oder zyklisch jeweils nur an einer dieser Adressen im Adressbereich gespeichert. Bei 10 Adressen im Adressbereich kann das Datenwort 10-mal häufiger geschrieben werden, als die Lebensdauer einer einzelnen Speicherzelle beträgt. Je nach Anforderung kann der Adressbereich auch mehr oder weniger als 10 Adressen umfassen, beispielsweise 5 oder auch 20.
-
Beträgt die Lebensdauer einer Adresszelle beispielsweise 100.000 Schreibzyklen und die Spezifikation erfordert 2 Millionen Schreibvorgänge für ein Datenwort, müssen mindestens 20 Adressen im Adressbereich für dieses Datenwort reserviert werden.
-
Im genannten Anwendungsbeispiel werden mit diesem Verfahren nur Zähler geschrieben, bei denen es nicht kritisch ist, ob der Zählerstand absolut korrekt ist. Daher existieren im Beispiel von den Zähleradressen keine Kopien.
-
Zum Lesen des aktuellen Zählerstands werden im Beispiel daher zunächst alle Adressen im Adressbereich gelesen und jeweils mit der Prüfsumme auf Gültigkeit geprüft. Aus allen gültigen Werten wird der größte ermittelt, der dem aktuellen Wert entspricht.
-
Bei diesem Leseverfahren steht bei einem Datenfehler oder einem Datenverlust nur einer der vorhergehenden Zählerwerte zur Verfügung, was jedoch für die beispielhafte Anwendung unerheblich ist.
-
Falls im gesamten Adressbereich kein gültiger Wert vorhanden ist, wird auch hier ein Standardwert gesetzt, der einen Betrieb des Systems erlaubt, und/oder es wird eine Fehlermeldung ausgegeben und/oder eine Fehlerfunktion ausgeführt.
-
Eine Schwierigkeit besteht nun darin, dass kein Zähler existiert, der angibt in welche Adresse eines Adressbereichs als nächstes geschrieben werden soll, da dieser Zähler dann auch jedes mal geschrieben werden müsste. Dieser Adresszähler könnte daher nur im RAM oder einem Register des Mikrocontrollers 6 geführt werden und würde demnach beim Ausschalten des Systems gelöscht werden.
-
Im erfindungsgemäßen Verfahren, werden daher vor jedem Schreibvorgang alle Adressen im Adressbereich gelesen und auf Gültigkeit geprüft. Falls vorhanden kann bei einem ungültigen Datenwort auf eine Kopie zurückgegriffen werden. Die Datenworte aller gültigen Adressen werden miteinander verglichen und der größte Wert ermittelt.
-
Zählerstände werden in der Regel nur in einer Zählrichtung inkrementiert, so dass der größte Wert am jüngsten ist. Der aktuelle Wert wird dann an die nächste Adresse im Adressbereich geschrieben, da diese dann den ältesten Wert enthält. Danach kann eine Kopie des Datenworts im gespiegelten Adressbereich, sofern vorhanden, geschrieben werden.
-
Alternativ kann auch der kleinste Wert ermittelt werden, um dann an diese Adresse zu schreiben. Die Adresse, in die geschrieben werden soll, kann auch auf andere Weise ermittelt werden, wobei nur wesentlich ist, dass alle Adressen in etwa gleich häufig beschrieben werden. Am einfachsten ist daher eine zyklische Änderung der Adressen innerhalb des für ein bestimmtes Datenwort reservierten Adressbereichs. In Mikrocontrollern mit mehr Ressourcen kann das Datenwort auch mit einem Zeitstempel versehen sein, so dass anhand dessen die Adresse mit dem ältesten Wert gefunden werden kann.
-
Bei Datenspeichern, die keine durch die Anzahl der Schreibzyklen begrenzte Lebensdauer haben, wie etwa Festplatten, müssen die Daten nicht auf mehrere Adressen verteilt werden.
-
Im genannten Ausführungsbeispiel weist der Datenspeicher vorzugsweise eine weitere Funktion auf, die einen zusätzlichen Schutz vor Datenverlust bei wichtigen Daten bietet. Jeder Adresse ist dabei eine Sicherheitsstufe zugeordnet, die angibt, wer an diese Adresse schreiben darf.
-
Im Beispiel des Klappenstellers 1 existieren drei verschiedene Sicherheitsstufen. Eine erste Sicherheitsstufe für Daten, die vom Hersteller des Klappenstellers einmalig geschrieben werden, beispielsweise die Seriennummer, das Produktionsdatum, Chargennummer oder andere Daten zur eindeutigen Identifizierung des Stellmotors 1. Diese Daten werden vor Auslieferung an einen Erstausrüster (Original-Equipment-Manufacturer, OEM) mit der ersten Sicherheitsstufe geschützt. Der OEM kann diese Daten dann nicht mehr verändern. Der OEM wiederum kann spezielle Konfigurationsdaten mit einer zweiten Sicherheitsstufe schützen, so dass diese später beispielsweise in einer Werkstatt oder vom Endkunden nicht mehr nachträglich änderbar sind. Solche Daten sind beispielsweise einbauspezifische Kalibrierungsdaten oder Betriebsparameter wie etwa Betriebsfrequenzen oder ähnliches.
-
Schließlich existiert eine nullte Sicherheitsstufe für alle Daten die im Betrieb geändert werden, etwa Fehlerzähler oder benutzerkonfigurierbare Betriebsparameter. Durch die Sicherheitsstufen wird auch verhindert, dass beispielsweise durch einen Fehler in der Adressberechnung wichtige Systemdaten überschrieben werden, da die Sicherheitsstufe der Adresse vor jedem Schreibvorgang ausgewertet und überprüft wird.
-
Der Zugriff auf den Datenspeicher erfolgt im genannten Beispiel völlig transparent und exklusiv durch Funktionen, die die beschriebenen Schreib– und Leseverfahren beinhalten. Daher können auch die Sicherheitsstufen nicht einfach umgangen werden.
-
Auch wenn die Erfindung hauptsächlich in einem integrierten Mikrocontroller eingesetzt werden kann, ist sie nicht auf diese Anwendung beschränkt.
-
Bezugszeichenliste
-
- 1
- Stellmotor
- 2
- Luftklappen
- 3
- Antriebsmotor
- 4
- Getriebe
- 5
- Ansteuerelektronik
- 6
- Mikrocontroller
- 7
- Gehäuse
- 8
- Motortreiber
- 9
- Brückenschaltung
- 10
- Datenspeicher
- 11
- LIN-Bus Schnittstelle
- 12
- Sensor-Schnittstelle
- 13
- PWM-Schnittstelle
- 14
- Hall-Sensor
- 15
- Datenwort
- 16
- Adressbereich
- 17–28
- Verfahrensschritte
- N
- Adress-Offset
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-