Human interface device

Human interface device

A human interface device or HID is a type of computer device that interacts directly with, and most often takes input from, humans and may deliver output to humans. The term "HID" most commonly refers to the USB-HID specification. The term was coined by Mike Van Flandern of Microsoft when he proposed the USB 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.

The primary motivations for HID were to enable innovation in PC input devices and simplify the process of installing these devices. Prior to HID, devices usually conformed to very narrowly defined protocols for mice, keyboards and joysticks (for example the standard mouse protocol at the time supported relative X and Y axis data and binary input for up to two buttons). Any innovation in hardware required overloading the use of data in an existing protocol or creation of custom device drivers and evangelization of a new protocol to application developers. By contrast all HID devices deliver self describing packages that may contain an infinite variety of data types and formats. A single HID driver on the PC parses the data and enables dynamic association of data I/O with application functionality. This has enabled rapid innovation and proliferation of new human interface devices.

The HID standard was developed by a working committee with representatives from several companies and the list of participants can be found in the "Device Class Definition for Human Interface Devices (HID)" document. The concept of a self describing extensible protocol was initially conceived by Mike Van Flandern and Manolito Adan working on a project named Raptor at Microsoft and independently by Steve McGowan working on a device protocol for Access Bus while at Forte. 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.

Common HIDs
* Keyboard
* Mouse, Trackball, Touchpad, Pointing stick
* Graphics tablet
* Joystick, Gamepad

Less common HIDs
* Driving simulator devices and flight simulator devices have HIDs such as gear sticks, steering wheels and pedals.
* Nintendo Power Glove
* Dance pad
* Wii RemoteMost operating systems will recognize standard USB HID devices, like keyboards and mice, without needing a special 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 connectors which preceded USB. PS/2 does not support plug-and-play, which means that connecting a PS/2 keyboard or mouse with the computer powered on does not always work. In addition, PS/2 does not support the HID protocol.

A USB HID is described by the USB human interface device class.

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 computer but some cellphones 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 hardcoded array of bytes that describe the device's data packets. This includes: how many packets the device supports, how large are 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 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 drivers 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 mode". Because it was understood that not all hosts would be capable of parsing HID descriptors, HID also defines "boot mode". In boot mode, only specific devices are supported with only specific feature 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 mode are
* Keyboard — Only the core 104 keys are supported. Any advanced functionality is unavailable. For example, a particular US keyboard's QWERTY keys will function but the Calculator and Logoff keys will not.
* Mouse — Only the X-axis, Y-axis, wheel, 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 is often done using only boot 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 mice, keyboards, and the like. Known buses that use HID are:
* Bluetooth HID — Bluetooth is a wireless communications technology. Several Bluetooth mice and keyboards already exist in the market place.
* Serial HID — Used in Microsoft's Windows Media Center PC remote control receivers.

See also

* Human-computer interaction
* Pointing device

External links

* [http://www.usb.org/developers/hidpage/ The USB Implementers Forum on HID]
* [http://www.hidfiles.com/ HID files for Sony Ericsson phones]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Human Interface Device — (HID) ist eine Geräteklasse des USB Standards für Computer, welche Geräte beschreibt, mit denen Benutzer direkt interagieren. Meist wird HID bei Geräten wie Tastatur, Maus, Joystick und Grafiktabletts verwendet. Allerdings kann HID auch für… …   Deutsch Wikipedia

  • USB human interface device class — The USB human interface device class ( USB HID class ) is a USB device class that describes human interface devices such as keyboards, mice, game controllers and alphanumeric display devices. The USB HID class is defined in a number of documents… …   Wikipedia

  • Human factors — For other uses, see The Human Factor (disambiguation). Research subject in a human fatigue study. Human factors science or human factors technologies is a multidisciplinary field incorporating contributions from psychology, engineering,… …   Wikipedia

  • List of human-computer interaction topics — This is a list of topics in human computer interaction. General * accessibility and Computer accessibility * adaptive autonomy * affordance * banner blindness * contextual design and contextual inquiry * gender HCI * gulf of execution *… …   Wikipedia

  • Enhanced Host Controller Interface — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • Universal Host Controller Interface — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • Input device — In computing, an input device is any peripheral (piece of computer hardware equipment) used to provide data and control signals to an information processing system such as a computer or other information appliance. Input and output devices make… …   Wikipedia

  • Pointing device — A pointing device is an input interface (specifically a human interface device) that allows a user to input spatial (ie, continuous and multi dimensional) data to a computer. CAD systems and graphical user interfaces (GUI) allow the user to… …   Wikipedia

  • Human genetic engineering — is the genetic engineering of humans by modifying the genotype of the unborn individual to control what traits it will possess when born. [Citation last = Singer first = Peter author link = last2 = Kuhese first2 = Helga author2 link = title =… …   Wikipedia

  • Device driver synthesis and verification — The device driver is a program which allows the software or higher level computer programs to interact with a hardware device. These software components act as a link between the devices and the operating systems, communicating with each of these …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”