Massenspeicher für eingebettete Anwendungen

Welche Optionen habe ich, wenn ich mit relativ großen Datenmengen auf einem eingebetteten Prozessor umgehen muss? Ich habe mit einem SPI-Controller einen Speicherplatz von etwa 2-4 GB gefunden, aber ich denke an etwas in den 10er bis 100er GB.

uSD-Karte? oder QSPI-Flash ...
Welche Art von eingebettetem Prozessor? Wenn es leistungsfähig genug ist, würde eine SATA-Festplatte den Trick gut machen.
@MadHatter Ich weiß nicht, warum ich das nicht untersucht habe. Es scheint, dass uSD SPI tut? Werde ich nach einer 32-Bit-Adresse das Maximum erreichen?
@uint128_t So etwas wie ein ARM-M4. Müssten wahrscheinlich eigene Treiber rollen?
@RYS Oh. SATA ist wahrscheinlich ein No-Go. Wie Duskwuff sagte, ist SD/uSD/eMMC wahrscheinlich die beste Wahl. Auch USB-Massenspeicher über eine USB-Host-Schnittstelle könnten eine Option sein.

Antworten (2)

Für diesen Größenbereich ist SD wahrscheinlich die beste Option. Es ist relativ einfach zu bedienen, leicht verfügbar in großen Kapazitäten (jetzt bis zu 256 GB!) und kann bei Bedarf problemlos von einem Computer gelesen werden.

Abhängig von Ihren genauen Anforderungen kann eMMC auch eine Option sein. Es ist im Wesentlichen eine eingebettete Variante von SD, mit einigen geringfügigen Modifikationen.

NAND-Flash ist auch eine Option, aber ich würde es nicht empfehlen. Roher NAND-Flash enthält keine Übersetzungsschicht, sodass Sie sich am Ende selbst um Schreibnivellierung und fehlerhafte Blöcke kümmern müssen. Es ist ein riesiger Schmerz.

Bei SD ist Vorsicht geboten. Implementierungen können unzuverlässig sein. Kompatibilität kann am Ende ein Monsterschmerz im Arsch sein.

Abhängig davon, was Sie tun möchten und welche Prozessoren Sie verwenden können, verwende ich seit einigen Jahren erfolgreich SD-Karten mit bis zu 64 GB auf einer Vielzahl von ARM-basierten Controllern, einschließlich

  1. Himbeer-Pi
  2. BeagleBrett
  3. STM32F aus den Reihen 100, 300 und 400.
  4. Verschiedene Olimex STM32-Entwicklungsboards mit eingebauter SD-Karte
  5. Diverse Android-Geräte zB Samsung Galaxy, Nexus

Die ST-Bibliotheken beinhalten sdCard-Treiber, und Sie können entweder ein SDIO-Peripheriegerät oder einen SPI-Bus verwenden. Sie können 1 Bit (SPI oder SDIO) oder 4 Bit (SDIO) verwenden.

Da Sie ein eingebettetes Gerät bauen, kann der Adressbereich beliebig sein, es hängt nur davon ab, wie viele Bits Sie senden und die SD in ihrer Adresse benötigt.
Sie können sogar mehr als eine SD-Karte verwenden, wenn Sie die Auswahlleitung selbst steuern, oder mehrere SPI-Peripheriegeräte verwenden.

Ich habe noch nie eine davon als flockig empfunden.

Sie können Raspberry nicht von Geräten mit > 32 GB booten, ohne die Patches auf der Raspberry-Website zu lesen und anzuwenden. Dies ist eine OS-Beschränkung, kein CPU-Lustiges. (Habe das noch nicht mit Beagle gemacht).

Der Raspberry nimmt auch einen USB-Flash-Stick mit 64 GB auf. Jeder der OTG-fähigen Controller kann dies ebenfalls tun.

Die 32-Bit-PICs sollten auch in der Lage sein, SD-Karten und/oder USB-Flash-Laufwerke zu verwenden.

Android eröffnet einen ganz neuen Bereich, in dem viele Funktionen integriert sind. Ich muss nur einen Bluetooth-, WLAN-, USB- oder NFC-Kanal bereitstellen. Denke du könntest auch IOS gehen.