Ich muß in einem Langzeit-Meßdatenerfassungssystem, welches an mich erst nach defekt der LiPoly Batterien zurückkommt, die Daten der LiPoly Batterien erfassen. Das sind pro Minute 64 Bytes oder 320 MByte in 10 Jahren Nun will ich diese Daten alle 8 Minuten in einem einzigen Block von 512 Bytes schreiben. Frage: Wieviele Dateien kann man eigentlich in eine FAT16 Tabelle schreiben? Ich meine, bei mir währen das 65535 Dateien wenn ich NUR jede Minute einmal die Daten erfasse und eigentlich war von mir geplant, den intervall auf 15 sekunden zu reduzieren, womit alle 2 Minuten eine Datei geschrieben werden muß. Hat jemand erfahrung damit? Vor allem muß die microSD von einem PC mit standard software gelesen werden können. Grüße Michelle
http://de.wikipedia.org/wiki/File_Allocation_Table Es können 216 − 12 = 65.524 Cluster angesprochen werden (12 Cluster reserviert FAT16, deshalb nicht 65.536). Man muß sowieso immer einen Block komplett schreiben der normalerweise 512Byte groß ist. Die Datei muß aber nicht "geschlossen" werden. Es kann auch für jedes "Jahr" oder man schreibt nur eine große Datei. Wenn man sich das ganze FAT auf dem µC sparen will, legt man auf dem PC diese Datei an mit der größe "also alles voll ' '(Leerzeichen)wie die Datei werden könnte. wenn man sie am PC ausliest ist da die Datei mit den Daten und der Rest hat halt Leerzeichen
Das mit der einzelnen Datei habe ich versucht, aber die kann unter WinDOS nicht gelesen werden. Sprich, ich habe einfachin der FAT eine Datei angelegt und dann vo bezeichtneten Block an weggeschrieben... Vor allem nicht vergessen die lezten zwei Bytes des 512 Byte Blocks mit dem Folgesektor zu versehen. Weder Windows noch Linux könnend das lesen Deswegen dachte ich, das ich die Sourcen aus der AppNote 282 (SiLabs) nehme, aber das bedeutet erst mal, das ich das ganze USB Zeugs daraus entfernen muß. Das schöne an diesem "Referenz Design" ist, das es beschreibt wie Du eine SD, MMC und CF-Card an einen 8051 im Mass-Storage Modus ansprichst. Ich werde mal bei SiLabs nachfragen, ob die ne RAW-API zu FAT haben. Grüße Michelle
Michelle Konzack schrieb: > Das mit der einzelnen Datei habe ich versucht, aber die kann unter > WinDOS nicht gelesen werden. > > Sprich, ich habe einfachin der FAT eine Datei angelegt und dann vo > bezeichtneten Block an weggeschrieben... Das muß aber gehen, da ich das selber auch schon so benutzt habe. Die Datei muss auf jeden Fall defragmentiert sein, damit das funktioniert. Dann den Start- und Endblock aus dem Dateieintrag raussuchen und als Grenzen zum Schreiben benutzen. Einfach die Karte unter Windows formatieren und eine leere Textdatei mit Größe X dort anlegen lassen, welche später für deine Daten benutzt werden soll. > Vor allem nicht vergessen die lezten zwei Bytes des 512 Byte Blocks mit > dem Folgesektor zu versehen. Das ist mir jetzt nicht klar. Wenn du den obigen Ansatz mit einer einzelnen großen Datei benutzt, dann brauchst du, abgesehen von deinen Daten, nichts besonderes am Ende der Blöcke zu schreiben. Sämtliche Blöcke innerhalb der Grenzen sind ausschließlich für deine Daten verfügbar. Diese Datei kann man anschließend am PC problemlos auslesen und analysieren. Du hast auf deinem Controller dann nichts mit dem FAT Dateisystem am Hut. Du brauchst eben nur den Start- und Endblock und schreibst dort die Rohdaten direkt rein. Ciao, Rainer
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.