Encyclopedia
FireWire is the name given to the external wired interface specified by the
IEEE standard 1394. It is also known as
i.Link or
IEEE 1394 . It is a
personal computer serial bus interface standard, offering high-speed communications and isochronous real-time data services. FireWire has replaced Parallel
SCSI in many applications due to lower implementation costs and a simplified, more adaptable cabling system.
Almost all modern digital
camcorders have included this connection since 1995. Many computers intended for home or professional audio/video use have built-in FireWire ports including all
Apple,
Dell and
Sony computers currently produced. FireWire was also an attractive feature on the Apple
iPod for several years, permitting new tracks to be uploaded in a few seconds and also for the battery to be recharged concurrently with one cable. However,
Apple has eliminated FireWire support in favor of
Universal Serial Bus 2.0 on its newer iPods due to space constraints and for wider compatibility.
History and Development
FireWire is
Apple Computer's name for the IEEE 1394 High Speed Serial Bus. It was developed by the IEEE P1394 Working Group, largely driven by contributors from Apple, although major contributions were also made by engineers from
Texas Instruments,
Sony,
Digital Equipment Corporation,
IBM, and SGS Thomson .
Apple intended FireWire to be a serial replacement for the parallel
SCSI bus while also providing connectivity for digital audio and video equipment. Apple's development was completed in 1995. IEEE 1394 is currently a composite of three documents: the original IEEE Std. 1394-1995, the IEEE Std. 1394a-2000 amendment, and the IEEE Std. 1394b-2002 amendment .
Sony's implementation of the system is known as
i.Link, and uses only the four signal pins, discarding the two pins that provide power to the device in favor of a separate power connector on Sony's i.Link products.
The system is commonly used for connection of
data storage devices and digital video cameras, but is also popular in industrial systems for machine vision and professional audio systems. It is used instead of the more common USB due to its faster effective speed, higher power-distribution capabilities, and because it does not need a computer host. Perhaps more importantly, FireWire makes full use of all SCSI capabilities and, compared to USB 2.0 High Speed, has higher sustained data transfer rates, a feature especially important for audio and video editors.
However, the small royalty that Apple Computer and other
patent holders have initially demanded from users of FireWire and the more expensive hardware needed to implement it has prevented FireWire from displacing USB in low-end mass-market computer peripherals where cost of product is a major constraint.
According to Michael Johas Teener, original chair and editor of the IEEE 1394 standards document, and technical lead for Apple's FireWire team from 1990 until 1996:
Technical specifications
FireWire can connect together up to 63 peripherals in an
acyclic topology . It allows peer-to-peer device communication, such as communication between a scanner and a
printer, to take place without using system memory or the
CPU. FireWire also supports multiple hosts per bus. It is designed to support
Plug-and-play and
hot swapping. Its six-wire cable is more flexible than most Parallel SCSI cables and can supply up to 45 watts of power per port at up to 30 volts, allowing moderate-consumption devices to operate without a separate power
supply. As noted earlier, the Sony-branded i.Link usually omits the power wiring of the cables and uses a 4-pin connector. Power is provided by a separate power adaptor for each device.
FireWire devices implement the ISO/IEC 13213 "configuration ROM" model for device configuration and identification, to provide
plug-and-play capability. All FireWire devices are identified by an IEEE
EUI-64 unique identifier in addition to well-known codes indicating the type of device and protocols it supports.
Operating system support
Full support for IEEE 1394a and 1394b is available for
FreeBSD,
Linux and Apple
Mac OS X operating systems. Microsoft
Windows XP supports 1394a and 1394b, but as of service pack 2 the default speed for all types of FireWire is S100 . A and registry modification is available from Microsoft to restore performance to either S400 or S800.
Microsoft Windows Vista will initially support 1394a, with 1394b support coming later in a service pack.
Node hierarchy
FireWire devices are organized on the bus in a tree topology. Each device has a unique self-id. One of the nodes is elected root node and always has the highest id. The self-ids are assigned during the self-id process that happens after each bus-reset. The order in which the self-ids are assigned is equivalent to traversing the tree in a
depth-first, post-order manner.
Standards and versions
FireWire 400
FireWire 400 can transfer data between devices at 100, 200, or 400 Mbit/s data rates . These different transfer modes are commonly referred to as S100, S200, and S400. Although USB 2.0 can theoretically operate at 480 MBits/s, tests indicate that this speed is rarely attained. This is possibly caused by the client-server architecture of USB, as opposed to the peer-to-peer network operation of FireWire, and the support for memory-mapped devices in the latter, which allows high-level protocols to run without forcing numerous interrupts and buffer copy operations on host CPUs. Cable length is limited to 4.5
metres , although up to 16 cables can be
daisy chained using active repeaters, external hubs, or internal hubs often present in FireWire equipment. The maximum cable length for any configuration is
limited to 72 meters in the S400 standard.
FireWire 800
FireWire 800 was introduced commercially by Apple in 2003. This newer 1394 specification and corresponding products allow a transfer rate of 786.432 Mbit/s with backwards compatibility to the slower rates and 6-pin connectors of FireWire 400.
The full IEEE 1394b specification supports optical connections up to 100
metres in length and data rates all the way to 3.2 Gbit/s. Standard category-5 unshielded twisted pair supports 100
metres at S100, and the new p1394c technology goes all the way to S800. The original 1394 and 1394a standards used
data/strobe encoding on the signal wires, while 1394b adds a data encoding scheme called 8B10B . With this new technology, FireWire, which was arguably already slightly faster, is now substantially faster than Hi-Speed
USB.
Networking over FireWire
FireWire, with the help of software, is well-suited for creating ad-hoc
computer networks. Specifically, RFC 2734 specifies how to run IPv4 over the FireWire interface, and RFC 3146 specifies how to run
IPv6.
Linux,
Windows XP and
Mac OS X are popular
operating systems that include support for networking over FireWire. A network between two computers can be created without a hub, much like the scanner to printer example above. Using one FireWire cable, data can be transferred quickly between the two computers with minimal networking configuration. Due to unpopularity, Microsoft has removed support for networking over FireWire in Windows Vista.
Security issues
Devices on a FireWire bus can communicate by direct memory access, where a device can use hardware to map internal memory to FireWire's "Physical Memory Space". The SBP used by FireWire disk drives use this capability to minimize interrupts and buffer copies. In SBP, the initiator sends a request by remotely writing a command into a specified area of the target's FireWire address space. This command usually includes buffer addresses in the initiator's FireWire "Physical Address Space", which the target is supposed to use for moving I/O data to and from the initiator.
On many implementations, particularly those like PCs and Macintoshes using the popular OHCI, the mapping between the FireWire "Physical Memory Space" and device physical memory is done in hardware, without operating system intervention. While this enables extremely high-speed and low-latency communication between data sources and sinks without unnecessary copying , this can also be a security risk if untrustworthy devices are attached to the bus. For this reason, high-security installations will typically either purchase newer machines that map a
virtual memory space to the FireWire "Physical Memory Space" , disable the OHCI hardware mapping between FireWire and device memory, physically disable the entire FireWire interface, or do not have FireWire at all.
This feature can also be used to debug a machine whose operating system has crashed, and in some systems for remote-console operations. On
FreeBSD, the dcons driver provides both, with using gdb as debugger. Under Linux, firescope and fireproxy exist.
Precautions
Hot Plug precautions
Although FireWire devices can be
hot-plugged without powering down equipment, there have been a few reports of cameras being damaged if the pins of the FireWire port are accidentally shorted while swapping. This was especially true for some early FireWire devices. However, modern FireWire devices have eliminated this problem. Furthermore, FireWire 800 ensures even greater safety when hot-swapping.
Because any hot-pluggable computer device has a risk of
short-circuiting, a user may wish to power off both the camcorder and computer before connecting a FireWire cable. Commercial grade equipment is less sensitive to being hot-plugged, although care should still be taken with any electronic device.
See also
- HAVI, FireWire to control Audio and Video hardware.
- Universal Serial Bus
- mLAN Yamaha's FireWire-based music networking system
References
External links
- MPEG LA administers the rights for patented inventions necessary to implement IEEE 1394.
- - Apple developer document showing FireWire 400 and 800 pinouts
- — performance benchmarks of external drives using Macs
- — White Paper from CEO James Wiebe discussing port failures in host computers and peripheral devices
- — White Paper from James Wiebe discussing the evolution of FireWire.
- — White Paper from James Wiebe continuing the analysis of the future of FireWire.