WikiDer > Класс USB-устройств с интерфейсом пользователя
Эта статья нужны дополнительные цитаты для проверка. (Ноябрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В вычисление, то Класс 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, которая передает состояние светодиодных индикаторов клавиатуры от компьютера к клавиатуре. В ПК 97 стандарт требует, чтобы компьютер BIOS должен обнаруживать и работать с клавиатурами класса USB HID, которые предназначены для использования во время процесса загрузки.
Некоторые клавиатуры реализуют Загрузочная клавиатура USB профиль, указанный в определении класса USB-устройств для устройств с интерфейсом пользователя (HID) v1.11, и явно настроен для использования протокола загрузки. Они ограничены 6-клавишное переключение клавиш (6KRO) и будет прерывать работу ЦП каждый раз при опросе клавиатуры (даже если нет изменения состояния), если контроллер USB не отменяет это поведение. Этот профиль предназначен для того, чтобы BIOS могла работать с USB-клавиатурой в отсутствие операционной системы, поддерживающей USB. Рекомендуемый профиль для клавиатур, которые не находятся в режиме загрузки в этой спецификации, ограничивает количество клавиатур до 6KRO и заставляет их реагировать на прерывание отчетом о состоянии не реже, чем каждые полсекунды (опять же, даже если нет изменения состояния), чтобы реализовать typematic (повторение сканкод когда клавиша нажата достаточно долго), если USB-контроллер не запрограммирован так, чтобы клавиатура не делала этого. Однако клавиатуры в режиме без загрузки могут использовать альтернативный профиль HID.[1]
Вышеупомянутое поведение отличается от интерфейса PS / 2, который поддерживает п-поворот клавиш (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)
Рекомендации
- ^ а б c «Определение класса устройства для HID 1.11» (PDF).
- ^ "HID Spec v1_0.zip". Получено 2013-01-22.
- ^ а б «Руководство по оптимизации мыши: исправление ускорения и частота опроса». eu.cybergamer.com. 2007-04-09. Получено 2014-07-09.
- ^ «LCOM 2012/2013: Lab5». web.fe.up.pt. Получено 2014-07-09.
- ^ Адам Чапвеске. «Интерфейс мыши PS / 2». computer-engineering.org. Получено 2014-07-09.
- ^ «USB Dongle - это устройство HID без драйверов, SecuTech Solution Inc». News.thomasnet.com. Получено 2014-01-18.
- ^ «В USB обнаружена серьезная необнаружимая брешь в безопасности: пора достать клавиатуру PS / 2 из шкафа». ExtremeTech. Получено 26 октября 2015.
- ^ «Документация Microsoft по HID». USB.org. Получено 2013-01-22.
внешняя ссылка
- USB.org: домашняя страница Форума разработчиков USB, Inc.
- USB в двух словах
- Инструменты USB-IF HID: страница USB-IF, посвященная устройствам с интерфейсом пользователя, включает всю утвержденную документацию
- Скрытая страница исследования Lakeview: сборник статей и примеры кода для USB HID устройств.
- Руководства по системе для ПК: Технические характеристики системы ПК Microsoft (например, ПК '97, ПК '98)