Forum: Mikrocontroller und Digitale Elektronik minimal notwendige Schritte zur sicheren Kommunikation


von USB (Gast)


Lesenswert?

Hallo,

ich glaube ich muss doch noch mal eine Frage loswerden:

Welche Befehle erwartet ein USB HID Device, bevor es mit der Arbeit 
beginnen kann?

Welches sind dabei die Schritte, die wirklich immer durchlaufen werden 
müssen, bevor mit einem HID-Device kommuniziert werden kann?

Ich meine, müssen z.B. erst alle Deskriptoren abgefragt werden, oder 
kann man auch "wissen" dass nur eine Tastatur angeschlossen wird und 
sich den Anmeldeprozess verkürzen?
Muss erst zwingend ein Interface gewählt werden, ev. auch dann, wenn es 
nur ein einziges Interface gibt?
Ich habe z.B. eine Kommunikation geloggt, bei der der Befehl 
"Set_Configuration" genutzt wird, es gibt aber nur genau eine einzige 
Konfiguration und ich habe insofern eigentlich keinen Plan ob dies nun 
kopiert werden muss, oder nur kopiert werden darf.

Auch frage ich mich, ob ich immer erst den Reportdeskriptor abfragen 
muss, oder ob dies nur eine optionale Geschichte ist...
Fraglich ist halt, ob ein Device überhaupt anfängt zu arbeiten, wenn 
bestimmte Dinge in einer USB-Konfiguration nicht abgefragt werden und 
genau da würde ich gerne den minimalen Nenner wissen.

von Jim M. (turboj)


Lesenswert?

USB schrieb:
> Ich meine, müssen z.B. erst alle Deskriptoren abgefragt werden, oder
> kann man auch "wissen" dass nur eine Tastatur angeschlossen wird und
> sich den Anmeldeprozess verkürzen?

Nö. Keiner weiß was für ein Gerät am Port hängt außer man fragt die 
Deskriptoren ab.

USB schrieb:
> Muss erst zwingend ein Interface gewählt werden, ev. auch dann, wenn es
> nur ein einziges Interface gibt?

Ja.

USB schrieb:
> Auch frage ich mich, ob ich immer erst den Reportdeskriptor abfragen
> muss, oder ob dies nur eine optionale Geschichte ist...

Darüber könnte man nachdenken.

USB schrieb:
> Fraglich ist halt, ob ein Device überhaupt anfängt zu arbeiten,

Das HID Device wird anfangen zu "arbeiten", wenn man den entsprechenden 
Interrupt Endpoint abfragt. Wie viele Bytes und wie oft steht in den 
entsprechenden Deskriptoren.

: Bearbeitet durch User
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.