USB-устройство с интерфейсом пользователя, класс

редактировать

В computing, USB-устройство с интерфейсом пользователя, класс (USB HID class ) является частью спецификации USB для компьютерных периферийных устройств : он определяет класс устройства (тип компьютерного оборудования ) для устройства интерфейса пользователя, такие как клавиатуры, мыши, игровые контроллеры и буквенно-цифровые устройства отображения.

Класс USB HID определено в ряде документов, предоставленных Рабочей группой по устройствам Форума разработчиков USB. Основным документом, используемым для описания класса USB HID, является определение класса устройств для HID 1.11.

Содержание
  • 1 Устройства
    • 1.1 Клавиатуры
    • 1.2 Мышь
    • 1.3 Игровые контроллеры
    • 1.4 Другие устройства
    • 1.5 Уязвимости системы безопасности
  • 2 Драйверы
  • 3 Логические характеристики
    • 3.1 Функциональные характеристики
    • 3.2 Отчеты
  • 4 USB HID API
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Устройства

Класс USB HID описывает устройства, используемые почти на каждом современном компьютере. В классе USB HID существует множество предопределенных функций. Эти функции позволяют производителям оборудования разрабатывать продукт в соответствии со спецификациями класса USB HID и ожидать, что он будет работать с любым программным обеспечением, которое также соответствует этим спецификациям.

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

Клавиатуры

Клавиатуры - это распространенный тип USB-устройств класса HID. Клавиатура класса USB HID обычно разрабатывается с конечной точкой IN, которая передает нажатия клавиш на компьютер, и конечной точкой OUT, которая передает состояние светодиодных индикаторов клавиатуры от компьютера к клавиатуре. Стандарт PC 97 требует, чтобы BIOS компьютера обнаруживал и работал с клавиатурами класса USB HID, которые предназначены для использования во время процесса загрузки.

Некоторые клавиатуры реализуют профиль загрузочной USB-клавиатуры, указанный в определении класса USB-устройств для устройств с интерфейсом пользователя (HID) v1.11, и явно настроены на использование протокола загрузки. Они ограничены одновременным нажатием на 6 клавиш (6KRO) и будут прерывать работу ЦП при каждом опросе клавиатуры (даже если нет изменения состояния), если USB-контроллер не отменяет это поведение. Этот профиль предназначен для того, чтобы BIOS могла работать с USB-клавиатурой в отсутствие операционной системы, поддерживающей USB. Рекомендуемый профиль для клавиатур, которые не находятся в режиме загрузки в этой спецификации, ограничивает количество клавиатур до 6KRO и заставляет их реагировать на прерывание отчетом о состоянии не реже, чем каждые полсекунды (опять же, даже если нет изменения состояния), чтобы реализовать typematic (повторение сканкода при достаточно длительном нажатии клавиши), если USB-контроллер не запрограммирован так, чтобы клавиатура не делала этого. Однако клавиатуры в режиме без загрузки могут свободно использовать альтернативный профиль HID.

Вышеупомянутое поведение отличается от интерфейса PS / 2, который поддерживает одновременное нажатие клавиш n (NKRO) для клавиатур, поддерживающих поддержки его. Интерфейс PS / 2 вообще не прерывает работу ЦП, если нет изменений состояния, за исключением случаев, когда клавиша удерживается достаточно долго для активации typematic. Отсутствие необходимости отвечать на повторный опрос экономит электроэнергию, поэтому интерфейс PS / 2 часто используется во внутренних клавиатурах ноутбуков.

Мышь

Компьютерные мыши - еще одно распространенное устройство класса USB HID. USB HID-мыши могут варьироваться от простых устройств с одной кнопкой до сложных устройств с несколькими кнопками. Большинство современных операционных систем поставляются с драйверами для стандартных дизайнов HID-мышей (наиболее распространенная современная конструкция мыши имеет две выделенные кнопки и колесико мыши, которое служит третьей кнопкой); для мышей с расширенным функционалом требуются кастомные драйверы от производителя.

USB-мыши имеют более низкую задержку, чем мыши PS / 2, поскольку стандартные USB-мыши часто опрашиваются с частотой по умолчанию 125 Гц, в то время как стандартные мыши PS / 2 отправляют прерывания с частотой по умолчанию 100 Гц, когда у них есть данные для отправить на компьютер. Кроме того, USB-мыши не заставляют USB-контроллер прерывать работу системы, если у них нет изменений состояния, чтобы сообщить о них в соответствии с профилем по умолчанию спецификации USB HID для устройств мыши. И PS / 2, и USB позволяют переопределить частоту дискретизации, при этом PS / 2 поддерживает частоту дискретизации до 200 Гц, а USB поддерживает частоту опроса до 1 кГц, пока мышь USB работает на полной скорости или выше. Скорость USB.

Благодаря тому, что интерфейс мыши PS / 2 управляется прерываниями и не требует периодических опросов, интерфейс PS / 2 экономит электроэнергию, что делает его популярным выбором для указывающих устройств, интегрированных в ноутбуки.

Игровые контроллеры

Современные игровые контроллеры и джойстики часто являются устройствами класса USB HID. В отличие от устаревших устройств с игровым портом, игровые устройства класса USB HID обычно не требуют проприетарных драйверов для работы. Почти все игровые устройства будут работать с использованием встроенных драйверов, если устройство разработано с учетом драйверов и спецификаций класса USB HID.

Другие устройства

Спецификации класса USB HID позволяют использовать множество других устройств в классе USB HID. Некоторыми примерами являются контроллеры моделирования автомобилей, тренажеры, устройства телефонии, термометры, средства управления аудиосистемой и медицинские приборы. Даже источники бесперебойного питания и программные защитные ключи заявляют о себе в этом классе, несмотря на то, что они часто вообще не имеют человеческого интерфейса. Любое устройство может быть устройством класса USB HID, если разработчик соответствует логическим спецификациям класса USB HID. Это не означает, что нет необходимости поставлять драйверы для этих устройств или что операционная система немедленно распознает устройство. Это означает только то, что устройство может объявить себя в классе устройства интерфейса пользователя.

Уязвимости в системе безопасности

Интерфейс USB уязвим для таких атак, как BadUSB, которые злоупотребляют комбинацией способности USB подключать множество различных типов устройств и невозможностью проверки что устройства на самом деле являются тем, за что они претендуют, возможность для USB-устройств изменять свой тип или объявлять о дополнительных подустройствах при подключении, а также его поведение по умолчанию - принятие любого устройства, которое подключается к нему. В качестве частичной меры противодействия вместо этого можно использовать периферийные устройства PS / 2 вместе с отключением всех портов USB.

Драйверы

Одним из преимуществ четко определенной спецификации, такой как класс USB HID, является обилие драйверов устройств, доступных в большинстве современных операционных систем. Устройства класса USB HID и их основные функции определены в документации USB-IF без учета какого-либо специального программного обеспечения. Благодаря этим общим описаниям разработчики операционных систем могут легко включить работающие драйверы для таких устройств, как клавиатуры, мыши и другие универсальные устройства с интерфейсом пользователя. Включение этих универсальных драйверов позволяет ускорить развертывание устройств и упростить установку конечным пользователям.

Логические спецификации

Функциональные характеристики

Класс устройств интерфейса пользователя USB может использоваться для описания классов устройств и интерфейсов. Класс интерфейса используется, когда USB-устройство может содержать более одной функции. Таким образом, можно использовать USB-устройства с двумя разными интерфейсами одновременно (например, USB-телефон может использовать клавиатуру, относящуюся к классу HID, и динамик, относящийся к классу USB-устройств связи ).

Интерфейсные устройства также определяются дескрипторами подкласса. Дескриптор подкласса используется для объявления устройства загрузочным. загрузочное устройство отвечает минимальным требованиям базового протокола и распознается BIOS.

компьютера. Каждый интерфейс USB HID обменивается данными с хостом, используя либо канал управления. или трубка прерывания. Изохронные и насыпные трубы не используются в устройствах класса HID. Для перечисления требуются управляющие передачи IN и OUT; для отчетов HID требуется только передача прерывания IN. Передача прерывания OUT не является обязательной в устройствах HID-класса.

Отчеты

Класс USB HID требует, чтобы каждое устройство описывало, как оно будет взаимодействовать с хост-устройством, чтобы точно прогнозировать и определять все текущие и будущие устройства интерфейса пользователя. Во время перечисления устройство описывает, как должны быть структурированы его отчеты, чтобы хост-устройство могло должным образом подготовиться к приему этой информации.

Хост периодически опрашивает конечную точку IN прерывания устройства во время работы. Когда у устройства есть данные для отправки, оно формирует отчет и отправляет его в качестве ответа на токен опроса. Обычные устройства, такие как клавиатуры и мыши, отправляют отчеты, соответствующие стандартам, установленным Форумом разработчиков USB (USB-IF). Когда поставщик создает настраиваемое устройство класса USB HID, отчеты, формируемые устройством, должны соответствовать описанию отчета, данному во время перечисления, и драйверу, установленному в хост-системе. Таким образом, класс USB HID может быть чрезвычайно гибким.

USB HID API

Существует два уровня API, связанных с USB HID: уровень USB и уровень операционной системы. На уровне USB существует протокол, по которому устройства объявляют о своих возможностях, а операционная система - для анализа полученных данных. Затем операционная система предлагает высокоуровневое представление приложений, которое не требует поддержки отдельных устройств, а только классов устройств. Этот уровень абстракции позволяет игре работать с любым контроллером USB, например, даже с контроллером, созданным после игры.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-20 07:05:14
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте