DE102012102856A1 - Vorrichtung und Verfahren zum Lesen und Speichern von Daten - Google Patents

Vorrichtung und Verfahren zum Lesen und Speichern von Daten Download PDF

Info

Publication number
DE102012102856A1
DE102012102856A1 DE201210102856 DE102012102856A DE102012102856A1 DE 102012102856 A1 DE102012102856 A1 DE 102012102856A1 DE 201210102856 DE201210102856 DE 201210102856 DE 102012102856 A DE102012102856 A DE 102012102856A DE 102012102856 A1 DE102012102856 A1 DE 102012102856A1
Authority
DE
Germany
Prior art keywords
data
address
memory
data word
checksum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE201210102856
Other languages
English (en)
Inventor
Martin Winker
Sebastian Riemer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MinebeaMitsumi Inc
Original Assignee
Minebea Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Minebea Co Ltd filed Critical Minebea Co Ltd
Priority to DE201210102856 priority Critical patent/DE102012102856A1/de
Priority to US13/854,529 priority patent/US20130262964A1/en
Priority to JP2013076353A priority patent/JP2013214303A/ja
Publication of DE102012102856A1 publication Critical patent/DE102012102856A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

Die Erfindung beschreibt ein Verfahren zum Lesen von Daten auf einem elektronischen Datenspeicher (10). Die Daten liegen als Datenworte im Speicher, wobei jedes Datenwort (15) an einer eindeutigen Adresse vorliegt. Zusätzlich liegt das Datenwort (15) als identische Kopie an einer zweiten Adresse mit einem festen Adressversatz (N) im selben Datenspeicher (10) vor oder die Kopie liegt an einer Adresse eines anderen Datenspeichers vor, die durch eine eindeutige Zuordnungsvorschrift mit der Adresse des Datenworts (15) im Datenspeicher (10) verknüpft ist. Zu jedem Datenwort (15) ist zusätzlich eine Prüfsumme (CRC) im Datenspeicher (10) abgelegt. Zum Lesen eines Datenwortes (15) wird zunächst das Datenwort (15) und die Prüfsumme (CRC) gelesen. Dann wird die Prüfsumme (CRC) über das Datenwort (15) berechnet und mit der gelesenen Prüfsumme (CRC) verglichen. Stimmen die Prüfsummen (CRC) nicht überein, wird der Lesevorgang mit der Kopie des Datenwortes (15) wiederholt. Ist auch dieser Wert ungültig wird ein Standardwert verwendet und/oder eine Fehlermeldung ausgegeben.

Description

  • 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
    • ISO 7637-2 [0037]

Claims (13)

  1. Verfahren zum Lesen von Daten aus einem elektronischen Speicher, dadurch gekennzeichnet, dass die Daten in einzelnen Datenworten (15) vorliegen und nur ganze Datenworte (15) gelesen werden, dass das Datenwort (15) und die Prüfsumme (CRC) von einer Adresse gelesen werden, dass aus dem Datenwort (15) die Prüfsumme (CRC) berechnet wird, dass die berechnete Prüfsumme mit der gelesenen Prüfsumme verglichen wird und dass falls die Prüfsummen nicht übereinstimmen das Datenwort (15) nicht ausgewertet wird.
  2. Verfahren nach Anspruch 1 bei dem im Fall eines ungültigen Datenwortes (15) ein Datenwort (15) von einer weiteren Adresse gelesen wird, die in dem selben Datenspeicher (10) wie die erste Adresse liegt, wobei die weitere Adresse durch einen festen Adressversatz (N) aus der ersten Adresse bestimmt wird.
  3. Verfahren nach Anspruch 1 bei dem im Fall eines ungültigen Datenwortes (15) ein Datenwort (15) von einer weiteren Adresse gelesen wird, die in einem anderen Datenspeicher als die erste Adresse liegt, wobei die weitere Adresse des anderen Datenspeichers durch eine feste Zuordnungsvorschrift aus der ersten Adresse bestimmt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass falls kein gültiges Datenwort gelesen werden kann, ein Standardwert aus einem anderen Datenspeicher gelesen wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass für das zu lesende Datenwort (15) ein Adressbereich (16) mit mehreren Adressen reserviert ist und dass zunächst alle dieser reservierten Adressen gelesen und anhand ihrer Prüfsummen (CRC) auf Gültigkeit überprüft werden, dass alle gültigen Datenworte (15) miteinander verglichen und der neueste gültige Wert ermittelt und weiterverwendet wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass falls kein gültiges Datenwort (15) gelesen werden kann, eine Fehlermeldung ausgegeben wird.
  7. Verfahren zum Schreiben von Daten in einen elektronischen Speicher, dadurch gekennzeichnet, dass die Daten in einzelnen Datenworten (15) vorliegen und nur ganze Datenworte (15) geschrieben werden, dass zum Schreiben eines Datenwortes (15) zunächst eine Prüfsumme (CRC) aus dem Datenwort (15) berechnet wird, dass das Datenwort (15) und die Prüfsumme (CRC) an eine erste Adresse im Datenspeicher (10) geschrieben werden und dass das gleiche Datenwort (15) und die Prüfsumme (CRC) zusätzlich an mindestens einer weiteren Adresse geschrieben werden.
  8. Verfahren zum Schreiben von Daten in einen elektronischen Speicher nach Anspruch 7, dadurch gekennzeichnet, dass die weitere Adresse entweder in dem selben Datenspeicher (10) wie die erste Adresse liegt, wobei die weitere Adresse durch einen festen Adressversatz (N) aus der ersten Adresse bestimmt wird oder dass die weitere Adresse in einem anderen Datenspeicher als die erste Adresse liegt, wobei die weitere Adresse des anderen Datenspeichers durch eine feste Zuordnungsvorschrift aus der ersten Adresse bestimmt wird.
  9. Verfahren zum Schreiben von Daten in einen elektronischen Speicher, dadurch gekennzeichnet, dass für ein Datenwort ein Adressbereich (16) mit mehreren Adressen reserviert ist und das Datenwort (15) bei jedem Schreibvorgang abwechselnd in eine andere Adresse im reservierten Adressbereich (16) geschrieben wird.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass zum Ermitteln der nächsten zu beschreibenden Adresse zunächst alle für ein Datenwort (15) reservierten Adressen im Adressbereich (16) gelesen und miteinander verglichen werden, um den neuesten Wert zu ermitteln, und dass das Datenwort (15) an die auf die Adresse mit dem neuesten Wert folgende Adresse geschrieben wird.
  11. Mikrocontroller (6) mit einem Datenspeicher (10), mit einem Mittel zum Lesen eines Datenwortes (15) aus dem Datenspeicher (10), mit einem Mittel zur Bildung einer Prüfsumme über dieses Datenwort (15) und mit einem Mittel zur Berechnung einer Zuordnungsvorschrift zwischen mindestens zwei Speicheradressen, und Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6.
  12. Mikrocontroller nach Anspruch 11, dadurch gekennzeichnet, dass er Mittel zum Schreiben eines Datenwortes (15) und der Prüfsumme über dieses Datenwort (15) in den Datenspeicher (10) gemäß dem Verfahren nach einem der Ansprüchen 7 bis 10 aufweist.
  13. Mikrocontroller nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass der Datenspeicher (10) ein EEPROM oder ein Flash-Speicher ist.
DE201210102856 2012-04-02 2012-04-02 Vorrichtung und Verfahren zum Lesen und Speichern von Daten Pending DE102012102856A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE201210102856 DE102012102856A1 (de) 2012-04-02 2012-04-02 Vorrichtung und Verfahren zum Lesen und Speichern von Daten
US13/854,529 US20130262964A1 (en) 2012-04-02 2013-04-01 Device and method for the reading and storing of data
JP2013076353A JP2013214303A (ja) 2012-04-02 2013-04-01 車両用機器制御データの読み取り方法、同データの書き込み方法、および車両用機器のデータの保存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210102856 DE102012102856A1 (de) 2012-04-02 2012-04-02 Vorrichtung und Verfahren zum Lesen und Speichern von Daten

Publications (1)

Publication Number Publication Date
DE102012102856A1 true DE102012102856A1 (de) 2013-10-02

Family

ID=49154604

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210102856 Pending DE102012102856A1 (de) 2012-04-02 2012-04-02 Vorrichtung und Verfahren zum Lesen und Speichern von Daten

Country Status (3)

Country Link
US (1) US20130262964A1 (de)
JP (1) JP2013214303A (de)
DE (1) DE102012102856A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021156231A1 (de) * 2020-02-06 2021-08-12 Volkswagen Aktiengesellschaft Verfahren zur nichtflüchtigen speicherung einer betriebsinformation bei einem fahrzeug oder einer maschine, vorrichtung zur durchführung des verfahrens sowie fahrzeug und computerprogramm

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9362854B2 (en) * 2013-12-12 2016-06-07 Ford Global Technologies, Llc Electric motor control during unreliable power supply operations
CN105204774B (zh) * 2014-06-23 2019-01-15 联想(北京)有限公司 一种数据处理方法及电子设备
CN105512337B (zh) * 2015-12-31 2019-10-29 联想(北京)有限公司 一种数据管理方法及存储装置
JP6609235B2 (ja) * 2016-11-02 2019-11-20 日立オートモティブシステムズ株式会社 電子制御装置
US10235171B2 (en) * 2016-12-27 2019-03-19 Intel Corporation Method and apparatus to efficiently handle allocation of memory ordering buffers in a multi-strand out-of-order loop processor
CN111159057A (zh) * 2019-12-11 2020-05-15 江西洪都航空工业集团有限责任公司 一种无电池情况下记录任务机累积上电次数的系统和方法
JP7270297B2 (ja) * 2020-05-12 2023-05-10 株式会社ユピテル システム、受信装置及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818611B2 (en) * 2006-08-24 2010-10-19 Micron Technology, Inc. Memory device internal parameter reliability
US8301981B2 (en) * 2009-04-10 2012-10-30 Phison Electronics Corp. Data access method for flash memory and storage system and controller thereof

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606660A (en) * 1994-10-21 1997-02-25 Lexar Microsystems, Inc. Method and apparatus for combining controller firmware storage and controller logic in a mass storage system
JPH09282894A (ja) * 1996-02-13 1997-10-31 Ricoh Co Ltd Eeprom制御装置
JPH09282237A (ja) * 1996-04-19 1997-10-31 Fujitsu General Ltd Eepromを用いた記憶装置
US6209112B1 (en) * 1998-07-31 2001-03-27 Lucent Technologies Inc. Apparatus and method for reducing power consumption of an error-correcting decoder
US20060077750A1 (en) * 2004-10-07 2006-04-13 Dell Products L.P. System and method for error detection in a redundant memory system
JP2007148779A (ja) * 2005-11-28 2007-06-14 Renesas Technology Corp マイクロコントローラおよびram
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
US8892981B2 (en) * 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818611B2 (en) * 2006-08-24 2010-10-19 Micron Technology, Inc. Memory device internal parameter reliability
US8301981B2 (en) * 2009-04-10 2012-10-30 Phison Electronics Corp. Data access method for flash memory and storage system and controller thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 7637-2

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021156231A1 (de) * 2020-02-06 2021-08-12 Volkswagen Aktiengesellschaft Verfahren zur nichtflüchtigen speicherung einer betriebsinformation bei einem fahrzeug oder einer maschine, vorrichtung zur durchführung des verfahrens sowie fahrzeug und computerprogramm

Also Published As

Publication number Publication date
US20130262964A1 (en) 2013-10-03
JP2013214303A (ja) 2013-10-17

Similar Documents

Publication Publication Date Title
DE102012102856A1 (de) Vorrichtung und Verfahren zum Lesen und Speichern von Daten
DE10341786B4 (de) Elektronische Fahrzeugsteuervorrichtung
DE102006028695B4 (de) Elektronisches Steuersystem mit Fehlfunktionsüberwachung
WO2000072098A1 (de) Verfahren zum nichtflüchtigen speichern mindestens eines betriebsdatenwerts eines elektromotors, und elektromotor zur durchführung eines solchen verfahrens
EP2907072B1 (de) Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät
DE102019201382A1 (de) Vorrichtung und verfahren zum steuern eines fahrzeugs auf dergrundlage von redundanter architektur
DE102018210318B4 (de) Verfahren zur Sicherung von Fahrzeugkomponenten und entsprechende Fahrzeugkomponente
DE102013013047B4 (de) Bestimmung einer Kennung
DE102009025078A1 (de) Verfahren zur Berechnung der Temperatur wenigstens einer Komponente einer mehrere Komponenten aufweisenden elektrischen oder elektronischen Baugruppe
WO2021233696A1 (de) Verfahren zur sicheren nutzung von kryptografischem material
WO2000072423A1 (de) Verfahren zum betreiben eines elektromotors, und elektromotor zur durchführung eines solchen verfahrens
DE102013105852A1 (de) Informationsverarbeitungsvorrichtung
DE102013206218B4 (de) Verfahren zum Schätzen eines elektrischen Stroms
EP2628706B2 (de) Gewerbliches Fahrzeug, insbesondere Gabelstapler oder Flurförderzeug, mit einem fahrzeugseitig fest angebrachten Datenspeicher in Zuordnung zu einer parametrierbaren elektronischen Steueranordnung
WO2006108849A1 (de) Verfahren und rechnereinheit zur fehlererkennung und fehlerprotokollierung in einem speicher
DE102010063773A1 (de) Feldgerät mit einem semi-permanenten elektronischen Speicher und Verfahren zum Betreiben eines solchen Feldgerätes
EP0791929A2 (de) Elektronisches Gerät und Verfahren zu seiner Duplizierung und Einrichtung zur Datenübertragung zwischen zwei gleichartig aufgebauten elektronischen Geräten
DE102007063053A1 (de) Fehlercodespeicherverwaltungs-Architekturkonzept mit einem dedizierten Überwachungseinheitsmodul und einem Fehlerspeicherverwaltungs-Administratormodul für einen Hochleistungs-Dieselmotor
WO2022042950A1 (de) VORRICHTUNG ZUR ERFASSUNG UND VERARBEITUNG EINER MESSGRÖßE EINES SENSORS IN EINEM KRAFTFAHRZEUG
DE102018219700B4 (de) Steuervorrichtung
WO2003025748A2 (de) Verfahren zum betreiben einer schaltungsanordnung, die einen mikrocontroller und ein eeprom enthält
WO2012019659A1 (de) Kraftwagen umfassend eine elektronische komponente mit datenspeicher und verfahren zum erkennen einer manipulation von daten in dem datenspeicher
DE102011114402A1 (de) Steuervorrichtung für einen elektrischen bestandteil eines fahrzeugs
DE102007063054A1 (de) Überwachungseinheiten-Zustandserfassung und Entprellungslogik
DE102009058331A1 (de) Steuergerät mit belastungsabhängiger Betriebslebensdauer und Verfahren zur Aktualisierung einer maximalen Betriebslebensdauer

Legal Events

Date Code Title Description
R163 Identified publications notified
R082 Change of representative

Representative=s name: MAUCHER JENKINS, DE

Representative=s name: MAUCHER BOERJES JENKINS, DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R081 Change of applicant/patentee

Owner name: MINEBEA MITSUMI INC., JP

Free format text: FORMER OWNER: MINEBEA CO., LTD., NAGANO, JP

R082 Change of representative

Representative=s name: MAUCHER JENKINS, DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R012 Request for examination validly filed