Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Microsoft fournit un pilote conforme aux spécifications de l'interface logicielle du système USB Type-C® Connector (UCSI) pour un transport ACPI (Advanced Configuration and Power Interface). Si votre conception inclut un contrôleur incorporé avec le transport ACPI, implémentez UCSI dans le BIOS/EC de votre système et chargez le pilote UCSI intégré (UcmUcsiCx.sys et UcmUcsiAcpiClient.sys).
Si votre matériel compatible UCSI utilise un transport autre que ACPI, vous devez écrire un pilote client UCSI.
Pilotes pour prendre en charge les composants USB Type-C pour les systèmes avec des contrôleurs incorporés
Voici un exemple de système avec un contrôleur incorporé.
Le basculement de rôle USB est géré dans le microprogramme du système. La pile des pilotes du commutateur de rôle USB n’est pas chargée. Dans un autre système, la pile des pilotes peut ne pas être chargée, car le double rôle n’est pas pris en charge.
Pilotes pour périphériques USB
Les pilotes côté périphérique USB servent la fonction/appareil/périphérique. L’extension de classe de contrôleur de fonction USB prend en charge le protocole de transfert de médias (MTP) et le chargement avec des chargeurs BC 1.2. Microsoft fournit des pilotes clients in-box pour les contrôleurs USB 3.0 et ChipIdea USB 2.0. Vous pouvez écrire un pilote client personnalisé pour votre contrôleur de fonction à l’aide d’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 soC peut vous fournir le pilote de filtre inférieur de la fonction USB pour la détection du chargeur. Si vous utilisez le pilote client Synopsys USB 3.0 ou ChipIdea USB 2.0, vous pouvez implémenter votre propre pilote de filtre.
Pilotes côté hôte USB
Les pilotes côté hôte USB sont un ensemble de pilotes qui fonctionnent avec les contrôleurs hôtes USB compatibles EHCI ou XHCI. Si le pilote de changement de rôle énumère le rôle hôte, les pilotes sont alors chargés. Si votre contrôleur hôte n’est pas conforme aux spécifications, vous pouvez écrire un pilote personnalisé à l’aide de l’interface de programmation de l’extension du contrôleur hôte USB. Pour plus d’informations, consultez Développement de pilotes Windows pour les contrôleurs hôtes USB.
Gestionnaire de connecteur USB
Microsoft fournit un pilote in-box UCSI avec Windows (UcmUcsiCx.sys) qui implémente les fonctionnalités définies dans la spécification de l’interface logicielle système du connecteur USB Type-C. La spécification décrit les fonctionnalités de l’UCSI. Il explique les registres et les structures de données, pour les concepteurs de composants matériels, les générateurs de systèmes et les développeurs de pilotes de périphérique.
Ce pilote est destiné aux systèmes avec des contrôleurs incorporés. Ce pilote est un client du pilote d’extension de classe du gestionnaire de connecteur USB fourni par Microsoft (Ucmcx.sys). Le pilote gère les tâches telles que le lancement d’une demande au microprogramme pour modifier les données ou les rôles d’alimentation et obtenir des informations nécessaires pour fournir des messages de dépannage à l’utilisateur.
Commandes UCSI requises par Windows
Consultez la spécification UCSI pour les commandes requises dans toutes les implémentations UCSI.
Outre les commandes marquées comme obligatoires, Windows requiert ces commandes :
- OBTENIR_MODES_ALTERNATIFS
- GET_CAM_SUPPORTED
- GET_PDOS
- SET_NOTIFICATION_ENABLE : le système ou le contrôleur doit prendre en charge les notifications suivantes dans SET_NOTIFICATION_ENABLE :
- Modifications des fonctionnalités du fournisseur prises en charge
- Changement de niveau de puissance négocié
- GET_CONNECTOR_STATUS : le système ou le contrôleur doit prendre en charge les modifications d’état du connecteur dans GET_CONNECTOR_STATUS :
- Modifications des fonctionnalités du fournisseur prises en charge
- Changement de niveau de puissance négocié
Pour plus d’informations, consultez Implémentation Intel BIOS de l’UCSI.
UCM-UCSI dispositif ACPI pour UCSI 2.0 et versions ultérieures
À compter de Windows 11, version 22H2 Mise à jour de septembre, les pilotes de périphériques ACPI Windows UCM-UCSI prennent en charge la spécification UCSI version 2.0 et 2.1. La spécification UCSI 2.0 inclut des modifications majeures dans le mappage de mémoire de ses structures de données, comme défini dans la Table 3-1 des Structures de données de la spécification UCSI.
Pour maintenir la compatibilité descendante, Windows exige que le PPM UCSI de la version 2.0 de la spécification ou une version ultérieure implémente la fonction de _DSM suivante sous l'UCM-UCSI appareil ACPI dans le microprogramme ACPI et retourne une valeur différente de zéro pour indiquer que l’OPM UCSI doit suivre la version de spécification UCSI signalée.
- Arg0 : UUID = 6F8398C2-7CA4-11E4-AD36-631042B5008F
- Arg1 : ID de révision = 0
- Arg2 : Index de fonction = 5
- Arg3 : Package vide (non utilisé)
Valeur de retour :
| Élément | Type d’objet | Descriptif |
|---|---|---|
| UsePpmReportedUcsiVersion | Entier à 32 bits | 0x00000000 (valeur par défaut) : si la structure telle que définie dans la VERSIONspécification UCSI Table 3-1 Structures de données a la valeur 2.0 ou ultérieure, UCSI OPM suit toujours la spécification UCSI 1.2. Dans le cas contraire, l’OPM UCSI suit la spécification UCSI en fonction de la valeur de la structure VERSION. |
Remarque
Pour les appareils ACPI UCM-UCSI, cette fonction est nouvelle dans le cadre d'une méthode _DSM existante. D’autres fonctions de cette méthode _DSM doivent avoir été implémentées conformément à l’implémentation Intel BIOS du document UCSI . La fonction 0, qui retourne un masque de bits de toutes les fonctions prises en charge, doit également être mise à jour en conséquence.
Exemple de flux pour UCSI
Les exemples de cette section décrivent l’interaction entre le matériel et le microprogramme USB Type-C, le pilote UCSI et le système d’exploitation.
Détection de rôle DRP
USB Type-C matériel/microprogramme détecte un événement d’attachement d’appareil. Le système DRP système Windows 10 devient initialement le rôle UFP.
- Le microprogramme envoie une notification indiquant une modification dans le connecteur.
- Le pilote UCSI envoie une demande de GET_CONNECTOR_STATUS.
- Le microprogramme répond que son état de connexion =
1et le type de partenaire du connecteur =DFP.
Les pilotes de la pile de fonctions USB répondent à l’énumération.
L’extension de classe du gestionnaire de connecteur USB reconnaît que la pile de fonctions USB est chargée, de sorte que le système est dans un état incorrect. Il indique au pilote UCSI d’envoyer des requêtes de Définir le rôle d'opération USB et Définir le rôle de direction de l'alimentation au microprogramme.
USB Type-C matériel/microprogramme lance l’opération d’échange de rôle avec la DFP.
Détection d’une erreur d’incompatibilité du chargeur
Le matériel/micrologiciel USB Type-C détecte qu’un chargeur est connecté et parvient à établir un contrat d’alimentation par défaut. Il observe également que le chargeur ne fournit pas suffisamment de puissance au système.
USB Type-C définit le bit de chargement lent dans le firmware/matériel.
- Le microprogramme envoie une notification indiquant une modification dans le connecteur.
- Le pilote UCSI envoie une demande de GET_CONNECTOR_STATUS.
- Le microprogramme répond avec l’état de connexion =
1, le type de partenaire du connecteur =DFPet l’état de chargement de la batterie =Slow/Trickle.
L’extension de classe du gestionnaire de connecteur USB envoie une notification à l’interface utilisateur pour afficher le message de résolution des problèmes d’incompatibilité du chargeur.
Guide pratique pour tester UCSI
Il existe de nombreuses façons de tester votre implémentation UCSI. Pour tester des commandes individuelles dans votre implémentation UCSI BIOS/EC, utilisez UCSIControl.exe, qui est fourni dans le package logiciel MICROSOFT USB Test Tool (MUTT). Pour tester votre implémentation UCSI complète, utilisez les tests UCSI qui se trouvent dans le Kit de laboratoire matériel Windows (HLK) et les étapes décrites dans les procédures d’interopérabilité manuellesType-C.
UCSIControl.exe
Vous pouvez tester des commandes individuelles dans votre implémentation UCSI BIOS/EC à l’aide de UCSIControl.exe. Cet outil vous permet d’envoyer des commandes UCSI au microprogramme via le pilote UCSI. Le pilote doit être chargé et fonctionner. Vous disposez également de l’interface de test pour le pilote activé. Par défaut, cette interface n’est pas activée pour empêcher son accès aux utilisateurs non autorisés sur un système de vente au détail.
Recherchez le nœud d’appareil dans Device Manager (devmgmt.msc) nommé Gestionnaire de connecteur USB UCSI. Le nœud se trouve sous la catégorie contrôleurs de bus série universel .
Sélectionnez et maintenez la touche enfoncée ou cliquez avec le bouton droit sur l’appareil. Sélectionnez Propriétés et ouvrez l’onglet Détails .
Sélectionnez Chemin d’accès à l’instance de l’appareil dans le menu déroulant et notez la valeur de cette propriété.
Ouvrez l’Éditeur du Registre (regedit.exe).
Accédez au chemin d’accès de l’instance de l’appareil sous cette clé.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\<device-instance-path>\Device ParametersCréez une valeur DWORD nommée TestInterfaceEnabled et définissez la valeur sur 0x1.
Pour redémarrer l’appareil, sur le nœud de l’appareil dans Device Manager, sélectionnez Désactiver, puis Activez. Vous pouvez également redémarrer le PC.
Vous pouvez afficher l’aide en exécutant UcsiControl.exe / ?.
Voici les commandes courantes :
| Commande UCSI | commande UcsiControl.exe |
|---|---|
| Réinitialisation du PPM | UcsiControl.exe Envoyer 0 1 |
| Réinitialisation du connecteur | Réinitialisation logicielle : UcsiControl.exe envoyer 0 10003 Réinitialisation en dur : UcsiControl.exe Envoyer 0 810003 |
| Activer la notification | Toutes les notifications : UcsiControl.exe Envoyer 0 ffff0005 Fin de la commande uniquement : UcsiControl.exe Envoyer 0 00010005 Aucune notification : UcsiControl.exe envoyer 0 00000005 |
| Obtenir la fonctionnalité | UcsiControl.exe Envoyer 0 6 |
| Obtenir la fonctionnalité du connecteur | UcsiControl.exe Envoyer 0 10007 |
| Définir UOM | DFP : UcsiControl.exe Send 0 810008 UFP : UcsiControl.exe envoyer 0 1010008 DRP : UcsiControl.exe envoyer 0 2010008 |
| Définir l’UOR | DFP : UcsiControl.exe Envoyez 0 810009 UFP : UcsiControl.exe envoyer 0 1010009 Accepter : UcsiControl.exe envoyer 0 2010009 |
| Définir le PDR | Fournisseur : UcsiControl.exe Envoyer 0 81000B Consommateur : UcsiControl.exe Envoyer 0 101000B Accepter : UcsiControl.exe Envoyer 0 201000B |
| Obtenir des PDO | Source locale : UcsiControl.exe envoyer 7 00010010 Récepteur local : UcsiControl.exe Envoyer 3 00010010 Source distante : UcsiControl.exe envoyer 7 00810010 Récepteur distant : UcsiControl.exe envoyer 3 00810010 |
| Obtenir l’état du connecteur | UcsiControl.exe Envoyer 0 010012 |
| Obtenir l’état d’erreur | UcsiControl.exe Envoyer 0 13 |