Ich habe im Laufe der Jahre SD-Karten für mehrere eingebettete Anwendungen verwendet. Da die Karten jedoch größer geworden sind, sind die Einzelblock-Lese- und Schreibgeschwindigkeiten gesunken. Ich vermute, dass dies hauptsächlich daran liegt, dass die Seitengrößen immer größer werden. Die meisten SD-Stacks führen keine mehrfachen Block-Lese-/Schreibvorgänge durch, und daher können wir in eingebetteten Anwendungen niemals Megabyte pro Sekunde erhalten, wie Sie es mit einem PC können. Ein Teil davon ist auf die Taktraten zurückzuführen, die wir verwenden können, aber das meiste ist auf die Zeit zurückzuführen, die zum Lesen und Schreiben einzelner Blöcke benötigt wird. Kennt jemand SD-Karten, die dafür "optimiert" sind? Wenn es noch andere Vorschläge gibt, um dieses Limit zu umgehen, bin ich ganz Ohr. In meiner Anwendung wäre es jedoch aus verschiedenen Gründen SEHR schwierig, mehrere Blockanforderungen zu implementieren.
SD-Karten mit kleinerer Kapazität bieten häufig eine bessere Leistung für Einzelblock-Schreibvorgänge, da ihre Löschseitengröße kleiner ist. Wenn Sie auf die Karte schreiben, selbst wenn Sie nur ein einzelnes Byte schreiben, muss der interne Controller der Karte möglicherweise eine ganze Seite (oft 4K) in einen Puffer lesen, Ihr einzelnes Byte ändern, die Flash-Seite löschen und dann das Ganze schreiben zurück zum Flash-Speicher. Daher haben Karten mit einer kleineren Löschseitengröße weniger Nachteile für kleine Schreibvorgänge an zufälligen Adressen.
Welchen Mikrocontroller verwendest du? SdFatLab funktioniert auf AVRs und unterstützt mehrere Block-Lese-/Schreibvorgänge. Ihre Dateien müssen sich in zusammenhängenden Blöcken auf der SD-Karte befinden, um sie nutzen zu können.
Sehen Sie sich einige Diskussionen und Benchmarks unter http://elm-chan.org/docs/mmc/mmc_e.html an
Thrangaluchisch