Bus seriale universale (USB)

Universal Serial Bus (USB) offre un'interfaccia seriale Plug and Play espandibile che garantisce una connessione standard e a basso costo per i dispositivi periferici. I dispositivi USB includono tastiere, mouse, joystick, stampanti, scanner, dispositivi di archiviazione, modem, telecamere di videoconferenza e altro ancora.

USB-IF è un gruppo di interesse speciale (SIG) che gestisce la specifica USB ufficiale, le specifiche di test e gli strumenti.

I sistemi operativi Windows includono il supporto nativo per controller host USB, hub e dispositivi e sistemi conformi alla specifica USB ufficiale. Windows fornisce anche interfacce di programmazione che è possibile usare per sviluppare driver di dispositivo e applicazioni che comunicano con un dispositivo USB.

Icona USB per i generatori di dispositiviIcona USB per sviluppatori di driverIcona USB per sviluppatori di appIcona di certificazione USB HCK

USB in Windows

Strumenti di sviluppo

Esempi USB

Creare un driver USB o un'app per Windows

Introduce lo sviluppo di driver USB. Fornisce informazioni sulla scelta del modello più appropriato per fornire un driver USB per il dispositivo.

Scrivere un driver client USB (KMDF, UMDF)

Questa sezione include esercitazioni sulla scrittura dei primi driver USB in modalità utente e in modalità kernel usando i modelli USB inclusi in Microsoft Visual Studio.

Scrivere un driver controller host USB

Se si sviluppa un controller host xHCI non conforme alla specifica o si sviluppa un hardware non xHCI personalizzato (ad esempio un controller host virtuale), è possibile scrivere un driver del controller host che comunica con UCX. Si consideri, ad esempio, un dock wireless che supporta i dispositivi USB. Il PC comunica con i dispositivi USB tramite il dock wireless usando USB su TCP come trasporto.

Scrivere un driver del controller di funzione per un dispositivo USB

È possibile sviluppare un driver controller che gestisce tutti i trasferimenti di dati USB e i comandi inviati dall'host al dispositivo. Questo driver comunica con l'estensione del controller di funzione USB fornita da Microsoft (UFX).

Sviluppo di driver Windows per controller di funzione USB

Informazioni di riferimento sulle estensioni della classe di funzione USB (UFX)

Scrivere un driver connettore USB Type-C

Windows 10 introduce il supporto per il nuovo connettore USB: USB Type-C. È possibile scrivere un driver per il connettore che comunica con il modulo di estensione della classe fornito da Microsoft: UcmCx per gestire gli scenari correlati ai connettori Type-C, ad esempio le porte che supportano il tipo C, che supportano la distribuzione di alimentazione.

Sviluppo di driver Windows per connettori USB Type-C

Informazioni di riferimento sulle estensioni della classe di gestione connettori USB (UcmCx)

Scrivere un driver controller a doppio ruolo USB

I controller con doppio ruolo USB sono ora supportati in Windows 10. Windows include driver client predefiniti per i controller ChipIdea e Synopsis. Per altri controller, Microsoft fornisce un set di interfacce di programmazione che consentono l'estensione della classe a doppio ruolo (UrsCx) e il driver client di comunicare tra loro per gestire la funzionalità di cambio di ruolo di un controller a doppio ruolo.

Per ulteriori informazioni su questa funzionalità, vedi:

Architettura dello stack di driver dual role USB

Informazioni di riferimento sulla programmazione dei driver del controller dual-role USB

Scrivere un driver USB per i dispositivi emulati

È possibile sviluppare un driver controller host usb (Universal Serial Bus) emulato e un dispositivo USB virtuale connesso. Entrambi i componenti vengono combinati in un singolo driver KMDF che comunica con l'estensione della classe di emulazione del dispositivo USB fornita da Microsoft (UdeCx).

Sviluppo di driver Windows per dispositivi USB emulati (UDE)

Informazioni di riferimento sulla programmazione dei driver del controller host USB emulato

Estensione WDF per lo sviluppo di driver USB

Scrivere un'app UWP

  • Comunicare con i dispositivi USB, iniziare a terminare: fornisce istruzioni dettagliate sull'implementazione delle funzionalità USB in un'app UWP. Per scrivere un'app di questo tipo per un dispositivo USB, è necessario Visual Studio e Microsoft Windows Software Development Kit (SDK).

  • Windows.Devices.Usb: informazioni di riferimento sulla programmazione dello spazio dei nomi UWP.

Scrivere un'app desktop di Windows

Test di dispositivi USB con Windows

Panoramica dei dispositivi Microsoft USB Test Tool (MUTT)

Ottenere informazioni sugli strumenti che è possibile usare per testare l'hardware o il software USB, acquisire tracce di operazioni e altri eventi di sistema e osservare come lo stack di driver USB risponde a una richiesta inviata da un driver client o da un'applicazione.

Leggere una panoramica dei test nel Kit di certificazione hardware che consentono ai fornitori di hardware e ai produttori di dispositivi di preparare i dispositivi USB e i controller host per l'invio della certificazione hardware Windows.

Bus seriale universale 4 (USB4™)

Altre risorse per USB

  • Specifica USB ufficiale: fornisce dettagli tecnici completi per il protocollo USB.

  • Blog del team di Microsoft Windows USB Core: consultare i post scritti dal team USB Microsoft. Il blog è incentrato sullo stack di driver USB di Windows che funziona con vari controller host USB e hub USB disponibili nel PC Windows. Una risorsa utile per gli sviluppatori di driver client USB e i progettisti di hardware USB per comprendere l'implementazione dello stack di driver, risolvere i problemi comuni e spiegare come usare gli strumenti per raccogliere tracce e file di log.

  • Elenchi osR online - ntdev: elenco di discussione gestito da OSR Online per sviluppatori di driver in modalità kernel.

  • Windows Hardware Dev Center: risorse varie basate sulle domande frequenti degli sviluppatori che non hanno esperienza nello sviluppo di dispositivi USB e driver che funzionano con i sistemi operativi Windows.

Hardware USB per l'apprendimento

  • Dispositivi MUTT: i dispositivi MUTT e SuperMUTT e il pacchetto software associato sono integrati nella suite HCK di test USB. Forniscono test automatizzati che possono essere usati durante il ciclo di sviluppo di controller USB, dispositivi e sistemi, in particolare test di stress.

  • OSR USB FX2 Learning Kit: se non si ha familiarità con lo sviluppo di driver USB. Il kit è il più adatto per studiare campioni USB inclusi in questo set di documentazione. È possibile ottenere il kit di apprendimento da OSR Online Store.

Informazioni sui driver USB forniti da Microsoft

  • Driver lato dispositivo USB in Windows: descrive l'architettura dello stack di funzioni USB.

  • Driver lato host USB in Windows: offre una panoramica dell'architettura dello stack di driver usb (Universal Serial Bus). Microsoft offre uno stack principale di driver che interagiscono con i dispositivi connessi ai controller EHCI e xHCI.

  • Driver di classe di dispositivo USB-IF: elenca i driver forniti da Microsoft per le classi di dispositivi USB supportate. Windows offre driver di classe di dispositivo predefiniti per molte classi di dispositivi approvate da USB-IF, audio, archiviazione di massa e così via.

  • Driver di funzione generico USB: WinUSB: WinUSB è un driver generico per i dispositivi USB inclusi in tutte le versioni di Windows da Windows Vista. Windows fornisce Winusb.sys che possono essere caricati come driver di funzione per un dispositivo personalizzato e una funzione di un dispositivo composito.

  • Driver padre generico USB per dispositivi compositi-Usbccgp: driver padre per dispositivi USB con più funzioni. Usbccgp crea oggetti dispositivo fisico (PDO) per ognuna di queste funzioni. Questi singoli PDO gestiscono i rispettivi driver di funzione USB, che potrebbero essere il driver Winusb.sys o un driver di classe di dispositivo USB.