Condividi tramite


Architettura: progettazione USB Type-C per un sistema Windows

Descrive una tipica progettazione hardware di un sistema USB Type-C e i driver forniti da Microsoft che supportano i componenti hardware. Questo articolo si applica ai sistemi di sviluppo di sistemi con connettori USB Type-C.

  • Funzionalità con doppio ruolo USB tramite USB Type-C
  • Ricarica più veloce usando i livelli correnti USB Type-C e Power Delivery 2.0
  • Display-Out funzionalità usando modalità alternative e esperienze di ancoraggio cablato.

Driver per il supporto dei componenti USB Type-C

Diagramma dei componenti software di tipo USB-C.

Nell'immagine precedente,

  • Driver sul lato dispositivo USB

    I driver sul lato dispositivo USB serviziono la funzione/dispositivo/periferica. L'estensione della classe del controller di funzione USB supporta MTP (Media Transfer Protocol) e carica con i caricatori BC 1.2. Microsoft offre driver client in box per i controller USB 3.0 e ChipIdea USB 2.0. È possibile scrivere un driver client personalizzato per il controller di funzione usando interfacce di programmazione client del controller di funzione USB. Per altre informazioni, vedere Sviluppo di driver Windows per controller di funzione USB.

    Il fornitore di SoC potrebbe fornire il driver di filtro inferiore della funzione USB per il rilevamento del caricatore proprietario legacy. È possibile implementare un driver di filtro personalizzato se il controller di funzione è Synopsys USB 3.0 o ChipIdea USB 2.0 controller

  • Driver lato host USB

    I driver lato host USB sono un set di driver che funzionano con controller host USB conformi a EHCI o XHCI. I driver vengono caricati se il driver del commutatore di ruolo enumera il ruolo host. Se il controller host non è conforme alle specifiche, è possibile scrivere un driver personalizzato usando l'interfaccia di programmazione UCX (USB Host Controller Extension). Per informazioni, vedere Sviluppo di driver Windows per controller host USB.

    Nota

    Non tutte le classi di dispositivi USB sono supportate in Windows 10 Mobile.

  • Driver di cambio di ruolo USB (URS)

    I sistemi possono essere progettati in modo che la porta USB a doppio ruolo richieda Windows di configurarla in modalità Host o Funzione. Queste progettazioni dovranno usare lo stack di driver URS (USB Role Switch).

    Il driver URS gestisce il ruolo corrente del connettore, dell'host o della funzione e il caricamento e lo scarico dei driver sul lato dispositivo o sul lato host appropriati, in base agli eventi hardware della piattaforma. Microsoft offre driver client in box per i controller USB 3.0 e ChipIdea USB 2.0. È possibile scrivere il driver client del commutatore di ruolo usando l'interfaccia di programmazione del driver del controller a doppio ruolo USB. Per attivare i driver del commutatore di ruolo, è necessario apportare modifiche alle tabelle ACPI. Per altre informazioni, vedere Architettura dello stack di driver dual role USB.

    Nei sistemi con connettori USB micro-AB, questa decisione viene presa in base al pin ID nel connettore. Il rilevamento dei pin ID viene eseguito dal driver client usando le risorse di interruzione assegnate.

    Nei sistemi con connettori USB Type-C, la decisione viene presa in base ai pin CC. Il driver client per il connettore esegue il rilevamento cc e inoltra tali informazioni al driver del commutatore di ruolo.

  • Gestione connettori USB (UCM)

    Questo set di driver gestisce tutti gli aspetti del connettore USB Type-C. Se il sistema implementa un controller incorporato conforme a UCSI su ACPI, usare il driver UCSI fornito da Microsoft. In caso contrario , scrivere un driver client UCSI per i trasporti non ACPI.

    Se l'hardware non è conforme a UCSI, si prevede di scrivere un driver connettore USB Type-C che è un client all'estensione della classe UCM. Insieme gestiscono un connettore USB Type-C e il comportamento previsto di un driver del connettore.

    Se si scrive un driver, l'estensione della classe di gestione connettore USB segue il modello di driver client di classe WDF. Il driver client comunica con l'hardware e l'estensione della classe per gestire attività quali rilevamento CC, messaggistica PD, Muxing e controllo VBus/VConn e selezionare i criteri per la distribuzione di energia e la modalità alternativa. L'estensione della classe comunica le informazioni segnalate dal driver client al sistema operativo. Ad esempio, il risultato del rilevamento CC viene usato per configurare i driver del commutatore di ruolo; Le informazioni sull'alimentazione USB Type-C/PD vengono usate per determinare il livello in cui deve essere addebitato il sistema. Il driver client gestisce computer con stato USB Type-C e PD. Il driver client può delegare alcune attività ad altri driver, ad esempio Mux può essere controllato da un altro driver. Per scrivere il driver client, usare le interfacce di programmazione del driver del connettore USB Type-C.

    Controller porta USB Type-C

    L'estensione della classe di interfaccia del controller di porta Type-C (UcmTcpciCx.sys) è un'estensione per Gestione connettori USB fornita da Microsoft che consente al sistema operativo di comportarsi come gestione porte Type-C (TCPM) per un connettore che non implementa i computer con stato PD. Un driver client UcmTcpciCx consente al software TCPM di controllare l'hardware e ottenere lo stato in tempo reale.

    Per informazioni sulla scrittura del driver client, vedere Scrivere un driver del controller di porta USB Type-C.

  • Driver di arbitrato di ricarica

    Questo driver viene fornito da Microsoft per Windows 10 Mobile. Il driver funge da arbitro per più fonti di ricarica. Il gestore del connettore USB segnala le informazioni sull'origine di ricarica USB Type-C e PD a CAD, che effettua una selezione da tali informazioni e il rilevamento dei caricatori BC1.2 eseguiti dai driver sul lato dispositivo USB (se applicabile). CAD segnala quindi l'origine di ricarica più appropriata da usare al sottosistema della batteria.

  • Driver della batteria

    Il driver di classe definisce la funzionalità complessiva delle batterie nel sistema e interagisce con il risparmio energia. Il driver miniclass gestisce funzioni specifiche del dispositivo, ad esempio l'aggiunta e la rimozione di una batteria, e tenere traccia della capacità e della carica. Il driver miniclass esporta routine che il driver di classe chiama per ottenere informazioni sui dispositivi che controlla.