Welche USB Klasse verwenden?
-
Hallo zusammen,
ich bin gerade dabei ein Protokoll über USB zu tunneln. Da dieses Thema sehr Hardware nahe ist und das ganze in C auf dem Board entwickelt wurde, hoffe ich, dass dies hier das richtige Forum ist.
Im Moment nehme ich ein MCB2140 Board, das als HID Gerät erkannt wird. Von einem "Experten" habe ich erfahren, das die Art wie ich es im Moment mache
sehr unschön und nicht dem USB Gedanken entsprechend ist. Also beim
lesen bitte nicht zu schockiert sein
Ich baue also einen Tunnel über die Input/Putput Reports auf (bis jetzt
nur einem in jede Richtung). 16 Byte gehen rein und 4 kommen zurück.
Mein Protokoll zerstückel ich einfach in 4 bzw. 16 Byte große Häpchen
und dann versende ich sie. Wenn das USB Board keine Daten zum senden
hat, dann schickt er einfach 0 0 0 0.Hat einer von euch eine bessere Idee, wie man das machen könnte? Andere
Klasse verwenden? Treiber schreiben? ...Bin für jeden Tipp dankbar.
Grüße Nils
PS: Ich habe hier schon mal eine ähnliche Frage gepostet, aber jetzt wo die Änderung der Klasse akut wird und mein Wissen über USB ein wenig besser ist wollt ichs nochmal probieren.
-
Nils_Langner schrieb:
... und das ganze in C auf dem Board entwickelt wurde, hoffe ich, dass dies hier das richtige Forum ist.
Naja, die Frage ist ja absolut nicht C-spezifisch. Ich verschieb dich mal in das rudpf, da ist das imho besser aufgehoben.
-
Dieser Thread wurde von Moderator/in TactX aus dem Forum ANSI C in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Moin
HID hat für dich momentan halt den vorteil das du keinen treiber brauchst. Ob nun schön oder nicht sei mal dahingestellt.
Ich weiss leider nicht was du genau machst. Schau doch mal bei USB.org vorbei, dort sind alle standard klassen beschrieben und dokumentiert (HID, Printer, Massstorage,...). Solltest du properitäre protokolle verwenden, wird ein eigener treiber notwendig. aber auch dafür gibts bereits lösungen. nur leider nicht von MS, und somit kostenflichtig. (Jungo oder thesycon) damit must du keinen kernel treiber mehr schreiben, sondern kanst das ganze aus dem user space erledigen. (universal USB - Treiber)
gruss
-
Auf USB.org war ich natürlich schon. Würde aus dren Informationen, die ich aus dem USB 2.0 Buch von Franzis habe, dazu tendieren eine "Data-Interface-Class" zu verwenden. Aber leider müsste ich dazu diese Klasse erstmal auf dem MCB2140 Board zum laufen bekommen. Glaubt ihr die Wahl der Klasse ist ok?
Nils