External Buses: USB and Firewire

Posted Mar 30, 2001 | by David Risley  

Universal Serial Bus is a powerful external bus system for hooking devices to your PC and having ample bandwidth to perform the tasks today’s users are taking on. Originally developed in 1995, USB was developed by a collaboration of different companies in order to make connecting external devices to a PC as easy as plugging it in. Parallel and Serial ports got the job done, but installation was a bit more of a chore, and the bandwidth of these two interfaces was far from adequate for demanding environments.


USB not only solves the bandwidth issue, but also the expandability issue. Users of parallel and serial ports know that finding spare ports for hardware devices would be a pain in the rear if you already had the basic hardware like a mouse and printer. Add a few more peripherals to the mix, and manufacturers had to begin to devise work arounds like pass-through parallel ports for their scanners and ZIP drives. Serial ports were in use for modems, some mice, as well as PDAs and digital cameras. If a peripheral needed more bandwidth, it had to come with its own expansion card so that it could make use of the PCI bus. USB solves the problem by being expandable up to 127 devices, even through the use of USB hubs.


Today, USB is a widely popular interface and manufacturers all around the world are either developing their products to work exclusively over USB or are at least offering USB options. USB support is an afterthought today on all motherboards on the market. The ease of use, expandability and availability of the interface has led Intel and Microsoft to use USB as a key component of their Easy PC initiative.


How USB Works


USB is a plug-and-play external bus. It does this by requiring USB support in the underlying operating system (something all OSes in use by modern systems have). The host software then takes care of managing the attachment and de-attachment of perihperals while hiding all of the details of this from the system software. The phase at which a device is attached and identified is called enumeration (more below). Here, the system will communicate with the device and seek an indentification. It will then determine which driver to use for the system or if one needed to be installed. A unique address indentifer is assigned to each device for run-time ID and for data transfer. Each interaction with the peripheral is a transaction on the USB bus, the system originating and the perihperal responding appropriately.


Enumeration also identifies what type of data is to be transferred, or what mode of tranport the device will need:



  • Interrupt – The device will just be assigned an interrupt on the bus. This will be used for mice, keyboards, things like that.

  • Bulk – The mode used by devices who will be sending large blocks of data over the bus, like a printer.

  • Isochronous – This mode is used for devices with a “live” connection, such as speakers. They need a direct line in and no error checking is necessary.

USB has the ability to be expanded with the use of hubs. The hub also has a role in the whole process. It manages the power delivered to each device and ensures each has adequate power during intialization. Since part of the USB standard allows for devices to get their power directly from their USB connection, if a device demands more power, the hub deals with the host PC software to ensure that it gets what it needs, delivering up to 2.5 W of power to each device. Obviously, peripherals requiring more power, like a printer or a scanner, could not be powered off of USB and will have their own AC adapters. Each hub is given its own ID on the bus, and hubs may be nested up to 5 levels deep. While sitting on the USB “network”, the hub will act as a bi-directional repeater, capturing transactions and repeating them onward to the target hub or device. It will catch all transactions addressed to itself and act accordingly.


The total bandwidth of the bus is 12 Mbps (1.5 Mbps for low-speed devices). During operating, the host is keeping track of the bandiwdth used by all enumerated devices. If total bandwidth comes up to 90% of the maximum, it will deny access to additional isochronous and interrupt devices. The extra 10% is used for bulk transfers and command packets (data packets carrying commands for one of the devices in the chain).


The USB bus has two types of connectors for peripherals, the “A” and “B” connector. Each is shaped differently so that users will never get confused what kind they should be using in a certain situation. The ports will be shaped in either A or B and the shapes are not interchangable, as you can see to the right. The wires for the USB connectors themselves contain two wires for delivering power to the peripherals (+5V and ground) as well as a twisted pair oif wires for actual data transfer. These wires are, of course, shieled with an overall sheath, with the connectors on either end.


The USB protocol defines that the bandwidth is to be split up into data frames. Each frame contains 1.5 bytes and a new frame starts each millisecond. Each frame gives space to the interrupt and isochronous transfers first so they always get bandwidth. The other devices consume the remaining space. The host, of course, controls this.


USB devices, also, are completely hot-swappable, meaning you can plug them in and unplug them without powering down the PC.

Which Of These Traits Applies To YOUR Computing Life?...

One Response to “External Buses: USB and Firewire”

  1. James says:

    Hi,

    I am looking for a Philips 10FF2M4 digital photo frame but am currently struggling to find one anywhere, or to find anywhere that has a good review. Do you know anywhere you can point me to that will provide one of these please?

    Many thanks

Leave a Reply