Ich habe ein Paar kleiner batteriebetriebener, selbstprotokollierender 3-Achsen-Beschleunigungsmesser, die jeweils ein microSD-Flash-Gerät zur Speicherung verwenden (das GCDC X250-2 ). Leider puffern die Geräte microSD-Schreibvorgänge nicht, sodass die aufgezeichneten Daten häufig Lücken aufweisen.
Ich möchte ein tragbares Gerät finden/erstellen, das über ein Kabel verfügt, das in einen microSD-Steckplatz eingesteckt und mit einem großen RAM-Cache verbunden wird, damit Schreibvorgänge ohne Verzögerung fortgesetzt werden können. Idealerweise würde dieses Gerät auf eine SD-Karte oder einen anderen permanenten Speicher spulen.
Es gibt viele Mikrocontroller, die mit dem SPI-Bus kommunizieren, eine SD-Karte simulieren und Daten in den Arbeitsspeicher schreiben können. Es soll auch möglich sein, einen kleinen Linux-PC dafür zu programmieren und quasi eine SD-Karte zu emulieren. Das Problem besteht darin, ein Kabel oder etwas zu finden, das in einen microSD-Steckplatz gesteckt werden kann!
Irgendwelche Ideen für ein komplettes System oder die Komponenten, die benötigt werden, um eines zu bauen?
Das Produkt hat eine maximale Aktualisierungsrate von 512 Hz, was wirklich langsam ist. Ich verstehe, dass es einen Zeitstempel verwendet, drei Lesungen vornimmt, für die Übersetzung des FAT-Dateisystems puffert und alles im ASCII / CSV-Format schreibt, was nach viel klingt. Eine für kontinuierliches Schreiben konfigurierte SD-Karte sollte jedoch mindestens 2 Megabyte pro Sekunde verarbeiten können, und Karten der Klasse 10 können 10 Megabyte pro Sekunde verarbeiten. Bei 512 Hz liegt das Problem nicht an der SD-Karte.
In Ihrem Kommentar erwähnten Sie:
Der Hersteller kennt das Problem und kann es mit den verfügbaren Hardware-Ressourcen nicht beheben (es ist nur ein 8051, der wirklich schwer atmet). Alle Pausen scheinen auf a) FAT-Overhead und/oder b) Flash-Löschzyklen zurückzuführen zu sein.
Das Hinzufügen eines Puffers auf der SD-Karte wird dieses Problem nicht lösen. Der Engpass liegt vor der SD-Karte. Die FAQ des Herstellers lautet:
Ich habe einen alten Beschleunigungsmesser, kann ich die Firmware aktualisieren?
Ja. Bitte wenden Sie sich an unsere Verkaufsabteilung, um Anweisungen zur Rücksendung des Geräts an GCDC zu erhalten. Wir werden die Firmware aktualisieren und das Gerät umgehend zurücksenden.
Es sei denn, Sie haben mit ihnen ausgearbeitet, dass sie Ihnen ein Firmware-Paket schreiben, das keine Pufferung / FAT-Dateisystemübersetzung durchführt, und sich einvernehmlich auf ein Protokoll für einen schnelleren, lückenlosen Datenstrom geeinigt und ein RAM-Gerät hinzugefügt haben, das angeschlossen werden kann in einen SD-Steckplatz wird Ihr Problem nicht lösen.
Aber nur weil die Aufgabe ihren 8051 in die Knie zwingt, bedeutet das nicht, dass dies ein unlösbares Problem ist. Ein schnellerer, leistungsfähigerer, modernerer Mikrocontroller könnte den Datenstrom verarbeiten. Der integrierte RAM eines anständigen Mikros sollte ausreichen, um die Daten zu puffern. Die meisten kleinen Mikros laufen mit 20 MHz oder mehr, was wahrscheinlich ziemlich schnell ist, zumal sie Hardware-Peripheriegeräte haben, die die DMA-, SPI- und ADC-Aufgaben für Sie erledigen können. Natürlich gibt es andere Leute, die versucht haben, das gleiche Problem zu lösen - Sehen Sie sich diese SO-Frage zum Protokollieren von Daten mit 96 kB/s an.
Sie haben einige Möglichkeiten:
Es gibt mehr Beschleunigungsmesser + SD-Kartenfische im Meer:
Wenn Ihres nicht richtig funktioniert, erhalten Sie Ihr Geld zurück.
Das heißt, die SD sollte Schreibvorgänge puffern. Es hört sich so an, als würde ihre FAT-Bibliothek die Datei nach jedem Schreibvorgang leeren. Es wäre interessant zu beheben, ob sie Ihnen den Quellcode ihrer Firmware zur Verfügung stellen. Andernfalls fangen Sie bei Null an und sind auch mit Ihrer eigenen Hardware besser dran.
Eine Option besteht darin, den Stecker einfach abzulöten und stattdessen Drähte hinzuzufügen. Sie können es direkt mit einer anderen Platine verdrahten oder durch eine andere Platine gehen, die sowohl den Anschluss als auch die Anschlüsse hat, an die Sie den Puffer anschließen können.
Ich würde vorschlagen, einen MSP430 ** zu verwenden, um die Pufferung durchzuführen. Verwenden Sie so etwas , um das uC zu verbinden. Je nachdem, wie Sie den Puffer in der Software implementieren, kann dieser Artikel hilfreich sein.
**persönliche Präferenz, aber jeder Mikrocontroller könnte funktionieren.
jsolarski
BobC
BobC
BobC
jsolarski
BobC
Kevin Vermeer
Kevin Vermeer
BobC
Connor Wolf