Datenlogger für größere Datenmengen

Gast #1741689
Lesenswert?

Hallo,

ich habe mehrere Sensoren die Daten liefern welche ich auf einen 
geeigneten Speichermedium in genau der Reihenfolge speichern muß wie die 
daten anfallen.

Es fallen z.Z. ca 2-3kByte pro Sekunde über je ein USART (ATMEGA644p) 
an. Später könnte das auch noch mehr werden.

Zuerst dachte ich an eine Lösung wie sie hier schon oft besprochen 
wurde: Daten über USART in einen ATMEGA... und dann auf eine SD Card 
speichern.

Bei ausgiebigen Tests kam es aber immer wieder zum "verschwinden" von 
daten, d.h. manche  Datensätze wurden nicht gespeichert. Ich habe die 
wirkliche Ursache nicht genau herausfinden können aber ich vermute dass 
es mit der Eigenschaft der SD Cards zusammenhängt, daten manchmal 
verzögert zu übernehmen wenn (SD card-)intern irgenwelche "arbeiten" 
anliegen (wear leveling). Bei GPS Loggern mit einem NMEA Datensatz pro 
Sekunde wird das noch keine Probleme geben.

Hat jemand Erfahrungen beim speichern solcher datenraten auf SD Card? 
Ich weiß dass viele kommerzielle Geräte die karten mit viel höheren 
datenraten beschreiben. Aber dort werden wahrscheinlich größere 
Pufferspeicher eingesetzt die ein nicht kontinuierliches 
Schreibverhalten der Karte von der datenquelle entkoppeln.

Kann mir jemand genaueres zu den Auswirkung des wear leveling 
hinsichtlich einer nicht kontinuierlichen Beschreibbarkeit von SD Cards 
sagen? Ich habe bislang nur Infos zu Sinn und Prinzip von Wear leveling 
gefunden.

Welche andenen Speichermedien außer SD Card gibt es noch, die relativ 
einfach mit ATMEGAs angesteuert werden können?

Danke für Hilfe,
Dude
#1741724
Lesenswert?

Es gibt noch CF-Karten. Das Problem (man kann nicht immer kontinuierlich 
schreiben) besteht aber da auch. SD-Karten lassen sich bis zu 250ms 
Zeit, bis sie wieder "da" sind. Du müßtest also bei 2kByte/s ca. 512 
Byte (einen Sektor) zwischenspeichern, das geht noch im Ram vom AVR. 
Ansonsten macht sich als Puffer ein kleiner SPI-Ram ganz gut (DIP8) - 
einfach anzusteuern, 32kByte sind gängig.

Und - Du solltest Deine "Vermutung" natürlich erstmal bestätigen, z.B. 
rote Lampe leuchten lassen, wenn Programm schreiben will und SD-Karte 
nicht schnell genug antwortet..

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren