Condividi tramite


Layout del dispositivo USB

Un dispositivo USB (Universal Serial Bus) definisce le funzionalità e le funzionalità tramite configurazioni, interfacce, impostazioni alternative ed endpoint. Questo articolo offre una panoramica generale di questi concetti.

Una configurazione USB definisce le funzionalità e le funzionalità di un dispositivo, principalmente le funzionalità di alimentazione e le interfacce. Il dispositivo può avere più configurazioni, ma solo una è attiva alla volta. La configurazione attiva non è scelta dallo stack di driver USB, ma potrebbe essere avviata da un'applicazione, un driver, il driver del dispositivo. Il driver di dispositivo seleziona una configurazione attiva.

Una configurazione può avere una o più interfacce USB che definiscono la funzionalità del dispositivo. In genere, esiste una correlazione uno-a-uno tra una funzione e un'interfaccia. Tuttavia, alcuni dispositivi espongono più interfacce correlate a una funzione. In tal caso, il dispositivo può avere un descrittore dell'associazione di interfaccia (IAD). Un IAD raggruppa le interfacce che appartengono a una determinata funzione.

Ogni interfaccia contiene uno o più endpoint, usati per trasferire i dati da e verso il dispositivo. Inoltre, l'interfaccia contiene impostazioni alternative che definiscono i requisiti di larghezza di banda della funzione associata all'interfaccia. Per sommare, un gruppo di endpoint forma un'interfaccia e un set di interfacce costituisce una configurazione nel dispositivo.

Quindi, cosa significa selezionare una configurazione attiva? Durante l'inizializzazione del dispositivo, il driver di dispositivo per il dispositivo USB deve selezionare una configurazione, una o più interfacce all'interno di tale configurazione e un'impostazione alternativa per ogni interfaccia. La maggior parte dei dispositivi USB non fornisce più interfacce o più impostazioni alternative. Ad esempio, il dispositivo OSR USB FX2 Learning Kit ha un'interfaccia con un'impostazione alternativa e tre endpoint. Per altre informazioni sul kit di apprendimento, vedere OSR Online.

Dispositivo a interfaccia singola

Questo diagramma mostra la configurazione di un dispositivo con una singola interfaccia:

Diagramma di un layout di dispositivo USB per un singolo dispositivo di interfaccia.

In questo esempio, il diagramma mostra Endpoint 0, denominato endpoint predefinito. Tutti i dispositivi USB devono avere un endpoint predefinito usato per i trasferimenti di controllo (vedere Trasferimento di controlli USB). La configurazione 0 ha un'interfaccia: interfaccia 0 con un'impostazione alternativa. L'impostazione alternativa 0 usa tutti e tre gli endpoint nell'interfaccia.

Dispositivo a più interfacce

Per i dispositivi multifunzione, il dispositivo ha più interfacce. Per usare una funzione specifica o un'interfaccia, il driver client seleziona l'interfaccia e un'impostazione alternativa associata. Prendere in considerazione un dispositivo USB a più funzioni, ad esempio una webcam. Il dispositivo ha due funzioni, acquisizione video (fotocamera) e input audio (microfono). Il dispositivo definisce un endpoint in un'interfaccia video che trasmette video. Il dispositivo ha un altro endpoint in un'interfaccia separata che accetta l'input audio tramite il microfono. La configurazione del dispositivo include entrambe queste interfacce.

Questo diagramma mostra la configurazione del dispositivo webcam:

Diagramma di un layout del dispositivo per un dispositivo a più interfacce.

In questo esempio il diagramma mostra l'endpoint predefinito. La configurazione 0 include due interfacce: Interfaccia 0 e Interfaccia 1. L'interfaccia 0 include tre impostazioni alternative. Solo una delle impostazioni alternative è attiva in qualsiasi momento. Si noti che l'impostazione alternativa 0 non usa un endpoint, mentre impostazioni alternative 1 e 2 usano Endpoint 1. In genere, una videocamera usa un endpoint isochronous per lo streaming. Per quel tipo di endpoint, quando l'endpoint è in uso, la larghezza di banda è riservata sul bus. Quando la fotocamera non è in streaming video, il driver client può selezionare Impostazione alternativa 0 per risparmiare larghezza di banda. Quando la webcam è in streaming video, il driver client può passare all'impostazione alternativa 1 o all'impostazione alternativa 2, che fornisce livelli di qualità crescenti e utilizza una larghezza di banda del bus crescente. L'interfaccia 1 ha due impostazioni alternative. Analogamente all'interfaccia 0, l'impostazione alternativa 0 non usa un endpoint. L'impostazione alternativa 1 è definita per l'uso dell'endpoint 1.

Gli endpoint non possono essere condivisi tra due interfacce all'interno di una configurazione. Il dispositivo usa l'indirizzo dell'endpoint per determinare l'endpoint di destinazione per un trasferimento dati o un'operazione dell'endpoint, ad esempio la reimpostazione della pipe. Tutte queste operazioni vengono avviate dall'host.

Prima di iniziare a usare il dispositivo, ottenere informazioni sul layout del dispositivo. USBView è un'applicazione che consente di esplorare tutti i controller USB e i dispositivi USB connessi. Per ogni dispositivo connesso, è possibile visualizzare i descrittori di dispositivo, configurazione, interfaccia e endpoint per ottenere un'idea della funzionalità del dispositivo.

Vedere quindi descrittori USB standard.