1394b and later, full-duplex 800–3200 Mbit/s (100–400 MB/s)
IEEE 1394 is aninterface standard for aserial bus for high-speed communications andisochronous real-time data transfer. It was developed in the late 1980s and early 1990s byApple in cooperation with a number of companies, primarilySony andPanasonic. It is most commonly known by the nameFireWire (Apple), though other brand names exist such asi.LINK (Sony), andLynx (Texas Instruments).
The copper cable used in its most common implementation can be up to 4.5 metres (15 ft) long. Power and data is carried over this cable, allowing devices with moderate power requirements to operate without a separate power supply. FireWire is also available inCat 5 andoptical fiber versions.
The 1394 interface is comparable toUSB. USB was developed subsequently and gained much greater market share. USB requires a host controller whereas IEEE 1394 is cooperatively managed by the connected devices.[2]
The 6-conductor and 4-conductor alpha FireWire 400 socketA 9-pin FireWire 800 connectorThe alternativeEthernet-style cabling used by1394c4-conductor (left) and 6-conductor (right) FireWire 400 alpha connectorsA PCIexpansion card that contains four FireWire 400 connectors.
FireWire is Apple's name for the IEEE 1394 High Speed Serial Bus. Its development was initiated by Apple[1] in 1986,[3] and developed by the IEEE P1394 Working Group, largely driven by contributions fromSony (102 patents), Apple (58 patents),Panasonic (46 patents), andPhilips (43 patents), in addition to contributions made by engineers fromLG Electronics,Toshiba,Hitachi,Canon,[4]INMOS/SGSThomson (nowSTMicroelectronics),[5] andTexas Instruments.
IEEE 1394 is aserial bus architecture for high-speed data transfer,serial meaning that information is transferred one bit at a time.Parallel buses utilize a number of different physical connections, and as such are usually more costly and typically heavier.[6] IEEE 1394 fully supports both isochronous andasynchronous applications.
Apple intended FireWire to be a serial replacement for the parallelSCSI bus, while providing connectivity for digital audio and video equipment. Apple's development began in the late 1980s, later presented to the IEEE,[7] and was completed in January 1995. In 2007, IEEE 1394 was a composite of four documents: the original IEEE Std. 1394–1995, theIEEE Std. 1394a-2000 amendment, theIEEE Std. 1394b-2002 amendment, and theIEEE Std. 1394c-2006 amendment. On June 12, 2008, all these amendments as well as errata and some technical updates were incorporated into a superseding standard, IEEE Std. 1394–2008.[8]
Apple first included onboard FireWire in some of its 1999 Macintosh models (though it had been a build-to-order option on some models since 1997), and most Apple Macintosh computers manufactured in the years 2000 through 2011 included FireWire ports. However, in February 2011 Apple introduced the first commercially available computer withThunderbolt. Apple released its last computers with FireWire in 2012. By 2014, Thunderbolt had become a standard feature across Apple's entire line of computers (later with the exception of the 12-inch MacBook introduced in 2015, which featured only a sole USB-C port), effectively becoming thespiritual successor to FireWire in the Apple ecosystem. Apple's last products with FireWire, theThunderbolt Display and 2012 13-inchMacBook Pro, were discontinued in 2016. Apple previously sold a Thunderbolt to FireWire Adapter, which provided one FireWire 800 port.[9] A separate adapter was required to use it with Thunderbolt 3.
Sony's implementation of the system,i.LINK, used a smaller connector with only four signal conductors, omitting the two conductors that provide power for devices in favor of a separate power connector. This style was later added into the 1394a amendment.[7] This port is sometimes labeledS100 orS400 to indicate speed in Mbit/s.
The system was commonly used to connectdata storage devices andDV (digital video) cameras, but was also popular in industrial systems formachine vision andprofessional audio systems. Many users preferred it over the more commonUSB 2.0 for its then greater effective speed and power distribution capabilities. Benchmarks show that the sustained data transfer rates are higher for FireWire than for USB 2.0, but lower thanUSB 3.0. Results are marked on AppleMac OS X but more varied onMicrosoft Windows.[10][11]
Implementation of IEEE 1394[12] is said to require use of 261 issued international patents[4] held by ten[5] corporations. Use of these patents requires licensing; use without license generally constitutespatent infringement.[13] Companies holding IEEE 1394 IP formed apatent pool withMPEG LA, LLC as the license administrator, to whom they licensed patents. MPEG LA sublicenses these patents to providers of equipment implementing IEEE 1394. Under the typical patent pool license, a royalty of US$0.25 per unit is payable by the manufacturer upon the manufacture of each 1394 finished product;[13] no royalties are payable by users.
The last of the patents, MY 120654 by Sony, expired on November 30, 2020. As of November 30, 2020[update], the following are patent holders of the IEEE 1394 standard, as listed in thepatent pool managed byMPEG LA.[4]
A person or company may review the actual 1394 Patent Portfolio License upon request to MPEG LA.[14] MPEG LA does not provide assurance of protection to licensees beyond its own patents. At least one formerly licensed patent is known to have been removed from the pool,[4] and other hardware patents exist that reference IEEE 1394.[15]
The 1394 High Performance Serial Bus Trade Association (the1394 TA) was formed to aid the marketing of IEEE 1394. Its bylaws prohibit dealing with intellectual property issues.[16] The 1394 Trade Association operates on an individual no cost membership basis to further enhancements to 1394 standards. The Trade Association also is the library source for all 1394 documentation and standards available.
FireWire can connect up to 63peripherals in a tree or daisy-chaintopology[17] (as opposed to Parallel SCSI'selectrical bus topology). It allowspeer-to-peer device communication — such as communication between a scanner and a printer — to take place without using system memory or theCPU. FireWire also supports multiple host controllers per bus. It is designed to supportplug and play andhot swapping. The copper cable it uses in its most common implementation can be up to 4.5 metres (15 ft) long and is more flexible than mostparallel SCSI cables. In its six-conductor or nine-conductor variations, it can supply up to 45 watts of power per port at up to 30 volts,[18] allowing moderate-consumption devices to operate without a separate power supply.
FireWire devices implement the ISO/IEC 13213configurationROM model for device configuration and identification, to provideplug-and-play capability. All FireWire devices are identified by an IEEEEUI-64 unique identifier in addition to well-known codes indicating the type of device and theprotocols it supports.
FireWire devices are organized at 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, which happens after each bus resets. The order in which the self-IDs are assigned is equivalent to traversing the treedepth-first, post-order.
FireWire is capable of safely operating critical systems due to the way multiple devices interact with the bus and how the bus allocates bandwidth to the devices. FireWire is capable of bothasynchronous and isochronous transfer methods at once. Isochronous data transfers are transfers for devices that require continuous, guaranteed bandwidth.[6] In an aircraft, for instance, isochronous devices include control of therudder, mouse operations and data from pressure sensors outside the aircraft. All these elements require constant, uninterrupted bandwidth. To support both elements, FireWire dedicates a certain percentage to isochronous data and the rest to asynchronous data. In IEEE 1394, 80% of the bus is reserved for isochronous cycles, leaving asynchronous data with a minimum of 20% of the bus.[19]
FireWire usesData/Strobe encoding (D/S encoding).[20] In D/S encoding, twonon-return-to-zero (NRZ) signals are used to transmit the data with high reliability. The NRZ signal sent is fed with the clock signal through anXOR gate, creating a strobe signal.[20] This strobe is then put through another XOR gate along with the data signal to reconstruct the clock.[20] This in turn acts as the bus'sphase-locked loop for synchronization purposes.[20]
The process of the bus deciding which node gets to transmit data at what time is known asarbitration.[21] Each arbitration round lasts about 125 microseconds.[21] During the round, the root node (device nearest the processor) sends a cycle start packet.[21] All nodes requiring data transfer respond, with the closest node winning.[21] After the node is finished, the remaining nodes take turns in order. This repeats until all the devices have used their portion of the 125 microseconds, with isochronous transfers having priority.[21]
The previous standards and its three published amendments are now incorporated into a superseding standard,IEEE 1394-2008.[8] The features individually added give a good history on the development path.
The original release of IEEE 1394-1995[22] specified what is now known as FireWire 400. It can transfer data between devices at 100, 200, or 400 Mbit/shalf-duplex[23] data rates (the actual transfer rates are 98.304, 196.608, and 393.216 Mbit/s, i.e., 12.288, 24.576 and 49.152MB/s respectively).[7] These different transfer modes are commonly referred to as S100, S200, and S400.
Cable length is limited to 4.5 metres (14.8 ft), although up to 16 cables can bedaisy chained using active repeaters, e.g. external hubs or the internal hubs that are often present in FireWire equipment. The S400 standard limits any configuration's maximum cable length to 72 metres (236 ft). The 6-conductor connector is commonly found on desktop computers and can supply the connected device with power.
The 6-conductor powered connector, now referred to as an alpha connector, adds power output to support external devices. Typically a device can pull about 7 to 8 watts from the port; however, the voltage varies significantly from different devices.[24] Voltage is specified as unregulated and should nominally be about 25 volts (range 24 to 30). Apple's implementation on laptops is typically related to battery power and can be as low as 9 V.[24]
An amendment, IEEE 1394a, was released in 2000,[25] which clarified and improved the original specification. It added support forasynchronous streaming, quicker bus reconfiguration,packet concatenation, and a power-savingsuspend mode.
IEEE 1394a offers a couple of advantages over the original IEEE 1394–1995. 1394a is capable of arbitration accelerations, allowing the bus to accelerate arbitration cycles to improve efficiency. It also allows for arbitrated short bus reset, in which a node can be added or dropped without causing a big drop in isochronous transmission.[19]
1394a also standardized the 4-conductor alpha connector developed by Sony and trademarked asi.LINK, already widely in use on consumer devices such as camcorders, most PC laptops, a number of PC desktops, and other small FireWire devices. The 4-conductor connector is fully data-compatible with 6-conductor alpha interfaces but lacks power connectors.
IEEE 1394b-2002[26] introduced FireWire 800 (Apple's name for the 9-conductorS800 bilingual version of the IEEE 1394b standard). This specification added a new encoding scheme termed beta mode which allowed compliant devices to operate at 786.432 Mbit/sfull-duplex. It is backwards compatible with the slower rates and 6-conductor alpha connectors of FireWire 400. However, while the IEEE 1394a and IEEE 1394b standards are compatible, FireWire 800's connector, referred to as a beta connector, is different from FireWire 400's alpha connectors, making legacy cables incompatible. A bilingual cable allows the connection of older devices to the newer port. In 2003, Apple was the first to introduce commercial products with the new connector, including a new model of thePower Mac G4 and a 17"PowerBook G4.
The full IEEE 1394b specification supports data rates up to 3200 Mbit/s (i.e., 400 MB/s) over beta-mode or optical connections up to 100 metres (330 ft) in length. Standardcategory 5e cable supports 100 metres (330 ft) at S100. The original 1394 and 1394a standards useddata/strobe (D/S) encoding, now known asalpha mode, with the cables, while 1394b added a data encoding scheme called8b/10b referred to asbeta mode.
Beta mode is based on8b/10b (fromGigabit Ethernet, also used for many other protocols). 8b/10b encoding involves expanding an 8-bit data word into 10 bits, with the extra bits after the 5th and 8th data bits.[27] The partitioned data is sent through aRunning Disparity calculator function.[27] The Running Disparity calculator attempts to keep the number of 1s transmitted equal to 0s,[28] thereby assuring a DC-balanced signal. Then, the different partitions are sent through a 5b/6b encoder for the 5-bit partition and a 3b/4b encoder for the 3-bit partition. This gives the packet the ability to have at least two 1s, ensuring synchronization of the PLL at the receiving end to the correct bit boundaries for reliable transfer.[28] An additional function of the coding scheme is to support the arbitration for bus access and general bus control. This is possible due to thesurplus symbols afforded by the 8b/10b expansion. (While 8-bit symbols can encode a maximum of 256 values, 10-bit symbols permit the encoding of up to 1024.) Symbols invalid for the current state of the receivingPHY indicate data errors.
IEEE 1394c-2006 was published on June 8, 2007.[29] It provided a major technical improvement, namely new port specification that provides 800 Mbit/s over the same8P8C (Ethernet) connectors withCategory 5e cable, which is specified in IEEE 802.3 clause 40 (gigabit Ethernet over copper twisted pair) along with a corresponding automatic negotiation that allows the same port to connect to either IEEE Std 1394 orIEEE 802.3 (Ethernet) devices.
In December 2007, the 1394 Trade Association announced that products would be available before the end of 2008 using the S1600 and S3200 modes that, for the most part, had already been defined in 1394b and were further clarified in IEEE Std. 1394–2008.[8] The 1.572864 Gbit/s and 3.145728 Gbit/s devices use the same 9-conductor beta connectors as the existing FireWire 800 and are fully compatible with existing S400 and S800 devices. It competes withUSB 3.0.[30]
S1600 (Symwave[31]) and S3200 (Dap Technology[32]) development units have been made, however because of FPGA technology DapTechnology targeted S1600 implementations first with S3200 not becoming commercially available until 2012.
Steve Jobs declared FireWire dead in 2008.[33] As of 2012[update], there were few S1600 devices released, with a Sony camera being the only notable user.[34]
A project named IEEE P1394d was formed by the IEEE on March 9, 2009 to addsingle-mode fiber as an additional transport medium to FireWire.[35] The project was withdrawn in 2013.[36]
Other future iterations of FireWire were expected to increase speed to 6.4 Gbit/s and additional connectors such as the small multimedia interface.[37][citation needed]
In Windows XP, a degradation in performance of 1394 devices may have occurred with installation of Service Pack 2. This was resolved in Hotfix 885222[41] and inSP3. Some FireWire hardware manufacturers also provide custom device drivers that replace the Microsoft OHCI host adapter driver stack, enabling S800-capable devices to run at full 800 Mbit/s transfer rates on older versions of Windows (XP SP2 w/o Hotfix 885222) and Windows Vista. At the time of its release, MicrosoftWindows Vista supported only 1394a, with assurances that 1394b support would come in the next service pack.[42] Service Pack 1 for Microsoft Windows Vista has since been released, however the addition of 1394b support is not mentioned anywhere in the release documentation.[43][44][45] The 1394 bus driver was rewritten for Windows 7 to provide support for higher speeds and alternative media.[46]
In Linux, support was originally provided by libraw1394 making direct communication between user space and IEEE 1394 buses.[47] Subsequently, a new kernel driver stack, nicknamed JuJu, has been implemented.[48]
Under FCC Code 47 CFR 76.640 section 4, subsections 1 and 2, Cable TV providers (in the US, with digital systems) must, upon request of a customer, have provided a high-definition capablecable box with a functional FireWire interface. This applied only to customers leasing high-definition capable cable boxes from their cable provider after April 1, 2004.[49]The interface can be used to display or record Cable TV, including HDTV programming.[50] In June 2010, the FCC issued an order that permitted set-top boxes to include IP-based interfaces in place of FireWire.[51][52]
While both technologies provide similar end results, there are fundamental differences betweenUSB and FireWire. USB requires the presence of a host controller, typically a PC, which connects point to point with the USB device. This allows for simpler (and lower-cost) peripherals, at the cost of lowered functionality of the bus. Intelligenthubs are required to connect multiple USB devices to a single USB host controller. By contrast, FireWire is essentially apeer-to-peer network (where any device may serve as the host or client), allowing multiple devices to be connected on one bus.[53]
The FireWire host interface supports DMA and memory-mapped devices, allowing data transfers to happen without loading the host CPU with interrupts and buffer-copy operations.[10][54] Additionally, FireWire features two data buses for each segment of the bus network, whereas, until USB 3.0, USB featured only one. This means that FireWire can have communication in both directions at the same time (full-duplex), whereas USB communication prior to 3.0 can only occur in one direction at any one time (half-duplex).[citation needed]
While USB 2.0 expanded into the fully backwards-compatibleUSB 3.0 and3.1 (using the same main connector type), FireWire used a different connector between 400 and 800 implementations.
IEEE 1394 was theHigh-Definition Audio-Video Network Alliance (HANA) standard connection interface for A/V (audio/visual) component communication and control.[56] HANA was dissolved in September 2009 and the1394 Trade Association assumed control of all HANA-generated intellectual property.
SAE Aerospace standardAS5643 originally released in 2004 and reaffirmed in 2013 establishes IEEE-1394 standards as a military and aerospace databus network in those vehicles. AS5643 is utilized by several large programs, including theF-35 Lightning II, theX-47B UCAV aircraft,AGM-154 weapon andJPSS-1 polar satellite for NOAA. AS5643 combines existing 1394-2008 features like looped topology with additional features like transformer isolation and time synchronization, to create deterministic double and triple fault-tolerant data bus networks.[57][58][59]
FireWire can be used for ad hoc (terminals only, no routers except where a FireWire hub is used)computer networks. Specifically,RFC 2734 specifies how to runIPv4 over the FireWire interface, andRFC 3146 specifies how to runIPv6.
Mac OS X,Linux, andFreeBSD include support for networking over FireWire.[60]Windows 95,Windows 98,Windows Me,[61]Windows XP andWindows Server 2003 include native support for IEEE 1394 networking.[62]Windows 2000 does not have native support but may work with third party drivers. A network can be set up between two computers using a single standard FireWire cable, or by multiple computers through use of a hub. This is similar toEthernet networks with the major differences being transfer speed, conductor length, and the fact that standard FireWire cables can be used forpoint-to-point communication.
On December 4, 2004, Microsoft announced that it would discontinue support forIP networking over the FireWire interface in all future versions ofMicrosoft Windows.[63] Consequently, support for this feature is absent fromWindows Vista and later Windows releases.[64][65]Microsoft rewrote their 1394 driver inWindows 7[66] but networking support for FireWire is not present. Unibrain offers free FireWire networking drivers for Windows called ubCore,[67] which support Windows Vista and later versions.
Earlier models of thePlayStation 2 console (SCPH 1000x to 3900x series) had an i.LINK-branded 1394 connector. This was used for networking until the release of an Ethernet adapter later in the console's lifespan, but very few software titles supported the feature. The connector was removed from the SCPH 5000x[68] series onward.
IIDC (Instrumentation & Industrial Digital Camera) is the FireWire data format standard for live video, and is used by Apple'siSight A/V camera. The system was designed formachine vision systems[69] but is also used for othercomputer vision applications and for some webcams. Although they are easily confused since they both run over FireWire, IIDC is different from, and incompatible with, the ubiquitous AV/C (Audio Video Control) used to control camcorders and other consumer video devices.[70]
Digital Video (DV) is a standardprotocol used by some digitalcamcorders. All DV cameras that recorded to tape media had a FireWire interface (usually a 4-conductor). All DV ports on camcorders only operate at the slower 100 Mbit/s speed of FireWire. This presents operational issues if the camcorder is daisy chained from a faster S400 device or via a common hub because any segment of a FireWire network cannot support multiple speed communication.[71]
Labeling of the port varied by manufacturer, with Sony using either its i.LINK trademark or the lettersDV. Manydigital video recorders have aDV-input FireWire connector (usually an alpha connector) that can be used to record video directly from a DV camcorder (computer-free). The protocol also accommodates remote control (play, rewind, etc.) of connected devices, and can stream time code from a camera.
USB is unsuitable for the transfer of the video data from tape because tape by its very nature does not support variable data rates. USB relies heavily on processor support and this was not guaranteed to service the USB port in time. The later move away from tape towards solid-state memory or disc media (e.g., SD Cards, optical disks or hard drives) has facilitated moving to USB transfer because file-based data can be moved in segments as required.
IEEE 1394 interface is commonly found inframe grabbers, devices that capture and digitize an analog video signal; however, IEEE 1394 is facing competition from theGigabit Ethernet interface (citing speed and availability issues).[72]
Devices on a FireWire bus can communicate bydirect memory access (DMA), where a device can use hardware to map internal memory to FireWire'sphysical memory space. The SBP-2 (Serial Bus Protocol 2) used by FireWire disk drives uses this capability to minimize interrupts and buffer copies. In SBP-2, 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 FireWirePhysical Address Space, which the target is supposed to use for moving I/O data to and from the initiator.[74]
On many implementations, particularly those like PCs and Macs using the popularOHCI, the mapping between the FireWirephysical memory space and device physical memory is done in hardware, without operating system intervention. While this enables 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 or media rights-restriction risk if untrustworthy devices are attached to the bus and initiate aDMA attack. One of the applications known to exploit this to gain unauthorized access to running Windows, Mac OS and Linux computers is the spywareFinFireWire. For this reason, high-security installations typically either use newer machines that map avirtual memory space to the FireWirephysical memory space (such as aPower Mac G5, or anySun workstation), disable relevant drivers at operating system level,[75] disable the OHCI hardware mapping between FireWire and device memory, physically disable the entire FireWire interface, or opt to not use FireWire or other hardware likePCMCIA,PC Card,ExpressCard orThunderbolt, which expose DMA to external components.
An unsecured FireWire interface can be used todebug a machine whose operating system has crashed, and in some systems for remote-console operations. Windows natively supports this scenario of kernel debugging,[76] although newerWindows Insider Preview builds no longer include the ability out of the box.[77] On FreeBSD, the dcons driver provides both, usinggdb as debugger. Under Linux, firescope[78] and fireproxy[79] exist.
^ab"1394ta.org".1394ta.org. Archived fromthe original on 2017-02-09. Retrieved2017-03-07.The 1394 digital link standard was conceived in 1986 by technologists at Apple Computer
^"Archived copy"(PDF).symwave.com. Archived fromthe original(PDF) on 6 March 2016. Retrieved14 January 2022.{{cite web}}: CS1 maint: archived copy as title (link)