IEEE 1394 - The Multimedia Bus of The Future

Editor's Note: This article, prepared by Dr. Mukta Kar, CableLabs senior member of technical staff, on the IEEE 1394 serial bus standard will appear in two parts. Part I will discuss the basic features of this high-performance bus, its protocol stack and operation, current status, and extension efforts.

In our next issue, Part II will discuss the major differences between the 1394 bus and the universal serial bus (USB), issues related to the design and implementation of the bus in the set-top box, intellectual property rights, copy protection issues, and commands necessary to transport digital audio/video data between two devices across the 1394 bus, as well as some of its limitations.

1394 - the emerging international serial bus standard - has become the multimedia world's latest buzzword. It is anticipated that this low-cost, digital interface will help to integrate entertainment, communications, and computing electronics into consumer multimedia equipment. The CableLabs® OpenCable initiative has selected the 1394 serial bus as the set-top box (STB) interface for future digital home networks. Since the STB will serve as the gateway to the digital network's information super-highway, the versatile 1394 will be the solution to the STB's high-performance needs.

Originally known as "FireWire," this serial bus technology was researched and developed by Apple Computer as a desktop LAN. After realizing the potential application of this low-cost, versatile serial bus, other manufacturers gained interest in it and formed the IEEE 1394 working group to create an architecture standard. During the standardization process, industry experts made valuable contributions to enhance and extend the capabilities of the original FireWire, which has now become the high-performance serial bus standard - IEEE 1394.

On the back of PCs (portable or desktop), or any piece of digital audio/video equipment, there are a number of serial and parallel ports (varying in speed and other subtle features) for peripheral interfaces. Although the 1394 serial bus may not be the panacea for this interface proliferation, it is certainly a versatile and efficient technology. Because of its advanced features, it will replace many of the existing buses/interfaces helping to save significant real-estate on motherboards/chassis and equipment device bays.

Two typical architectures are shown in Figure 1 and 2 In Figure 1, the STB using the 1394 interface is shown connected to digital audio/video devices, computers, and appliances in a home network environment. Figure 2 shows an example of interface consolidation by 1394 and a universal serial bus (USB) in a PC environment. The USB is a low-end, serial (0­12 Mbps) bus intended for interfacing low- to-medium-speed peripherals, such as keyboards, modems, telephones, etc.

Figure 1: A Home Network Using 1394

Figure 2: Simplifying PC Interfaces

1394 Advanced Features

1. Low-cost, high-performance digital peripheral bus.

2. Read/write/lock memory architecture.

3. Supports simultaneously asynchronous (acknowledged non-realtime) and isochronous (realtime non-acknowledged) transport on same bus.

a. Asynchronous - guaranteed delivery, reliability is more important than timing. Retries are OK.
b. Isochronous - guaranteed timing, late data are useless and there are no retries for bad or lost packets. Supports guaranteed bandwidth. Up to 64 isochronous channels may be opened within the available isochronous bandwidth.

4. Compatible architecture with other IEEE buses follows the IEEE 1212 control, status, and register (CSR) standard.

5. Higher speed than most existing buses. Available in more than one speed. Higher-speed buses will be compatible with the lower-speed category.

6. Plug-n-play features:

a. Hot-Plugging - live attach/detach of devices is allowed without damaging the network. Higher layers provide simple management.
b. The bus is configurable dynamically, eliminating the need for identification (ID)/address switches.
c. Unsupervised device attach/detach is allowed in the bus, which means that the installation or removal of device drivers or other procedures is not involved. Active termination is not needed.
d. All these plug-n-play features, combined with the innovative connector and cable design, make unambiguous blind insertion a reality. As such, it is user-friendly. No training will be needed for attaching or detaching a device to or from the bus.

7. The devices may be connected in a 1394 bus using daisy-chaining and tree-structure topology - up to 63 devices may be connected. Two or more such buses may be connected via 1394 bridges for data transfer between buses. All these support a good networked environment.

8. The ability to supply power to low-cost devices or devices with low power requirements (e.g., portable devices).

9. When a device is not in operation, but is still connected to the bus, it can switch to power-saving mode (trickle down) and can keep its own 1394 physical layer alive (acting as a repeater), while not supplying power to other devices, to maintain network continuity.

10. Its performance can be scaled easily. A low-cost or a low-power device may prefer to draw power from the bus. The low-cost device does not need to have isochronous resource management (IRM) or bus management (BM) capabilities. All these amount to a scaled implementation of 1394 resulting in cost savings.

11. It can recover automatically from most common errors occurring in PHY and Link layers.

Usage Configuration

Devices may be connected to the 1394 bus in any order and still perform peer-to-peer communication. Devices with two 1394 ports can be connected in a daisy chain, as shown in Figure 3a. The length of cable between two adjacent devices should not exceed 4.5 meters. Any two end devices should not be separated by more than 72 meters in cable length. This is a limitation of 17 devices which can be connected in a daisy chain using 4.5-meter cables. Note that two end devices are known as leaf nodes and can be 1-port devices. However, if one or more devices have three or more ports, then more sets of daisy-chained devices may be connected in a tree structure as shown in Figure 3b. This will help to keep the cable length to a minimum between the end devices in the tree, and will thus minimize the transport delay between the devices. An important restriction is that the devices must be connected such that they do not form a closed loop.

Figure 3a/b Branching Network Topology

IEEE 1394 Protocol Stack

IEEE 1394-1995 is a high-performance serial data transport standard with many advanced features. These features are the result of the implementation of complex hardware techniques and advanced software algorithms. Four basic protocol layers may be defined to simplify the implementation of 1394 (as shown in Figure 4).

Figure 4: Protocol Layers

The four basic protocol layers are:

  • The bus management layer - serial bus management provides overall configuration control of the serial bus in the form of optimizing arbitration timing, guaranteeing adequate electrical power for all devices in the bus, determining which device will be the cycle master, assigning isochronous channel ID, and error notifying. Bus management is built upon IEEE 1212 CSR architecture.
  • The transaction layer - this layer supports the asynchronous protocol read, write, and lock commands. Using read, the originator (of the command) reads data from another node. Using write, the originator of the command sends data to the receiver (of the command). Lock combines the functions of the write and read commands by producing a data routing round trip between the sender and the receiver, which includes processing by the receiver.
  • The link layer - this layer handles all packet delivery services for both asynchronous and isochronous protocols. For asynchronous protocols, it provides packet delivery service between the physical and transaction layers. For isochronous protocols, the link layer performs packet delivery service directly between the physical layer and the application program interface (API). It also provides isochronous channel cycle control.
  • The physical layer - this layer implements the electrical and mechanical interface required for transmission and reception of data bits (packets) across the serial bus. The physical layer also provides the initialization and the arbitration services to ensure that only one node transfers data at one time across the bus. Galvanic isolation is usually implemented between the physical layer and the link layer. The physical layer may be powered by the bus conductors, whereas the higher layers may be powered from one of the connected devices. If a device is turned off, the physical layer maintains the communication continuity in the bus.

The physical layer connects to the cable environment. Two types of cables are supported by the 1394 standard - 6-wire and 4-wire cables. In a 6-wire configuration, one wire pair is used for data (signal pair 1), one pair for strobe (signal pair 2), and the other pair for power. In the 4-wire configuration, the wire pair that carries power is absent. The 6-wire cable is terminated with a 6-pin plug and sockets. The 4-wire cable is terminated by a 4-pin plug and sockets. The dimensions for 4-pin and 6-pin plug and sockets remain same. Only two pins are missing in the 4-pin plug and sockets. A 1394 cable may have a 6-pin connector at one end and a 4-pin connector at the other end. A 4-wire cable is cheaper, can be used for the devices which do not draw power from the bus, and is usually used as a leaf node (for example, a digital camcorder connected to a TV or a digital camera connected to a PC).

Operation

Whenever a device is attached to, or detached from, the 1394 bus, it will cause bus reset irrespective of the bus' current state. After bus reset, the structure of the bus (topology) is determined, node IDs (physical addresses) are assigned, and the process of self identification is performed. Arbitration for cycle master, IRM, and BM then occurs. Note that all device controls are managed by asynchronous communication.

1394 has a flexible bus management system that provides connectivity between a wide range of devices. This means that the bus does not need a PC or other bus controller. Bus management provides the following services:

  • a cycle master that broadcasts cycle start packets,
  • an IRM if any node needs isochronous data service, and
  • a bus manager.

The IRM provides a cooperative means for nodes to share isochronous resources on the bus. An IRM is always capable of being the cycle master. The bus manager must collect the self-ID packets and create the topology and speed map from self-ID packets.

To transmit data in asynchronous mode, a 1394 device first requests control of the physical layer. Data are transmitted along with the sender's and the receiver's address. Once the receiver accepts the packet, a packet acknowledgment is sent to the sender by the receiver. To improve throughput, the sender may transmit up to 64 packets without waiting for the acknowledgment. If a negative acknowledgment is returned, error recovery follows.

In isochronous mode, the sender requests an isochronous channel with a specific bandwidth. Once the isochronous channel ID is granted, the sender sends the ID followed by packet data. The receiver monitors the data's channel ID and accepts data with the specified ID. Up to 64 (0­63) isochronous channels may be opened based upon user application requirements. The bus cycle master has an 8-kHz clock which generates cycles for data transfers (as shown in Figure 5). The duration for each cycle (also known as packet frame time) is 125µs. The bus is configured to send a cycle-start indicator in the form of a timing gap. This is followed by the isochronous channel slots. The rest of the time available in the window is used for asynchronous transmission. Irrespective of the number of isochronous channels in the bus, a minimum of 25µs (20% of the bus bandwidth) of the cycle is reserved for asynchronous transfers on the bus.

The maximum packet size for asynchronous transfers is dependent upon speed. For 100 Mbps, the packet size is 512 bytes, for 200 Mbps it is 1024 bytes, and for 400 Mbps it is 2048 bytes, etc. For isochronous transmission, a device sends its bandwidth request to the IRM in terms of the number of allocation units. One allocation unit is defined as the time required to transmit one quadlet (4 bytes) over the bus from sender to receiver at a selected bus speed. Therefore, isochronous packet size depends on the allocated bandwidth.

Figure 5: Isochronous and Asynchronous Transactions

Current Status and Extension of the 1394 Standard

1394-1995 is a well-established standard which specifies bitrates of 100, 200, and 400 Mbps. Chips for the PHY and LINK layers in the speed range of 100 Mbps and 200 Mbps are available from TI, Philips, IBM, Symbios, Lucent, etc. Serial buses based upon the 1394-1995 standard in the speed range of 100 and 200 Mbps have been implemented in various consumer devices and, more recently, in PCs. Today, it is an estimated 100 million dollar market.

Work on improving some of the features of the 1394-1995 standard, such as bus power management, connection management protocol, performance enhancements to the PHY layer, etc., started in 1996. These improvements will result in better bus performance or usability. It has been tested and a final draft standard has been completed. This supplemental standard with improved features is known as 1394a. The final draft, along with a ballot, has been circulated among the 1394 committee members for their votes.

Work is also in progress for extending 1394 capability to 800­3200 Mbps (standard 1394b) which will cover hard disk interfaces and other higher-speed applications. Efforts are underway to extend cable length to the 10­100-meter range using copper wire and fiber. The 100-meter range may simplify home networking. Longer-length cable will certainly require higher-gauge wire. Yet another ad hoc group has been working on standardizing communication interface gateways (such as ATM).

Conclusion

The principal advantage of the 1394 bus is that two or more consumer electronic devices (e.g., audio/video equipment) can communicate with or without the presence of a PC. Currently, an external bus controller (a PC or other equipment) is required for most of the existing buses. Already, many camcorders, digital cameras, and PCs currently available are equipped with 1394 interfaces. STBs will reside in many homes which do not contain PCs. Implementing 1394 in an STB is the logical way to interconnect digital audio/video equipment. Because of its scalability, versatility, and user-friendly features, efforts are underway to develop new protocols to control and to communicate with home appliances over the 1394 bus. Issues relating to the design and implementation of 1394 port/ports in STBs will be discussed in Part II. Some of these issues are power/port requirements, intellectual property rights (IPR) issues, the STB home digital network interface (HDNI), commands for transporting digital audio/video data over the 1394 bus, and, finally, a few limitations of this bus technology.

References

1. IEEE Standard for a High Performance Serial Bus, IEEE Std 1394-1995, IEEE, NY, NY 10017, USA.

2. FireWire System Architecture, IEEE 1394, by Don Anderson, Addison-Wesley.

3. Information obtained from the following web-sites:

  • http://www.1394ta.org
  • http://www.firewire.org
  • http://www.ti.com/sc/1394
  • http://www.adaptek.com

4. Handouts from the Second Annual Developers Conference on IEEE 1394, San Jose, CA, June 29­July 1, 1998.

Acknowledgments

The author would like to thank Mr. Syed Haider of Texas Instruments and Mr. Wouter Suverkropp of Philips for valuable discussions and information. The author would also like to thank Ms. Laurie Schwartz, Director, Advanced Platforms and Services, CableLabs®, for her support and encouragement.