Lesen/schreiben von binären Daten auf SD mit Arduino
Arbeite ich an einem Projekt mit einem Arduino, und ich möchte in der Lage sein, um Daten zu speichern beharrlich. Ich bin bereits mit einem Ethernet-shield, die hat einen MicroSD-Kartenleser.
Die Daten, die ich Spare, wird unglaublich klein. Im moment, ich werde einfach sparen 3 bytes zu einer Zeit. Was ich wirklich mag, ist ein Weg zu öffnen, die SD-Karte schreiben, beginnend bei byte x
und dann schreiben y
bytes of data. Wenn ich Lesen möchte ihn zurück, ich habe gerade gelesen y
bytes ab byte x
.
Jedoch alle der code, den ich gesehen habe handelt es sich um arbeiten mit einem Dateisystem, das scheint wie eine unnötige overhead. Ich brauche nicht diese Daten werden lesbar auf jedem anderen system -, Speicher-Raum ist nicht ein Problem, und es gibt keine anderen Daten auf der Karte zu kümmern. Gibt es eine Möglichkeit, nur schreiben binäre Daten direkt auf eine SD-Karte?
- Checkout roland-riegel.de/sd-reader für raw-SD-Karte lese - /schreib-Routinen. FAQ sagt, es ist möglich, es zu benutzen für Arduino mit einigen änderungen.
- Eine weitere gute Ressource für binäre SD-Karte Lesen/ schreiben auf Arduino: hackingmajenkoblog.wordpress.com/2016/03/25/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich zu schreiben rohen binären Daten auf eine SD-Karte. Die meisten Menschen tun dies mit Hilfe der 4-polige SPI-Schnittstelle unterstützt von der SD-Karte. Leider werden die Daten nicht byte-adressiert, sondern block-gerichtet (block Größe in der Regel 512 bytes).
Dies bedeutet, wenn Sie wollte schreiben, 4 bytes in byte-516, solltest du gelesen haben, in block 0x00000001 (im zweiten block), und dann berechnen eines offset, schreiben Sie Ihre Daten, dann schreiben Sie den gesamten block zurück. (Ich kann nicht sagen, dass diese Einschränkung bezieht sich auf den SD-interface mit mehr pins, ich habe keine Erfahrung damit)
Diese Komplikation ist, warum viele Menschen entscheiden sich für die Verwendung von Bibliotheken, der "unnötige Aufwand".
Mit dieser sagte, ich habe dazu in der Vergangenheit, denn ich brauchte einen Weg, der logging-Daten, die robust war, in das Gesicht der macht Fehler. Gefunden habe ich folgende Ressource sehr hilfreich:
http://elm-chan.org/docs/mmc/mmc_e.html
Werden Sie wahrscheinlich feststellen, es einfacher zu machen, Ihre kleineren schreibt in einem Speicher-Puffer, und werfen Sie Sie auf die SD-Karte, wenn Sie eine ausreichend große Menge von Daten, die zu machen es sich lohnt.
Wenn Sie sich umschauen, finden Sie viele open-source-code der Umgang mit der SD-SPI-Schnittstelle zu nutzen direkt oder als Referenz für die Implementierung Ihres eigenen Systems.