Pages

Search Here

FIRE WIRE - ieee1394

The History of IEEE 1394

  • In the mid-1980s, engineers at Apple Computer developed a high-speed method of transferring data to and from the hard drives inside Macintosh desktops while simplifying the internal cabling. They called it FireWire.
  • In December 1995, the IEEE released an official FireWire specification called IEEE 1394, which describes data-transfer speeds of 100 Mbps, 200 Mbps, and 400 Mbps.
  • Sony built it into digital camcorders and other electronic gear, calling it i.LINK, and the rest of the camcorder industry soon followed suit.
  • Apple and Sony were the two most prominent companies that made FireWire-compatible devices.
  • over the past three years, the technology has gained a foothold in desktops and notebooks from a much wider range of manufacturers and found its way into scanners, web cams, external hard drives, and external optical drives
  • FireWire has also taken off like wildfire in televisions, audio appliances, and gaming consoles. About 60 million devices shipped with FireWire ports in 2002, according to research firm In-Stat/MDR
  • IEEE 1394 is especially popular in high-speed multimedia applications, like real-time audio or video editing, where fast data transmission from/to digital video cameras, digital audio equipment or hard drives is required
  • IEEE 1394 supports isochronous data transfer which guarantees a certain bandwidth to devices that need to transfer data without longer interrupts
  • the cross linking of home multimedia devices, like digital VCR's, TV's, stereo systems, set top boxes, video game consoles, and cameras
  • FireWire works on a so-called peer-to-peer basis
  • these devices could be connected to the internet and be remotely controlled.
  • FireWire can be used to connect computers with each other, for example in office networks.
  • FireWire speeds up the movement of multimedia data and large files and enables easy connection of digital consumer products -- including digital camcorders, digital video tapes, digital video disks, set-top boxes, and music systems -- directly to a personal computer.

The Technology Behind Firewire

A broad overview of firewire features
  • FireWire is a serial bus
  • 1394 specifies three different bandwidths
  • 100, 200, and 400 Mb/s respectively
  • Up to 63 devices can be connected to each other, without the need for any hubs
  • bridge devices can be used to connect up to 1023 of these buses with each other
  • A chain of devices (so-called daisy chain) can be up to 16 devices long.
  • the maximum cable length between two devices restricted to 4.5 meters
  • 1394 is a true peer-to-peer based bus
  • IEEE 1394 is self-configuring in which a unique identification number is assigned to every device automatically.
  • 1394 devices are "hot pluggable"
  • IEEE 1394 supports two transfer modes: Asynchronous and isochronous transfer
  • Asynchronous transfers are used mainly for bus configuration, setting up transfers and handshaking, bulk data transfer to and from hard disk drives, etc.
  • Isochronous transfers are used for transporting time sensitive data like digital video and audio.

Cables



  • FireWire cables come in two flavors: either 4-pin or 6-pin.
  • the 4-pin version uses all 4 wires for the transfer of data, the 6-pin version has two additional wires to supply power (8-40V, up to 1.5A) to connected devices
  • The four data wires are arranged in two twisted pairs
  • Shielded mechanisms
  • Both pairs use differential data transmission.
  • one might think that a parallel bus is faster than a serial bus, because several bits are transferred at the same time, this is only true in theory
  • IEEE 1394 uses half-duplex data transmission
  • The IEEE 1394 bus was designed for big endianess

Device topology and communications

  • IEEE 1394 is based on the Control and Status Register Management (CSR architecture), specified in IEEE 1291
  • FireWire uses 64-bit fixed addressing, based on the IEEE 1212 standard
  • There are three parts to each packet of information sent by a device over FireWire
  • A 10-bit bus ID that is used to determine which FireWire bus the data came from
  • A 6-bit physical ID that identifies which device on the bus sent the data
  • A 48-bit storage area that is used to address registers and memory in the respective node, allowing for a maximum address space of 256 Terabytes (1012 bytes)
  • The first sixteen bits are used to specify the bus (10 bits) and the node number (6 bits). This means that there can be up to 1023 (216) buses (bus id 1023 is reserved for 'local bus') with up to 63 nodes each (node 63 in each bus is assigned to 'broadcast').
  • Special devices called bridges are used to connect buses with each other
  • Whenever the topology of the bus changes, like a new node is connected or an old one is disconnected, a new root node is selected.
  • This is done by a so-called tree identify protocol, which enables the nodes to agree on a common virtual tree structure.
  • The configuration and the number of available and connected ports and general capabilities of the device dictate which node becomes the root.
  • In a typical consumer PC case, the PCI Host Controller will almost always be the root
  • the root is responsible for providing the clock cycle (8 kHz) for isochronous data transfers.
  • more important, it is responsible for the arbitration process.
  • Whenever a device wants to send data, it sends a request to its parent node.
  • The parent node checks whether is has received other requests so far. If not, it passes the request on to its parent node and so on.
  • In the end, the root node decides upon the order of data transfers, taking into account any isochronous processes.
  • The root node then sends a confirmation packet back to the requesting node, indicating that it may use the bus.
  • Typically devices have three IEEE 1394 ports, but they
  • can have up to 27.
  • This allows networks to be as simple
  • as a DV camcorder connected to a digital VCR, or more complicated like the setup shown in Fig. shows a tree topology, taking advantage of the ability of each device to act as a bus repeater or mini hub

Data-Strobe coding



  • All data is sent along the IEEE 1394 bus in serial four byte (32-bit) words, called quadlets.
  • The quadlets are encoded together with their clock signal onto two NRZ (non return to zero) bus signals
  • technique known as Data-Strobe (DS) coding.
  • Improves transmission reliability by ensuring that only one of the two signals changes in each data bit period.
  • The top waveform shows the Data bits being sent, while the bottom waveform shows the Clock signal.
  • At the transmitting node these two are fed to an exclusive-OR gate to generate the Strobe signal, shown in the centre.
  • It.s this signal and the Data signal which are sent along the bus, and as you can see there.s only one change in the pair every bit period.
  • At the receiving device, though, the Data and Strobe signals are again fed to an exclusive-OR gate.
  • The output of this gate effectively reconstructs the Clock signal again, with its timing still accurately locked to the Data.
  • The DS coding therefore avoids the need for IEEE1394 receivers to have a PLL (phase-locked loop).

Twisted pairs


  • The IEEE 1394 Data and Strobe signals are sent on cables with two separately shielded twisted-wire pairs,
  • TPA (twisted pair A) and TPB (twisted pair B).
  • Transfers in one direction have the Strobe signal on TPA and the Data signal on TPB
  • in the opposite direction have the Data signal on TPA and the Strobe signal on TPB.
  • Fig shows the idea.

Protocol Layers


  • The IEEE 1394 standard defines three layers, implemented in every device, that serve different purposes:
  • The Physical Layer (often abbreviated PHY),
  • the Link Layer, and
  • the Transaction Layer
  • the Transaction Layer is used to connect the FireWire device to a parallel bus, like PCI. It incorporates the devices registers and memory, complying with the aforementioned CSR standard
  • The Link Layer takes the register information obtained from the Transaction Layer and forms the packets that are to be sent over the bus. It is also responsible for the cycle control of the isochronous mode
  • the Physical Layer is responsible for the actual transmission of data over the bus. The arbitration process, i.e. the request to use the bus, is also handled by this layer.
  • One device on the bus acts as bus manager, and can also act as isochronous resource manager.
  • The latter allocates bus bandwidth for isochronous data transfers when devices request them.
  • When there.s a PC in the network, it usually performs the roles of bus manager and isochronous resource manager.

1 comment: