Поделиться через


Создание контроллера с двойной ролью для системы Windows USB Type-C

Сводка

  • Oem выводит задачи для контроллера с двумя ролями, который имеет соединитель USB Type-C

Применяется к

  • Windows 10 Mobile

Важные API

Usb role-switch drivers (URS) — это набор расширений класса WDF и клиентского драйвера, которые обрабатывают возможность переключения ролей контроллера с двумя ролями. Если в системе есть контроллер с двумя ролями, можно переключить роль системы в зависимости от устройства, подключенного к порту партнера соединителя USB-C системы. Это позволяет использовать интересные сценарии, такие как проводная стыковка.

Системы можно спроектировать таким образом, чтобы контроллеру USB с двойной ролью требуется Windows для настройки режима узла или функции. В этих конструкциях используется стек коммутаторов ролей USB. Если система не использует контроллер с двумя ролями Synopsys или ChipIdea, необходимо написать драйвер клиента переключения ролей USB для контроллера с двумя ролями системы.

Примечание

Системы можно сконструировать таким образом, чтобы для usb-порта с двойной ролью windows была настроена в режиме узла или функции. В этих конструкциях используется стек коммутаторов ролей USB. Если в системе не используется контроллер с двумя ролями Synopsys, необходимо написать драйвер клиента коммутатора ролей USB для контроллера с двойной ролью системы.

Драйвер клиента обрабатывает события оборудования и передает их в расширение класса. В случае аппаратных событий переключения ролей URS определяет роль и, следовательно, загружает драйверы для этой роли. Если контроллер находится в роли узла, загружаются драйверы USB на стороне узла ; для роли функции загружаются драйверы на стороне устройства .

В системах с usb micro-AB connectors драйвер клиента для контроллера с двумя ролями принимает это решение на основе пин-кода в соединителе, используя назначенные ему ресурсы прерывания. В системах с соединителями USB Type-C это решение принимает драйвер клиента для соединителя. Этот драйвер определяет роль на основе контактов CC и передает результаты диспетчеру USB-соединителей (UCM), который затем отправляет результаты в драйверы переключателя ролей.

драйверы переключения ролей USB.

1. Включите драйвер URS в системном ACPI

Чтобы использовать URS, необходимо внести изменения ACPI. Замените устройство, на котором загружают драйверы USB-устройства , устройством, на которое необходимо загрузить URS. Дополнительные сведения об изменении определения ACPI см. в примере, приведенном в статье Архитектура стека драйвера двойной роли USB. Убедитесь, что ресурс прерывания удален. Это не требуется для USB Type-C.

2. Загрузка драйверов ролей USB-коммутатора для драйвера контроллера с двумя ролями

стек коммутаторов ролей usb.

  • Если в вашей системе используются контроллеры ChipIdea и Synopsys, загрузите предоставленные корпорацией Майкрософт встроенные клиентские драйверы для контроллеров ChipIdea и Synopsys.

    Чтобы загрузить драйвер, необходимо создать пакет установки драйвера. INF-файл должен иметь директиву Include-Needs , которая ссылается на встроенный INF-файл для поддерживаемых контроллеров. Встроенный INF-файл уже содержит идентификаторы оборудования других контроллеров. Этот шаг является обязательным, если идентификатор оборудования контроллера с двумя ролями не является идентификатором оборудования в встроенном INF-файле. Обратитесь к поставщику SoC.

    Дополнительные сведения см. в разделе "Пакет драйвера URS" в разделе Пакеты установки драйверов.

  • Если в системе используется пользовательский контроллер, напишите драйвер клиента для переключения ролей. Дополнительные сведения см. в разделе:

    Справочник по программированию драйвера контроллера USB для двух ролей