Udostępnij za pośrednictwem


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 długość Dane

0x21

0x00

0x0000

bInterfaceNumber pole deskryptora interfejsu klasy komunikacji

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.

Przesunięcie (bajty) Długość (bajty) Pole Dane

0

4

Powiadomienie

RESPONSE_AVAILABLE (dostępna_odpowiedź) (0x00000001)

4

4

Zastrzeżony

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 długośćW Dane

0xA1

0x01

0x0000

bInterfaceNumber pole deskryptora interfejsu klasy komunikacji

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

Blok komunikatów kontrolnych

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.