Forum: Mikrocontroller und Digitale Elektronik Datenlogging auf SD-Karte, Abruf per PC, Löschen der Karte


von Chris (Gast)


Lesenswert?

Hi!

Mein aktuelles Projekt loggt alle 4 Minuten auf eine SD-Karte 200 Bytes, 
also 72.000 Bytes/Tag bzw. 2.6280.000 Bytes/Jahr.

Die Daten sollen mehr oder weniger regelmäßig von einem PC abgerufen 
werden. Der PC hängt am usart (57600Baud angeschlossen).

Wie sollte man dies von Konzept her am Geschicktesten lösen?


1) Einfachster Ansatz: Die Daten immer in die gleiche Datei schreiben. 
Fragt der PC an, alle Daten ausgeben und danach die Datei oder deren 
Inhalt löschen, wenn der PC den Empfang bestätigt hat. Wird mir das die 
SD/MMC-Karte übel nehmen? Ich würde ja schreiben, löschen, schreiben, 
löschen..... und eventuell immer wieder die Datei öffnen, schließen, neu 
anlegen usw.. Im schlimmsten Fall alle 4 Minuten.

2) Die Daten immer in die gleiche Datei schreiben, aber nie löschen. 
Stattdessen irgendwo speichern, bis wohin zuletzt übertragen wurde.


Idee: Einen "Puffer" anlegen, der einen Datensatz aufnehmen kann und 
somit nur auf die SD-Karte schreibt, wenn der PC ihn nicht abruft, bevor 
der nächste Datensatz ansteht.

Gruß,
Chris

von ingo (Gast)


Lesenswert?

Wenn Du sicherstellen musst, das wärend der Übertragung weiter geloggt 
wird, müsstest Du das Schreibfile wechseln (in ein neues schreiben), 
dann das alte übertragen und dann löschen. Wenn deine FAT-Lib nur eine 
Datei gleichzeitig kann, gibts damit auch Probleme. Nächster Ansatz 
wäre: eine Datei mit konstanter Größe auf der SD, Schreib/Lesezugriff 
über 2 Zeiger.
Wenn die SD immer im Gerät bleibt und für nichts anderes genutzt werden 
soll, könntest Du ja auf das Dateisystem ganz verzichten und die Karte 
ganz als Ringspeicher nutzen.
mfG ingo

von Chris (Gast)


Lesenswert?

Hi!

Gleichzeitigs Loggen und Übertragen ist nicht gefordert.
Die Übertragung läuft in einer eigenen Schleife, die erst verlassen 
wird, wenn alle Daten übertragen wurden.

Gruß,
Chris

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.