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


Anmelden zum Antworten