USB 1 supports the following signal rates:
- A low speed rate of 1.5 Mbit/s (~183 KB/s) is defined by USB 1.0. It is very similar to "full speed" operation except each bit takes 8 times as long to transmit.
- The full speed rate of 12 Mbit/s (~1.43 MB/s) is the basic USB data rate defined by USB 1.1. All USB hubs support full speed.
The choice of low speed or full speed is indicated by the device when it is connected (same source, emphasis mine):
The host includes 15 kΩ 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 kΩ resistor.
This overpowers one of the pull-down resistors in the host and leaves
the data lines in an idle state called "J". For USB 1.x, the choice of
data line indicates a device's speed support; full-speed devices pull D+
high, while low-speed devices pull D− high.
The "duration of a bit" signal should be constant, but USB uses bit stuffing -- an extra 0 bit is inserted into the data stream after any appearance of six consecutive 1 bits; thus seven consecutive 1 bits is always an error. This means that while the duration of a bit is constant, a given byte sequence may take longer to transmit.
See also NRZI and bit stuffing.