Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Корпорация Майкрософт предоставляет драйвер, совместимый со спецификацией интерфейса программного обеспечения разъема USB Type-C® (UCSI), для транспорта интерфейса расширенной конфигурации и питания (ACPI). Если проект включает встроенный контроллер с транспортом ACPI, реализуйте UCSI в BIOS/EC системы и загрузите встроенный драйвер UCSI (UcmUcsiCx.sys и UcmUcsiAcpiClient.sys).
Если оборудование, совместимое с UCSI, использует транспорт, отличный от ACPI, необходимо написать драйвер клиента UCSI.
Драйверы для поддержки компонентов USB-Type-C для систем с внедренными контроллерами
Ниже приведен пример системы с внедренным контроллером.
Переключение ролей USB обрабатывается в встроенном ПО системы. Стек драйверов для переключения ролей USB не загружается. В другой системе стек драйверов может не загружаться, так как двойная роль не поддерживается.
Драйверы на стороне USB
Драйверы на стороне устройства USB обслуживают функцию, устройство или периферийное устройство. Расширение класса контроллера функции USB поддерживает протокол MTP и зарядку с помощью зарядных устройств BC 1.2. Корпорация Майкрософт предоставляет встроенные клиентские драйверы для контроллеров Synopsys USB 3.0 и ChipIdea USB 2.0. Вы можете написать пользовательский драйвер клиента для контроллера функции с помощью интерфейсов программирования драйвера драйвера usb-функций. Дополнительные сведения см. в статье Разработка драйверов Windows для контроллеров функций USB.
Поставщик SoC может предоставить вам драйвер нижнего фильтра функции USB для обнаружения зарядного устройства. Если вы используете встроенный драйвер клиента Synopsys USB 3.0 или ChipIdea USB 2.0, вы можете реализовать собственный драйвер фильтра.
Драйверы на стороне хоста USB
Драйверы на стороне USB — это набор драйверов, работающих с контроллерами USB-узла, совместимыми с EHCI или XHCI. Если драйвер переключателя ролей перечисляет роль узла, драйверы загружаются. Если контроллер узла не соответствует спецификации, можно написать пользовательский драйвер с помощью интерфейса программирования расширения контроллера USB.. Дополнительные сведения см. в статье "Разработка драйверов Windows для контроллеров USB-узлов".
Диспетчер usb-соединителей
Корпорация Майкрософт с помощью Windows (UcmUcsiCx.sys) предоставляет встроенный драйвер UCSI, который реализует функции, определенные в спецификации программного интерфейса системы коннекторов USB () Type-C. Спецификация описывает возможности UCSI. В нем описываются регистры и структуры данных для конструкторов компонентов оборудования, системных построителей и разработчиков драйверов устройств.
Этот драйвер предназначен для систем с внедренными контроллерами. Этот драйвер является клиентом драйвера расширения класса диспетчера USB-соединителей, предоставленного Microsoft (Ucmcx.sys). Драйвер обрабатывает такие задачи, как инициирование запроса встроенного ПО для изменения данных или ролей питания и получения сведений, необходимых для предоставления сообщений об устранении неполадок пользователю.
Команды UCSI, необходимые Для Windows
См. спецификацию UCSI для команд, необходимых во всех реализациях UCSI.
В дополнение к командам, помеченным как обязательные, Windows требует следующие команды:
- ПОЛУЧИТЬ_АЛЬТЕРНАТИВНЫЕ_РЕЖИМЫ
- GET_CAM_SUPPORTED
- GET_PDOS
- SET_NOTIFICATION_ENABLE: система или контроллер должны поддерживать следующие уведомления в SET_NOTIFICATION_ENABLE:
- Изменение поддерживаемых возможностей поставщика
- Согласование изменений уровня мощности
- GET_CONNECTOR_STATUS: система или контроллер должны поддерживать следующие изменения состояния соединителя в GET_CONNECTOR_STATUS:
- Изменение поддерживаемых возможностей поставщика
- Согласование изменений уровня мощности
Дополнительные сведения см. в разделе Intel BIOS Implementation of UCSI.
UCM-UCSI устройство ACPI для UCSI 2.0 и выше
Начиная с Windows 11 версии 22H2 с обновлением сентября драйверы устройств Windows UCM-UCSI ACPI поддерживают спецификацию UCSI версии 2.0 и 2.1. Спецификация UCSI 2.0 имеет критические изменения в сопоставлении памяти своих структур данных, как определено в спецификации UCSI таблица 3-1 Структуры данных.
Для поддержания обратной совместимости Windows требует, чтобы UCSI PPM версии спецификации 2.0 или новее реализовала следующую функцию _DSM под устройством ACPI UCM-UCSI в прошивке ACPI и возвращала ненулевое значение, чтобы указать, что UCSI OPM должна следовать указанной версии спецификации UCSI.
- Arg0: UUID = 6F8398C2-7CA4-11E4-AD36-631042B5008F
- Arg1: идентификатор версии = 0
- Arg2: индекс функции = 5
- Arg3: пустой пакет (не используется)
Возвращаемое значение:
| Элемент | Тип объекта | Описание |
|---|---|---|
| UsePpmReportedUcsiVersion | Целое число (32-разрядная версия) | 0x00000000 (по умолчанию): если структура VERSION, как определено в таблице 3-1 структуры данных спецификации UCSI, имеет значение 2.0 или более, UCSI OPM по-прежнему соответствует спецификации UCSI 1.2. В противном случае UCSI OPM следует спецификации UCSI согласно значению в структуре VERSION. |
Заметка
Для UCM-UCSI устройств ACPI эта функция является новой в существующем методе _DSM. Другие функции этого метода _DSM должны были быть реализованы в реализации Intel BIOS документа UCSI. Функция 0, которая возвращает битовую маску всех поддерживаемых функций, также должна быть обновлена соответствующим образом.
Пример потока для UCSI
В примерах этого раздела описывается взаимодействие между USB-Type-C оборудованием и встроенного ПО, драйвером UCSI и операционной системой.
Обнаружение ролей DRP
USB-Type-C оборудование или встроенное ПО обнаруживает событие подключения устройства. Система DRP системы Windows 10 изначально становится ролью UFP.
- Встроенное ПО отправляет уведомление, указывающее на изменение соединителя.
- Драйвер UCSI отправляет запрос GET_CONNECTOR_STATUS.
- Встроенное ПО отвечает, что статус подключения =
1и тип партнера подключения =DFP.
Драйверы в стеке функций USB реагируют на перечисление.
Расширение класса диспетчера USB-соединителей распознает загрузку стека функций USB, поэтому система находится в неправильном состоянии. Он указывает драйверу UCSI отправить в встроенное ПО запросы для установки роли USB-операции и для установки роли направления питания.
USB-Type-C оборудование или встроенное ПО инициирует операцию переключения ролей с помощью DFP.
Обнаружение ошибки несоответствия зарядного устройства
USB-Type-C оборудование или встроенное ПО обнаруживает, что зарядное устройство подключено и согласовывает контракт питания по умолчанию. Он также отмечает, что зарядное устройство не обеспечивает достаточную мощность для системы.
USB-Type-C оборудование или встроенное ПО задает медленный зарядный бит.
- Встроенное ПО отправляет уведомление, указывающее на изменение соединителя.
- Драйвер UCSI отправляет запрос GET_CONNECTOR_STATUS.
- Встроенное ПО отвечает следующим образом: состояние подключения =
1, тип партнера соединителя =DFP, и состояние зарядки батареи =Slow/Trickle.
Расширение класса диспетчера USB-соединителей отправляет уведомление в пользовательский интерфейс, чтобы отобразить сообщение об устранении неполадок с зарядным устройством.
Тестирование UCSI
Существует множество способов тестирования реализации UCSI. Чтобы протестировать отдельные команды в реализации BIOS/EC UCSI, используйте UCSIControl.exe, которая предоставляется в пакете программного обеспечения Microsoft USB Test Tool (MUTT). Чтобы проверить полную реализацию UCSI, используйте тесты UCSI, которые можно найти в комплекте лабораторий оборудования Windows (HLK), а также шаги в процедурах ручного взаимодействия Type-C.
UCSIControl.exe
Вы можете протестировать отдельные команды в реализации BIOS/EC UCSI с помощью UCSIControl.exe. Это средство позволяет отправлять команды UCSI встроенному ПО через драйвер UCSI. Для этого требуется, чтобы драйвер загружался и запускался. Кроме того, у вас включён тестовый интерфейс для драйвера. По умолчанию этот интерфейс не включен, чтобы предотвратить его доступность для несанкционированных пользователей в розничной системе.
Найдите узел устройства в диспетчере устройств (devmgmt.msc) с именем UCSI USB Connector Manager. Узел находится в категории контроллеров универсальной последовательной шины.
Выберите и удерживайте или удерживайте правой кнопкой мыши устройство. Выберите "Свойства" и откройте вкладку "Сведения ".
Выберите Путь к экземпляру устройства в раскрывающемся меню и запомните значение свойства.
Откройте редактор реестра (regedit.exe).
Перейдите к пути экземпляра устройства под этим ключом.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\<device-instance-path>\Device ParametersСоздайте значение DWORD с именем TestInterfaceEnabled и задайте значение 0x1.
Чтобы перезапустить устройство, на узле устройства в диспетчере устройств нажмите кнопку "Отключить", а затем нажмите кнопку "Включить". Кроме того, можно перезапустить компьютер.
Вы можете получить справочную информацию, выполнив UcsiControl.exe /?.
Ниже приведены распространенные команды:
| Команда UCSI | команда UcsiControl.exe |
|---|---|
| Сброс PPM | UcsiControl.exe отправить 0 1 |
| Сброс коннектора | Мягкая перезагрузка: UcsiControl.exe Отправить 0 10003 Жесткий сброс: UcsiControl.exe Отправить 0 810003 |
| Настройка включения уведомлений | Все уведомления: UcsiControl.exe Отправить 0 ffff0005 Только завершение команды: UcsiControl.exe Отправить 0 00010005 Нет уведомления: UcsiControl.exe Отправить 0 00000005 |
| Получение возможностей | UcsiControl.exe отправить 0 6 |
| Получение возможностей соединителя | UcsiControl.exe Отправить 0 10007 |
| Настройка UOM | DFP: UcsiControl.exe отправить 0 810008 UFP: UcsiControl.exe Отправь 0 1010008 DRP: UcsiControl.exe Отправить 0 2010008 |
| Настройка UOR | DFP: UcsiControl.exe Отправить 0 810009 UFP: UcsiControl.exe отправить 0 1010009 Принять: UcsiControl.exe отправить 0 2010009 |
| Настройка PDR | Поставщик: UcsiControl.exe Отправить 0 81000B Потребитель: UcsiControl.exe Отправить 0 101000B Принять: UcsiControl.exe Отправить 0 201000B |
| Получить PDO | Локальный источник: UcsiControl.exe отправить 7 00010010 Локальный приемник: UcsiControl.exe отправить 3 00010010 Удаленный источник: UcsiControl.exe отправить 7 00810010 Удаленный приемник: UcsiControl.exe отправить 3 00810010 |
| Получение состояния соединителя | UcsiControl.exe Отправьте 0 010012 |
| Узнать статус ошибки | UcsiControl.exe отправь 0 13 |