8b/10b encoding

The 8b10b code ( also 8B/10B code ) is a line code in telecommunication technology. In this case, 8-bit data to 10 bits to be coded, so that on the one hand, a DC balance is ensured and is possible on the other clock recovery from the data signal. The data volume increases by 25%. Therefore, the data stream is generated contains an overhead of 20%. A similar, but much more efficient code is the 64b66b code which maps 64 bits to 66 bits and, therefore, produces only about 3% overhead.

The code was developed by Albert Widmer and Peter Franaszek.

  • 3.1 sources

Properties

The 8b10b code used to transmit one byte ( = 8 bits ) is a symbol with 10 bits in length. The following properties are satisfied:

DC voltage compensation

The number of ones per symbol differs by a maximum of two of the number of zeros. This results in three types of symbols:

  • 252 neutral (neutral disparity ): the same number of "1" and "0", that is five times "1" and five "0"
  • 210 positive (positive disparity ) six times "1" and four "0"
  • 210 negative (negative disparity ): four times "1" and six "0"

In a data stream so that step is "1" and "0" with the same probability. If one transfers now a "1" as a positive voltage U and a "0 " as a negative voltage U is in the output signal over a longer bit string no DC component contained. This DC balance allows for example a capacitive or inductive coupling of the transmitter and receiver.

Maximum length equal bits

The maximum length of the same bits (maximum run length ) is limited for pure data transmission to five, that is, at the latest after five clocks will change the level. This allows a simple clock recovery from the data signal. If K- words are mixed with data, there may be consequences of the same six bits come (eg, K28.7 followed by D07.x results 001111 1000 000111 xxxx). Since K - words typically occur only at the beginning or end of data packets, these cases are rare.

Disparity

The 8B10B encoder processes in addition to data, the disparity. Thus, the encoder will be informed if it is to generate a symbol with positive or negative disparity and disparity which is supposed to have a subsequent symbol. Has a symbol negative disparity, the following icon with positive disparity must be created. Has the symbol neutral disparity, the disparity information of the previous symbol to the following symbol is forwarded. This ensures that the entire data stream at any time up to a 1 or a 0 is too much and thus sets a sufficient number of symbols equal voltage. Thus there are two possible output symbols for each input symbol. Which is used by both, depends on the predecessor.

K- words

In addition to the two kinds of data symbols 256, there are twice twelve 10 -bit code words as well as the data words contain a maximum of five identical consecutive bits, and a maximum of six ones and six zeros. These symbols is called K- words that can be used for control functions in higher layers. Three of these K- words have a bit pattern that can not arise via symbol boundaries. That is, the last bits of a symbol together with the first bits of a subsequent symbol can never be the bit pattern of these three special K- Words result. This one uses in serial data streams in order to recognize the beginning and end of a symbol. These three special K- words are also called point - words.

Error detection

Since, not all valid code words of the 1024 possible combinations, which can be represented with 10 bits, there is the possibility to recognize some Bitübertragungsfehler. However, single bit errors can be caused by other valid code words, whereby a reliable detection or even the correction of transmission errors is impossible. Therefore, a checksum is usually also transmitted together with the data to detect Bitübertragungsfehler with higher reliability.

Applications

The 8b10b code can be found, inter alia, the following standards are applied:

  • PCI -Express ( only 1.x and 2.x, 3.x uses a special 128 in 130 bit encoding )
  • Serial ATA
  • Serial Attached SCSI
  • Fibre Channel
  • InfiniBand
  • FireWire 800
  • DisplayPort
  • DVI and HDMI ( TMDS )
  • CPRI
  • Intermateability
  • USB2.0 and USB3.0
840
de