Модем определяется как составное USB-устройство
Обновлено: 21.11.2024
Типы USB-устройств и скорости шины
Спецификация USB поддерживает широкий спектр устройств, от низкоскоростных, таких как клавиатуры, мыши и джойстики, до высокоскоростных устройств, таких как сканеры и цифровые камеры. Спецификация перечисляет ряд классов устройств, каждый из которых определяет набор ожидаемого поведения устройства. В Таблице 1-1 перечислены некоторые примеры USB-устройств, классифицированных по классам.
Класс USB-устройства
USB-устройства в классе
Класс устройства с интерфейсом чип-карты
Смарт-карты, чип-карты
Устройство, в интерфейсах которого встроена вся относящаяся к классу информация
Клавиатуры, мыши, джойстики, планшеты для рисования
Концентраторы обеспечивают дополнительные точки подключения USB-устройств
Класс хранения данных
Жесткие диски, устройства чтения флэш-памяти, приводы чтения/записи компакт-дисков, цифровые камеры и высококачественные медиаплееры
Устройство, которое не подходит ни к какому другому заранее определенному классу или не использует стандартные протоколы для существующего класса
Цифровые видеокамеры, веб-камеры, цифровые фотокамеры с поддержкой потокового видео
Версия 1.1 спецификации USB поддерживает две скорости шины:
Низкая скорость (1,5 Мбит/с)
Полная скорость (12 Мбит/с)
Версия 2.0 спецификации добавляет в этот список еще одну скорость шины:
Высокая скорость (480 Мбит/с)
Спецификация USB 2.0 полностью совместима с низкоскоростными и полноскоростными USB-устройствами и даже поддерживает использование кабелей и разъемов, соответствующих более ранним версиям спецификации. Apple предоставляет порты USB 2.0 на всех новых компьютерах Macintosh и полностью поддерживает новую спецификацию с помощью контроллеров Enhanced Host Controller Interface (EHCI) и встроенных низкоуровневых драйверов USB.
По большей части вам не нужно изменять существующие приложения для поддержки более высокой скорости передачи данных, поскольку увеличение скорости и другие усовершенствования реализуются на столь низком уровне. Исключением являются некоторые различия в изохронных передачах. Информацию о том, как спецификация USB 2.0 влияет на изохронную передачу, см. в разделе USB 2.0 и изохронная передача.
Архитектура USB-устройства и терминология
Архитектура универсального USB-устройства многоуровневая. Устройство состоит из одной или нескольких конфигураций, каждая из которых описывает возможную настройку, в которую может быть запрограммировано устройство. Такие настройки могут включать в себя характеристики мощности конфигурации (например, максимальную мощность, потребляемую конфигурацией, а также наличие у нее автономного питания) и то, поддерживает ли конфигурация удаленное пробуждение.
Каждая конфигурация содержит один или несколько интерфейсов, доступных после настройки конфигурации. Интерфейс предоставляет определения функций, доступных в устройстве, и может даже содержать альтернативные настройки в пределах одного интерфейса. Например, интерфейс для аудиоустройства может иметь разные настройки, которые вы можете выбрать для разных полос пропускания.
Каждый интерфейс содержит ноль или более конечных точек. Конечная точка — это уникально идентифицируемая часть USB-устройства, которая является источником или приемником информации в потоке связи между хостом и устройством. У каждой конечной точки есть характеристики, которые описывают поддерживаемую связь, например тип передачи (управление, изохронная, прерывание или массовая передача, описанные в разделе Типы передачи USB), максимальный размер пакета и направление передачи (вход или выход).
Связь с USB-устройством осуществляется через канал — логическую связь между конечной точкой и программным обеспечением, работающим на хосте. Конечная точка и канал часто используются как синонимы, хотя конечная точка — это компонент USB-устройства, а канал — это логическая абстракция канала связи между конечной точкой и хостом.
Описатели компонентов USB-устройства
Каждый уровень USB-устройства предоставляет информацию о своих атрибутах и требованиях к ресурсам в своем дескрипторе — структуре данных, доступной через функции интерфейса устройства. Изучив дескрипторы на каждом уровне, вы можете точно определить, какая конечная точка вам нужна для успешного взаимодействия с конкретным устройством.
На верхнем уровне находится дескриптор устройства, в котором есть поля, связанные с такой информацией, как класс и подкласс устройства, номер поставщика и продукта, а также количество конфигураций. Каждая конфигурация, в свою очередь, имеет дескриптор конфигурации, содержащий поля, описывающие количество поддерживаемых интерфейсов и характеристики мощности устройства, когда оно находится в этой конфигурации, а также другую информацию. Каждый интерфейс, поддерживаемый конфигурацией, имеет собственный дескриптор с полями для такой информации, как класс интерфейса, подкласс и протокол, а также количество конечных точек в этом интерфейсе. На нижнем уровне находятся дескрипторы конечной точки, которые определяют такие атрибуты, как тип передачи и максимальный размер пакета.
Композитные USB-устройства
Спецификация USB определяет устройство составного класса как устройство, чьи поля дескриптора устройства для класса устройства ( bDeviceClass ) и подкласса устройства ( bDeviceSubClass ) имеют значение 0 . Устройство составного класса отображается в системе как USB-устройство, использующее один адрес шины, который может представлять несколько интерфейсов, каждый из которых представляет собой отдельную функцию. Хорошим примером устройства составного класса является многофункциональное устройство, такое как устройство, которое выполняет печать, сканирование и отправку факсов. В таком устройстве каждая функция представлена отдельным интерфейсом. В OS X I/O Kit загружает драйвер устройства AppleUSBComposite для составных устройств класса, у которых еще нет драйверов устройств конкретного поставщика для управления ими. Драйвер AppleUSBComposite настраивает устройство и вызывает загрузку драйверов для каждого интерфейса USB.
Хотя большинство многофункциональных USB-устройств относятся к составным устройствам, не все устройства составного класса являются многофункциональными. Производитель однофункционального USB-устройства может классифицировать устройство как составное устройство, если оно соответствует спецификациям USB. Дополнительные сведения о том, как OS X представляет USB-устройства и интерфейсы, см. в разделе USB-устройства в OS X.
Типы USB-передачи
Спецификация USB определяет четыре типа конвейерной передачи:
Управление — предназначено для поддержки обмена данными о конфигурации, командах и состоянии между программным обеспечением хоста и устройством. Передача управления поддерживает обнаружение ошибок и повторные попытки.
Прерывание — используется для поддержки небольших передач с ограниченной задержкой на устройство или с устройства, таких как координаты с указывающего устройства или изменения состояния с модема. Прерывания передачи поддерживают обнаружение ошибок и повторные попытки.
Изохронный – используется для периодической непрерывной связи между хостом и устройством, обычно с использованием релевантной во времени информации, такой как потоки аудио- или видеоданных. Изохронные передачи не поддерживают обнаружение ошибок или повторные попытки.
Bulk — предназначен для непериодической передачи больших пакетов с ослабленными временными ограничениями, например, между программным обеспечением хоста и принтером или сканером. Массовые передачи поддерживают обнаружение ошибок и повторную попытку.
Каналы также имеют связанное с ними направление передачи. Канал управления может поддерживать двустороннюю связь, но все остальные каналы являются строго однонаправленными. Следовательно, для двусторонней связи требуется два канала: один для ввода и один для вывода.
Каждое USB-устройство должно иметь канал управления по умолчанию, обеспечивающий доступ к конфигурации, состоянию и управляющей информации устройства. Этот канал, реализованный в объекте фрагмента IOUSBDevice (описанном в USB-устройствах в OS X), используется, когда драйвер, такой как драйвер AppleUSBComposite, настраивает устройство или когда требуется специфичная для устройства информация об управлении и состоянии. Например, ваше приложение будет использовать конвейер управления по умолчанию, если ему необходимо установить или выбрать конфигурацию для устройства. Канал управления по умолчанию подключен к конечной точке по умолчанию (конечная точка 0). Обратите внимание, что конечная точка 0 не предоставляет дескриптор конечной точки и никогда не учитывается в общем количестве конечных точек в интерфейсе.
Интерфейсы, связанные с конфигурацией, могут содержать любую комбинацию трех оставшихся типов каналов (прерывание, изохронный и массовый), реализованных в объектах фрагмента IOUSBInterface (описанных в USB-устройствах в OS X). Ваше приложение может запросить дескрипторы интерфейса устройства, чтобы выбрать канал, наиболее подходящий для его нужд.
Привалы и остановки
Несмотря на то, что задержка и остановка разные, они тесно связаны по своему влиянию на передачу данных. Остановка — это функция конечной точки, которая может быть установлена либо хостом, либо самим устройством в ответ на ошибку. Задержка — это тип пакета квитирования, который конечная точка возвращает, когда она не может передавать или получать данные или когда установлена ее функция остановки (хост никогда не отправляет заглушенный пакет). Когда конечная точка отправляет стоп-пакет, хост может остановить конечную точку.
В зависимости от конкретных обстоятельств и степени совместимости устройства функция остановки должна быть отключена на хосте, конечной точке или в обоих, прежде чем передача данных может быть возобновлена. Когда остановка сбрасывается, бит переключения данных, используемый для синхронизации передачи данных, также сбрасывается (дополнительную информацию о переключении данных см. в разделе «Синхронизация данных при неизохронной передаче»). Информацию о том, как обрабатывать эти условия в вашем приложении, см. в разделе Обработка задержек, остановок и ресинхронизации переключения данных.
Синхронизация данных при неизохронной передаче
Спецификация USB определяет простой протокол для обеспечения синхронизации данных между несколькими пакетами для неизохронных передач (напомним, что изохронные передачи не поддерживают восстановление после ошибок или повторные попытки).Протокол реализован с помощью бита переключения данных как на хосте, так и на конечной точке, который синхронизируется в начале транзакции (или когда происходит сброс). Точный механизм синхронизации зависит от типа передачи; подробности см. в спецификации USB.
И хост, и конечная точка начинают транзакцию с нулевыми битами переключения данных. Как правило, объект, получающий данные, переключает свой бит переключения данных, когда он может принять данные и получает безошибочный пакет данных с правильной идентификацией. Объект, отправляющий данные, переключает свой бит переключения данных, когда получает положительное подтверждение от получателя. Таким образом, биты переключения данных остаются синхронизированными до тех пор, пока, например, не будет получен пакет с неправильной идентификацией. Когда это происходит, получатель игнорирует пакет и не увеличивает бит переключения данных. Когда биты переключения данных выходят из синхронизации (по этой или любой другой причине), вы, вероятно, заметите, что альтернативные транзакции не проходят в вашем приложении. Решение этой проблемы состоит в повторной синхронизации битов переключения данных. Информацию о том, как это сделать, см. в разделе Обработка задержек, остановок и ресинхронизации переключения данных.
USB 2.0 и изохронная передача
По большей части эти усовершенствования реализуются на уровне программного обеспечения хоста и не требуют внесения изменений в ваш код. Однако для изохронных передач следует учитывать следующие отличия:
Более ранние версии спецификации делят время шины на 1-миллисекундные кадры, каждый из которых может передавать несколько транзакций нескольким адресатам. (Транзакция содержит два или более пакетов: пакет токена и один или несколько пакетов данных, пакет рукопожатия или оба.) Спецификация USB 2.0 делит 1-миллисекундный кадр на восемь микрокадров по 125 микросекунд, каждый из несколько транзакций в несколько пунктов назначения.
Максимальный объем данных, разрешенный для транзакции, увеличен до 3 КБ.
Все изохронные конечные точки в интерфейсе устройства по умолчанию должны иметь нулевой максимальный размер пакета. (Это означает, что параметром по умолчанию для интерфейса, содержащего изохронные каналы, является альтернативное нулевое значение, а максимальный размер пакета для изохронных конечных точек этого интерфейса должен быть равен нулю.) Это гарантирует, что хост может настроить устройство независимо от того, насколько загружена шина.< /p>
Краткую информацию о том, как эти различия влияют на OS X USB API, см. в разделе Изменения в изохронных функциях для поддержки USB 2.0 .
USB-устройства в OS X
Когда USB-устройство подключено, семейство OS X USB абстрагирует содержимое дескриптора устройства в объект фрагмента набора I/O, называемый IOUSBDevice . Этот фрагмент объекта присоединен к плоскости IOService реестра ввода-вывода как дочерний элемент драйвера для контроллера USB. Затем объект фрагмента IOUSBDevice регистрируется для сопоставления с комплектом ввода-вывода.
Если устройство относится к составному классу и для него нет драйвера конкретного поставщика, драйвер AppleUSBComposite сопоставляется с ним и запускается в качестве его поставщика. Затем драйвер AppleUSBComposite настраивает устройство, устанавливая конфигурацию в списке дескрипторов конфигурации устройства с максимальной потребляемой мощностью, которая может быть обеспечена портом, к которому подключено устройство. Это позволяет по-разному настраивать устройство с малой и высокой мощностью в зависимости от того, подключено ли оно к концентратору с питанием от шины или к концентратору с автономным питанием. Кроме того, если объект фрагмента IOUSBDevice имеет свойство «Предпочитаемая конфигурация», драйвер AppleUSBComposite всегда будет использовать это значение при попытке настроить устройство.
Конфигурация устройства заставляет семейство USB абстрагировать каждый дескриптор интерфейса в выбранной конфигурации в объект фрагмента IOUSBInterface. Эти объекты фрагмента присоединяются к реестру ввода-вывода как дочерние элементы исходного объекта фрагмента IOUSBDevice и регистрируются для сопоставления с комплектом ввода-вывода.
Важно: поскольку устройство составного класса настраивается драйвером AppleUSBComposite, повторная установка конфигурации из вашего приложения приведет к уничтожению объектов фрагмента IOUSBInterface и созданию новых. Как правило, единственная причина для установки конфигурации устройства композитного класса, которая соответствует драйверу AppleUSBComposite, — это выбор конфигурации, отличной от первой.
Для устройств несоставного класса или устройств составного класса с драйверами конкретного поставщика, которые соответствуют им, нет гарантии, что будет задана какая-либо конфигурация, и вам, возможно, придется выполнить эту задачу в своем приложении.
Важно помнить о разнице между USB-устройством (представленным в реестре ввода-вывода фрагментарным объектом IOUSBDevice) и его интерфейсами (каждый из которых представлен фрагментарным объектом IOUSBInterface).Например, многофункциональное USB-устройство представлено в реестре ввода-вывода одним объектом IOUSBDevice и одним объектом IOUSBInterface для каждого интерфейса.
Различие между интерфейсом и устройством важно, поскольку оно определяет, какой объект ваше приложение должно найти в реестре ввода-вывода и какой тип интерфейса устройства получить. Например, если вашему приложению необходимо взаимодействовать с определенным интерфейсом многофункционального USB-устройства, оно должно найти этот интерфейс и получить IOUSBInterfaceInterface для связи с ним. С другой стороны, приложение, которому необходимо взаимодействовать с USB-устройством в целом, должно найти устройство в реестре ввода-вывода и получить IOUSBDeviceInterface для связи с ним. Дополнительные сведения о поиске устройств и интерфейсов в реестре ввода-вывода см. в разделе Поиск USB-устройств и интерфейсов; дополнительную информацию о том, как получить правильный интерфейс устройства для связи с устройством или интерфейсом, см. в разделе Использование интерфейсов USB-устройств .
Поиск USB-устройств и интерфейсов
Ключи, определенные в спецификации, перечислены в таблицах ниже. Каждый ключ состоит из определенной комбинации элементов в дескрипторе устройства или интерфейса. В приведенных ниже таблицах элементы ключа разделены символом «+», чтобы подчеркнуть требование о том, что все элементы ключа должны отображаться вместе в соответствующем словаре. В обеих таблицах ключи представлены в порядке специфичности: первый ключ в каждой таблице определяет наиболее конкретный поиск, а последний ключ определяет наиболее широкий поиск.
Прежде чем создавать соответствующий словарь, убедитесь, что вы знаете, требуется ли вашему приложению взаимодействовать с устройством или с определенным интерфейсом на устройстве. Особенно важно помнить об этом различии при работе с многофункциональными устройствами. Многофункциональное устройство часто представляет собой устройство составного класса, определяющее отдельный интерфейс для каждой функции. Если, например, вашему приложению необходимо взаимодействовать с функцией сканирования устройства, которое выполняет сканирование, отправку факсов и печать, вам необходимо создать словарь, соответствующий только интерфейсу сканирования (объект IOUSBInterface), а не устройству как объекту. целое (объект IOUSBDevice). В этой ситуации вы должны использовать ключи, определенные для сопоставления интерфейсов (те, которые показаны в таблице 1-3), а не ключи для сопоставления устройств.
В Табл. 1-2 перечислены ключи, которые можно использовать для поиска устройств (не интерфейсов). Каждый ключевой элемент — это часть информации, содержащейся в дескрипторе устройства для USB-устройства.
В этом разделе перечислены предоставленные Microsoft драйверы для поддерживаемых классов USB-устройств.
- Предоставленные Microsoft драйверы для классов устройств, одобренных USB-IF.
- Для составных устройств используйте универсальный родительский драйвер USB (Usbccgp.sys), который создает объекты физических устройств (PDO) для каждой функции.
- Для несоставных устройств или функций составного устройства используйте WinUSB (Winusb.sys).
Если вы устанавливаете драйверы USB: вам не нужно загружать драйверы класса устройств USB. Они устанавливаются автоматически. Эти драйверы и их установочные файлы включены в состав Windows. Они доступны в папке \Windows\System32\DriverStore\FileRepository. Драйверы обновляются через Центр обновления Windows.
Если вы пишете пользовательский драйвер: перед написанием драйвера для вашего USB-устройства определите, соответствует ли драйвер, предоставленный корпорацией Майкрософт, требованиям устройства. Если предоставленный корпорацией Майкрософт драйвер недоступен для класса USB-устройств, к которому принадлежит ваше устройство, рассмотрите возможность использования универсальных драйверов, Winusb.sys или Usbccgp.sys. Пишите драйвер только при необходимости. Дополнительные рекомендации приведены в разделе Выбор модели драйвера для разработки клиентского драйвера USB.
Классы USB-устройств
Класс USB-устройств – это категории устройств со схожими характеристиками и выполняющими общие функции. Эти классы и их спецификации определяются USB-IF. Каждый класс устройств идентифицируется одобренными USB-IF классами, подклассами и кодами протоколов, все из которых предоставляются IHV в дескрипторах устройств в прошивке. Microsoft предоставляет встроенные драйверы для некоторых из этих классов устройств, которые называются драйверами классов USB-устройств. Если к системе подключено устройство, принадлежащее к поддерживаемому классу устройств, Windows автоматически загружает драйвер класса, и устройство работает без дополнительного драйвера.
Поставщики оборудования не должны создавать драйверы для поддерживаемых классов устройств. Драйверы класса Windows могут не поддерживать все функции, описанные в спецификации класса. Если некоторые возможности устройства не реализованы драйвером класса, поставщики должны предоставить дополнительные драйверы, работающие в сочетании с драйвером класса, для поддержки всего набора функций, предоставляемых устройством.
Общую информацию о классах устройств, одобренных USB-IF, см. в Спецификации общего класса USB
Текущий список спецификаций и кодов классов USB задокументирован в списке определенных кодов классов USB-IF.
Классы по настройке устройства
Windows классифицирует устройства по классам настройки устройства, которые указывают на функциональные возможности устройства.
Microsoft определяет классы установки для большинства устройств. IHV и OEM-производители могут определять новые классы настройки устройств, но только в том случае, если ни один из существующих классов не применим. Дополнительные сведения см. в разделе Классы настройки устройств, определяемые системой.
Два важных класса настройки устройств для USB-устройств следующие:
USBDevice : IHV должны использовать этот класс для пользовательских устройств, которые не принадлежат к другому классу. Этот класс не используется для хост-контроллеров и концентраторов USB.
USB: IHV не должны использовать этот класс для своих пользовательских устройств. Это зарезервировано для хост-контроллеров USB и концентраторов USB.
Класс настройки устройства отличается от классов USB-устройств, рассмотренных ранее. Например, аудиоустройство имеет в своем дескрипторе код класса устройства USB 01h. При подключении к системе Windows загружает предоставляемый Microsoft драйвер класса Usbaudio.sys. В диспетчере устройств устройство отображается в разделе «Звуковые, видео и игровые контроллеры», что указывает на то, что класс настройки устройства — «Мультимедиа».
Драйверы класса USB-устройств, предоставленные Microsoft
Код класса USB-IF | Класс настройки устройства | Драйвер и INF, предоставленные Microsoft | Поддержка Windows | Описание |
---|---|---|---|---|
Аудио (01h) | Медиа | Usbaudio.sys |
Вы можете включить поддержку CDC и Wireless Mobile CDC (WMCDC), задав значение реестра, как описано в разделе Поддержка класса устройств беспроводной мобильной связи.
Примечание. Usbprint.sys перечисляет принтеры в классе настройки устройства: Принтер
Примечание. Microsoft рекомендует производителям оборудования создавать устройства, совместимые с USB NCM. USB NCM — это общедоступный протокол USB-IF, обеспечивающий более высокую пропускную способность.
Автопредложение помогает быстро сузить результаты поиска, предлагая возможные совпадения по мере ввода.
- Технологическая сеть VMware
- :
- Облако и SDDC
- :
- ESXi
- :
- Обсуждения ESXi
- :
- ESXi vmkusb и составные USB-устройства
БКилмер
- Отметить как новое
- Добавить в закладки
- Подписаться
- Отключить звук
- Отправить сообщение другу
Моя компания продает приложение для оповещения о промышленных тревогах на базе Windows, и одним из вариантов оповещения о тревоге является использование голосового USB-модема для подключения к стандартной телефонной линии. У некоторых наших клиентов возникли проблемы с отображением пронумерованного COM-порта ( COM3: и т. д.) в диспетчере устройств Windows при работе на различных платформах Windows с ESXi 6.7 и 7.0 .
Один клиент, в частности, стал обвинять нас в том, что сбой в обнаружении модема каким-то образом связан с нашим приложением. Я пытался объяснить, что наше приложение будет работать, если Windows сможет видеть модем как пронумерованный последовательный порт. Кажется, он думает, что я пытаюсь снять с себя вину.
Это выглядело очень многообещающе, и я предложил ему попробовать решение, изложенное в этой статье; однако он (раздраженно) не желает принять мое предложение, если я не могу дать ему какую-то авторитетную гарантию, что оно сработает. К сожалению, на моих машинах для разработки не установлен ESXi, поэтому я не могу воспроизвести его точную настройку; мои коллеги в главном офисе не смогли установить ESXi на одну из своих тестовых машин (и я не могу им помочь, потому что работаю дома, за 400 миль).
Клиент теряет терпение, поэтому я решил задать свой вопрос здесь, чтобы узнать, может ли кто-нибудь из присутствующих дать достаточно авторитетное подтверждение, чтобы убедить моего клиента в том, что отключение vmkusb (как указано в статье базы знаний) было бы разумным нужно попытаться решить проблему с отсутствующим COM-портом модема.
Мы используем модем StarTech с USB-ключом (в котором используется набор микросхем Conexant CX93xxx):
Когда я устанавливаю модем под обычной (невиртуализированной) Windows, все работает нормально.
Когда клиент запускает его под ESXi 6.7 или 7.0, для открытия нашего приложения не доступен последовательный порт.
Примечание. Голосовой USB-модем — это составное USB-устройство, которое определяет два интерфейса в диспетчере устройств Windows:
mdmgl006.inf — поддерживает Windows TAPI
usbser.inf — поддерживает нумерованный последовательный порт (например, COM4:)
Есть ли у vmkusb известные проблемы с составными USB-устройствами (такими как этот тип модема)?
Универсальная последовательная шина (USB) была разработана производителями ПК, чтобы предоставить недорогое решение для подключения к системе периферийных устройств, таких как клавиатуры, мыши и принтеры.
Разъемы USB предназначены для подключения только одного типа кабеля одним способом.Основная цель разработки USB заключалась в том, чтобы уменьшить потребность в нескольких типах разъемов для разных устройств. Такой дизайн уменьшает беспорядок на задней панели системы.
Устройства подключаются к портам USB на внешних концентраторах USB или на корневом концентраторе, расположенном на самом компьютере. Поскольку концентраторы имеют несколько портов, от концентратора может исходить несколько ветвей дерева устройств.
Для получения дополнительной информации см. usba(7D) или перейдите на следующий сайт:
Часто используемые сокращения USB
В следующей таблице описаны сокращения USB, используемые в ОС Oracle Solaris. Полное описание компонентов USB и сокращений см. по адресу:
Для получения дополнительной информации
Универсальный драйвер USB
Универсальная последовательная шина
Архитектура универсальной последовательной шины (Solaris)
Интерфейс клиентского драйвера USBA (Solaris)
Драйвер хост-контроллера USB
Улучшенный интерфейс хост-контроллера
Открыть интерфейс хост-контроллера
Универсальный интерфейс хост-контроллера
Описание шины USB
Спецификация USB находится в открытом доступе и не требует авторских отчислений. Спецификация определяет электрические и механические интерфейсы шины и разъемы.
В USB используется топология, в которой концентраторы обеспечивают точки подключения USB-устройств. Хост-контроллер содержит корневой концентратор, который является источником всех USB-портов в системе. Дополнительные сведения о концентраторах см. в разделе USB-хост-контроллер и концентраторы.
Рис. 7–1 Иерархия физических устройств USB
На рис. 7–1 показана система с тремя активными портами USB. К первому USB-порту подключается USB-накопитель. Второй USB-порт подключает внешний концентратор, который, в свою очередь, подключает устройство cdrw и составное устройство клавиатуры/мыши. Как составное устройство, эта клавиатура содержит USB-контроллер, который управляет как клавиатурой, так и подключенной мышью. Клавиатура и мышь имеют общий адрес шины USB, поскольку ими управляет один и тот же контроллер USB.
На рис. 7–1 также показан пример концентратора и принтера в качестве составного устройства. Концентратор — это внешний концентратор, заключенный в тот же корпус, что и принтер. Принтер постоянно подключен к концентратору. Концентратор и принтер имеют разные адреса шины USB.
Здесь перечислены имена путей в дереве устройств для некоторых устройств, показанных на рис. 7–1.
USB-устройства и драйверы
USB-устройства с похожими атрибутами и службами группируются в классы устройств. У каждого класса устройств есть соответствующий драйвер. Устройства внутри класса управляются одной и той же парой драйверов устройств. Однако спецификация USB также допускает использование устройств определенного поставщика, которые не относятся к определенному классу.
Класс Human Interface Device (HID) содержит устройства, управляемые пользователем, например следующие устройства:
Класс коммуникационных устройств включает следующие устройства:
К другим классам устройств относятся следующие классы:
Каждое USB-устройство содержит дескрипторы, отражающие класс устройства. Класс устройства указывает, как его члены должны вести себя при настройке и передаче данных. Дополнительную информацию о классе можно получить здесь:
Дополнительную информацию об устройствах USB, поддерживаемых в версии Solaris, см. в разделе usb(7D).
Усовершенствования USB-драйвера
Включены следующие усовершенствования драйвера USB.
Поддержка устройств USB CDC ACM. Драйвер acm может работать с устройствами, совместимыми с абстрактной моделью управления спецификации USB Communication Class Device, а также с некоторыми картами PCMCIA, имеющими возможности модема.
Демон pppd может получить доступ к этим устройствам через записи /dev/term/[0~9] *. Для получения дополнительной информации см. pppd(1M).
Для получения дополнительной информации см. usbsacm(7D).
Универсальный драйвер USB. Теперь приложения могут получать доступ к USB-устройствам и управлять ими с помощью стандартных системных вызовов чтения (2) и записи (2) UNIX без написания специального драйвера ядра. Дополнительные функции включают в себя:
Приложения имеют доступ к необработанным данным устройства и состоянию устройства.
Драйвер поддерживает контрольную, массовую и прерывающую (входящую и исходящую) передачу.
Начиная с версии Solaris 10 от 6/06 драйверу ugen больше не нужно явно привязываться к устройству. По умолчанию usb_mid привязывается к устройствам, у которых отсутствует драйвер класса, и экспортирует интерфейс ugen, который работает с libusb. Например, вы можете подключить USB-камеру, которая не является запоминающим устройством, и использовать приложение libusb для доступа к ней. Кроме того, драйверы scsa2usb и usbprn экспортируют интерфейсы ugen, а приложения libusb можно использовать на этих классах устройств. напрямую.
Для получения дополнительной информации см. ugen(7D).
Поддержка последовательного USB-драйвера
Поддержка Digi Edgeport USB. Драйвер Edgeport USB работает только с устройствами Edgeport, но не с другими последовательными USB-устройствами.
Новые устройства доступны как /dev/term/7* и /dev/cua/1*.
Последовательные порты USB можно использовать так же, как и любые другие последовательные порты, за исключением того, что они не могут использоваться в качестве локальной последовательной консоли. Тот факт, что их данные передаются через USB-порт, незаметен для пользователя.
Для получения дополнительной информации см. usbser_edge(7D) или посетите следующие сайты:
Keyspan — USB-драйвер последовательного интерфейса Keyspan работает только с устройствами Keyspan, которые в настоящее время поддерживают модели USA-19HS и USA-49WLC.
Для получения дополнительной информации см. usbsksp(7D).
Prolific. Драйвер последовательного порта Prolific USB работает только с устройствами на базе чипсета PL2303.
Для получения дополнительной информации см. usbprl(7D).
Дополнительную информацию о поддержке USB-последовательных устройств см. на следующем сайте:
Документация и бинарная поддержка написанных пользователем драйверов ядра и пользовательской среды. Актуальную информацию о разработке USB-драйверов см. по адресу:
Драйверы EHCI, OHCI и UHCI
Возможности драйвера EHCI включают:
Соответствует расширенному интерфейсу хост-контроллера с поддержкой USB 2.0.
Поддерживает высокоскоростное управление, массовую передачу, прерывание и изохронную передачу.
Чип USB 2.0 имеет один контроллер EHCI и один или несколько контроллеров OHCI или UHCI.
Устройство USB 1.1 динамически назначается контроллеру OHCI или UHCI, когда оно подключено. Устройство USB 2.0 динамически назначается контроллеру EHCI, когда оно подключено.
Используйте выходные данные команды prtconf, чтобы определить, поддерживает ли ваша система устройства USB 1.1 или USB 2.0. Например:
Если в выходных данных prtconf указан контроллер EHCI, ваша система поддерживает устройства USB 2.0.
Если в выходных данных prtconf указан контроллер OHCI или UHCI, ваша система поддерживает устройства USB 1.1.
USB-архитектура Solaris (USBA)
USB-устройства могут быть представлены в виде двух уровней узлов дерева устройств. Узел устройства представляет все USB-устройство. Один или несколько дочерних интерфейсных узлов представляют отдельные интерфейсы USB на устройстве.
Привязка драйвера достигается за счет использования совместимых свойств имени. Для получения дополнительной информации см. раздел 3.2.2.1 документа IEEE 1275 USB-привязка и запись драйверов устройств. Драйвер может либо привязываться ко всему устройству и управлять всеми интерфейсами, либо привязываться только к одному интерфейсу. Если ни один производитель или драйвер класса не претендует на все устройство, универсальный многоинтерфейсный драйвер USB привязывается к узлу уровня устройства. Этот драйвер пытается связать драйверы с каждым интерфейсом, используя свойства совместимых имен, как определено в разделе 3.3.2.1 спецификации связывания IEEE 1275.
Архитектура Solaris USB (USBA) соответствует спецификациям USB 1.1 и USB 2.0 и является частью интерфейса драйверов устройств Solaris (DDI). Модель USBA аналогична архитектуре Sun Common SCSI (SCSA). Как показано на следующем рисунке, USBA — это тонкий уровень, который обеспечивает общую абстракцию транспортного уровня USB для клиентских драйверов, предоставляя им службы, реализующие базовые общие функции USB.
Если вы продолжаете получать указанное выше сообщение об ошибке при попытке подключить составное USB-устройство к компьютеру, вот реальные решения вашей проблемы. Эта статья поможет вам решить проблему быстро и легко!
Попробуйте эти исправления
Вот 3 исправления, которые помогли многим другим пользователям решить проблему с составным USB-устройством. Вам не нужно пробовать их все; просто продвигайтесь вниз по списку, пока не найдете то, что вам подходит.
- Обновите драйвер составного USB-устройства
- Переустановите драйверы контроллера USB
- Используйте средство устранения неполадок Windows USB
Исправление 1. Обновите драйвер составного USB-устройства
Наиболее вероятной причиной ошибки составного USB-устройства является проблема с драйвером устройства.
К счастью, решить эту проблему проще всего.
Драйвер составного USB-устройства можно обновить двумя способами: вручную и автоматически.
Обновите драйвер составного USB-устройства вручную. Вы можете обновить драйвер вручную, перейдя на веб-сайт производителя оборудования и выполнив поиск последней версии драйвера для составного USB-устройства. Если вы выберете этот подход, обязательно выберите драйвер, совместимый с точным номером модели вашего оборудования и вашей версией Windows.
Автоматическое обновление драйвера составного USB-устройства. Если у вас нет времени, терпения или навыков работы с компьютером, чтобы обновить драйвер вручную, вместо этого вы можете сделать это автоматически с помощью Driver Easy. Вам не нужно точно знать, какая система работает на вашем компьютере, вам не нужно беспокоиться о том, что вы загружаете не тот драйвер, и вам не нужно беспокоиться об ошибке при установке. Driver Easy справится со всем этим.
- Загрузите и установите Driver Easy.
- Запустите Driver Easy и нажмите Сканировать сейчас. Затем Driver Easy просканирует ваш компьютер и обнаружит проблемные драйверы.
Решение 2. Переустановите драйверы USB-контроллера
Вы также можете попробовать удалить и переустановить драйверы USB через Диспетчер устройств. Это действие позволит Windows автоматически сканировать аппаратные изменения и переустанавливать необходимые драйверы. Вот что вам нужно сделать:
ключ
Р
нажмите одновременно, чтобы открыть окно "Выполнить".
Исправление 3. Воспользуйтесь средством устранения неполадок USB в Windows
Если описанные выше шаги не помогли вам, вы можете попробовать средство устранения неполадок Windows USB.
Чтобы использовать его, во-первых, вам необходимо скачать инструмент по этой ссылке.
Затем вы можете открыть инструмент и следовать инструкциям на экране, чтобы устранить проблему.
Если у вас есть какие-либо вопросы или предложения, оставьте комментарий ниже.
Читайте также:
- Как узнать, сколько времени проработает ноутбук без подзарядки
- 3 какая ОС установлена на вашем компьютере, определите объем оперативной памяти и памяти на жестком диске
- Как реализовать отступ между ссылками в 25px
- Подскажите, какая версия лучше
- Как закрыть лицо смайликом на фотографии на компьютере