Hallo ich möchte gerne Daten per USB auf eine SD-Card schreiben, die Daten anschließend mit einem Mikrorechner bearbeiten und auf demselben weg wieder zurückholen. Verwendet werden soll MTP (Media Transfer Protocol). Wenn ich im Internet suche, finde ich nur wenig Projekte zu Thema. Das Teensy-Projekt sieht vielversprechend aus. Damit werde ich mal experimentieren. Weiß sonst noch jemand fertige Lösungen/Beispiele mit anderen Controllern, die ich studieren könnte. Ich trage zuerst einmal Infos zusammen. Welcher Controller zum Einsatz kommen wird, ist noch offen. Vielen Dank für Eure Unterstützung. Grüße Markus
Mtp wird normalerweise von Smartphones und dgl genutzt um den Zugriff des host-Rechners auf das Dateisystem zu abstrahieren und zu beschränken. deine Anwendung klingt eher nach einem Kartenleser als nach einem Smartphone...
Der FX3S von Cypress hat eine eingebaute SD Schnittstelle. Einen Controller auch.
Wozu denn MTP? MTP impliziert dass du ein Gerät dazwischen hat, welches das Dateisystem implementiert. Das bedeutet, dass das relativ kompliziert ist. Smartphones machen das bekanntlich so. Bei normalen SD-Karten-Lesern implementiert der PC das Dateisystem. Warum kannst du einen solchen nicht benutzen?
Dr. Sommer schrieb: > Warum kannst du > einen solchen nicht benutzen? Er könnte die Daten verschlüsseln. Ähnlich wie die Cryptosticks, bei denen man ein Passwort über dessen Tastatur eingeben muss. Dann würde sein Vorhaben so Sinn machen. Oder er will nur eine Logdatei freigeben, und die restlichen Files "verstecken". Dann muss er das so auch machen... Aber fragen wir doch einfach den TO :-D
Dr. Sommer schrieb: > Warum kannst du > einen solchen nicht benutzen? Der SD-Karten-Leser ist ein USB-Sorage-Device. Solange der Host mit der SD verbunden ist, kann ich vom Controller nicht darauf zugreifen. Ich möchte aber eine Datei A senden, vom Controller darauf zugreifen, die Datei bearbeiten und das Ergebnis im Filesysem als Datei B ablegen. Nun kann ich vom Host wieder auf Datei B zugreifen.
markus c. schrieb: > Ich möchte aber eine Datei A senden, vom Controller darauf zugreifen, Also gleichzeitig? Warum schließt du nicht den Controller direkt per USB an den Mini-Rechner an und tauschst darüber Daten aus? Dürfte deutlich weniger kompliziert als der Umweg über SD-Karte und MTP sein. Ansonsten nimm halt ein altes Smartphone, und greif per MTP auf die darin befindliche SD-Karte zu. Eine App auf dem Smartphone könnte dann gleichzeitig Dateien darauf verarbeiten. Alternativ gibt es "Fake"-SD-Karten welche die Dateizugriffe über ein WLAN umleiten. Ein System mit 2 MTP-Schnittstellen ist mir nicht bekannt.
Das hier schon oft erwähnte Problem ist, dass man ein Blockdevice nur exklusiv benutzen kann - entweder der Computer oder Controller. Für gleichzeitigen Zugriff ohne Treiber gibt es nur MTP (oder man braucht ein Transferprogramm und macht HID oder sowas). MTP ist schon die richtige Lösung, wenn es darum geht, von einem Controller eine draufkopierte Datei zu benutzen, ohne ihn vorher vom Computer trennen zu müssen. Dr. Sommer schrieb: > Ein System mit 2 MTP-Schnittstellen ist mir nicht bekannt. Das Ziel ist, ein Gerät zu bauen, welches man an den Computer anschließt, dann eine Datei A draufkopiert, kurz wartet, und dann eine daraus generierte Datei B runterkopiert. Die SD-Karte kommt (vermutlich) nur ins Spiel, weil die Datei vermutlich größer als ist als der verfügbare RAM eines AVR. Mir ist leider kein MTP-Projekt bekannt, aber die Spezifikation müsste frei sein. Außerdem bin ich auch neugierig. Daher: Abo. :-D
Das ist, wenn ich's richtig verstehe, die USB-Host-Implementierung, um mit einem MTP-Device "reden" zu können; ging es hier nicht eher darum, selbst ein MTP-Device zu implementieren?
Richtig, das Teensy-Projekt ist ein Software-Adapter zwischen Blockdevice (Flashspeicher mit FAT) und MTP. Der Umfang schreit nach einem 32-Bit-Controller. Da sich MTP wesentlich schlechter als ein Blockdevice ins (Windows-)System einbindet, ist das generell eine ungünstige Lösung. MTP ist ohnehin krankhaft als Dateisystem, es kann keine Datei-Abschnitte lesen // schreiben // sperren, keine Rechte // Attribute verwalten u.v.a.m. Ich gehe mal davon aus, dass für Dein Projekt ein externer Flash größenmäßig Overkill darstellt und der RAM- oder Flash-Speicher im Kilobyte-Bereich des Mikrocontrollers ausreicht. Dann wäre dies hier ein Ausgangspunkt: Nur 4 Kilobyte Kode für einen 24-KByte-Flash-Speicher auf Arduino Pro Micro. http://www.tu-chemnitz.de/~heha/pg/Wild%20GIF12/#7.1 Wenn der Controller eine der Dateien selbst verändert, muss man noch entsprechende Events (Benachrichtigungen, Rundrufe) versenden, damit der MTP-Client (bspw. Windows) das mitbekommt. Genau das hat mein Projekt letztendlich vor: Wenn der Uralt-Theodolit Daten auf die Karte schreibt, soll das der (gleichzeitig angeschlossene!) Laptop auch mitbekommen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.