- Coding system of FireWire
FireWire , also known asIEEE 1394, i.LINK (Sony) or DV (Panasonic), is aserial bus architecture for high-speed data transfer. Compared to olderavionics data buses such as Mil-Std-1553,FireWire is aserial bus, meaning that information is transferred one bit at a time.Parallel buses utilize a number of different physical connections, and as such are usually much less efficient, more costly, and typically heavier [http://www.aquezada.com/staff/julian/school/ieee1394/ IEEE Standard 1394a "A Standard for a High-Performance Serial Bus". Dunn, Son.] ] . Unlike otherserial buses, such as PCI,FireWire fully supports bothisochronous andasynchronous applications such as in safety-critical systems in theF-22 Raptor .Encoding Scheme
FireWire usesData strobe encoding (D/S encoding) [http://www.jaycar.com.au/images_uploaded/firewire.pdf IEEE 1394 (AKA 'FireWire' & 'iLink')] ] . 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.. This strobe is then put through another XOR gate along with the data signal to reconstruct the clock. This in turn acts as the bus'sPLL for synchronization purposes. Data Strobe encoding is not the only feature ofFireWire , however.FireWire is capable of operating safety 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 andisochronous transfer methods at once.Isochronous data transfers are transfers for devices that require continuous, guaranteed bandwidth.Isochronous devices include control of the rudder, mouse operations and data from pressure sensors outside the aircraft. All these elements require constant, uninterrupted bandwidth.Asynchronous data transfers are for devices which use a buffer, such as streaming video, speakers and CD drives. To support both elements,FireWire dedicates a certain percentage toisochronous data and the rest toasynchronous data. In IEEE 1394 80% of the bus is reserved forisochronous cycles, leavingasynchronous data with a minimum of 20% of the bus [http://www.ioneconnects.com/IEEE%201394%20Architecture.pdf IEEE 1394 Architecture] ] .The process of the bus deciding which node gets to transmit data at what time is known as
arbitration [http://www.tindel.net/Firewire/firewire.html IEEE 1394 and Linux] ] . Each arbitration round lasts about 125 micro-seconds. During the round, the root node (device nearest the processor) sends a cycle start packet. All nodes requiring data transfer respond, with the closest node winning. 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 micro-seconds, withisochronous transfers having priority. Up to 80% of the time can be given toisochronous nodes.IEEE 1394a offers a couple of advantages over IEEE 1394. 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.
IEEE 1394b on the other hand, uses a different encoding based on
8B/10B (Gigabit Ethernet & fiber channel). 8B/10B encoding involves expanding an 8 bit data word into 10 bits, with the extra bits after the 5th and 8th bit [http://iram.cs.berkeley.edu/serialio/cs254/enc_dec/index.html Encoder/Decoder] ] . The partitioned data is sent through a Running Disparity calculator function. The Running Disparity calculator attempts to keep the number of 1s transmitted equal to 0s [http://www.rhyshaden.com/encoding.htm CP3070 Principles of Data Communications] ] . 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. In both cases, an extra bit is added to the nibble. This gives the packet the ability to have at least two 1s, enabling clock synchronization for reliable transfer.References
Wikimedia Foundation. 2010.