Bester Speichertyp für die Datenprotokollierung

Ich werde ein Board entwerfen, dessen Datenprotokollierung obligatorisch ist! Ich glaube nicht, dass ich für große Teile genügend Platz auf der Platine habe, aber ich möchte einen eingebetteten Flash (dedizierter IC). Zur Behandlung unerwarteter Stromabschaltungen muss das System jedes Mal Daten speichern, die durch einen bestimmten Intervallwert (Sekunden) bestimmt werden. Daten haben String-Format mit undefinierter Länge. Und ich muss diese Daten in einem eingebetteten Flash-Speicher speichern. Daten stammen von Sensoren und anderen Peripheriegeräten wie der Stromversorgungsüberwachung.

  • Welcher Speichertyp ist für diesen Zweck am besten geeignet? (NAND oder NOR)?

Ich werde mit einer Speicherkapazität von >4 MB zufrieden sein. Bei ein wenig Recherche habe ich festgestellt, dass NAND-Flash eine kleine Anzahl von Seiten mit großer Kapazität hat und dies mehr W / E-Zyklen verbraucht.

-Danke!

Ist Ihr uC/Prozessor leistungsfähig genug, um eine Dateisystemebene zu unterstützen?
Um Ihnen eine schnelle allgemeine Antwort zu geben, wird NAND im Allgemeinen für Daten im sequentiellen / Protokollierungsstil bevorzugt ...
@RespawnedFluff mein uC ist ein ARM Cortex-M7, ich denke, es ist leistungsfähig genug. Aber ich werde kein Betriebssystem verwenden,

Antworten (2)

Wenn Sie nach etwas suchen, das viele Schreibzyklen zurückhalten kann, sollten Sie sich FRAM (z. B. von Cypress) ansehen. Grundsätzlich unbegrenzte Schreib-/Löschzyklen. Dies ist natürlich mit Kosten verbunden. Wenn Sie nach großem Speicher suchen, entscheiden Sie sich für NAND, aber stellen Sie sicher, dass Sie nicht immer wieder auf denselben Sektor/dieselbe Seite schreiben.

Ja, ich weiß, dass das Schreiben auf dieselbe Seite für NANDs (und NORs) etwas schmerzhaft ist. Ich schwanke zwischen Nor- und Flash-Erinnerungen. Wie einfach darf die NAND-Flash-Schnittstelle sein?
Als ich zuletzt nachgesehen habe, waren FRAM-Geräte eher 128 KB als 4 MB groß ... hat sich das geändert?
4MBit sind verfügbar: cypress.com/products/4-mb-f-ram . 4MByte nicht, nvSRAM wäre noch eine Option

Mir ist klar, dass Sie die Verwendung eines dedizierten IC erwähnt haben, aber ich glaube, der einfachste Weg, ein Gerät zur Datenprotokollierung auf relativ kleinem Raum hinzuzufügen, ist die Verwendung einer microSD-Karte. Die Verbindung zum Mikrocontroller ist ein vieradriger SPI-Bus (CLK, SDI, SDO und CS). Aufgrund ihres hohen Volumens sind sie sehr günstig – 8 GB für 5 US-Dollar bei Amazon, wahrscheinlich weniger bei eBay. Diese verwenden zufällig NAND-Flash, aber das ist für den Benutzer transparent.

Sie benötigen kein Betriebssystem, Sie können einfach als einzelne Sektoren darauf schreiben. Da der Speicherplatz so groß ist, gibt es kein Problem, die Karte zu verschleißen. Die Spezifikation für die SPI-Schnittstelle zu SD-Karten ist öffentlich verfügbar, und es gibt auch jede Menge Code zum Schreiben und Lesen auf der Karte.

Wenn Sie den Code zum Implementieren eines FAT-Dateisystems hinzufügen möchten, können Sie die Karte entfernen und in einem PC lesen. Es gibt auch eine Menge Code, um das zu tun.

Ich denke, dass die entfernbare Funktion der microSD-Karte Datenbeschädigungen verursachen kann. Der Speicher muss immer im System angeschlossen bleiben, um Datenverlust durch unerwartete Abschaltungen zu verhindern. Aber ich verstehe die Flexibilität und Nützlichkeit dieses Speichertyps.