Abrir el controlador de función en un sistema Windows usb de tipo C
En este artículo se describen las tareas de puesta al día de OEM para un controlador de funciones que tiene un conector usb de tipo C.
API importantes
- Referencia de programación del controlador de cliente del controlador de función USB
- Controlador de filtro USB para admitir cargadores propietarios
El controlador para el controlador de función informa al sistema operativo sobre los niveles de carga que su conector USB Type-C admite y notifica al subsistema de batería cuando puede comenzar a cargar y la cantidad máxima de corriente que el dispositivo puede dibujar.
En este tema se supone que el controlador de funciones administra un único conector (UFP) en un momento dado.
1. Cargar los controladores del lado del dispositivo USB
Hay dos controladores que administran las operaciones de un controlador de función. El par es la extensión de clase de función USB proporcionada por Microsoft y su controlador de cliente. La extensión de clase informa de la información enviada por el controlador de cliente al sistema operativo. El controlador cliente se comunica con el hardware mediante interfaces de hardware. Consulte Controladores del lado del dispositivo USB en Windows.
Si el sistema usa controladores ChipIdea y Synopsys.
- Cargue los controladores de cliente incorporados proporcionados por Microsoft para los controladores chipIdea y Synopsys.
- Escriba un controlador de filtro inferior que obtenga eventos de conexión o desasociación cuando se conecte un cargador. El controlador determina el tipo de cargador y las propiedades de configuración. También puede detectar puertos de carga USB según lo definido por la especificación BC1.2. La información de carga se pasa a la extensión de clase para que pueda notificarla al controlador de arbitraje (CAD.sys). Para obtener más información, consulte Controlador de filtro USB para admitir cargadores propietarios.
Si el sistema usa un controlador personalizado, escriba un controlador cliente. La lógica de detección bc1.2 se implementa en el controlador cliente. Para más información, consulte:
Referencia de programación del controlador de cliente del controlador de función USB
Desarrollo de controladores de Windows para el controlador de funciones USB
2. Modifique el ACPI del sistema para indicar al controlador del controlador de función que el conector es un conector USB Type-C
Esto se realiza a través de un método ACPI definido en la especificación ACPI 6.0
_UPC (USB Port Capabilities)
Use los nuevos valores definidos en ACPI 6.0 para indicar el tipo correcto de conector USB Type-C, como "Type-C USB2" y "Type-C USB2 y SS con switch". El controlador de función comunica esta información a CAD.sys, de modo que use lógica de arbitraje específica del tipo C usb para determinar un origen de carga adecuado.
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()
{
...
})
...