home | our design | design code | software | firewire | resources | design team | contact us  

What Is Firewire?


Important Facts 

 

 

What is FireWire?

 

FireWire is one of the fastest peripheral standards ever developed, which makes it great for use with multimedia peripherals such as digital video cameras and other high-speed devices like the latest hard disk drives and printers.

 

FireWire offers a standard, simple connection to all types of consumer electronics, including digital audio devices, digital VCRs and digital video cameras; as well as to traditional computer peripherals such as optical drives and hard disk drives.

FireWire supports up to 63 devices on a single bus, and connecting to a device is as easy as plugging in a telephone jack. In addition, FireWire provides users with the ability to instantly connect devices without first turning off their machines. Another key feature of FireWire is its ability to stream A/V data off a hard disc in real time, without computer assistance. The protocols also include device-specific commands to start and stop camcorders and VCRs, and other tasks.

 

Today when you "surf the web" for information and click on a "link" you must wait for the bit-mapped data to download. Imagine, selecting an icon and almost immediately that image is on your screen. FireWire is one of the technologies that will help make this future a reality.

 

 

Technical Description

 

FireWire consists of three lowest ISO protocol layers: the transaction layer, the link layer and the physical layer. The transaction layer defines a complete request-response protocol to perform bus transactions with three basic operations: read, write, and lock. The link layer is the midlevel layer and it interacts with both the transaction and the physical layer, providing asynchronous and isochronous delivery service for data packets. The physical layer provides the electrical and mechanical interface between the device and the cable and ensures that all devices have fair access to the bus. The physical layer of each node also acts as a repeater, translating the point-to-point into a virtual broadcast bus.

 

IEEE-1394 is a self-configuring serial bus i.e. hot plug-n-play; users can add or remove devices even if the bus is active. Topology changes are automatically recognized due to a transmitted bias signal transmitted on the cable. When a node is added to the bus, the directly attached neighbors detect its bias signal. Similarly, a bias signals’ absence can be detected when a node is removed.

When a node senses a topology change, it sends a bus_reset signal on the bus, starting a self-configuring mechanism. This mechanism, managed by the physical layer, consists of three phases:  bus initialization, tree identification, and self identification. During configuration, a treelike logical topology is built, each node is assigned an address, and a root node is dynamically assigned. Once the bus is configured itself, the nodes can access the bus through an arbitration mechanism. When a node needs to access the bus, it sends a request to its parents, which forwards the request to the root. The first request received by the root is accepted; all others are rejected and withdrawn. The closer the node is to the root, the better its chance of acceptance. To solve the consequent arbitration unfairness, the periods of bus activity are split into intervals. During an interval each node gets to transmit only once then it waits until the next interval. The arbitration mechanism is also managed by the physical layer.

 

Another interesting feature of FireWire is the possibility of transmitting at different speed on a single medium. Devices with different data rate capabilities communicate at the slower device rate. The physical layer again ensures transmission at the correct rate.

 

A special interface connects the physical layer to the link layer. The physical-link interface is a scalable method for connecting a serial bus link layer chip to a serial bus physical layer chip. The link layer can use the interface to transmit data, receive data or status, or issue requests.