Hallo zusammen, ich habe mal eine Frage, bzw. vielleicht einen Diskussionsanstoß: Mal angenommen eine Schaltung, bei der ein Mikrocontroller ab und dann Werte in einem EEPROM ablegt. Das seien wichtige Daten, z.B. eine Messreihe von irgendwelchen zyklisch eingelesenen Daten. Jetzt stelle man sich vor, in dem Moment, wo grad ein Wert gespeichert wird, fällt die Stromversorgung aus - also quasi mitten beim Schreiben. Im EEPROM steht dann ja nur Quatsch, was man später aber evtl. nicht mehr klar erkennen kann, weil die resultierende Bitfolge, die dann gespeichert ist, ebenfalls einen Sinn ergibt. Wie kann man sowas absichern? Werte redundant schreiben? Von mir aus dreimal, und beim auslesen die drei Werte vergleichen und dann den nehmen, der mehrmals vorhanden ist - das bringt natürlich auch nichts, wenn das Speichern beim ersten unterbrochen wird. Evtl. mit Kondensatoren die Spannung puffern, sodass der Mikrocontroller zumindest ne kleine Chance hätte, den Wert noch eben zu speichern? Wie wird sowas denn in der Industrie realisiert? Da werden ja auch Werte mitgeschrieben, um evtl später eine Analyse zu machen. Oder das Speichern von irgendwelchen Parametern - mal angenommen, der Techniker klemmt das Gerät grad in dem Moment ab, wo grad gesichert wird... Hat da jemand ein paar Idden zu? Gruß, Jens
Jens schrieb: > Wie kann man sowas absichern? Dafür sollte bereits eine CRC ganz gut helfen. > Evtl. mit Kondensatoren die Spannung puffern, sodass der Mikrocontroller > zumindest ne kleine Chance hätte, den Wert noch eben zu speichern? Kannst du auch machen, du kannst ja den Wegfall der externen Versorgung irgendwie erkennen, sodass der Controller weiß, dass jetzt Eile geboten ist und ein "Notlaufprogramm" anwirft.
Noch ein Nachtrag: Bei Drucktransmittern z.b. die halt ihre Werte in regelmäßigen Abständen abspeichern, da kann nicht einfch eine Batterie drin sein, weil diese Geräte dazu noch meist vergossen sind und z.T. Temperaturen bis 80°C problemlos aushalten müssen - eine Batterie fällt daher weg, weil wenn leer, dann ist das Gerät "Schrott" - und so hohe Temperaturen für Batterien ist ja auch eher ungut.
Z.B. der DS89C430 hat einen Early-Warning Power-Fail Interrupt. Damit kann man die VCC überwachen und bei einem Einbruch rechtzeitig was abspeichern. Das ist also sehr bequem. Bei den AVRs gehts nicht so einfach. Da muß man zyklisch die Bandgap messen, um einen Einbruch zu erkennen. Peter
1.Mit Goldcaps brennt ein Fahrradstandlicht z.B. noch 5 Minuten. http://de.wikipedia.org/wiki/Goldcaps >Temperaturen bis 80°C 2.Es gibt auch Elkos für 105 Grad. Ob diese bei dauerhaften 85 Grad ein ewiges Leben haben wäre sicher die nächste Frage. 3.Egal ob Sekündchen oder Stunden mit dem Dieselaggregat: igendwann fällt auch dieser Strom aus. Deshalb gilt auch hier die alte Bauernregel: Lege nie alle Eier in einen Korb! >...Werte in einem EEPROM ablegt ?
Peter Dannegger schrieb: > Bei den AVRs gehts nicht so einfach. Da muß man zyklisch die Bandgap > messen, um einen Einbruch zu erkennen. Kann man auch über den Analogkomparator machen, der kann ebenfalls einen Interrupt auslösen.
@ Jens (Gast) >Wie kann man sowas absichern? Werte redundant schreiben? Das alelin reicht nicht. Man muss auch einen abgerochenen Schreibvorgang erkennen. Z.B. über CRC, Zeeitstempel, etc. >Evtl. mit Kondensatoren die Spannung puffern, sodass der Mikrocontroller >zumindest ne kleine Chance hätte, den Wert noch eben zu speichern? Das ist ein üblicher Ansatz. http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren >Wie wird sowas denn in der Industrie realisiert? Da werden ja auch Werte >mitgeschrieben, um evtl später eine Analyse zu machen. Mit den oben genannten Methoden, allerding schon recht aufwenig umgesetzt. >Oder das Speichern von irgendwelchen Parametern - mal angenommen, der >Techniker klemmt das Gerät grad in dem Moment ab, wo grad gesichert >wird... Dann gibts wieder Arbeit für den Techniker. Man kann es sicher machen. Aber nie idiotensicher. MFG Falk
>> 1.Mit Goldcaps brennt ein Fahrradstandlicht z.B. noch 5 Minuten. >> http://de.wikipedia.org/wiki/Goldcaps Davon steht im Artikel nichts - habe ich etwas übersehen? Hintergrund: mein Fahrradstandlicht kommt auf nur 60 Sekunden.
Allgemein: hinter jeden Datensatz gehört eine Prüfsumme als "Siegel". Ein Datensatz ohne gültige Prüfsumme ist nicht glaubwürdig, muß beim Lesen also ignoriert werden. Für Konfigurationsdaten stellt sich da natürlich die Frage, was das Gerät beim Einschalten machen soll, wenn die Prüfsumme nicht stimmt, d.h. die Daten unbrauchbar sind. Da hilft es, die Konfiguration zweimal zu speichern: entweder der Ausschalter trifft einen beim ersten Speichern, dann ist die Kopie der alten Konfiguration noch heile, oder er schlägt beim Speichern der Kopie zu, dann ist die neue Konfiguration immerhin schon einmal gesichert. Nach dem Neustart muß das Gerät allerdings erstmal "aufräumen", wenn es einen defekten Datensatz erkennt. Für Logdaten in einem Ringpuffer gilt ähnliches: nach dem Einschalten erstmal den letzten Eintrag prüfen und löschen, falls er defekt ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.