Partilhar via


Abra o controlador de função em um sistema USB Type-C Windows

Este artigo descreve as tarefas de implementação OEM para um controlador de função que possui um conector USB Type-C.

APIs importantes

O driver do controlador de função informa o sistema operacional sobre os níveis de carregamento que seu conector USB Type-C suporta e notifica o subsistema de bateria quando ele pode começar a carregar e a quantidade máxima de corrente que o dispositivo pode tirar.

Este tópico pressupõe que o controlador de função gerencia um único conector (UFP) a qualquer momento.

1. Carregue os drivers do lado do dispositivo USB

Existem dois drivers que gerenciam as operações de um controlador de função. O par é a extensão de classe de função USB fornecida pela Microsoft e o seu driver de cliente. A extensão de classe relata informações enviadas pelo driver do cliente para o sistema operacional. O driver do cliente se comunica com o hardware usando interfaces de hardware. Consulte drivers do lado do dispositivo USB no Windows.

driver do controlador de função USB.

  • Se o seu sistema usa controladores ChipIdea e Synopsys.

    1. Carregue os drivers de cliente fornecidos pela Microsoft para os controladores ChipIdea e Synopsys.
    2. Escreva um driver de filtro inferior que obtenha eventos de conexão/desanexação quando um carregador estiver conectado. O driver determina o tipo de carregador e as propriedades de configuração. Ele também pode detetar portas de carregamento USB, conforme definido pela especificação BC1.2. As informações de carregamento são passadas para a extensão da classe para que ela possa reportá-las ao controlador de arbitragem de carregamento (CAD.sys). Para obter mais informações, consulte driver de filtro USB para suportar carregadores proprietários.
  • Se o seu sistema usa um controlador personalizado, escreva um driver de cliente. A lógica de deteção BC1.2 é implementada no driver do cliente. Para obter mais informações, consulte:

    Referência de programação do driver do cliente do controlador de função USB

    Desenvolvendo drivers do Windows para o controlador de função USB

2. Modifique a ACPI do sistema para indicar ao controlador de função que o conector é um conector USB Type-C

Isto é feito através de um método ACPI definido na especificação ACPI 6.0

_UPC (USB Port Capabilities)

Use os novos valores definidos na ACPI 6.0 para indicar o tipo correto de conector USB Type-C, como "Type-C USB2" e "Type-C USB2 e SS com switch". O driver da função comunica essas informações ao CAD.sys, para que ele use a lógica de arbitragem específica do USB Type-C para determinar uma fonte de carregamento apropriada.

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()
    {
        ...
    })

    ...