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 sue funzionalità di alimentazione e interfacce. Il dispositivo può avere più configurazioni, ma solo una è attiva alla volta. La configurazione attiva non viene scelta dallo stack di driver USB, ma potrebbe essere avviata da un'applicazione, un driver, il driver di 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 sola funzione. In tal caso, il dispositivo può avere un descrittore di associazione dell'interfaccia (IAD). Un IAD raggruppa le interfacce che appartengono a una funzione specifica.
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 riassumere, un gruppo di endpoint forma un'interfaccia e un set di interfacce costituisce una configurazione nel dispositivo.
Cosa significa quindi 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 illustra la configurazione di un dispositivo con una singola interfaccia:
In questo esempio il diagramma mostra l'endpoint 0, denominato endpoint predefinito. Tutti i dispositivi USB devono avere un endpoint predefinito usato per i trasferimenti di controllo (vedere Trasferimento del controllo 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 con 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. Si consideri 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:
In questo esempio il diagramma mostra l'endpoint predefinito. La configurazione 0 ha due interfacce: Interfaccia 0 e Interfaccia 1. L'interfaccia 0 ha tre impostazioni alternative. Solo una delle impostazioni alternative è attiva in qualsiasi momento. Si noti che l'impostazione alternativa 0 non usa un endpoint, mentre le impostazioni alternative 1 e 2 usano l'endpoint 1. In genere, una videocamera usa un endpoint isocrono per lo streaming. Per quel tipo di endpoint, quando l'endpoint è in uso, la larghezza di banda è riservata al 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 crescenti di qualità e utilizza un aumento della larghezza di banda del bus. 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 usare l'endpoint 4.
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'operazione di trasferimento dati o 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 ed endpoint per ottenere un'idea della funzionalità del dispositivo.
Vedere quindi descrittori USB standard.