Visualizzare il controller di funzione in un sistema Windows di tipo USB-C
Questo articolo descrive le attività di visualizzazione OEM per un controller di funzione con un connettore USB Type-C
API importanti
- Informazioni di riferimento sulla programmazione del driver client del controller di funzione USB
- Driver filtro USB per il supporto di caricatori proprietari
Il driver per il controller funzione informa il sistema operativo sui livelli di ricarica supportati dal connettore USB Type-C e notifica al sottosistema della batteria quando può iniziare la ricarica e la quantità massima di corrente che il dispositivo può disegnare.
In questo argomento si presuppone che il controller di funzione gestisca un singolo connettore (UFP) in qualsiasi momento.
1. Caricare i driver lato dispositivo USB
Esistono due driver che gestiscono le operazioni di un controller di funzione. La coppia è l'estensione della classe di funzione USB fornita da Microsoft e il relativo driver client. L'estensione della classe segnala le informazioni inviate dal driver client al sistema operativo. Il driver client comunica con l'hardware tramite interfacce hardware. Vedi Driver sul lato dispositivo USB in Windows.
Se il sistema usa controller ChipIdea e Synopsys.
- Caricare i driver client predefiniti forniti da Microsoft per i controller ChipIdea e Synopsys.
- Scrivere un driver filtro inferiore che ottiene eventi di collegamento/scollegamento quando un caricatore è connesso. Il driver determina il tipo di caricatore e le proprietà di configurazione. Può anche rilevare le porte di ricarica USB come definito dalla specifica BC1.2. Le informazioni di ricarica vengono passate all'estensione della classe in modo che possa segnalarlo al driver di arbitrato di ricarica (CAD.sys). Per altre informazioni, vedere Driver di filtro USB per il supporto di caricatori proprietari.
Se il sistema usa un controller personalizzato, scrivere un driver client. La logica di rilevamento BC1.2 viene implementata nel driver client. Per altre informazioni, vedere:
Informazioni di riferimento sulla programmazione del driver client del controller di funzione USB
Sviluppo di driver Windows per il controller di funzione USB
2. Modificare l'ACPI di sistema per indicare al driver del controller di funzione che il connettore è un connettore USB Type-C
Questa operazione viene eseguita tramite un metodo ACPI definito nella specifica ACPI 6.0
_UPC (USB Port Capabilities)
Usare i nuovi valori definiti in ACPI 6.0 per indicare il tipo corretto di connettore USB Type-C, ad esempio "Type-C USB2" e "Type-C USB2 e SS con switch". Il driver di funzione comunica queste informazioni a CAD.sys, in modo che usi la logica di arbitrato specifica del tipo USB C per determinare un'origine di ricarica appropriata.
Device (UFN0)
{
...
Name (_UPC, Package()
{
0x1, // Connectable
0x9, // Type-C USB2 and Type-C USB2 and SS with switch
0x0, // Reserved
0x0 // Reserved
})
Name (_CRS, ResourceTemplate()
{
...
})
...