Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Устройства [ править ]

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

Тот же протокол HID без изменений используется в устройствах с интерфейсом пользователя Bluetooth . [2] Спецификация профиля 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 (повторениеscancode, когда клавиша нажата достаточно долго), если USB-контроллер не запрограммирован так, чтобы клавиатура не делала этого. Однако клавиатуры в режиме без загрузки могут использовать альтернативный профиль HID. [1]

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

Мышь [ править ]

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

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

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

Игровые контроллеры [ править ]

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

Другие устройства [ править ]

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

Уязвимости безопасности [ править ]

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

Драйверы [ править ]

Одним из преимуществ четко определенной спецификации, такой как класс 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). [8] Когда поставщик создает настраиваемое устройство класса USB HID, отчеты, формируемые устройством, должны соответствовать описанию отчета, приведенному во время перечисления, и драйверу, установленному в хост-системе. Таким образом, класс USB HID может быть чрезвычайно гибким.

USB HID API [ править ]

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

См. Также [ править ]

  • USB на ходу (OTG)

Ссылки [ править ]

  1. ^ a b c «Определение класса устройств для HID 1.11» (PDF) .
  2. ^ "HID Spec v1_0.zip" . Проверено 22 января 2013 .
  3. ^ a b «Руководство по оптимизации мыши: исправление ускорения и частота опроса» . eu.cybergamer.com. 2007-04-09 . Проверено 9 июля 2014 .
  4. ^ «LCOM 2012/2013: Lab5» . web.fe.up.pt . Проверено 9 июля 2014 .
  5. ^ Адам Чапвеске. «Интерфейс мыши PS / 2» . computer-engineering.org . Проверено 9 июля 2014 .
  6. ^ «USB Dongle - это устройство HID без драйверов, SecuTech Solution Inc» . News.thomasnet.com . Проверено 18 января 2014 .
  7. ^ «В USB обнаружен серьезный необнаруживаемый недостаток безопасности: пора достать клавиатуру PS / 2 из шкафа» . ExtremeTech . Проверено 26 октября 2015 года .
  8. ^ «Связанная с Microsoft HID документация» . USB.org . Проверено 22 января 2013 .

Внешние ссылки [ править ]

  • USB.org : домашняя страница Форума разработчиков USB, Inc.
  • USB в двух словах
  • USB-IF HID Tools : страница USB-IF, посвященная устройствам с интерфейсом пользователя, включает всю утвержденную документацию.
  • Lakeview Research HID Page : сборник статей и примеры кода для USB HID-устройств.
  • Системные руководства для ПК: технические характеристики системы ПК от Microsoft (например, ПК '97, ПК '98).