From Wikipedia, the free encyclopedia
Jump to: navigation, search

In telecommunication, 4B5B is a form of data communications line code. 4B5B maps groups of 4 bits (aka quadbits) onto groups of 5 bits, with a minimum density of 1 bits in the output.[clarification needed] When NRZI-encoded, the 1 bits provide necessary clock transitions for the receiver. For example, a run of 4 bits such as 00002 contains no transitions and that causes clocking problems for the receiver. 4B5B solves this problem by assigning each block of 4 consecutive bits an equivalent word of 5 bits. These 5 bit words are pre-determined in a dictionary and they are chosen to ensure that there will be at least two transitions per block of bits.

A collateral effect of the code is that more bits are needed to send the same information than with 4 bits. An alternate to using 4B5B coding is to use a scrambler. Depending on the standard or specification of interest, there may be several 4B5B characters left unused. The presence of any of the "unused" characters in the data stream can be used as an indication that there is a fault somewhere in the link. Therefore, the unused characters can be used to detect errors in the data stream.

4B5B was popularized by fiber distributed data interface (FDDI) in the mid-1980s, and was later adopted by

  • Fast Ethernet standard defined by IEEE 802.3u in 1995 and
  • AES10-2003 Multichannel Audio Digital Interface (MADI).[1]

The name 4B5B is generally taken to mean the FDDI version. Other 4-to-5-bit codes have been used for magnetic recording and are known as group coded recording (GCR).

On optical fiber, the 4B5B output is NRZI-encoded. FDDI over copper (CDDI) uses MLT-3 encoding instead, as does 100BASE-TX.

The 4B5B encoding is also used for USB Power Delivery communication on CC pin, over BMC protocol.

4B5B encoding table[edit]

Data 4B5B code
(Hex) (Binary)
0 0000 11110
1 0001 01001
2 0010 10100
3 0011 10101
4 0100 01010
5 0101 01011
6 0110 01110
7 0111 01111
8 1000 10010
9 1001 10011
A 1010 10110
B 1011 10111
C 1100 11010
D 1101 11011
E 1110 11100
F 1111 11101

Command characters[edit]

The following character sets are sometimes referred to as command characters.

Control character 5b symbols Purpose
JK 11000 10001 Sync, Start delimiter
I 11111 100BASE-X idle marker
TT 01101 01101 FDDI end delimiter
TS 01101 11001 Not used
IH 11111 00100 SAL
TR 01101 00111 100BASE-X end delimiter
SR 11001 00111 Not used
SS 11001 11001 Not used
H 00100 100BASE-X transmit error
HH 00100 00100 HDLC0
HI 00100 11111 HDLC1
HQ 00100 00000 HDLC2
RR 00111 00111 HDLC3
RS 00111 11001 HDLC4
QH 00000 00100 HDLC5
QI 00000 11111 HDLC6
QQ 00000 00000 HDLC7

(HDLC = High-Level Data Link Control)


External links[edit]