Устройства hid что это такое
HID-клавиатура: что это такое и что делать, если она не работает или не распознается компьютерной системой?
В свете последних научных разработок в области компьютерных технологий пользователи все чаще замечают присутствие на компьютерах неких непонятных устройств, опознаваемых операционной системой, как HID-девайсы. В частности, это касается всевозможных игровых контроллеров, устройств ввода и манипуляторов, включая мыши, а также современные HID-клавиатуры. Что это за устройства, почему им присвоены такие названия и как справиться с наиболее распространенными проблемами в их работе, далее и разберемся. Но для начала давайте определимся с пониманием основного термина.
Human Interface Device: что это за оборудование в общем смысле?
Вам будет интересно: Как работает флешка? Устройство и принцип работы флешки
Разобраться с этим термином в общем-то совершенно несложно. Достаточно просто перевести его с английского языка на русский, в итоге получим что-то вроде устройств с человеческим лицом (интерфейсом). Все оборудование, включаемое в это понятие, принято считать таковым, которое призвано максимально просто взаимодействовать с человеком. В категорию такого оборудования в общем случае относят большинство периферийных устройств, предназначенных для управления компьютерными системами на разных уровнях.
Вам будет интересно: Как работает Wi-Fi роутер: описание, назначение и принцип действия
Для их подключения используются либо USB-интерфейсы и соответствующие порты, либо беспроводные модули Wi-Fi и Bluetooth. Последние два, кстати сказать, тоже относят к классу USB HID. С Wi-Fi-модулями все понятно, ведь те же мыши и клавиатуры беспроводными можно назвать весьма условно, поскольку для их подключения к основному компьютерному блоку как раз и нужен тот самый беспроводный переходник, вставляемый в соответствующий USB-порт. С Bluetooth полной ясности нет, поскольку при подключении к тем же ноутбукам со встроенными «синезубыми» модулями порты USB могут не понадобиться вообще.
HID-клавиатура: что это такое?
Теперь несколько слов непосредственно о клавиатурных блоках. Давайте посмотрим, какие есть виды HID-клавиатур. Что это за устройства, нетрудно сообразить, если просто оценить их визуально. Среди них встречаются и стандартные блоки по типу тех, которые используются на стационарных ПК (стандарт PS/2), и уменьшенные по размерам клавиатуры без цифровых панелей по типу тех, что устанавливаются на ноутбуках с диагоналями экрана 13 дюймов и меньше.
Также можно встретить целые мультимедийные системы, игровые усеченные панели, клавиатуры на мягкой подкладке, сворачивающиеся чуть ли не в трубочку, совершенно миниатюрные блоки с 22, 18, 11 или 10 клавишами и т. д. Вообще считается, что теоретически можно создать блок с 256 клавишами (диапазон ввода/вывода 0-255). Но особой популярностью в последнее время пользуются устройства, на которых положения основных кнопок с литерами и символами изменены, что соответствует заводской установке нестандартной раскладки.
Что делать, если USB-клавиатура не работает: простейшее решение
С основными понятиями ясность внесена. Теперь кратко остановимся на ситуациях, связанных с тем, что клавиатура ПК стандарта HID по каким-то причинам не работает. Устранить неполадки можно несколькими простейшими методами. Первым и самым простым решением, поскольку клавиатурный блок подключается либо непосредственно через USB-порт, либо через беспроводный модуль (но тоже через USB), является смена используемого порта. Вполне возможно, что он просто не работает или имеет другой класс (например, клавиатура рассчитана на подключение через интерфейс USB 3.0, а кабель вставлен в порт USB 2.0).
Отличить разъемы и штекеры можно по цвету (USB 3.0 соответствует синяя окраска).
Переустановка драйвера
Если учесть, что для любого, имеющегося в системе устройства (внешнего или внутреннего) и его корректной работы необходимо специальное управляющее программное обеспечение, называемое драйвером, логично предположить, что проблема может быть именно в нем. Убедиться в этом можно совершенно просто, если вызвать «Диспетчер устройств». Если оборудование с неполадками будет обнаружено, его сразу можно будет увидеть в списке HID-устройств, для которых драйвер не установлен или в его функционировании произошли сбои. Обычно производители поставляют носители с драйверами под свою периферию, так что переустановить драйвер можно самостоятельно.
Но в большинстве случаев это не нужно, поскольку все оборудование класса HID должно распознаваться любой компьютерной системой и без этого.
В этой ситуации лучше всего удалить проблемное устройство целиком и полностью, а затем перезагрузить компьютер. По идее, Windows найдет и установит недостающий драйвер сама.
Управляющее ПО USB-контроллеров
Нередко причина может крыться даже не в самом оборудовании или его драйверах, а в управляющем ПО USB-контроллеров.
В этом случае рекомендуется обновить драйверы всех контроллеров, находящихся в соответствующем разделе все того же «Диспетчера устройств». Для установки самых свежих версий драйверов в обоих случаях можно воспользоваться специальными программами вроде iObit Driver Booster, которые способны находить и устанавливать обновленное программное обеспечение без участия пользователя.
Включение USB в BIOS
Остается добавить еще пару слов о HID-клавиатурах. Что это за устройства, понятно. Как они работают и для чего предназначены, тоже вроде бы ясность есть. Но вот что делать, если вышеперечисленные методы устранить проблему работоспособности так и не смогли? По всей видимости, хотя поддержка периферии этого класса заявлена изначально, что-то могло произойти с настройками первичной системы ввода/вывода.
Для верности зайдите в параметры BIOS/UEFI сразу же после включения компьютера и найдите там пункты вроде USB Keyboard Support или USB Legacy Support. Для них должен быть выставлен параметр Enabled. В некоторых модификациях BIOS можно встретить настройки вроде EHCI Hand-Off и XHCI Hand-Off, отвечающие за ручное переключение между стандартами USB 2.0/3.0. При наличии на компьютере именно Windows-системы они должны быть деактивированы (значение Disabled). В устаревших версиях BIOS также встречается параметр Plug & Play OS, позволяющий автоматически распознавать подключаемые PNP-устройства. Он должен быть включен (значение Yes).
Что такое устройство с интерфейсом пользователя (HID)?
Есть много странных терминов, связанных с использованием компьютера. Возможно, вы видели «Устройство интерфейса человека» или «HID». Звучит как что-то из научно-фантастического фильма, но что именно это означает?
«Устройство интерфейса человека» может звучать странно чуждо, но на самом деле название очень информативное. Проще говоря, HID — это стандарт для компьютерных устройств, которыми управляет человек. Стандарт позволяет легко использовать эти устройства без какого-либо дополнительного программного обеспечения или драйверов.
Стандарт упрощения принадлежностей
«Устройства интерфейса пользователя» — это стандарт, созданный для упрощения процесса установки устройств ввода. До HID существовало несколько конкретных протоколов для каждого типа устройства ввода.
Это означало, что существует протокол для мышей, протокол для клавиатур и так далее. Устройствам необходимо использовать существующие протоколы или создавать собственные драйверы. У людей было больше работы по установке и настройке устройств.
Для сравнения, HID-совместимое устройство включает «пакеты данных», которые содержат все действия устройства. Например, на клавиатуре может быть клавиша для регулировки громкости. При нажатии этой клавиши «дескриптор HID» сообщает компьютеру, где в пакетах хранится цель этого действия, и оно выполняется.
Протокол HID значительно упрощает компаниям производство широко совместимых аксессуаров. Все современные операционные системы поддерживают протокол HID. Вы можете подключить USB-клавиатуру к ПК с Windows, Mac, Chromebook или даже к планшету Android, и она сразу заработает. Это все благодаря HID.
HID и приложения
Самым большим преимуществом HID является возможность просто подключить к вашему устройству практически любое периферийное устройство, и оно сразу же начнет работать. Но это только половина магии. А как насчет того, чтобы эти аксессуары работали с приложениями?
Вы можете подключить USB-контроллер к своему ПК, и он, как правило, будет управлять игрой должным образом. Даже если контроллер был сделан после игры, он все равно работает. Разработчикам игры не нужно было ничего делать, чтобы это произошло.
Когда вы подключаете HID-устройство, оно сообщает о своих возможностях операционной системе. Операционная система интерпретирует данные и классифицирует устройство. Это позволяет приложениям и играм ориентироваться на классы устройств, а не на конкретные модели.
Это очень важный элемент HID, и мы принимаем его как должное. Игровой контроллер будет работать с вашей библиотекой Steam. Zoom узнает, что нужно включить вашу веб-камеру. Все это происходит с очень небольшой настройкой с вашей стороны.
Типы устройств интерфейса пользователя
Как упоминалось ранее, USB-периферийные устройства являются наиболее распространенными устройствами с интерфейсом пользователя, которые вы увидите, но есть и другие типы.
USB-устройства относятся к классу «USB-HID». Это включает в себя обычные вещи, такие как клавиатуры, мыши, веб-камеры, трекпады и игровые контроллеры. Другие устройства USB-HID включают термометры, аудио инструменты, медицинское оборудование, телефоны и тренажеры.
Другой распространенный тип — Bluetooth-HID. Это тот же протокол USB-HID с небольшими изменениями для Bluetooth. Как и следовало ожидать, сюда входят устройства, аналогичные USB-HID, но они подключаются через Bluetooth. Мышь Bluetooth будет работать независимо от того, подключена ли она к ПК с Windows, Mac или Chromebook.
Устройства интерфейса пользователя — одни из наиболее распространенных устройств, которые мы используем с компьютерами. Мы не очень ценим, насколько легко ими пользоваться. Было время, когда это было не так просто.
HID не только упростил использование компьютеров, но и внес свой вклад в массовый рынок аксессуаров. Существуют тысячи клавиатур, мышей, веб-камер, контроллеров и других продуктов, о несовместимости с которыми вам просто не нужно беспокоиться.
В истории компьютеров было много достижений, но стандарт Human Interface Device имел оглушительный успех.
Менее распространенные HID
СОДЕРЖАНИЕ
HID стандарт
Компоненты протокола HID
Предполагается, что хост будет более сложным объектом, чем устройство. Хосту необходимо получить дескриптор HID с устройства и проанализировать его, прежде чем он сможет полностью взаимодействовать с устройством. Анализ дескриптора HID может быть сложным. Известно, что многие операционные системы содержат ошибки в драйверах устройств, ответственных за анализ дескрипторов HID, спустя годы после того, как драйверы устройств были изначально выпущены для общественности. Однако эта сложность является причиной того, что возможны быстрые инновации с HID-устройствами.
Вышеупомянутый механизм описывает так называемый «протокол отчетов» HID. Поскольку было понятно, что не все хосты могут анализировать дескрипторы HID, HID также определяет «протокол загрузки». В протоколе загрузки поддерживаются только определенные устройства с определенными функциями, поскольку используются фиксированные форматы пакетов данных. В этом режиме дескриптор HID не используется, поэтому нововведения ограничены. Однако преимущество в том, что минимальная функциональность все еще возможна на хостах, которые в противном случае не смогли бы поддерживать HID. Единственные устройства, поддерживаемые в протоколе загрузки:
Обычно режим загрузки используется в первые моменты загрузки компьютера. Непосредственная настройка BIOS компьютера часто выполняется только в режиме загрузки. Иногда появляется сообщение, информирующее пользователя о том, что на устройстве установлен правильный драйвер и теперь его можно использовать.
HID определение устройства
Согласно спецификации HID, устройство описывается в режиме отчета как набор элементов управления или группа элементов управления. Элементы управления соответствуют полю, содержащему данные, и другому полю, содержащему тег использования. Каждый тег использования описан в спецификации, поскольку конструктор предложил использовать данные, описанные в режиме отчета.
Другие протоколы с использованием HID
Русские Блоги
Устройство HID для анализа протокола USB
1. Краткое описание
Одним из преимуществ устройств USB HID является то, что операционная система поставляется с драйверами HID, и пользователям не нужно разрабатывать драйверы, если они используют системные вызовы API для завершения взаимодействия.
Он содержит две наиболее важные инструкции:
1. 《Device Class Definition for human interface device (HID)》
2. 《Universal Serial Bus HID Usage Tables》
Документ 1 описывает базовый состав и формат HID, а документ 2 является дополнением к документу 1, в котором перечислены основные компоненты различных устройств HID.
2. Протокол HID
Основываясь на введении базового протокола USB в предыдущей главе, в этой главе основное внимание уделяется классам взаимодействия человека и компьютера HID. (Базовый протокол USB-связи доступен по умолчанию)
2.1 Канал связи USB HID устройства
Все устройства HID связываются с хостом через канал управления USB (канал по умолчанию, конечная точка 0) и канал прерывания (конечная точка 1 или конечная точка 2).
Описание запроса конвейера
Элемент управления (конечная точка 0) должен передавать дескриптор USB, код запроса класса и данные сообщения для запроса
Вход прерывания должен передавать входные данные с устройства на хост
Выход прерывания Дополнительно Передача выходных данных с хоста на устройство
Конвейер управления в основном используется в следующих трех аспектах
Конвейер прерывания в основном используется в следующих двух аспектах
Передача выходных данных прерывания от USB-хоста к USB-устройству является необязательной.Когда выходные данные прерывания не поддерживаются, USB-хост передает данные на USB-устройство через канал управления.
2.2 Дескрипторы, относящиеся к USB HID устройствам
В дополнение к пяти стандартным дескрипторам USB (дескриптор устройства, дескриптор конфигурации, дескриптор интерфейса, дескриптор конечной точки, строковый дескриптор), дескрипторы устройства HID также включают три дескриптора, зависящих от класса устройства HID: Дескриптор HID, дескриптор отчета (Отчет), дескриптор объекта (Физический) 。
Иерархическая взаимосвязь между ними показана на рисунке:
Можно видеть, что на уровне Interface desc указано HID desc.
В дополнение к трем конкретным дескрипторам HID, которые составляют интерпретацию устройств HID, к устройствам HID относятся пять стандартных дескрипторов:
1 — Boot Interface SubClass
2.2.1 Дескриптор HID
Дескриптор HID связан с дескриптором интерфейса, поэтому, если устройство имеет только один дескриптор интерфейса, независимо от того, сколько дескрипторов конечных точек оно имеет, устройство HID имеет только один дескриптор HID. Дескриптор устройства HID в основном описывает номер версии спецификации HID, дополнительные дескрипторы, используемые при обмене данными HID, и длину дескриптора отчета. В следующей таблице показана структура дескриптора HID.
Смещение | площадь | Размер (байт) | ценность | описание |
0 | bLength | 1 | цифровой | Длина этого дескриптора в байтах |
1 | bDescriptorType | 1 | постоянный | Тип дескриптора (здесь 0x21 Категория HID) |
2 | bcdHID | 2 | цифровой | Номер версии спецификации HID (код BCD) с использованием 4-х шестнадцатеричных кодов формата BCD |
4 | bCountryCode | 1 | цифровой | Идентификационный код страны назначения оборудования |
5 | bNumDescriptors | 1 | цифровой | Количество поддерживаемых вспомогательных дескрипторов |
6 | bDescriptorType | 1 | постоянный | Типы дескрипторов, связанных с HID, см. В таблице ниже |
7 | wDescriptorLength | 2 | цифровой | Сообщите общую длину дескриптора |
9 | bDescriptorType | 1 | постоянный | Константа, используемая для определения типа дескриптора, используйте устройство с более чем одним дескриптором |
10 | wDescriptorLength | 2 | цифровой | Общая длина дескриптора, используемого в устройствах с более чем одним дескриптором. |
Значение типа дескриптора | |
---|---|
0x22 | Дескриптор отчета |
0x23 | Дескриптор объекта |
В стандартном запросе USB, когда используется дескриптор конфигурации get, он будет возвращен в следующем порядке, то есть дескриптор HID также будет возвращен.
Дескриптор HID также содержит тип и длину присоединенного к нему дескриптора (например, дескриптора отчета), а затем хост запрашивает соответствующий дескриптор на основе информации в дескрипторе HID. Другими словами, хост знает, что устройство является HID-устройством, получая дескриптор.
Обычно в процессе запроса дескрипторов конфигурации и получения всех дескрипторов выбирают » Class 0x01 ”:
2.2.2 Дескриптор отчета
Дескриптор отчета является наиболее сложным из всех описаний USB, потому что он отличается от других и не имеет фиксированной длины и таблицы. Это переменный и разнообразный дескриптор.
Дескриптор отчета фактически сообщает хосту, какие биты или байты представляют значение данных, передаваемых через конечную точку прерывания. Таким образом, он может быть более абстрактным, но после прочтения следующего описания он станет более ясным в ретроспективе.
Чтобы понять дескриптор отчета, необходимы два официальных USB HID-данных:
《Device Class Definition for human interface device (HID)》
《Universal Serial Bus HID Usage Tables》
Дескриптор отчета состоит из одного элемента. Элемент делится на два типа. Имеются следующие форматы:
1. Short Item
2. Long Item
Из вышеперечисленного здесь в основном речь идет оShort Item, Наиболее используемым является Short Item 。
Короче говоря, первый 1 байт представляет цель этого элемента:
bSize: представляет следующие данные размером до 4 байтов.
bType: показывает, какой тип элемента является данным элементом. Существует три основных типа: основной (0x00), глобальный (0x01) и локальный (0x02).
bTag: представляет более подробную классификацию по соответствующему элементу.
| —— Основное разделено на: ввод, вывод, функция, коллекция, конечная коллекция.
| —— Глобальное разделение на: страницу использования, логический минимум, логический максимум и т. Д.
| —— Локальное разделение на: использование, минимум использования, максимум использования, строку и т. Д.
ДляbSize + bType + bTag Комбинация из 1 байта показана в таблице ниже:
В таблице перечислены все взаимодействия. Знак «?» Представляет значение младших 4 битов. Например, короткий элемент:
0x05 =》 0000 01 01 Можно разбить:bSize = 1;bType = 1(Global);bTag = 0(Usage Page)
Приведенная выше интерпретация исходит из 《Device Class Definition for human interface device (HID)》 Файл, следующий за 0x01 Это 1 байт данных. Необходимо выяснить конкретное значение этих данных:《Universal Serial Bus HID Usage Tables》 Может быть найдено в, что означает: Generic Desktop 。
То есть согласно [bSize + bType + bTag】 Информация знает конкретное значение тега. Комбинируя таблицу таблицы и конкретный тег, найдите соответствующее значение следующих данных, чтобы достичь цели интерпретации дескриптора отчета.
Разберем функцию и значение нескольких важных тегов.
Main
| —— Ввод: указывает режим ввода данных о работе устройства на хост. Этот формат данных формирует входной отчет.Хотя входной отчет может быть передан конвейером управляющего типа с получением отчета (входом), он обычно передается входным конвейером типа прерывания, чтобы гарантировать, что обновленный входной отчет может быть передан в каждый фиксированный период. Передайте хосту.
| —— Вывод: представляет формат данных, выводимых хостом для операции устройства. Этот формат данных формирует выходной отчет. Выходной отчет обычно не отправляется на устройство путем опроса, но выходной отчет должен быть отправлен прикладным программным обеспечением в соответствии с фактическими потребностями, поэтому большинство конвейеров контрольного типа используются для отправки отчета на устройство с установить команду отчета (вывода). Конечно, вы также можете использовать прерванный выходной конвейер для передачи, но обычно это не рекомендуется.
| —— Функция: указывает формат данных конфигурации, требуемых хостом для отправки на устройство. Этот образец данных формирует характерный отчет. Отчет о функциях может использовать конвейер управления только для получения и установки значения функции устройства с помощью команд получить отчет (функция) и установить отчет (функция) соответственно.
Main ( Формат данных и смысл Три тега (Вход, Выход и Функция), которые создают формат данных отчета в), имеют общие определения данных. Эти данные:
Данные / константа: данные основного элемента представляют собой значение переменной (установленное на Data) или фиксированное неизменяемое значение (установлено на Constant). Константы используются в отчете Feature или используются для заполнения, поэтому длина отчета указывается в байтах.
Массив / переменная: каждое поле данных основного элемента может указывать, что запускается одна из нескольких различных операций (установлено значение «Массив»), или каждое поле указывает только одну операцию (установлено значение «Переменная»). Если это переменная, значение данных Report Count равно количеству полей данных отчета. Если это массив, значение данных Report Count указывает максимальное количество операций, которые могут быть запущены одновременно.
Абсолютный / Относительный: данные основного элемента предоставляют абсолютные значения относительно фиксированной контрольной точки (установленной на Абсолютный) или предоставляют относительные значения относительно предыдущего отчета (установленный на Относительный).
Без переноса / переноса: когда значение данных основного элемента достигает экстремального значения, оно переключается на чрезвычайно низкое значение, и наоборот, что называется намоткой (установлено значение Wrap). Например, поворотную ручку можно повернуть на 360 °, а выходное значение находится в диапазоне от 0 до 10. Если установлено значение Wrap, значение достигает 10, а значение становится 0, если она вращается в том же направлении. В противном случае, если он достигнет 0, поверните его снова, чтобы получить 10.
Линейный / Нелинейный: данные основного элемента и шкалы операций являются линейными (для параметра «Линейный») или нелинейными (для параметра «Нелинейный»).
Предпочтительное состояние / Нет предпочтений: операция, соответствующая основному элементу, автоматически вернется в исходное состояние (установленное на Предпочтительное состояние), когда она не запущена, или она не вернется в исходное состояние (установлено на Нет предпочтительного). Например, клавиши клавиатуры и самоцентрирующиеся джойстики являются предпочтительными состояниями.
Нет нулевой позиции / нулевое состояние: операция, соответствующая основному элементу, имеет состояние, при котором значимые данные не будут отправляться, то есть данные не будут находиться между логическим минимумом и логическим максимумом. Этот вид манипуляции должен быть отмечен как нулевой. Состояние, иначе это не нулевая позиция. Например, если имеется несколько клавиш, но в столбце Использование не указано, что ни одна клавиша не нажата, вы можете установить нулевое состояние в данных основного элемента, чтобы исключить состояние отсутствия нажатой клавиши из логического элемента. Минимальный и логический максимальный диапазон, см.Universal Serial Bus HID Usage Tables Пример в Приложении A.3 документа.
Non Volatile / Volatile: Данные основного элемента Feature не могут быть изменены хостом (установлен на Non Volatile) или разрешены для изменения хостом (установлен на Volatile). Обратите внимание на основные пункты Input и Output, эта установка метки бессмысленна, поэтому код бита 7 должен быть 0.
Битовое поле / буферизованные байты: формат данных основного элемента должен быть в байтах.Если этого недостаточно для формирования байтов, он будет автоматически заполнен байтами, затем установите буферизованные байты.