Ich habe mich intensiv mit dem Problem der Datenspeicherung im EEPROM beschäftigt und denke, ich habe eine robuste Lösung gefunden: bitte in meinen Blog schauen.
Ziel war es, das Speichern im EEPROM zu einer zuverlässigen und langlebigen Sache zu machen, ohne dass man sich ständig um die begrenzte Lebensdauer Sorgen machen muss. Es ermöglicht das Speichern immer dann, wenn sich Daten ändern. Die Bibliothek nutzt die gesamte EEPROM-Partition als Ringpuffer und verteilt die Schreibzyklen gleichmäßig. Das verlängert die Lebensdauer um ein Vielfaches (z.B. von ca. 2,7 Jahren auf über 80 Jahre bei 100 Schreibvorgängen pro Tag). Jeder Datensatz wird mit einer CRC-Prüfsumme gespeichert. Das garantiert beim Neustart, dass immer der letzte, vollständige und valide Datensatz gelesen wird – unvollständige Daten (z.B. entstanden durch einen plötzlichen Stromausfall) werden ignoriert. Falls es auch der letzte Stand vor einem Stromausfall genügt (und nicht zwingend der wichtig ist, der bei einem Stromausfall geschrieben wird), wäre noch nicht mal ein Power-Backup zwingend notwendig.
--
Mir ging das nicht aus dem Kopf und da ist mir noch was unkonventionelles eingefallen. Am besten eine Rechnung dazu:
128 Blöcke×100.000 Zyklen=12,8 Mio. Schreibvorgänge. Bei 525.960 Schreibvorgängen pro Jahr (alle 1 Minute) ergibt das >24 Jahre (12,8 Mio./525.960). Wenn wir nur 512 Byte nutzen, halbiert sich die Zahl auf >12 Jahre. Das wären 1024 Byte /128 = 8 Byte pro Datensatz (mit etwa ~ 4 Byte Nutzdaten). Verdoppeln wir das auf 8 Byte Nutzdaten, sind wir bei immer noch >7 Jahre bei 512 Byte und > 15 Jahre bei 1024 Byte die wir im EEPROM nutzen.
Die dauernde Speicherung in kurzen Abständen macht die Daten redundant und damit sicher bei einem Stromausfall.
Lesezeichen