Forum: Mikrocontroller und Digitale Elektronik Speicheroptimierung Daten Logger


von Karl Kanpp (Gast)


Lesenswert?

Hallo,

ich moechte einen Mikroprozessor als Datenlogger einsetzen. Da die Daten 
nicht regelmaessig anfallen, muessen die folgenden Daten gespeichert 
werden: Jahr, Monat, Tag, Stunde, Minute, Sekunde, und zwei positive 
oder negative Dezimalzahlen des Formates "-0000.000". Die Daten sollen 
in Bloecken gleicher Laenge gespeichert werden. Die Blocklaenge sollte 
24 Byte nicht ueberschreiten. Ueber Hinweise und Vorschlaege waere ich 
dankbar.

von Matthias (Gast)


Lesenswert?

Hi

und das Problem wäre?

2 Byte Jahr
1 Byte Monat
1 Byte Tag
1 Byte Stunde
1 Byte Minute
1 Byte Sekunde
2*4 Byte long-Zahl -> Fixkomma-Wert

Macht zusammen 15 Byte an denen man noch was einsparen kann wenn man 
z.B. Monat und Tag in ein Byte bringt.

Matthias

von Frankl (Gast)


Lesenswert?

1 Byte Jahr    0-255 Jahre sollte reichen
1 Byte Monat   ok
1 Byte Tag     ok
1 Byte Stunde  ok
1 Byte Minute  ok
1 Byte Sekunde ok
2*4 Byte long-Zahl -> Fixkomma-Wert

Macht zusammen 14 Byte an denen man noch was einsparen kann wenn man 
z.B. Monat und Tag in ein Byte bringt.

von Thomas Fischl (Gast)


Lesenswert?

Hallo,

man könnte evtl. auch den Zeitabstand zwischen den einzelnen Messungen 
mit abspeichern.

1/2 Byte Abstand in Sekunden zum vorhergehenden Wert
2*4 Byte long-Zahl -> Fixkomma-Wert

=>max. 10 Byte

Thomas

von Manfred Glahe (Gast)


Lesenswert?

Hallo Herr Kanpp,
um Speicher zu sparen würde ich den Speicherablauf entsprechend 
organisieren. Jahr und Monat nur immer am Anfang eines neuen 
Zeitfensters abspeichern. Das Gleiche für Tag und Stunde,den Rest je 
nach Abtastrate.
Wenn Sie sich Zeitmarken setzen können Sie auch hohe Abtastraten fahren 
und speichern nur immer dann etwas wenn eine (vorgebbare) Änderung 
eingetreten ist. Wenn nicht allzuviel Speicher benötigt wird, ist in 
störanfälliger Umgebung (Motorsteuerungen, Wechselrichter usw.) ein FRAM 
wesentlich sicherer als EEPROM da das Zeitfenster (Störmöglichkeit beim 
Beschreiben des Speichers) nur einen Bruchteil dessen ausmacht. Auch bei 
den entsprechenden Mikrokontrollern gibt es wohl in Bezug auf die 
Robustheit im Einsatz große Unterschiede. Mit dem 68HC11E2 und dem 
PIC16F84 habe ich sehr gute Erfahrungen in diesem Zusammenhang gemacht.
Ihre Angaben sind allerdings nicht detailliert genug um ein umfassendes 
Konzept zu entwerfen.

MfG  Manfred Glahe

von crazy horse (Gast)


Lesenswert?

zum Thema Zeitstempel:
Du könntest die einen beliebigen Nullpunkt setzen (sagen wir mal 
1.1.2000 0.00) und die Anzahl der seit dem vergangenen Sekunden 
übertragen. Mit einer long-Zahl (4byte) kämst du immerhin auf 136 Jahre.
Für die Daten könntest du ein 3byte-Format wählen, +/- ca. 8.3 Mio, den 
Dez.punkt brauchst du nicht zu speichern (kannst du bei der Auswertung 
wieder hinzufügen).
Mit 10 byte könntest du also den gesamten frame unterbringen. Ich 
persönlich würde einen 16-byte-frame wählen, da kannst du noch weitere 
Informationen unterbringen (Status/Alarmmeldungen und evtl. ein 
CRC-Byte), irgendwas kommt meist noch nach.

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
Noch kein Account? Hier anmelden.