Condividi tramite


Caratteristiche del canale di controllo

Il canale di controllo per il dispositivo è l'endpoint di controllo USB. Viene inviato un messaggio di controllo dall'host al dispositivo come trasferimento SEND_ENCAPSULATED_COMMAND. Questo trasferimento viene definito nella tabella seguente.

BmRequestType bRequest wValue Windex wLength Dati

0x21

0x00

0x0000

campo bInterfaceNumber del descrittore dell'interfaccia della classe di comunicazione

Lunghezza byte del blocco di messaggi di controllo

Blocco messaggi di controllo

L'host non esegue il polling continuo dell'endpoint di controllo USB per i messaggi di controllo di input. Al momento dell'inserimento di un messaggio di controllo nell'endpoint di controllo, il dispositivo deve restituire una notifica nell'endpoint Di interruzione dell'interfaccia della classe di comunicazione, che viene eseguito il polling dall'host ogni volta che il dispositivo può restituire messaggi di controllo. Il trasferimento dall'endpoint IN di interruzione del dispositivo all'host è un trasferimento USB Interrupt IN standard. L'unica notifica del dispositivo definita è la notifica RESPONSE_AVAILABLE definita nella tabella seguente.

Offset (byte) Lunghezza (byte) Campo Dati

0

4

Notifica

RESPONSE_AVAILABLE (0x00000001)

4

4

Riservato

0

Dopo aver ricevuto la notifica di RESPONSE_AVAILABLE, l'host legge il messaggio di controllo dall'endpoint di controllo usando un trasferimento GET_ENCAPSULATED_RESPONSE definito nella tabella seguente.

bmRequestType bRequest wValue Windex wLength Dati

0xA1

0x01

0x0000

campo bInterfaceNumber del descrittore dell'interfaccia della classe di comunicazione

0x0400 (si tratta della lunghezza minima di byte del buffer pubblicata dall'host)

Blocco messaggi di controllo

Se per qualche motivo il dispositivo riceve un GET_ENCAPSULATED_RESPONSE e non è in grado di rispondere con dati validi nell'endpoint di controllo, dovrebbe restituire un pacchetto di un byte impostato su 0x00, anziché bloccare l'endpoint di controllo.