Jump to content

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

(Перенаправлено из класса USB Human Interface Device )

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

Класс USB HID определен в ряде документов, предоставленных Рабочей группой по устройствам Форума USB Implementers Forum . Основным документом, используемым для описания класса 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, и явно настроены на использование протокола загрузки. Они ограничены одновременным нажатием шести клавиш (6KRO) и будут прерывать работу ЦП каждый раз при опросе клавиатуры (даже если нет изменения состояния), если только USB-контроллер не запрограммирован на то, чтобы сообщать клавиатуре отвечать отрицательными подтверждениями, которые USB-контроллер не запрограммировал. Контроллер сбрасывает данные аппаратно, не прерывая работу ЦП, если нет изменений состояния, о которых необходимо сообщить. Этот профиль предназначен для того, чтобы позволить BIOS обрабатывать USB-клавиатуру при отсутствии операционной системы, поддерживающей USB. Рекомендуемый профиль для клавиатур, которые не находятся в режиме загрузки в этой спецификации, ограничивает клавиатуры до 6KRO и заставляет их реагировать на прерывание отчетом о состоянии по крайней мере каждые полсекунды (опять же, даже если нет изменения состояния), чтобы реализовать типографический (повторение скан-кода при достаточно длительном нажатии клавиши), если только USB-контроллер не запрограммирован на то, чтобы сообщать клавиатуре о необходимости отвечать отрицательными подтверждениями всякий раз, когда нет никаких изменений состояния, о которых можно было бы сообщить. Однако клавиатуры в режиме без загрузки могут использовать альтернативный профиль HID. [1]

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

Компьютерная мышь — еще одно распространенное устройство класса 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.

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

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

Современные игровые контроллеры и джойстики часто представляют собой устройства класса 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 без какого-либо специального программного обеспечения. Благодаря этим общим описаниям разработчикам операционных систем легко включать функционирующие драйверы для таких устройств, как клавиатуры, мыши и другие общие устройства пользовательского интерфейса. Включение этих универсальных драйверов позволяет ускорить развертывание устройств и упростить установку конечными пользователями. Windows 98 была первой версией Windows, поддерживавшей USB HID.

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

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

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

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

Класс устройства 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 может быть чрезвычайно гибким.

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

См. также

[ редактировать ]
  1. ^ Jump up to: а б с «Определение класса устройства для HID 1.11» (PDF) .
  2. ^ «HID Spec v1_0.zip» . Проверено 22 января 2013 г.
  3. ^ Jump up to: а б «Руководство по оптимизации мыши: исправление ускорения и частоты опроса» . eu.cybergamer.com. 9 апреля 2007 г. Проверено 9 июля 2014 г.
  4. ^ «ЛКОМ 2012/2013: Лаб5» . веб.fe.up.pt. ​Проверено 9 июля 2014 г.
  5. ^ Адам Чапвеске. «Интерфейс мыши PS/2» . компьютер-инжиниринг.org . Проверено 9 июля 2014 г.
  6. ^ «USB-ключ не требует драйверов и является HID-устройством. SecuTech Solution Inc» . News.thomasnet.com . Проверено 18 января 2014 г.
  7. ^ Энтони, Себастьян (31 июля 2014 г.). «В USB обнаружен огромный, необнаружимый недостаток безопасности: пришло время достать клавиатуру PS/2 из шкафа» . ЭкстримТех . Проверено 26 октября 2015 г.
  8. ^ «Документация Microsoft по HID» . USB.org . Проверено 22 января 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b8d884aadd4326d057693828ee84eac3__1715748840
URL1:https://arc.ask3.ru/arc/aa/b8/c3/b8d884aadd4326d057693828ee84eac3.html
Заголовок, (Title) документа по адресу, URL1:
USB human interface device class - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)