Forum: PC-Programmierung USB Bulk/Isochrone Transfers


von Jan (Gast)


Lesenswert?

Hey,

arbeite mich grad in das USB-Thema ein: HID mit Interrupt-Endpoints 
funktioniert bereits. Allerdings sieht es so aus, als ob HID immer 
Reports versendet; entweder an den Control Endpoint oder an den 
Interrupt-Out-Endpoint wenn dieser vorhanden ist.

Um Bulk- oder Isochrone-Transfers benutzen zu können, muss anscheinend 
einen eigenen Treiber schreiben. Ist sowas schwierig, wenn man ansonsten 
mit der Funktionalität des HID-Treibers von Windows zufrieden ist? Ich 
möchte lediglich Bulk und Isochron auswhählen können als Transferart.

Vielleicht hat jmd von euch sowas schon geschrieben oder/und weiß eien 
sehr gute Quelle mit Beispielen im Netz.

Besten  Dank
Jan

: Verschoben durch Moderator
von Schorsch (Gast)


Lesenswert?

HID war eigentlich für Tastaturen, Mäuse, Joysticks gedacht, und dafür 
wären Bulk/Iso Transfers doch etwas overkill.

Wenn du keinen Windows-Treiber schreiben willst, bleiben noch andere 
Geräte-Klassen, wie Audio und MSD. Die funktionieren auch mit den 
Windows-Eigenen Treibern.

Oder du schaust dir die LibUSB an, dort ist der "Treiber" nachher im 
Userspace, also deiner Anwendung. Der LibUSB-Teil reicht praktisch 
einfach alles durch...

von Christian R. (supachris)


Lesenswert?

Oder einen generischen Treiber: 
Beitrag "Generischer USB Treiber für Windows mit C++ API" oder gleich den WinUSB aus 
dem WDK, der geht auch für alle USB Devices.

von bluppdidupp (Gast)


Lesenswert?

Mit HID kommt man da auf jedenfall nicht weiter:
"Other types of pipes include Bulk and Isochronous. These two types
of pipes are not used by HID class devices and are therefore not defined 
for use within this specification." ("HID Device Class Definition"-PDF 
auf usb.org)

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.