Устройство интерфейса с человеком или HID - это тип компьютерного устройства, обычно используемого людьми, которое принимает ввод от людей и выдает вывод людям.
Термин «HID» чаще всего относится к спецификации USB-HID. Этот термин был придуман Майком Ван Фландерном из Microsoft, когда он предложил комитету USB создать рабочую группу класса «Устройства ввода для человека». Рабочая группа была переименована в класс устройств интерфейса человека по предложению Тома Шмидта из DEC, поскольку предлагаемый стандарт поддерживает двунаправленную связь.
HID для вывода | |
Общие HID | |
Менее распространенные HID | |
|
Стандарт HID был принят, прежде всего, для внедрения инноваций в устройства ввода ПК и для упрощения процесса установки таких устройств. До введения концепции HID устройства обычно соответствовали строго определенным протоколам для мыши, клавиатуры и джойстиков ; например, стандартный протокол мыши в то время поддерживал относительные данные по осям X и Y и двоичный ввод для двух кнопок без поддержки устаревших версий. Все аппаратные инновации требовали либо перегрузки использования данных в существующем протоколе, либо создания специальных драйверов устройств и распространения нового протокола среди разработчиков. Напротив, все устройства, определенные HID, доставляют пакеты с самоописанием, которые могут содержать любое количество типов и форматов данных. Один драйвер HID на компьютере анализирует данные и позволяет динамически связывать ввод-вывод данных с функциональностью приложений, что позволяет быстро внедрять инновации и разработку, а также расширять ассортимент новых устройств с интерфейсом пользователя.
Рабочий комитет с представителями нескольких известных компаний разработал стандарт HID. Список участников отображается в документе «Определение класса устройств для устройств с интерфейсом пользователя (HID)». Идея расширяемого протокола с самоописанием изначально пришла от Майка Ван Фландерна и Манолито Адана во время работы над проектом под названием «Raptor» в Microsoft, а также независимо от Стива Макгоуэна, который работал над протоколом устройств для Access Bus в Forte. После сравнения заметок на конференции разработчиков потребительских игр Стив и Майк согласились сотрудничать в разработке нового стандарта для универсальной последовательной шины (USB).
Протокол HID имеет свои ограничения, но все современные основные операционные системы распознают стандартные USB-устройства HID, такие как клавиатуры и мыши, без специального драйвера. После установки на экране обычно появляется сообщение о том, что «HID-совместимое устройство» было распознано ». Для сравнения, это сообщение обычно не появляется для устройств, подключенных через 6-контактные разъемы DIN PS / 2, которые предшествовали USB. PS / 2 обычно не поддерживает plug-and-play, что означает, что подключение клавиатуры или мыши PS / 2 к включенному компьютеру не всегда работает и может представлять опасность для материнской платы компьютера. Точно так же стандарт PS / 2 не поддерживает протокол HID. Класс USB-устройств с интерфейсом пользователя описывает USB HID.
В протоколе HID есть 2 объекта: «хост» и «устройство». Устройство - это объект, который напрямую взаимодействует с человеком, например, клавиатура или мышь. Хост связывается с устройством и получает от устройства входные данные о действиях, выполняемых человеком. Выходные данные передаются от хоста к устройству, а затем к человеку. Наиболее распространенным примером хоста является ПК, но некоторые сотовые телефоны и КПК также могут быть хостами.
Протокол HID делает установку устройств очень простой. Устройства определяют свои пакеты данных, а затем представляют хосту «дескриптор HID». Дескриптор HID - это жестко закодированный массив байтов, который описывает пакеты данных устройства. Сюда входят: сколько пакетов поддерживает устройство, размер пакетов и назначение каждого байта и бита в пакете. Например, клавиатура с программной кнопкой калькулятора может сообщить хосту, что состояние нажатия / отпускания кнопки сохраняется как 2-й бит в 6-м байте в пакете данных номер 4 (примечание: эти местоположения являются только иллюстративными и зависят от устройства). Устройство обычно хранит дескриптор HID в ПЗУ, и ему не нужно внутренне понимать или анализировать дескриптор HID. Некоторое оборудование для мыши и клавиатуры, представленное сегодня на рынке, реализовано с использованием только 8-битного процессора.
Предполагается, что хост будет более сложным объектом, чем устройство. Хосту необходимо получить дескриптор HID с устройства и проанализировать его, прежде чем он сможет полностью взаимодействовать с устройством. Анализ дескриптора HID может быть сложным. Известно, что многие операционные системы содержат ошибки в драйверах устройств, ответственных за анализ дескрипторов HID, спустя годы после того, как драйверы устройств были изначально выпущены для общественности. Однако эта сложность является причиной того, что возможны быстрые инновации с HID-устройствами.
Вышеупомянутый механизм описывает так называемый «протокол отчетов» HID. Поскольку было понятно, что не все хосты могут анализировать дескрипторы HID, HID также определяет «протокол загрузки». В протоколе загрузки поддерживаются только определенные устройства с определенными функциями, поскольку используются фиксированные форматы пакетов данных. В этом режиме дескриптор HID не используется, поэтому нововведения ограничены. Однако преимущество в том, что минимальная функциональность все еще возможна на хостах, которые в противном случае не смогли бы поддерживать HID. Единственные устройства, поддерживаемые в протоколе загрузки:
Обычно режим загрузки используется в первые моменты загрузки компьютера. Непосредственная настройка BIOS компьютера часто выполняется только в режиме загрузки. Иногда появляется сообщение, информирующее пользователя о том, что на устройстве установлен правильный драйвер и теперь его можно использовать.
Согласно спецификации HID, устройство описывается в режиме отчета как набор элементов управления или группа элементов управления. Элементы управления соответствуют полю, содержащему данные, и другому полю, содержащему тег использования. Каждый тег использования описан в спецификации, поскольку конструктор предложил использовать данные, описанные в режиме отчета.
Поскольку исходное определение HID через USB, HID теперь также используется в других компьютерных коммуникационных шинах. Это позволяет использовать HID-устройства, которые традиционно находились только на USB, на альтернативных шинах. Это сделано, поскольку существующая поддержка устройств USB HID обычно может быть адаптирована намного быстрее, чем необходимость изобретать совершенно новый протокол для поддержки мыши, сенсорной панели, клавиатуры и т.п. Известные автобусы, использующие HID: