Partilhar via


Arquitetura: USB Type-C design para um sistema Windows

Descreve um design de hardware típico de um sistema Type-C USB e os drivers fornecidos pela Microsoft que suportam os componentes de hardware. Este artigo aplica-se a OEMs que desenvolvem sistemas com conectores Type-C USB.

  • Capacidade de dupla função USB utilizando USB Type-C
  • Carregamento mais rápido utilizando os níveis de corrente USB Type-C e Power Delivery 2.0.
  • Display-Out recursos usando modos alternativos e experiências de encaixe com fio.

Drivers para suportar componentes USB Type-C

Diagrama de componentes de software USB Type-C.

Na imagem anterior,

  • Drivers do lado do dispositivo USB

    Os drivers do lado do dispositivo USB atendem a função/dispositivo/periférico. A extensão de classe do controlador de função USB suporta MTP (Media Transfer Protocol) e carregamento usando carregadores BC 1.2. A Microsoft fornece drivers de cliente embutidos para controladores Synopsys USB 3.0 e ChipIdea USB 2.0. Você pode escrever um driver de cliente personalizado para seu controlador de função usando interfaces de programação de driver de cliente de controlador de função USB. Para obter mais informações, consulte Desenvolvendo drivers do Windows para controladores de função USB.

    O fornecedor de SoC pode fornecer-lhe o driver de filtro inferior da função USB para deteção de carregador proprietário legado. Você pode implementar seu próprio driver de filtro se o controlador de função for Synopsys USB 3.0 ou ChipIdea USB 2.0 controladores

  • Drivers USB do lado do host

    Os drivers USB no lado do host são um conjunto de drivers que funcionam com controladores de host USB compatíveis com EHCI ou XHCI. Os drivers do sistema são carregados se o driver de troca de função enumerar a função de host. Se o controlador host não estiver em conformidade com as especificações, você poderá escrever um driver personalizado usando a interface de programação UCX (USB host controller extension). Para obter informações, consulte Desenvolvendo drivers do Windows para controladores host USB.

    Observação

    Nem todas as classes de dispositivos USB são suportadas no Windows 10 Mobile.

  • Drivers de comutador de função USB (URS)

    Os sistemas podem ser projetados de tal forma que a porta USB de função dupla precise do Windows para configurá-la para o modo Host ou Função. Esses projetos precisarão usar a pilha de drivers do comutador de função USB (URS).

    O driver URS gerencia o papel atual do conector, host ou função, e o carregamento e descarregamento dos drivers apropriados do lado do dispositivo ou do lado do host, com base em eventos de hardware da plataforma. A Microsoft fornece drivers de cliente embutidos para controladores Synopsys USB 3.0 e ChipIdea USB 2.0. Você pode escrever o driver do cliente do comutador de função usando a interface de programação do driver do controlador de função dupla USB. Para ativar os drivers de comutação de função, deves fazer alterações nas tabelas ACPI. Para obter mais informações, consulte USB Dual Role Driver Stack Architecture.

    Em sistemas com conectores USB micro-AB, esta decisão é tomada com base no pino de identificação no conector. A deteção de pinos de identificação é realizada pelo driver do cliente, utilizando os recursos de interrupção atribuídos ao driver.

    Em sistemas com conectores Type-C USB, a decisão é tomada com base nos pinos CC. O driver de cliente para conector executa a deteção de CC e encaminha essas informações para o driver do comutador de função.

  • Gerenciador de conectores USB (UCM)

    Este conjunto de drivers gerencia todos os aspetos do conector USB Type-C. Se o seu sistema implementar um controlador compatível com UCSI incorporado através de ACPI, use o driver UCSI fornecido pela Microsoft. Caso contrário, escreva um driver de cliente UCSI para transportes não-ACPI.

    Se o hardware não for compatível com UCSI, espera-se que você escreva um driver de conector USB Type-C que seja um cliente para a extensão de classe UCM. Juntos, eles gerenciam um conector Type-C USB e o comportamento esperado de um driver de conector.

    Se você estiver escrevendo um driver, a extensão de classe do gerenciador de conectores USB seguirá o modelo de driver de cliente de extensão de classe WDF. O driver do cliente comunica-se com o hardware e a extensão de classe para gerir tarefas como deteção de CC, envio de mensagens PD, comutação (Muxing) e controlo de VBus/VConn, além de selecionar a política para entrega de energia e modo alternativo. A extensão de classe comunica as informações relatadas pelo driver do cliente para o sistema operacional. Por exemplo, o resultado da deteção CC é usado para configurar os drivers de comutador de função; As informações de alimentação USB Type-C/PD são usadas para determinar o nível em que o sistema deve carregar. O driver do cliente gere as máquinas de estado USB Type-C e PD. O driver cliente pode delegar algumas tarefas a outros drivers, por exemplo, Mux pode ser controlado por outro driver. Para escrever o driver do cliente, use as interfaces de programação do driver do conector USB Type-C.

    Controlador de porta USB Type-C

    O Type-C Port Controller Interface Class Extension (UcmTcpciCx.sys) é uma extensão do USB Connector Manager fornecido pela Microsoft que permite que o SO se comporte como um Type-C Port Manager (TCPM) para um conector que não implementa as máquinas de estado PD. Um driver de cliente UcmTcpciCx permite que o software TCPM controle o hardware e obtenha seu status em tempo real.

    Para obter informações sobre como escrever o driver do cliente, consulte Escrever um driver de controlador de porta Type-C USB.

  • Cobrando motorista de arbitragem

    Este driver é fornecido pela Microsoft para Windows 10 Mobile. O condutor atua como árbitro para várias fontes de carregamento. O gestor de conectores USB reporta as informações da fonte de carregamento USB Type-C e PD ao CAD, que faz uma seleção a partir dessas informações e da deteção do carregador BC1.2 realizada pelos controladores do lado do dispositivo USB (se aplicável). Em seguida, o CAD indica a fonte de carregamento mais adequada para utilizar no subsistema da bateria.

  • Drivers de bateria

    O driver de classe define a funcionalidade geral das baterias no sistema e interage com o gerenciador de energia. O driver de miniclasse lida com funções específicas do dispositivo, como adicionar e remover uma bateria e manter o controle de sua capacidade e carga. O driver de miniclasse exporta rotinas que o driver de classe chama para obter informações sobre os dispositivos que controla.