USB offers five different transfer speeds: 1.5 MBit per second (called "low speed"), 12 MBit per second ("Full Speed"), 480 MBit/second ("Hi Speed"), 5Gbit per second (called "super speed"), and 10 Gbit/s (“super speed+“). Hi speed is only available in USB 2.0 and later, and Super speed is only available in USB 3.0. These speeds are raw bit rates (in Million bits per second). The actual data rate is usually lower due to protocol overhead.
In order to use the "hi speed" transfer rate, the USB controller and the connected device both need to support it. USB is backwards compatible. Faster and slower USB devices and controllers can be connected together, but they will run at the slower speed.
Almost all computers sold today have USB ports, and most of them support USB 2.0 or later. The number of ports they have is usually limited, though. Between two and six ports are common. USB allows connecting USB hubs to add more USB ports.
The hubs themselves are also compliant to one of the USB standards. Devices connected to a USB 1.1 hub will only go as fast as USB 1.1 rates. Devices connected to a later controller can use different standards.
USB was designed to be easy to use. The engineers learned from other connectors before they designed USB connectors. There are 3 connectors.
A USB system has an asymmetric design. It is made of a host, several downstream USB ports, and multiple peripheral devices connected in a star topology. Additional USB hubs may be included in the tiers, allowing branching into a tree structure with up to five tier levels.
A USB host can have multiple host controllers. Each host controller provides one or more USB ports. Up to 127 devices, including the hub devices, may be connected to a single host controller.
USB devices are linked in series through "hubs". There is always one hub known as the root hub. The root hub is built into the host controller. There are special hubs, called "sharing hubs". These allow multiple computers to access the same peripheral devices. They work by switching the access between PCs, either manually or automatically. They are popular in small-office environments. In network terms, they converge rather than diverge branches.
A physical USB device can have several logical sub-devices that are referred to as "device functions". A single device may provide several functions, for example, a webcam (video device function) with a built-in microphone (audio device function).
USB device communication is based on "pipes" (logical channels). Pipes are connections from the host controller to a logical entity on the device named an endpoint. The term "endpoint" is occasionally used to incorrectly refer to the pipe. A USB device can have up to 32 active pipes, 16 into the host controller and 16 out of the controller.
Each endpoint can transfer data in one direction only, either into or out of the device, so each pipe is uni-directional. Endpoints are grouped into "interfaces" and each interface is associated with a single device function. An exception to this is endpoint zero, which is used for device configuration and which is not associated with any interface.
When a USB device is first connected to a USB host, the USB device enumeration process is started. The enumeration starts by sending a reset signal to the USB device. The speed of the USB device is determined during the reset signaling. After reset, the USB device's information is read by the host, then the device is assigned a unique 7-bit address. If the device is supported by the host, the device drivers needed for communicating with the device are loaded and the device is set to a configured state. If the USB host is restarted, the enumeration process is repeated for all connected devices.
The host controller polls the bus for traffic, usually in a round-robin fashion, so no USB device can transfer any data on the bus without an explicit request from the host controller.
The computer hardware that contains the host controller and the root hub has an interface for the programmer. It is called "Host Controller Device" (HCD) and is defined by the hardware implementer.
For USB 1.0 and 1.1, there were two different HCD implementations, "Open Host Controller Interface" (OHCI) and "Universal Host Controller Interface" (UHCI). OHCI was developed by Compaq, Microsoft and National Semiconductor, UHCI by Intel.
VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. UHCI relies more on software. This means UHCI is slightly more processor-intensive than OHCI but easier and cheaper to make. Because there were two different implementations, operating system vendors and hardware vendors needed to develop and test on both of them. This increased cost.
The USB specification does not specify any HCD interfaces and is not concerned with them. In other words, USB defines the format of data transfer through the port, but not the system by which the USB hardware communicates with the computer it sits in.
During the design phase of USB 2.0, the USB-IF insisted that there was only one implementation. The USB 2.0 HCD implementation is called the "Enhanced Host Controller Interface" (EHCI). Only EHCI can support hi-speed (480 Mbit/s) transfers. Most of PCI-based EHCI controllers have other HCD implementations called 'companion host controller' to support Full Speed (12 Mbit/s) and may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes, so it can provide generic drivers for any USB device. Device classes are decided upon by the Device Working Group of the USB Implementers Forum.
Device classes include:
Punk rock
Punk rock (or "punk") is a music genre and kind of rock music. It is often described as harder, louder, and cruder than other rock music. Many punk rock songs have lyrics (words) which tell angry stories or which use rude words.
Punk rock is a style of rock music. Many musicians and punk rock music listeners ("punk rockers") want to protest or rebel against the norms or rules of society. Punks say that people should "Do It Yourself", which means that people should try to accomplish their goals using the materials in their own communities. Many punk bands make their own music recordings and distribute them without using a major record company.
Many punks have strong political beliefs. Punk rock musicians are often mad at the government, the police, and laws. Many punk rock songs protest injustice, lies, and unfairness in countries. Almost all punks are leftists, who believe that a country should share the products and food that it produces with all the people in the country. Some punks are vegetarian or vegans, because they believe that animals should not be killed for food. Some punks are anarchists. Very few punks are conservative, libertarian, or Republican.
Many punk musicians put colored hair dye in their hair or put gel to make it stand up. They wear distinctive clothes as a form of protest or rebellion against the norms and rules of society.
Punk rock developed in New York City in the mid-1970s. Bands like The Ramones, Television, The Heartbreakers, Blondie, joy division and Patti Smith played loud, angry songs. Many bands played at a club called CBGB's. The music soon spread to Australia and Britain, were bands started playing punk rock in 1976-1977. British bands like Buzzcocks, The Clash, The Damned, Generation X, The Jam, and Sex Pistols played punk rock music that was inspired by the music being played in New York, as well as by garage rock, pub rock, and other protopunk music.
These early "punks" rejected the excesses of mainstream 1970s rock. They created fast, hard-edged music, with short songs, stripped-down instrumentation, and often political, anti-establishment lyrics. They often did controversial things, such as saying bad words in public. Many newspapers wrote articles about the "bad" behavior of punk rock musicians.