FireWire

From Free net encyclopedia

Image:Logo firewire125.png

FireWire (also known as i.Link or IEEE 1394) is a personal computer (and digital audio/video) serial bus interface standard, offering high-speed communications and isochronous real-time data services. FireWire has replaced SCSI in many applications due to lower implementation costs and a simplified and 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 Macintosh 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 USB 2.0, on its flash-based iPods (nano) and the 5g iPods (video).

Contents

Standards and versions

Image:Firewire6-pin.jpg FireWire was developed by Apple Computer in the late 1990s, after work defining a slower version of the interface by the IEEE 1394 working committee in the 1980s. IEEE proposed the standard as a serial replacement for the SCSI bus. Apple's development was completed in 1995. It is defined in IEEE standard 1394 which 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 (US$0.25 per end-user system) and the more expensive hardware needed to implement it (US$1–$2) has prevented FireWire from displacing USB in low-end mass-market computer peripherals where cost of product is a major constraint. Image:Firewire4-pin.jpg FireWire can connect together up to 63 peripherals in an acyclic network structure (hubs, as opposed to SCSI's linear structure). 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. USB requires a special chipset to perform the same function, effectively resulting in the need for a unique and expensive cable, whereas FireWire requires only a cable with the correct number of pins on either end (normally 6). It is designed to support plug-and-play and hot swapping. Its six-wire cable is not only more convenient than SCSI cables but can supply up to 45 watts of power per port at 30 volt typically, allowing moderate-consumption devices to operate without a separate power cord. The Sony-branded i.Link usually omits the power part of the cable/connector system and uses a 4-pin connector. Power is provided by a separate power adaptor. Image:Firewire800plug.jpg FireWire 400 can transfer data between devices at 100, 200, or 400 Mbit/s data rates (actually 98.304, 196.608, or 393.216 Mbit/s, but commonly referred to as S100, S200, and S400). Although USB2 claims to be capable of higher speeds (480Mbit/s), FireWire is, in practice, faster. Cable length is limited to 4.5 metres but up to 16 cables can be daisy chained yielding a total length of 72 meters under the specification.

FireWire 800 (Apple's name for the 9-pin "S800 bilingual" version of the IEEE1394b standard) 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 (D/S) encoding (called legacy mode) on the signal wires, while 1394b adds a data encoding scheme called 8B10B (also referred to as beta mode). With this new technology, FireWire, which was arguably already slightly faster, is now substantially faster than Hi-Speed USB.

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 (an extension of the 48-bit Ethernet MAC address format) in addition to well-known codes indicating the type of device and protocols it supports.

Networking over FireWire

FireWire, with the help of software, is well-suited for creating ad-hoc (terminals only, no routers) computer networks. Specifically, RFC 2734 specifies how to run IPv4 over the FireWire interface.

Linux, Windows XP and Mac OS X are popular operating systems that include support for networking over FireWire. FreeBSD provides Ethernet-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.

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 (serial bus protocol) used by FireWire disk drives use this capability to minimize interrupts and buffer copies. In SBP, the initiator (controlling device) 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 interface, 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 (such as between a video camera and a software video recording application, or between a disk drive and the application buffers), 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" (such as a G5 Macintosh, or any Sun workstation), 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.

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.

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.

Operating system support

Full support for IEEE 1394a and 1394b is available for both 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 (100 Mbit/second). A download and registry modification is available from Microsoft to restore performance to either S400 or S800.

History

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:

The original FireWire project name was "Chefcat", the name of Michael Teener's favorite coffee cup. The standard connectors used for FireWire are related to the connectors on the venerable Nintendo Game Boy. While not especially glamorous, the Game Boy connectors have proven reliable, solid, easy to use and immune to assault by small children.

FireWire is a trademark of Apple Computer, Inc. The trademark was filed in 1993. The "FireWire" name was chosen by a group of engineers socializing before Comdex 1993, just before the project was about to go public. IBM, Apple, Texas Instruments, Western Digital, Maxtor and Seagate were all showing drives, systems and other various FireWire support technology. The marketing forces behind the FireWire project had originally considered a name like "Performa".

FireWire won the "most significant new technology" award from Byte Magazine at the Comdex 1993 show.

During the period they participated with the IEEE p1394 working group, Apple proposed licensing all of their blocking patents for US$3,000, a one time fee only for "the point of first use" or the integrated circuits that implement the protocols. Furthermore, there was a discount if a contribution was made to the IEEE undergraduate scholarship fund. Under that agreement, the IEEE agreed to include the appropriate patents in the standard.

Apple never intended to charge for the use of the name "FireWire". It could be used by any party signing an agreement to use the name for a product that was compliant with IEEE 1394-1995, the original version of the standard. Steve Jobs was convinced that Apple should ask for US$1 per port for the patents that became part of the standard. The argument was that it was consistent with the MPEG patent fees.

The fallout from charging US$1 per FireWire port was significant, particularly from Intel. Intel had sunk a great deal of effort into the standard with the improved 1394a-2000 standard being partially based on work contributed by Intel. A group within Intel used this as a reason to drop 1394 support and bring out the improved USB 2.0 instead.

Simultaneously, Sony and the other backers of the technology noted to Apple that they all had patents too and were entitled to per-port royalties. Under these circumstances, Apple would have to pay roughly US$15 per port to the other FireWire technology developers. The end result was the creation of the "1394 Licensing Authority", a body which charges everyone US$0.25 per end-user system (like a car or computer) that uses any 1394 technology.

See also

External links

References

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
da:FireWire

de:FireWire eo:IEEE 1394 es:IEEE 1394 fi:FireWire fr:FireWire gl:Firewire he:FireWire it:FireWire ja:IEEE1394 nl:FireWire no:IEEE 1394 pl:FireWire pt:FireWire ru:IEEE 1394 sk:FireWire sv:FireWire zh:IEEE 1394