The Universal Serial Bus (USB) is a wiring bus to be introduced in PCs in late 1996 or early 1997. USB uses an external 5 wire serial bus consisting of two 90 ohm nominal twisted pairs configured as a 127 node (maximum) star network and a +5 volt power line. Data transmission is differential Manchester NRZI with zero/half amplitude pulses used for control signaling. Transmission speed is either 12Mbps for shielded wire or 1.5Mbps for unshielded wiring. The actual maximum number of devices depends on the bandwidth requested by each. It is unlikely that 127 devices could ever be present on one USB implementation. Power is also available over the USB bus for low power devices. Even "self powered" devices may use a small amount of Bus power in order to allow log in and computer controlled power on.
The Bus is controlled by a single controller (nominally in the PC) that schedules other devices using a token system. The basic protocol is a 1000usec frame whose usage is allocated by the controller based on information provided by devices when they log in. This scheme ensures that all devices that are able to log in will not only get bandwidth, but will get it frequently. USB permits hot swapping of devices.
Several different kinds of packets are used -- most including an 8 bit device ID. An 8 bit synch pattern is sent at the start of each frame. 7 bit addresses, 5 or 16 bit CRCs, an 11 bit Frame Number, and data packets of up to 1023 bits are used. Low Speed and High Speed transmission use different drivers with different rise/fall times and protocol differences to accommodate driver setup/turnoff.
The intent of the USB is to reduce the large number of PC ports required to deal with slow speed devices -- keyboards, mice, modems, serial terminals, printers, scanners, speakers, microphones, etc. As of August 1996, reducing Radio Frequency Interference is reputed to be the major technical hurdle holding up USB introduction.
As of early 1999, the following recommendations are being made:
- Use Windows95 only for devices that specifically claim WIN95 support
- Use self powered hubs providing at least 500ma per channel
- Limit cable runs to 5 meters.
- Connect at the hubs, not at passive pass throughs on monitors/keyboards
- Use port switching hubs that can bypass bad devices.
- Do not use extension cables
- Hang ups on boot may be avoidable by removing specific devices (one culprit is long configuration descriptors) and hot plugging them back after boot.
- Reboot after the initial installation of new devices. (Other devices are prone to vanish until the machine is rebooted).
- Be careful with motherboard cable sockets inside the PC. User accessible plugs outside the PC are designed to be idiot proof. Those within the PC are not. Reversing the plug can damage the port.
Return To Index
Copyright 1994-2002 by Donald Kenney.