Updated: May 22, 2019
USB supports following data rates: The Full Speed rate of 12 Mbit/s (1.5 MB/s) is the basic USB data rate defined by USB 1.1. All USB hubs support Full Speed. A Low Speed rate of 1.5 Mbit/s (187.5 kB/s) is defined by USB 1.0. It is very similar to full speed operation except that each bit takes 8 times as long to transmit. It is intended primarily to save cost in low-bandwidth Human Interface Devices (HID) such as keyboards, mice, and joysticks. A High-Speed (USB 2.0) rate of 480 Mbit/s (60 MB/s) was introduced in 2001. All high-speed devices are capable of falling back to full-speed operation if necessary. Experimental data rate: A SuperSpeed (USB 3.0) rate of 5.0 Gbit/s (625 MB/s). The USB 3.0 specification was released by Intel and its partners in August 2008, according to early reports from CNET news. Products using the 3.0 specification are expected to arrive in 2009 or 2010. USB signals are transmitted on a twisted pair data cable with 90O ±15% impedance, labeled D+ and D-. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high in Full Speed (FS) and Low Speed (LS) modes, and -10–10 mV for low and 360–440 mV for high in High Speed (HS) mode. In FS mode the cable wires are not terminated, but the HS mode has termination of 45O to ground, or 90O differential to match the data cable impedance. A USB connection is always between a host or hub at the "A" connector end, and a device or hub's upstream port at the other end. The host includes 15 kO pull-down resistors on each data line. When no device is connected, this pulls both data lines low into the so-called "single-ended zero" state (SE0 in the USB documentation), and indicates a reset or disconnected connection. A USB device pulls one of the data lines high with a 1.5 kO resistor. This overpowers one of the pull-down resistors in the host and leaves the data lines in an idle state called "J". The choice of data line indicates a device's speed support; full-speed devices pull D+ high, while low-speed devices pull D- high. USB data is transmitted by toggling the data lines between the J state and the opposite K state. USB encodes data using the NRZI convention; a 0 bit is transmitted by toggling the data lines from J to K or vice-versa, while a 1 bit is transmitted by leaving the data lines as-is. To ensure a minimum density of signal transitions, USB uses bit stuffing; an extra 0 bit is inserted into the data stream after any appearance of six consecutive 1 bits. Seven consecutive 1 bits is always an error. A USB frame begins with an 8-bit synchronization sequence 00000001. That is, after the initial idle state J, the data lines toggle KJKJKJKK. The final 1 bit (repeated K state) marks the end of the sync pattern and the beginning of the USB frame proper. A USB frame's end, called EOP (end-of-packet), is indicated by the transmitter driving 2 bit times of SE0 (D+ and D- both below max) and 1 bit time of J state. After this, the transmitter ceases to drive the D+/D- lines and the aforementioned resistors hold it in the J (idle) state. A receiver may take extra time to decode the SE0 state, and will see the first bit time as a repetition of the last data bit. Since USB frames are always a multiple of 8 bits long, this extra "dribble bit" can be detected and ignored. A USB bus is reset using a prolonged (10 to 20 milliseconds) SE0 signal. USB 2.0 devices use a special protocol during reset, called "chirping", to negotiate the High-Speed mode with the host/hub. A device that is HS capable first connects as an FS device (D+ pulled high), but upon receiving a USB RESET (both D+ and D- driven LOW by host for 10 to 20 mS) it pulls the D- line high. If the host/hub is also HS capable, it chirps (returns alternating J and K states on D- and D+ lines) letting the device know that the hub will operate at High Speed. Clock tolerance is 480.00 Mbit/s ±500 ppm, 12.000 Mbit/s ±2500 ppm, 1.50 Mbit/s ±15000 ppm. Though Hi-Speed devices are commonly referred to as "USB 2.0" and advertised as "up to 480 Mbit/s", not all USB 2.0 devices are Hi-Speed. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or Hi-Speed after passing a compliance test and paying a licensing fee. All devices are tested according to the latest spec, so recently-compliant Low-Speed devices are also 2.0 devices. The actual throughput currently (2006)[update] attained with real devices is about two thirds of the maximum theoretical bulk data transfer rate of 53.248 MB/s. Typical hi-speed USB devices operate at lower speeds, often about 3 MB/s overall, sometimes up to 10–20 MB/s.