Architecture : Conception USB Type-C pour un système Windows

Décrit une conception matérielle classique d’un système USB Type-C et les pilotes fournis par Microsoft qui prennent en charge les composants matériels. Cet article s’applique aux oem qui développent des systèmes avec des connecteurs USB Type-C.

  • Fonctionnalités à double rôle USB à l’aide d’USB Type-C
  • Chargement plus rapide à l’aide des niveaux de courant USB Type-C et power Delivery 2.0
  • Display-Out fonctionnalités à l’aide d’autres modes et d’expériences d’ancrage câblé.

Pilotes pour la prise en charge des composants USB Type-C

Diagramme des composants logiciels USB Type-C.

Dans l’image précédente,

  • Pilotes côté périphérique USB

    Les pilotes côté périphérique USB service la fonction/périphérique/périphérique. L’extension de classe de contrôleur de fonction USB prend en charge MTP (Media Transfer Protocol) et le chargement à l’aide de chargeurs BC 1.2. Microsoft fournit des pilotes clients in-box pour les contrôleurs Synopsys USB 3.0 et ChipIdea USB 2.0. Vous pouvez écrire un pilote client personnalisé pour votre contrôleur de fonction à l’aide des interfaces de programmation du pilote client du contrôleur de fonction USB. Pour plus d’informations, consultez Développement de pilotes Windows pour les contrôleurs de fonction USB.

    Le fournisseur de SoC peut vous fournir le pilote de filtre inférieur de la fonction USB pour la détection du chargeur propriétaire hérité. Vous pouvez implémenter votre propre pilote de filtre si le contrôleur de fonction est synopsys USB 3.0 ou ChipIdea USB 2.0

  • Pilotes côté hôte USB

    Les pilotes côté hôte USB sont un ensemble de pilotes qui fonctionnent avec des contrôleurs hôtes USB compatibles EHCI ou XHCI. Les pilotes sont chargés si le pilote de commutateur de rôle énumère le rôle hôte. Si votre contrôleur hôte n’est pas conforme à la spécification, vous pouvez écrire un pilote personnalisé à l’aide de l’interface de programmation UCX (Usb Host Controller Extension). Pour plus d’informations, consultez Développement de pilotes Windows pour les contrôleurs hôtes USB.

    Notes

    Toutes les classes de périphériques USB ne sont pas prises en charge sur Windows 10 Mobile.

  • Pilotes de commutateur de rôle USB (URS)

    Les systèmes peuvent être conçus de telle sorte que le port USB à double rôle ait besoin de Windows pour le configurer en mode Hôte ou Fonction. Ces conceptions devront utiliser la pile de pilotes de commutateur de rôle USB (URS).

    Le pilote URS gère le rôle actuel du connecteur, de l’hôte ou de la fonction, ainsi que le chargement et le déchargement des pilotes côté appareil ou côté hôte appropriés, en fonction des événements matériels de la plateforme. Microsoft fournit des pilotes clients in-box pour les contrôleurs Synopsys USB 3.0 et ChipIdea USB 2.0. Vous pouvez écrire votre pilote client de commutateur de rôle à l’aide de l’interface de programmation du pilote de contrôleur à double rôle USB. Pour activer les pilotes de commutateur de rôle, vous devez apporter des modifications aux tables ACPI. Pour plus d’informations, consultez Architecture de pile de pilotes à double rôle USB.

    Sur les systèmes dotés de connecteurs USB micro-AB, cette décision est prise en fonction de la broche d’ID dans le connecteur. La détection de broche d’ID est effectuée par le pilote client à l’aide des ressources d’interruption qui lui sont affectées.

    Sur les systèmes dotés de connecteurs USB Type-C, la décision est prise en fonction des broches CC. Le pilote client pour le connecteur effectue la détection CC et transmet ces informations au pilote de commutateur de rôle.

  • Gestionnaire de connecteurs USB (UCM)

    Cet ensemble de pilotes gère tous les aspects du connecteur USB Type-C. Si votre système implémente un contrôleur incorporé conforme à UCSI sur ACPI, utilisez le pilote UCSI fourni par Microsoft. Sinon, écrivez un pilote client UCSI pour les transports non ACPI.

    Si votre matériel n’est pas conforme à UCSI, vous êtes censé écrire un pilote de connecteur USB Type-C qui est un client pour l’extension de classe UCM. Ensemble, ils gèrent un connecteur USB Type-C et le comportement attendu d’un pilote de connecteur.

    Si vous écrivez un pilote, l’extension de classe gestionnaire de connecteurs USB suit le modèle de pilote client d’extension de classe WDF. Votre pilote client communique avec le matériel et l’extension de classe pour gérer des tâches telles que la détection CC, la messagerie PD, le muxing et le contrôle VBus/VConn, et sélectionner une stratégie pour la distribution d’alimentation et le mode de remplacement. L’extension de classe communique les informations signalées par le pilote client au système d’exploitation. Par exemple, le résultat de la détection CC est utilisé pour configurer les pilotes de commutateur de rôle ; Les informations d’alimentation USB Type-C/PD sont utilisées pour déterminer le niveau auquel le système doit charger. Le pilote client gère les machines d’état USB Type-C et PD. Le pilote client peut déléguer certaines tâches à d’autres pilotes, par exemple, Mux peut être contrôlé par un autre pilote. Pour écrire le pilote client, utilisez les interfaces de programmation du pilote de connecteur USB Type-C.

    Contrôleur de port USB Type-C

    L’extension de classe d’interface du contrôleur de port Type-C (UcmTcpciCx.sys) est une extension du gestionnaire de connecteur USB fournie par Microsoft qui permet au système d’exploitation de se comporter comme un gestionnaire de port de type C (TCPM) pour un connecteur qui n’implémente pas les machines d’état PD. Un pilote client UcmTcpciCx permet au logiciel TCPM de contrôler le matériel et d’obtenir ses status en temps réel.

    Pour plus d’informations sur l’écriture du pilote client, consultez Écrire un pilote de contrôleur de port USB Type-C.

  • Charger le pilote d’arbitrage

    Ce pilote est fourni par Microsoft pour Windows 10 Mobile. Le conducteur joue le rôle d’arbitre pour plusieurs sources de charge. Le gestionnaire de connecteurs USB signale les informations de la source de charge USB Type-C et PD à LA CAO, qui effectue une sélection à partir de ces informations et de la détection du chargeur BC1.2 effectuée par les pilotes côté périphérique USB (le cas échéant). LA CAO indique ensuite la source de charge la plus appropriée à utiliser pour le sous-système de batterie.

  • Pilotes de batterie

    Le pilote de classe définit la fonctionnalité globale des batteries du système et interagit avec le gestionnaire d’alimentation. Le pilote miniclasse gère des fonctions spécifiques à l’appareil, telles que l’ajout et la suppression d’une batterie, et le suivi de sa capacité et de sa charge. Le pilote de miniclasse exporte les routines que le pilote de classe appelle pour obtenir des informations sur les appareils qu’il contrôle.