USB HID (USB HID)

Перейти к навигации Перейти к поиску

USB HID (human interface device) class — класс устройств USB для взаимодействия с человеком. Этот класс включает в себя такие устройства как клавиатура, мышь, игровой контроллер. Класс USB HID определен в нескольких документах, предоставляемых USB Implementers Forum, в частности, Рабочей группой по работе с устройствами.

Основной документ с дескрипторами класса: Device Class Definition for HID 1.11. В отдельных документах публикуются т. н. usage tables — списки кодов функций различных устройств ввода-вывода[1].

Устройства

[править | править код]

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

Точно такой же HID-протокол используется неизменённым в Bluetooth, в профиле взаимодействия с пользователем[2]. При чтении спецификации HID-профиля Bluetooth читателей просто направляют к документации USB HID. По этой причине эти устройства можно также отнести к классу USB HID.

Клавиатуры

[править | править код]

Клавиатуры — одни из наиболее популярных USB HID устройств. USB HID клавиатуры, как правило, имеют входной поток данных, который передаёт нажатия клавиш в компьютер и выходной поток, который передаёт текущий статус клавиатурных индикаторов от компьютера к клавиатуре. Стандарт PC 97 определяет, что BIOS компьютера должен определять USB HID клавиатуры и работать с ними. Стандарт разработан для того, чтобы эти клавиатуры возможно было использовать во время загрузки компьютера.

Скан-коды USB HID-клавиатуры
29
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
35
1E
1F
20
21
22
23
24
25
26
27
2D
2E
2A
49
4A
4B
53
54
55
56
2B
14
1A
08
15
17
1C
18
0C
12
13
2F
30
28
4C
4D
4E
5F
60
61
57
39
04
16
07
09
0A
0B
0D
0E
0F
33
34
32
5C
5D
5E
E1
64
1D
1B
06
19
05
11
10
36
37
38
E5
52
59
5A
5B
58
E0
E3
E2
2C
E6
E7
65
E4
50
51
4F
62
63

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

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

[править | править код]

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

Другие устройства

[править | править код]

Помимо детальных спецификаций классических устройств ввода (типа клавиатур и мышек) стандарт HID определяет особый класс устройств без детальных спецификаций. Этот класс именуется USB HID Consumer Control и представляет по сути нерегламентированный канал связи с устройством. При этом устройство пользуется теми же стандартными для операционной системы драйверами что и мышка с клавиатурой. Таким образом можно создать USB устройство которое не требует создания и инсталляции специальных драйверов в большинстве распространенных компьютерных операционных систем.

Этим стали массово пользоваться, и появилось огромное количество устройств, которые, по сути, интерфейсами взаимодействия с человеком не являются. Например, телефонное устройство, термометр, устройство управления аудио и медицинское оборудование. Даже ИБП (источники бесперебойного питания) определяют себя, как принадлежащие классу USB HID, несмотря на то, что они часто не имеют человеческого интерфейса вообще. Любое устройство может принадлежать к USB HID классу, если оно удовлетворяет логическим спецификациям HID Consumer Control.

Одно из преимуществ хорошо определенной спецификации, такой, как USB HID — это обилие драйверов устройств, доступных в большинстве современных операционных систем. USB HID класс и его базовые функции описаны в USB-IF документации, без какой-либо привязки к конкретному программному обеспечению. Из-за таких общих описаний разработчикам операционных систем легко включить функциональные драйверы для таких устройств как клавиатура, мышь и другие устройства взаимодействия с пользователем. Включение основных драйверов способствует более быстрому распространению этих устройств и упрощению установки конечными пользователями.

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

[править | править код]

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

[править | править код]

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

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

Примечания

[править | править код]