[Dies ist eine Antwort auf die Kommentare nach Ians Antwort].
Eine SD-Karte ist nur ein SPI-Gerät, daher ist kein Chip / keine Schnittstelle erforderlich. Andere Protokolle umfassen eine 2-Draht-Schnittstelle (wie I2C) und eine 4-Draht-Schnittstelle (mit einer komplexen CRC), aber SPI wird am häufigsten verwendet.
Für den MSP430 von TI ist hier ein Anwendungshinweis für SD-Karten erhältlich . Es ist kurz, enthält aber Beispielcode. Es übernimmt das Lesen und Schreiben in verschiedenen Bereichen der SD-Karte. Dies ist möglicherweise alles, was Sie möchten, wenn Sie es nicht an einen PC anschließen. Schauen Sie sich auch diese Implementierungen von Foust (empfohlen) oder Evans von MSU an.
Sobald Sie über die Grundfunktionen zum Lesen und Schreiben eines Sektors verfügen, können Sie entweder ein einfaches, benutzerdefiniertes Dateisystem über USB abstrahieren oder eine vorhandene Dateisystembibliothek verwenden. FatFS , EFSL oder DOSFs sind alle Optionen für letztere. Wenn die Implementierung aller erforderlichen Funktionen zu schwierig erscheint, denken Sie daran, dass alle bis auf einige Stubs sein können / werden.
Das Dateisystem wird jedoch bis zu einem gewissen Grad über Ihre USB-Schnittstelle abstrahiert. Dies ist einfacher, wenn Sie über eine echte Dateisystembibliothek verfügen und sich Ihre Karte in einem lesbaren Dateisystem befindet. Dies erfordert jedoch Arbeit. Wenn Sie Ihr eigenes "Dateisystem" schreiben und Arbeit / Zeit / Speicher für die USB-Implementierung sparen möchten, können Sie die Definition so einfach und unflexibel gestalten, dass Protokoll 1 bei 0x0 beginnt, Protokoll 2 bei 0x10 0000 beginnt, Protokoll 3 bei 0x20 0000 und log 4 um 0x30 0000. Dann können Sie diese Daten über USB senden.
Die USB-Schnittstelle kann so komplex sein, wie Sie es möchten - von der seriellen Schnittstelle bis zum Massenspeichergerät.