Katana VentraIP

IEEE 1394

IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony and Panasonic. It is most commonly known by the name FireWire (Apple), though other brand names exist such as i.LINK (Sony), and Lynx (Texas Instruments).

"FireWire" redirects here. For other uses, see Firewire (disambiguation).

Type

Apple (1394a/b), IEEE P1394 Working Group, Sony, Panasonic, etc.

1986 (1986)[1]

1995 (1995)

Various

1994–current

Thunderbolt (and USB 3.0 for consumer use)

4.5 meters maximum

1

Yes, up to 63 devices

No

No

4, 6, 9

30 V

1.5 A

Yes

  • 1394a, half-duplex 100–400 Mbit/s (12.5–50 MB/s)
  • 1394b and later, full-duplex 800–3200 Mbit/s (100–400 MB/s)

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 in Cat 5 and optical fiber versions.


The 1394 interface is comparable to USB. 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]

Operating system support[edit]

Full support for IEEE 1394a and 1394b is available for Microsoft Windows, FreeBSD,[38] Linux,[39][40] Apple Mac OS 8.6 through Mac OS 9,[41] and NetBSD.


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[42] and in SP3. 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, Microsoft Windows Vista supported only 1394a, with assurances that 1394b support would come in the next service pack.[43] 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.[44][45][46] The 1394 bus driver was rewritten for Windows 7 to provide support for higher speeds and alternative media.[47]


In Linux, support was originally provided by libraw1394 making direct communication between user space and IEEE 1394 buses.[48] Subsequently, a new kernel driver stack, nicknamed JuJu, has been implemented.[49]

Cable TV system support[edit]

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 capable cable 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.[50] The interface can be used to display or record Cable TV, including HDTV programming.[51] In June 2010, the FCC issued an order that permitted set-top boxes to include IP-based interfaces in place of FireWire.[52][53]

Comparison with USB[edit]

While both technologies provide similar end results, there are fundamental differences between USB 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. Intelligent hubs are required to connect multiple USB devices to a single USB host controller. By contrast, FireWire is essentially a peer-to-peer network (where any device may serve as the host or client), allowing multiple devices to be connected on one bus.[54]


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][55] 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).


While USB 2.0 expanded into the fully backwards-compatible USB 3.0 and 3.1 (using the same main connector type), FireWire used a different connector between 400 and 800 implementations.

Common applications[edit]

Consumer automobiles[edit]

IDB-1394 Customer Convenience Port (CCP) was the automotive version of the 1394 standard.[56]

Consumer audio and video[edit]

IEEE 1394 was the High-Definition Audio-Video Network Alliance (HANA) standard connection interface for A/V (audio/visual) component communication and control.[57] HANA was dissolved in September 2009 and the 1394 Trade Association assumed control of all HANA-generated intellectual property.

Military and aerospace vehicles[edit]

SAE Aerospace standard AS5643 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 the F-35 Lightning II, the X-47B UCAV aircraft, AGM-154 weapon and JPSS-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.[58][59][60]

General networking[edit]

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 run IPv4 over the FireWire interface, and RFC 3146 specifies how to run IPv6.


Mac OS X, Linux, and FreeBSD include support for networking over FireWire.[61] Windows 95, Windows 98, Windows Me,[62] Windows XP and Windows Server 2003 include native support for IEEE 1394 networking.[63] 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 to Ethernet networks with the major differences being transfer speed, conductor length, and the fact that standard FireWire cables can be used for point-to-point communication.


On December 4, 2004, Microsoft announced that it would discontinue support for IP networking over the FireWire interface in all future versions of Microsoft Windows.[64] Consequently, support for this feature is absent from Windows Vista and later Windows releases.[65][66] Microsoft rewrote their 1394 driver in Windows 7[67] but networking support for FireWire is not present. Unibrain offers free FireWire networking drivers for Windows called ubCore,[68] which support Windows Vista and later versions.


Earlier models of the PlayStation 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 series onward.

IIDC[edit]

IIDC (Instrumentation & Industrial Digital Camera) is the FireWire data format standard for live video, and is used by Apple's iSight A/V camera. The system was designed for machine vision systems[69] but is also used for other computer 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]

DV[edit]

Digital Video (DV) is a standard protocol used by some digital camcorders. 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 letters DV. Many digital video recorders have a DV-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.

Frame grabbers[edit]

IEEE 1394 interface is commonly found in frame grabbers, devices that capture and digitize an analog video signal; however, IEEE 1394 is facing competition from the Gigabit Ethernet interface (citing speed and availability issues).[72]

iPod and iPhone synchronization and charging[edit]

iPods released prior to the iPod with Dock Connector used IEEE 1394a ports for transferring music files and charging, but in 2003, the FireWire port in iPods was succeeded by Apple's dock connector and IEEE 1394 to 30-pin connector cables were made. Apple began removing backwards compatibility with FireWire cables starting with the first generation iPod nano and fifth generation iPod, both of which could only sync via USB but retained the ability to charge through FireWire. This was also carried over to the second and third generation nanos as well as the iPod Classic. Backwards compatibility was removed completely beginning with the iPhone 3G, second generation iPod touch, and the fourth generation iPod nano,[73] all of which could only charge and sync via USB.

Security issues[edit]

Devices on a FireWire bus can communicate by direct memory access (DMA), where a device can use hardware to map internal memory to FireWire's physical 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 FireWire Physical 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 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 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 a DMA attack. One of the applications known to exploit this to gain unauthorized access to running Windows, Mac OS and Linux computers is the spyware FinFireWire. For this reason, high-security installations typically either use newer machines that map a virtual memory space to the FireWire physical memory space (such as a Power Mac G5, or any Sun 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 like PCMCIA, PC Card, ExpressCard or Thunderbolt, which expose DMA to external components.


An unsecured FireWire interface can be used to debug 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 newer Windows Insider Preview builds no longer include the ability out of the box.[77] On FreeBSD, the dcons driver provides both, using gdb as debugger. Under Linux, firescope[78] and fireproxy[79] exist.

DMA attack

HAVi

Linux IEEE 1394 target

List of interface bit rates

Pin control attack

INCITS T10 Project 1467D (2004). Information technology—Serial Bus Protocol 3 (SBP-3). ANSI INCITS. ANSI INCITS 375-2004.{{}}: CS1 maint: numeric names: authors list (link)

cite book

Anderson, Don (1999). FireWire System Architecture. MindShare, Inc.  0-201-48535-4.

ISBN

"IEEE Standard for a High-Performance Serial Bus". IEEE STD. 1394-2008. 2008-10-21. :10.1109/IEEESTD.2008.4659233. ISBN 978-0-7381-5771-9.

doi

at the Wayback Machine (archived 2019-03-28)

1394 Trade Association

at the Wayback Machine (archived 2021-02-03)

1394 Standards Orientation, Introduction

IEEE 1394 connectors pinout