The FC-1 level defines the transmission protocol including the 8B/10B encode/decode scheme, byte synchronization, and character-level error control. This protocol uses the 8B/10B encoding scheme that encodes 8-bit bytes into 10-bit transmission characters . The 8B/10B encoding was developed by IBM and was determined to be the best for the expected error rate of the system.
The 8B/10B code has outstanding line characteristics including long transmission distances and very good error-detection capability. The 8B/10B code finds errors that a parity check cannot detect. Parity does not find even numbers of bit errors, only odd numbers . But 8B/10B finds almost all errors. Fibre Channel also employs a Cyclic Redundancy Check (CRC) on transmitted data. This also assists with error detection.
To assist with transmission the 8B/10B code uses 12 special characters. However, we are only concerned with one, the 28.5 special character. At present, it is the only special character used by Fibre Channel in the 8B/10B code.
2.3.1 8B/10B Encoding
The format of the 8B/10B character is Ann.m , where:
Figure 2-9 shows the translation of the HEX number 45.
Figure 2-9. 8B/10B Encoding
The 8B/10B encoded bytes have a property know as "disparity," which can be positive, negative, or neutral. An 8B/10B byte has negative disparity if there are more binary ones in the byte than binary zeroes. Conversely, the byte has positive disparity if there are more binary zeroes than ones. Neutral disparity is when the number of binary ones equals the number of binary zeroes.
2.3.2 K28.5 Special Character Encoding
The K28.5 special character has the following components :
Figure 2-10 shows the translation of the HEX number BC.
Figure 2-10. 8B/10B Translation
2.3.3 FC-1 Transmission Word
A transmission word is composed of four transmission characters. Remember, the 8B/10B code encoded an 8-bit byte into a 10-bit character. Therefore, a transmission word is a 40-bit group of four 10B transmission characters. A transmission word can be one of two kinds:
If the transmission word is data, each of the four transmission characters is an encoded data byte.
If the transmission word is an ordered set, the first byte is a K28.5 transmission character. The other three transmission characters are normal encoded data bytes. Ordered sets permit control functions to be imbedded in the bit stream. One simple use of ordered sets is to determine at a receiver where word boundaries are. If all transmission words are data transmission words, the receiver has only a 2.5% chance of getting it right (that is, one in 40 bits).
2.3.4 FC-1: Ordered Set
An ordered set is a transmission word beginning with a special character, as previously discussed, the K28.5 character. Because this special character is present, this transmission word has a special control function meaning. There are three possible meanings: