Charakterystyka kanału sterowania

Kanał kontrolny urządzenia to punkt końcowy kontroli USB. Komunikat kontrolny z hosta do urządzenia jest wysyłany jako transfer SEND_ENCAPSULATED_COMMAND. Ten transfer jest zdefiniowany w poniższej tabeli.

BmRequestType bRequest wValue wIndex wLength Data

0x21

0x00

0x0000

bInterfaceNumber field of Communication Class interface descriptor

Długość bajtu bloku komunikatów sterujących

Blok komunikatów sterujących

Host nie przeprowadza ciągłego sondowania punktu końcowego USB w poszukiwaniu komunikatów sterujących dotyczących wejścia. Po umieszczeniu komunikatu sterującego w punkcie końcowym sterowania urządzenie musi zwrócić powiadomienie na punkcie końcowym przerwania IN interfejsu klasy komunikacji, które jest odpytywane przez hosta za każdym razem, gdy urządzenie może zwrócić komunikaty sterujące. Transfer z punktu końcowego przerwania IN urządzenia do hosta jest standardowym transferem USB Interrupt IN. Jedynym zdefiniowanym powiadomieniem urządzenia jest powiadomienie RESPONSE_AVAILABLE zdefiniowane w poniższej tabeli.

Offset (bytes) Length (bytes) Field Data

0

4

Notification

RESPONSE_AVAILABLE (0x00000001)

4

4

Reserved

0

Po otrzymaniu powiadomienia RESPONSE_AVAILABLE host odczytuje komunikat kontrolny z punktu końcowego sterowania przy użyciu transferu GET_ENCAPSULATED_RESPONSE zdefiniowanego w poniższej tabeli.

bmRequestType bRequest wValue wIndex wLength Data

0xA1

0x01

0x0000

bInterfaceNumber field of Communication Class interface descriptor

0x0400 (jest to minimalna długość bajtu buforu opublikowanego przez hosta)

Blok komunikatów sterujących

Jeśli z jakiegoś powodu urządzenie otrzyma GET_ENCAPSULATED_RESPONSE i nie może odpowiedzieć prawidłowymi danymi na punkcie końcowym sterowania, powinno zwrócić jednogajtowy pakiet ustawiony na 0x00, zamiast zatrzymywania punktu końcowego sterowania.