Arquitetura: design usb tipo C para um sistema Windows

Descreve um design de hardware típico de um sistema USB Tipo C e os drivers fornecidos pela Microsoft que dão suporte aos componentes de hardware. Este artigo se aplica aos OEMs que desenvolvem sistemas com conectores USB Tipo C.

  • Funcionalidades de função dupla USB usando USB Tipo C
  • Carregamento mais rápido usando os níveis atuais do Tipo C usb e a Entrega de Energia 2.0
  • Display-Out recursos usando modos alternativos e experiências de encaixe com fio.

Drivers para dar suporte a componentes USB Tipo C

Diagrama de componentes de software usb tipo C.

Na imagem anterior,

  • Drivers usb do lado do dispositivo

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

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

  • Drivers do lado do host USB

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

    Observação

    Nem todas as classes de dispositivos USB têm suporte em Windows 10 Mobile.

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

    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 de função. Esses designs precisarão usar a pilha de driver URS (comutador de função USB).

    O driver urs gerencia a função atual do conector, host ou função e o carregamento e descarregamento dos drivers do lado do dispositivo ou do host apropriados, com base em eventos de hardware da plataforma. A Microsoft fornece drivers de cliente in-box para controladores Synopsys USB 3.0 e ChipIdea USB 2.0. Você pode escrever seu driver de cliente com comutador de função usando a interface de programação de driver de controlador de função dupla USB. Para ativar os drivers de comutador de função, você deve fazer alterações nas tabelas ACPI. Para obter mais informações, consulte Arquitetura de pilha de driver de função dupla USB.

    Em sistemas com conectores USB micro-AB, essa decisão é tomada com base no pino de ID no conector. A detecção de pino de ID é executada pelo driver do cliente usando recursos de interrupção atribuídos a ele.

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

  • UCM (gerenciador de conectores USB)

    Esse conjunto de drivers gerencia todos os aspectos do conector USB Tipo C. Se o sistema implementar um controlador inserido compatível com UCSI por 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 estiver em conformidade com UCSI, espera-se que você escreva um driver de conector USB Tipo C que seja um cliente para a extensão de classe UCM. Juntos, eles gerenciam um conector USB Tipo C 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 da classe WDF. O driver cliente se comunica com o hardware e a extensão de classe para lidar com tarefas como detecção de CC, mensagens PD, Muxing e controle VBus/VConn e selecionar a política para entrega de energia e modo alternativo. A extensão de classe comunica as informações relatadas pelo driver cliente ao sistema operacional. Por exemplo, o resultado da detecção de CC é usado para configurar os drivers de comutador de função; As informações de energia do Tipo C/PD USB são usadas para determinar o nível no qual o sistema deve ser cobrado. O driver cliente gerencia computadores de estado USB Tipo C e PD. O driver cliente pode delegar algumas tarefas a outros drivers, por exemplo, o Mux pode ser controlado por outro driver. Para gravar o driver cliente, use as interfaces de programação do driver do conector TIPO C USB.

    Controlador de porta USB Tipo C

    A Extensão de Classe de Interface do Controlador de Porta tipo C (UcmTcpciCx.sys) é uma extensão para o Gerenciador de Conectores USB fornecido pela Microsoft que permite que o sistema operacional se comporte como um TCPM (Type-C Port Manager) para um conector que não implementa os computadores de estado PD. Um driver cliente UcmTcpciCx permite que o TCPM de software controle o hardware e obtenha seu status em tempo real.

    Para obter informações sobre como gravar o driver cliente, consulte Gravar um driver de controlador de porta TIPO C USB.

  • Driver de arbitragem de cobrança

    Esse driver é fornecido pela Microsoft para Windows 10 Mobile. O driver atua como o árbitro para várias fontes de carregamento. O gerenciador de conectores USB relata informações de origem de carregamento usb tipo C e PD para CAD, o que faz uma seleção a partir dessa informação e detecção de carregador BC1.2 executada pelos drivers usb do lado do dispositivo (se aplicável). Em seguida, o CAD relata a fonte de carregamento mais apropriada a ser usada para o subsistema de 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 ele controla.