A Universal Serial Bus (USB) host controller is an interface that allows an enabled piece of hardware to interact and communicate with a particular piece of software. The USB connection is an input and output port that comes standard with most computers and a variety of other digital equipment that allows data to be transmitted through a cable or any other form of direct connection. A USB host controller manages the communication between peripheral devices and the computer system. Most modern computers have hi-speed host controllers and many older computers can have a host controller easily installed in an open slot on its motherboard.
A hi-speed USB host controller maintains a connection between such devices as a keyboard, mouse, modem or printer and ensures that the computer's operating system recognizes the device. The operating system relies on the USB host controller in order to avoid having to install individual drivers for every device connected. Every USB device communicates with the computer’s operating system in a standard programming language, such as C++.
There are several types of USB host controller interface that support different types of USB ports. The open host controller interface (OHCI) is the standard for most and even supports USB 1.1. The universal host controller interface (UHCI) from Intel® supports USB 1 in both fast and slow speeds. Other types of host controller interfaces include the enhanced host controller interface (EHCI), which is rated super-fast by publicly specified standards, and the newest host controller standard, called the extensible host controller interface (xHCI). The xHCI has been designed for improved speed, power, and efficiency than its predecessors.
Recognition of standard devices like the keyboard and mouse by the operating system is usually done automatically by the host controller. The protocol of the host controller combines the communication process of several devices in order to create an efficient and simultaneous data transfer. A good example is when a computer user enters data in a word processing program using a keyboard and mouse at the same time.
A USB host controller is capable of establishing communication between the computer and several devices through a single port. The host controller also determines how each device connected gets its power, which is why a user can charge a cell phone via a USB port while listening to music from a USB stick in another port. For old computers without a USB host controller, the hardware can be bought from vendors and installed on a slot on the motherboard fairly quickly.