Human interface device
Encyclopedia
A human interface device or HID is a type of computer device
Peripheral
A peripheral is a device attached to a host computer, but not part of it, and is more or less dependent on the host. It expands the host's capabilities, but does not form part of the core computer architecture....

 that interacts directly with, and most often takes input
Input device
In computing, an input device is any peripheral used to provide data and control signals to an information processing system such as a computer or other information appliance...

 from, humans and may deliver output
Output device
An output device is any piece of computer hardware equipment used to communicate the results of data processing carried out by an information processing system to the outside world....

 to humans. The term "HID" most commonly refers to the USB-HID
USB human interface device class
In computing, the USB human interface device class is a part of the USB specification for computer peripherals: it specifies a device class for human interface devices such as keyboards, mice, game controllers and alphanumeric display devices.The USB HID class is defined in a number of documents...

 specification. The term was coined by Mike Van Flandern of Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 when he proposed the USB
Universal Serial Bus
USB is an industry standard developed in the mid-1990s that defines the cables, connectors and protocols used in a bus for connection, communication and power supply between computers and electronic devices....

 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
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...

 because the proposed standard supported bi-directional communication.

History

The primary motivations for HID were to enable innovation in PC
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

 input device
Input device
In computing, an input device is any peripheral used to provide data and control signals to an information processing system such as a computer or other information appliance...

s and simplify the process of installing these devices. Prior to HID, devices usually conformed to very narrowly defined protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

s for mice
Mouse (computing)
In computing, a mouse is a pointing device that functions by detecting two-dimensional motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons...

, keyboards
Keyboard (computing)
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

 and joystick
Joystick
A joystick 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. Joysticks, also known as 'control columns', are the principal control in the cockpit of many civilian and military aircraft, either as a center stick or...

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). 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 any number of data types and formats. A single HID driver on the PC parses the data and enables dynamic association of data I/O
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

 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. 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
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 and independently by Steve McGowan working on a device protocol for Access Bus while at Forte
Forte
Forte/Forté may refer to:*Forte, but often ;. A person's strong point e.g. Preparing gourmet cuisine is his forte. The term is derived from the French fort meaning strength, which does not include an acute accent. The latter pronunciation is likely due to a confusion as a false cognate with the...

. 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
    Keyboard (computing)
    In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

  • Mouse
    Mouse (computing)
    In computing, a mouse is a pointing device that functions by detecting two-dimensional motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons...

    , Trackball
    Trackball
    A trackball is a pointing device consisting of a ball held by a socket containing sensors to detect a rotation of the ball about two axes—like an upside-down mouse with an exposed protruding ball. The user rolls the ball with the thumb, fingers, or the palm of the hand to move a cursor...

    , Touchpad
    Touchpad
    A touchpad is a pointing device featuring a tactile sensor, a specialized surface that can translate the motion and position of a user's fingers to a relative position on screen. Touch pads are a common feature of laptop computers, and they are also used as a substitute for a mouse where desk...

    , Pointing stick
    Pointing stick
    The pointing stick is an isometric joystick used as a pointing device . It was invented by research scientist Ted Selker...

  • Graphics tablet
    Graphics tablet
    A graphics tablet is a computer input device that enables a user to hand-draw images and graphics, similar to the way a person draws images with a pencil and paper. These tablets may also be used to capture data or handwritten signatures...

  • Joystick
    Joystick
    A joystick 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. Joysticks, also known as 'control columns', are the principal control in the cockpit of many civilian and military aircraft, either as a center stick or...

    , Gamepad
    Gamepad
    A gamepad , is a type of game controller held in two hands, where the digits are used to provide input. Gamepads generally feature a set of action buttons handled with the right thumb and a direction controller handled with the left...

    , Analog stick
    Analog stick
    An analog stick, sometimes called a control stick or thumbstick, is an input device for a controller that is used for two-dimensional input. An analog stick is a variation of a joystick, consisting of a protrusion from the controller; input is based on the position of this protrusion in relation...

  • Webcam
    Webcam
    A webcam is a video camera that feeds its images in real time to a computer or computer network, often via USB, ethernet, or Wi-Fi.Their most popular use is the establishment of video links, permitting computers to act as videophones or videoconference stations. This common use as a video camera...

  • Fingerprint Scanner
  • Headset
    Headset (telephone/computer)
    A headset is headphones combined with a microphone, or one headphone with a microphone. Headsets provide the equivalent functionality of a telephone handset with hands-free operation. Headsets typically have only one speaker like a telephone, but also come with speakers for both ears...


Less common HIDs
  • Driving simulator
    Driving simulator
    Driving simulators are used for entertainment as well as in training of driver's education courses taught in educational institutions and private businesses...

     devices and flight simulator
    Flight simulator
    A flight simulator is a device that artificially re-creates aircraft flight and various aspects of the flight environment. This includes the equations that govern how aircraft fly, how they react to applications of their controls and other aircraft systems, and how they react to the external...

     devices have HIDs such as gear sticks, steering wheels and pedals.
  • Wired glove
    Wired glove
    A wired glove is an input device for human–computer interaction worn like a glove.Various sensor technologies are used to capture physical data such as bending of fingers. Often a motion tracker, such as a magnetic tracking device or inertial tracking device, is attached to capture the global...

     (Nintendo Power Glove
    Power Glove
    The Power Glove is a controller accessory for the Nintendo Entertainment System, and the first peripheral interface controller to recreate human hand movements on a television or computer screen in real time. The Power Glove was not popular and was criticized for its imprecise and difficult-to-use...

    )
  • Dance pad
    Dance pad
    A dance pad, also known as a dance mat, dance platform, or jiffer deck is a flat electronic game controller used for input in dance games. Most dance pads are divided into a 3×3 matrix of square panels for the player to stand on, with some or all of the panels corresponding to directions or actions...

  • Wii Remote
    Wii Remote
    The , also known as the Wiimote, is the primary controller for Nintendo's Wii console. A main feature of the Wii Remote is its motion sensing capability, which allows the user to interact with and manipulate items on screen via gesture recognition and pointing through the use of accelerometer and...

  • Surface computing
    Surface computing
    Surface computing is the term for the use of a specialized computer GUI in which traditional GUI elements are replaced by intuitive, everyday objects. Instead of a keyboard and mouse, the user interacts directly with a touch-sensitive screen...

     device
  • Apple's Sudden Motion Sensor
    Sudden Motion Sensor
    The Sudden Motion Sensor is Apple's patent-pending motion-based hardware and data-protection system used in their notebook computer systems. Apple introduced the system January 1, 2005 in its refreshed PowerBook line, and included it in the iBook line July 26, 2005...

    (SMS) device in Macs.


Most operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s will recognize standard USB
Universal Serial Bus
USB is an industry standard developed in the mid-1990s that defines the cables, connectors and protocols used in a bus for connection, communication and power supply between computers and electronic devices....

 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
PS/2 connector
The PS/2 connector is a 6-pin Mini-DIN connector used for connecting some keyboards and mice to a PC compatible computer system. Its name comes from the IBM Personal System/2 series of personal computers, with which it was introduced in 1987...

 6-pin DIN connector
DIN connector
A DIN connector is a connector that was originally standardized by the , the German national standards organization. There are DIN standards for a large number of different connectors, therefore the term "DIN connector" alone does not unambiguously identify any particular type of connector unless...

s which preceded USB. PS/2 does not support plug-and-play
Plug-and-play
In computing, plug and play is a term used to describe the characteristic of a computer bus, or device specification, which facilitates the discovery of a hardware component in a system, without the need for physical device configuration, or user intervention in resolving resource conflicts.Plug...

, 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
USB human interface device class
In computing, the USB human interface device class is a part of the USB specification for computer peripherals: it specifies a device class for human interface devices such as keyboards, mice, game controllers and alphanumeric display devices.The USB HID class is defined in a number of documents...

.

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
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

 but some cell phones
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...

 and PDAs
Personal digital assistant
A personal digital assistant , also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. Current PDAs often have the ability to connect to the Internet...

 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 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 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 are implemented using only an 8-bit CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

.

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
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

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
    IBM PC keyboard
    The keyboards for IBM PC compatible computers are standardized. However, during the 3-plus decades of PC architecture being constantly updated, multiple types of keyboard layout variations have been developed....

     layout, plus the three new keys designed for Microsoft Windows 95
    Windows 95
    Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...

    . 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
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

 is often done using only boot mode.
sometimes a message will appear informing that the device has installed the correct driver and 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 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
    Windows Media Center
    Windows Media Center is a digital video recorder and media player developed by Microsoft. It is an application that allows users to view and record live television, as well as organize and play music and videos...

     PC remote control receivers.
  • ZigBee
    ZigBee
    ZigBee is a specification for a suite of high level communication protocols using small, low-power digital radios based on an IEEE 802 standard for personal area networks. Applications include wireless light switches, electrical meters with in-home-displays, and other consumer and industrial...

     input device - ZigBee RF4CE supports HID devices through the ZigBee input device profile.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK