Bus seriale universale (USB)

Universal Serial Bus (USB) offre un'interfaccia seriale espandibile, plug-in-hot Plug and Play che garantisce una connessione standard a basso costo per dispositivi periferici, ad esempio tastiere, mouse, joystick, stampanti, scanner, dispositivi di archiviazione, modem e telecamere di videoconferenza. La migrazione a USB è consigliata per tutti i dispositivi periferici che usano porte legacy, ad esempio PS/2, seriale e porte parallele.

USB-IF è un gruppo di interessi 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 offre 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 dispositiviUSB per gli sviluppatori di driver icona USB per sviluppatori di app icona icona certificazione USB HCK

USB in Windows

Strumenti di sviluppo

Esempi USB

Creare un driver USB o un'app per Windows

Presenta 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 del controller host USB

Se si sta sviluppando un controller host xHCI non conforme alla specifica o lo sviluppo di 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 dispositivi USB tramite il dock wireless usando USB tramite TCP come trasporto.

Scrivere un driver del controller di funzione per un dispositivo USB

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

Sviluppo di driver Windows per i controller di funzione USB

Informazioni di riferimento sulla classe di funzione USB (UFX)

Scrivere un driver del 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 scenari correlati a connettori Type-C, ad esempio, quali porte supportano Type-C, che supportano la distribuzione di energia.

Sviluppo di driver Windows per connettori USB Type-C

Informazioni di riferimento sulla 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 in box per i controller ChipIdea e Synopsis. Per altri controller, Microsoft fornisce un set di interfacce di programmazione che consentono l'estensione della classe dual-role (UrsCx) e il relativo driver client per comunicare tra loro per gestire la funzionalità di cambio di ruolo di un controller a doppio ruolo.

Per altre informazioni su questa funzionalità, vedere:

Architettura dello stack di driver dual role USB

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

Scrivere un driver USB per i dispositivi emulati

È possibile sviluppare un driver del controller host usb (Universal Serial Bus) emulato e un dispositivo USB 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)

Riferimento alla programmazione del driver del controller host USB emulato

Estensione WDF per lo sviluppo di driver USB

Scrivere un'app UWP

  • Parlare con i dispositivi USB, iniziare a completare: 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).

  • Informazioni di riferimento sulla programmazione dello spazio dei nomi UWP.

Scrivere un'app desktop di Windows

Test dei 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 consente ai fornitori hardware e ai produttori di dispositivi di preparare i dispositivi USB e i controller host per l'invio di certificazione hardware Windows.

Altre risorse per USB

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

  • Blog del team USB Core di Microsoft Windows: 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 presenti nel PC Windows. Una risorsa utile per sviluppatori di driver client USB e progettisti 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 in base alle domande frequenti degli sviluppatori che non hanno esperienza nello sviluppo di dispositivi e driver USB 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 di core 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 sono gestiti dai rispettivi driver di funzione USB, che potrebbero essere il driver Winusb.sys o un driver di classe di dispositivo USB.