In the market for the connection of external peripheral components, two standards are currently vying for customers: Firewire, developed by Apple. This product is also known and available as i.Link after Sony broke into the market for consumer devices and numerous notebooks. Firewire's main competition is USB, found today in every new PC. Advantages and drawbacks of the respective technologies become apparent when looking at the rough specifications.
With a data transfer rate of 12Mbs (maximum), USB 1.x is much slower than Firewire-1394a- and the newer IEEE1394-1995 standard. The latter features data rates of up to 400Mbs. In comparison, USB 2.0 allows for data rates of up to 480Mbs, thereby holding a slight edge. However, the new Firewire specification 1394b (Gigabit 1394) is already waiting in the wings and Apple has announced the introduction of the first controllers. This standard offers data rates of up to 3.2Gbs and a maximum line length of up to 100 meters in optical transfer. The 1394b standard requires a new connecting plug, however. Along with a six-pin PC plug and the four-pin plugs in Sony video cameras, a nine-pin plug will be required.
In contrast, USB systems are easier to handle because the previous plugs and cables can still be used. Also, they are USB 2.0-compatible. The wide A plug connector is used in the upstream (i.e., the direction towards the host system). The smaller, rather square, B plug connector is employed in the downstream (i.e. in the direction towards the peripheral component). This means that a mix-up or the connection of devices that cannot communicate with each other is impossible.
USB versus Firewire (II)
Like Firewire, USB supports Hot-Plug&Play. The physical and electric characteristics of all USB versions are standardized. This ensures a smooth operation between devices made by different manufacturers and between different USB versions. USB-based systems, however, are set up according to a hierarchy, so that a host PC is permanently required to ensure data transfer control. Therefore it is not possible to directly connect peripheral components or host controllers with each other, in order to enable exchange of data. In addition, USB data traffic hampers overall system performance because of the control via interrupts.
This is where Firewire has the clear edge. Through Firewire, users can send data from a camera to their printer via the PC - without detour. However, the great number of Firewire standards currently available on the market can lead to compatibility problems in some cases.
Since its release in 1995, only eight manufacturers have decided to support Firewire. The USB 2.0 standard, in contrast, was widely endorsed by 19 manufacturers, just one year after the USB 2.0 group was formed. More than 800 companies are currently active in the USB Implementers Forum.
To a large extent, this has to do with a broad push by Intel and other hardware manufacturers refusing to accept Apple's licensing policy on Firewire. For each Firewire controller, Apple demands a licensing fee of $1. Considering that Intel and other manufacturers annually produce volumes of several million chipsets where Firewire could be integrated, this decision is certainly understandable.
Including USB 2.0, there are now three data transfer rates. First, there is low speed, with 1.5Mbs for slower input devices such as mice, keyboards and joysticks. Here, data is transferred in an interval of every tenth frame, at maximum every ten milliseconds. In addition, there is full speed, operating at 12Mbs, and, starting with the USB 2.0 specification, high speed (480Mbs).
As it operates, the bus system detects newly-connected devices or disconnected peripheral components. This detection process of connect and disconnect events takes place on the signal level.
The overall data transfer within a USB system is processed packet-oriented. The host - typically the PC - or the hub actively assume the administration and control of data packets. All data transfers as well as status checks or interrupts are only transmitted when requested (polling).
Alternatively, bulk or isochronous transfers are the procedures typically used to transfer large amounts of data. In the bulk mode, the correctly received data are confirmed through an ACK signal (acknowledge). When there is an error, they are newly initiated up to three times. During isochronous data transfers, it can happen that data packets get lost. At the same time, a stable data rate is guaranteed. The isochronous data transfer is, for example, used for modems and USB loudspeakers.
USB 2.0: Faster and compatible
USB 2.0 is a fully backward-compatible extension of the existing USB standard. Users can continue to employ existing cables and devices. Still, they need to make sure that the high-quality shielded cables of the full-speed standard (12Mbs) are suited for USB 2.0 devices.
The cable itself has four lines. Two cores are bound together and transfer the data signal (D+ and D-) in symmetric form (differential) and in a 3.3-V system. The other wire pair (unbound) supplies the peripheral components with power (nominally 5 V). Due to the point-to-point topology, there are no terminators, as these are already permanently installed in the devices. The load on the data lines through the resistances also allows the system to automatically recognize devices that were connected or disconnected during operation.
In USB 2.0 specification, the USB 1x standard's time frames are divided into eight high-speed micro frames. This process generates a data rate of 480Mbs - 40 times faster than before. When the connected end devices respond as full-speed or low-speed devices, an automatic switchover to the lower data transfer rate takes place.
For transactions, the packet-oriented data transfer within a USB system envisions packets with a length of one millisecond. In the beginning, every packet (token) is marked with a start of frame (SOF) and closed with an end of frame (EOF). Because all connected devices synchronize when this signal occurs, an SOF recognition has also to be sent in millisecond intervals when there is no data traffic. Within a frame, several devices can be addressed simultaneously.
An 8-bit ID (PID) determines each packet's function. Every SOF token is marked with an 11-bit wide system time (time stamp) in order to determine timeouts of connected devices. A 5-bit CRC check sum serves as a "safety net" for simple tokens. Data packets are given a 16-bit CRC check sum.
As a result of the necessary protocol input (overhead), only the listed maximum data rates per ending are available for the transfer of effective usage data. In speedy devices, such as harddrives, just 7 or 8Mbs remain of the 12Mbs, which are USB 1.1's maximum capacity. Depending on the specification, several endings per device can be bundled, allowing for higher data rates.
Connect and disconnect detection
On the hubs' downstream ports, the data lines D+ and D- are connected with mass via a 15-KOhm pull-down resistance. Depending on their speed, the USB peripheral devices have a separate electric configuration of their upstream line: In low-speed devices (1.5Mbs), the data line D- is connected with the supply voltage via a pull-up resistance of 1.5 KOhm. In high-speed and full-speed devices (480Mbs and 12Mbs), the 1.5-KOhm resistance is located at the line D+.
If no USB device is hooked up, the hub is "notified" that there is a low signal at D+ and D-. Connecting a device, the hub's 1.5-KOhm pull-up resistance creates a level increase on the respective data line. In high- and full-speed devices, the line D+ is then located on a high level. In a low-speed device, the level increase occurs on line D-.
During a connect event, USB 2.0-conform peripherals at first log on as full-speed devices. If the hub itself is high-speed capable, a switchover to the higher speed takes place, even if the enumeration was launched with a low-level protocol.
If a low signal exists on both data lines, D+ and D-, the hub interprets this condition as a disconnect event. After being informed by the hub, the host removes the respective peripheral devices from its configuration.
In the wake of a connect event, the hub detects newly-connected USB hardware and registers their type of speed, while the host software handles the remaining steps of identification and configuration.
During device installation, the setup proceeds through several phases: The commands Port_Enable and Port_Reset, sent by the host software, mark the beginning of the communication between host and device (in USB nomenclature also known as function). The USB device then is in the so-called "default state." This means it is part of the bus system and receives a maximum current of 100 mA through the bus system. In the next step, the host assigns the function a unique device address, then moving the device into a condition known as "address state". After that step, the host checks the 18 byte device descriptor, a typical feature of all USB hosts.
The entry bcdUSB shows the device's speed class. In USB 2.0 compliant devices, that value is 0200h or higher. On the basis of the data contained in the device descriptor, the host software tries to select a suitable device driver.
In the next step, the host reads all device configurations set in the device descriptor. Depending on the utilization of bandwidth and the function's power consumption, the host assigns the device one of the configurations. The host then elevates the device to the "configured state." If the device contains no independent power supply, it can absorb up to 500 mA via the bus.
USB 2.0 hubs and host controllers
A USB 1.1 hub does not have independent logic functions. In the bus system, it therefore assumes the role of a passive intermediate distributor. Without converting them, the hub forwards full-speed and low-speed data streams. In contrast to their USB 1.x counterparts, the USB 2.0 hubs and host controllers act as active players within the bus system.
The data exchange between USB 2.0 devices is always high-speed (i.e., the 480Mbs that are theoretically possible). To enable communication with a full-speed or high-speed device, the USB 2.0 hub/host controller triggers a processor-controlled conversion into a USB 1x.-conform speed level. This means, internally a USB 2.0 hub is structured in a more complex way than corresponding 1.x devices. Therefore, the USB 2.0 hub's ability to convert data streams greatly contributes to its compatibility with USB 1.x hardware.
In accordance with the specification, individual devices communicate at the highest possible speed. Devices from different speed classes use the slower device's fastest transfer rate.
As a result, USB 2.0 devices only exploit their speed potential on USB 2.0 hubs. In combination with high-speed hardware, USB 1.x hubs do not function as intermediate distributors but, instead, represent somewhat of a brake pad: To take full advantage of the USB 2.0 devices' high transfer rates, an exchange of old USB 1.x hubs or host controllers is unavoidable.