HOME

TheInfoList



OR:

A human interface device or HID is a type of computer device usually used by humans that takes input from humans and gives
output Output may refer to: * The information produced by a computer, see Input/output * An output state of a system, see state (computer science) * Output (economics), the amount of goods and services produced ** Gross output in economics, the value of ...
to humans. The term "HID" most commonly refers to the USB-HID specification. The term was coined by Mike Van Flandern of
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
when he proposed that the
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
committee create a Human Input Device class working group. The working group was renamed as the Human Interface Device class at the suggestion of Tom Schmidt of DEC because the proposed standard supported bi-directional communication.


HID standard

The HID standard was adopted primarily to enable innovation in PC
input device In computing, an input device is a piece of equipment used to provide data and control signals to an information processing system, such as a computer or information appliance. Examples of input devices include keyboards, mouse, scanners, cameras ...
s and to simplify the process of installing such devices. Prior to the introduction of the HID concept, devices usually conformed to strictly defined
protocol Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technolog ...
s for
mouse A mouse ( : mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
,
keyboard Keyboard may refer to: Text input * Keyboard, part of a typewriter * Computer keyboard ** Keyboard layout, the software control of computer keyboards and their mapping ** Keyboard technology, computer keyboard hardware and firmware Music * Musi ...
s and
joystick A joystick, sometimes called a flight stick, is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. A joystick, also known as the control column, is the principal cont ...
s; for example, the standard mouse protocol at the time supported relative X- and Y-axis data and binary input for up to two buttons, with no legacy support. All hardware innovations necessitated either overloading the use of data in an existing protocol or the creation of custom device drivers and the evangelization of a new protocol to developers. By contrast, all HID-defined devices deliver self-describing packages that may contain any number of data types and formats. A single HID driver on a computer parses data and enables dynamic association of data I/O with application functionality, which has enabled rapid innovation and development, and prolific diversification of new human-interface devices. A working committee with representatives from several prominent companies developed the HID standard. The list of participants appears in the "Device Class Definition for Human Interface Devices (HID)" document. The concept of a self-describing extensible protocol initially came from Mike Van Flandern and Manolito Adan while working on a project named "Raptor" at
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, and independently from Steve McGowan, who worked on a device protocol for Access Bus while at
Forte Forte or Forté may refer to: Music *Forte (music), a musical dynamic meaning "loudly" or "strong" * Forte number, an ordering given to every pitch class set * Forte (notation program), a suite of musical score notation programs * Forte (vocal ...
. After comparing notes at a Consumer Game Developer Conference, Steve and Mike agreed to collaborate on a new standard for the emerging
Universal Serial Bus Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
(USB). The HID protocol has its limitations, but all modern mainstream
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s will recognize standard USB HID devices, such as keyboards and mice, without needing a specialized driver. When installed, a message saying that "A 'HID-compliant device' has been recognized" generally appears on screen. In comparison, this message does not usually appear for devices connected via the PS/2 6-pin
DIN connector The DIN connector is an electrical connector that was standardized by the ' (DIN), the German Institute for Standards, in the early 1970s. The male DIN connectors (plugs) feature a 13.2 mm diameter metal shield with a notch that limits the ...
s which preceded USB. PS/2 does not typically support
plug-and-play In computing, a plug and play (PnP) device or computer bus is one with a specification that facilitates the recognition of a hardware component in a system without the need for physical device configuration or user intervention in resolving reso ...
, which means that connecting a PS/2 keyboard or mouse with the computer powered on does not always work and may pose a hazard to the computer's motherboard. Likewise, the PS/2 standard does not support the HID protocol. The
USB human interface device class In computing, the USB human interface device class (USB HID class) is a part of the USB specification for computer peripherals: it specifies a device class (a type of computer hardware) for human interface devices such as keyboards, mice, game ...
describes a USB HID.


Components of the HID protocol

In the HID protocol, there are 2 entities: the "host" and the "device". The device is the entity that directly interacts with a human, such as a keyboard or mouse. The host communicates with the device and receives input data from the device on actions performed by the human. Output data flows from the host to the device and then to the human. The most common example of a host is a PC but some
cell phones A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive calls over a radio frequency link whil ...
and PDAs also can be hosts. The HID protocol makes implementation of devices very simple. Devices define their data packets and then present a "HID descriptor" to the host. The HID descriptor is a hard coded array of bytes that describes the device's data packets. This includes: how many packets the device supports, the size of the packets, and the purpose of each byte and bit in the packet. For example, a keyboard with a calculator program button can tell the host that the button's pressed/released state is stored as the 2nd bit in the 6th byte in data packet number 4 (note: these locations are only illustrative and are device-specific). The device typically stores the HID descriptor in ROM and does not need to intrinsically understand or parse the HID descriptor. Some mouse and keyboard hardware in the market today is implemented using only an 8-bit CPU. The host is expected to be a more complex entity than the device. The host needs to retrieve the HID descriptor from the device and parse it before it can fully communicate with the device. Parsing the HID descriptor can be complicated. Multiple operating systems are known to have shipped bugs in the
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
s responsible for parsing the HID descriptors years after the device drivers were originally released to the public. However, this complexity is the reason why rapid innovation with HID devices is possible. The above mechanism describes what is known as HID "report protocol". Because it was understood that not all hosts would be capable of parsing HID descriptors, HID also defines "boot protocol". In boot protocol, only specific devices are supported with only specific features because fixed data packet formats are used. The HID descriptor is not used in this mode so innovation is limited. However, the benefit is that minimal functionality is still possible on hosts that otherwise would be unable to support HID. The only devices supported in boot protocol are * Keyboard – Any of the first 256 key codes ("Usages") defined in the HID Usage Tables, Usage Page 7 can be reported by a keyboard using the boot protocol, but most systems only handle a subset of these keys. Most systems support all 104 keys on the IBM AT-101 layout, plus the three extra keys designed for
Microsoft Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
(the left and right
Windows key The Windows logo key (also known as Windows-, win-, start-, logo-, flag-, or super-key) is a keyboard key which was originally introduced on the Microsoft Natural keyboard in 1994. This key became a standard key on PC keyboards. In Window ...
, and the
Menu key In computing, the menu key or application key () is a key found on Microsoft Windows-oriented computer keyboards, introduced at the same time as the Windows logo key. Its symbol is usually a small icon depicting a pointer hovering above a menu, ...
). Many systems also support additional keys on basic western European 105-, Korean 106-, Brazilian ABNT 107- and Japanese DOS/V 109-key layouts. Buttons, knobs and keys that are not reported on Usage Page 7 are not available. For example, a particular US keyboard's QWERTY keys will function but the Calculator and Logoff keys will not because they are defined on Usage Page 12 and cannot be reported in boot protocol. * Mouse – Only the X-axis, Y-axis, and the first 3 buttons will be available. Any additional features on the mouse will not function. One common usage of boot mode is during the first moments of a computer's boot up sequence. Directly configuring a computer's
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
is often done using only boot mode. Sometimes a message will appear informing the user that the device has installed the correct driver and is now usable.


HID definition of a device

According to the HID specification, a device is described, during the report mode, as a set of controls or group of controls. Controls are matched by a field containing the data, and another containing a usage tag. Each usage tag is described in the spec as the constructor suggested use of the data described in the report mode.


Other protocols using HID

Since HID's original definition over USB, HID is now also used in other computer communication buses. This enables HID devices that traditionally were only found on USB to also be used on alternative buses. This is done since existing support for USB HID devices can typically be adapted much faster than having to invent an entirely new protocol to support mouse, touchpad, keyboards, and the like. Known buses that use HID are: * Bluetooth HID – Used for mouse and keyboards that are connected via
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
* Serial HID – Used in Microsoft's
Windows Media Center Windows Media Center (WMC) is a defunct digital video recorder and media player created by Microsoft. Media Center was first introduced to Windows in 2002 on Windows XP Media Center Edition (MCE). It was included in Home Premium and Ultimate e ...
PC remote control receivers. *
ZigBee Zigbee is an IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios, such as for home automation, medical device data collection, and o ...
input device – ZigBee ( RF4CE) supports HID devices through the ZigBee input device profile. * HID over
I²C I2C (Inter-Integrated Circuit, ), alternatively known as I2C or IIC, is a synchronous, multi-controller/multi-target (master/slave), packet switched, single-ended, serial communication bus invented in 1982 by Philips Semiconductors. It is wide ...
– Used for embedded devices in Microsoft Windows 8 * HID over SPI – Developed by Microsoft for faster, lower latency fixed-device communications * HOGP (HID over GATT) – Used for HID devices connected using Bluetooth Low Energy technology


See also

* Human interface guidelines *
Human–computer interaction Human–computer interaction (HCI) is research in the design and the use of computer technology, which focuses on the interfaces between people (users) and computers. HCI researchers observe the ways humans interact with computers and design tec ...
*
USB human interface device class In computing, the USB human interface device class (USB HID class) is a part of the USB specification for computer peripherals: it specifies a device class (a type of computer hardware) for human interface devices such as keyboards, mice, game ...
*
Graphical user interface builder A graphical user interface builder (or GUI builder), also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements (often calle ...
*
Linux on the desktop Besides the Linux distributions designed for general-purpose use on desktops and servers, distributions may be specialized for different purposes including computer architecture support, embedded systems, stability, security, localization to a spec ...
*
Peripheral A peripheral or peripheral device is an auxiliary device used to put information into and get information out of a computer. The term ''peripheral device'' refers to all hardware components that are attached to a computer and are controlled by the ...
*
Tangible user interface A tangible user interface (TUI) is a user interface in which a person interacts with digital information through the physical environment. The initial name was Graspable User Interface, which is no longer used. The purpose of TUI development ...


References


External links


HID developers forum
USB.org
HID Device Class Definition 1.11 Specification
USB.org
HID Usage Tables 1.12 Specification
USB.org {{DEFAULTSORT:Human Interface Device Human–computer interaction