Traga o controlador de função dupla para um sistema USB Type-C Windows

Resumo

  • OEM apresenta tarefas para um controlador de função dupla que tem um conector USB Type-C

Aplica-se a

  • Windows 10 Mobile

APIs importantes

Os URS (drivers de comutador de função) USB são um conjunto de extensão de classe WDF e seu driver cliente que lidam com a funcionalidade de troca de função de um controlador de função dupla. Se o sistema tiver um controlador de função dupla, você poderá alternar a função do sistema dependendo do dispositivo anexado à porta do parceiro do conector USB Type-C do sistema. Isso permite cenários interessantes, como encaixe com fio.

Os sistemas podem ser projetados de modo que o controlador USB de função dupla precise do Windows para configurá-lo para o modo Host ou Função. Esses designs usam a pilha de comutadores de função USB. Se o sistema não usar um controlador de função dupla Synopsys ou ChipIdea, você precisará escrever um driver de cliente com comutador de função USB para o controlador de função dupla do sistema.

Observação

Os sistemas podem ser projetados de modo que a porta USB de função dupla precise do Windows para configurá-la para o modo Host ou Função. Esses designs usam a pilha de comutadores de função USB. Se o sistema não usar um controlador de função dupla do Synopsys, você precisará escrever um driver de cliente com comutador de função USB para o controlador de função dupla do sistema.

O driver do cliente manipula eventos de hardware e os relata à extensão de classe. No caso de eventos de hardware de comutador de função, a URS decide a função e, consequentemente, carrega os drivers para essa função. Se o controlador estiver na função de host, os drivers do lado do host USB serão carregados ; para uma função de função, os drivers do lado do dispositivo são carregados .

Em sistemas com conectores USB micro-AB, o driver do cliente para o controlador de função dupla toma essa decisão com base no pino de ID no conector usando recursos de interrupção atribuídos a ele. Em sistemas com conectores USB Tipo C, essa decisão é tomada pelo driver do cliente para o conector. Esse driver determina a função com base nos pinos CC e relata os resultados para o UCM (gerenciador de conectores USB), que envia os resultados para os drivers de comutador de função.

drivers de comutador de função usb.

1. Habilitar o driver de URS no ACPI do sistema

Para usar o URS, você deve fazer modificações de ACPI. Substitua o dispositivo no qual os drivers do lado do dispositivo USB são carregados por um dispositivo no qual o URS deve ser carregado. Para obter mais informações sobre como alterar a definição de ACPI, consulte o exemplo dado na Arquitetura de Pilha do Driver de Função Dupla USB. Certifique-se de remover o recurso de interrupção. Isso não é necessário para o TIPO USB-C.

2. Carregar os drivers de comutador de função USB para o driver do controlador de função dupla

pilha de comutador de função usb.

  • Se o sistema usar controladores ChipIdea e Synopsys, carregue os drivers de cliente in-box fornecidos pela Microsoft para controladores ChipIdea e Synopsys.

    Para carregar o driver, você deve criar um pacote de instalação do driver. O arquivo INF deve ter a diretiva Include-Needs que faz referência ao INF in-box para os controladores com suporte. O INF in-box já contém IDs de hardware de outros controladores. Essa etapa será necessária se a ID de hardware do controlador de função dupla não for uma das IDs de hardware no INF in-box. Verifique com o fornecedor do SoC.

    Para obter mais informações, confira "Pacote de driver de URS" em Pacotes de instalação do driver.

  • Se o sistema usar um controlador personalizado, escreva um driver de cliente com comutador de função. Para obter mais informações, consulte:

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