


It was designed for low latency, low bandwidth devices but with flexibility to specify the rate in the underlying transport. HID began with USB but was designed to be bus-agnostic. Many hardware vendors also use HID for their proprietary devices. HID devices today include a broad range of devices such as alphanumeric displays, bar code readers, volume controls on speakers/headsets, auxiliary displays, sensors and many others. HID provided support for these "boot mode" devices while adding support for hardware innovation through extensible, standardized and easily-programmable interfaces. Hardware innovation required either overloading data in an existing protocol or creating non-standard hardware with its own specialized driver. Prior to HID, devices could only utilize strictly-defined protocols for mice and keyboards. Human Interface Devices (HID) is a device class definition to replace PS/2-style connectors with a generic USB driver to support HID devices such as keyboards, mice, game controllers, and so on.
