Forum: Mikrocontroller und Digitale Elektronik USB-Laufwerk implementieren


von Warper (Gast)


Lesenswert?

Hi,

ich habe aktuell eine Mikrocontroller, auf dem Flash vorhanden ist und 
auf welches ich mittels Chan's FatFS bereits problemlos zugreifen kann. 
USB hat das gute Stück ebenfalls.

Im nächsten Schritt soll sich der Controller jetzt auf einem Host-System 
als Laufwerk melden, wenn er per USB angeschlossen wird. Hier suche ich 
nun ein paar Anhaltspunkte, wie das zu bewerkstelligen ist/wo ich 
anfangen kann zu suchen, z.B.:

- welche Daten sind an den Host-PC zu übertragen, werden da irgendwie 
die nackten Flash-Zugriffe durchgereicht und der Host-PC kümmert sich um 
das Filesystem?

- welcher USB-Typ ist hier zu verwenden - Bulk-Transfer?

Jeder Hinweis/Einstiegspunkt/Link ist willkommen!

von Paddy (Gast)


Lesenswert?

Welcher microcontroller benutzt du ?
AVR mit USB >> Suche mal auf LUFA, damit ist das moeglich.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Warper schrieb:
> - welche Daten sind an den Host-PC zu übertragen, werden da irgendwie
> die nackten Flash-Zugriffe durchgereicht und der Host-PC kümmert sich um
> das Filesystem?

Wenn Du mit "nackten Flash-Zugriffen" die Zugriffe auf Speicherblöcke 
meinst: Ja, genau so ist das. Der µC braucht dafür keinerlei Dateisystem 
zu kennen.

Sofern Du vorhast, die vom Host auf Deinem USB-Device gespeicherten 
Daten mit dem µC auszuwerten (oder andersherum Daten vom µC auf den Host 
zu übertragen), musst Du darauf achten, daß immer nur einer der 
Beteiligten das Dateisystem verwalten darf.

Dein µC kann erkennen, ob er an einen Host angeschlossen ist; ist das 
der Fall, hat er tunlichst jeden schreibenden Dateisystemzugriff zu 
unterlassen. Er darf erst dann im Dateisystem herumrühren, wenn der Host 
weg ist. Es genügt nicht, lediglich Schreibzugriffe des Hosts 
auszusitzen, der µC muss wirklich vom Host getrennt sein.

Der Host nämlich kann nicht erkennen, daß Dein µC im Dateisystem 
herumschreiben möchte, und wird aus Performancegründen bestimmte Teile 
des Dateisystems cachen (wie z.B. die FAT), so daß auch bei reinen 
Lesezugriffen seitens des Hosts sehr interessante Nebeneffekte auftreten 
können. Bei Schreibzugriffen durch den Host wird das noch ... lustiger.

von Axel S. (a-za-z0-9)


Lesenswert?

Du mußt ein USB mass storage device implementieren. Die Übertragung 
verwendet selbstverständlich bulk transfers.

Natürlich kriegt der Host den nackten Speicher zu sehen (macht die 
Interpretation von Filesystem und evtl. Partitionstabelle also selber)

von Peter II (Gast)


Lesenswert?

Axel Schwenke schrieb:
> Du mußt ein USB mass storage device implementieren. Die Übertragung
> verwendet selbstverständlich bulk transfers.
>
> Natürlich kriegt der Host den nackten Speicher zu sehen (macht die
> Interpretation von Filesystem und evtl. Partitionstabelle also selber)

er könnte auch MTP nutzen, dann braucht er kein Filesystem und kann 
selber gleichzeitig lesen und schreiben.

http://de.wikipedia.org/wiki/Media_Transfer_Protocol

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.