FireWire 800 (IEEE 1394b-2002)
IEEE 1394b-2002 introduced FireWire 800 (Apple's name for the 9-conductor "S800 bilingual" version of the IEEE 1394b standard). This specification and corresponding products allow a transfer rate of 786.432 Mbit/s full-duplex via a new encoding scheme termed beta mode. 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.
The full IEEE 1394b specification supports data rates up to 3200 Mbit/s (i.e., 400 megabytes/s) over beta-mode or optical connections up to 100 metres (330 ft) in length. Standard Category 5e unshielded twisted pair supports 100 metres (330 ft) at S100. The original 1394 and 1394a standards used data/strobe (D/S) encoding (renamed to alpha mode) with the cables, while 1394b added a data encoding scheme called 8B10B referred to as beta mode.
Beta mode is based on 8B/10B (Gigabit Ethernet & Fibre Channel). 8B/10B encoding involves expanding an 8 bit data word into 10 bits, with the extra bits after the 5th and 8th data bits. 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, 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. An additional function of the coding scheme is to support the arbitration for bus access and general bus control. This is possible due to the "surplus" 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 receiving PHY indicate data errors.