Skip to content
Surf Wiki
Save to docs
engineering

From Surf Wiki (app.surf) — the open knowledge base

4B5B

Telecommunications line code


Telecommunications line code

In telecommunications, 4B5B is a form of data communications line code. 4B5B maps groups of 4 bits of data onto groups of 5 bits for transmission. These 5-bit words are predetermined in a dictionary and they are chosen to ensure that there will be sufficient transitions in the line state to produce a self-clocking signal. A collateral effect of the code is that 25% more bits are needed to send the same information.

An alternative to using 4B5B coding is to use a scrambler. Some systems use scramblers in conjunction with 4B5B coding to assure DC balance and improve electromagnetic compatibility.

Depending on the standard or specification of interest, there may be several 5-bit output codes left unused. The presence of any of the unused codes in the data stream can be used as an indication that there is a fault somewhere in the link. Therefore, the unused codes can be used to detect errors in the data stream.

Applications

4B5B was popularized by Fiber Distributed Data Interface (FDDI) in the mid-1980s. It was adopted for digital audio transmission by MADI in 1989. and by Fast Ethernet in 1995.

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), but those are (0,2) run-length limited codes, with at most two consecutive zeros. 4B5B allows up to three consecutive zeros (a (0,3) RLL code), providing a greater variety of control codes.

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

The 4B5B encoding is also used for USB Power Delivery (USB-PD) communication,{{cite book

Clocking

4B5B codes are designed to produce at least two transitions per 5 bits of output code regardless of input data. The transitions provide necessary transitions for the receiver to perform clock recovery. For example, a run of 4 bits such as 0000 using NRZI encoding contains no transitions and that may cause clocking problems for the receiver. 4B5B solves this problem by assigning the 4-bit block a 5-bit code, in this case, 11110.

There are eight 5-bit codes that have 3 consecutive 0s: 00000, 00001, 00010, 01000, 10000, 00011, 10001, 11000. This leaves 24 codes available.

Encoding table

Data4B5B code(Hex)(Binary)
0000011110
1000101001
2001010100
3001110101
4010001010
5010101011
6011001110
7011101111

|

Data4B5B code(Hex)(Binary)
8100010010
9100110011
A101010110
B101110111
C110011010
D110111011
E111011100
F111111101

|

Symbol4B5B codeDescriptionFDDIFast EthernetUSB-PD
H00100Halt
I11111Idle
J11000Start #1
K10001Start #2
L00110Start #3
Q00000Quiet (loss of signal)
R00111Reset
S11001Set
T01101End (terminate)

|} Three consecutive zero bits only appear in normal data when a code ending with two 0 bits (2, E) is followed by a code beginning with a 0 bit (1, 4, 5, 6, 7), so will always appear separated by multiples of the 5-bit encoded symbol length (and never separated by a single symbol). Violations of this property are used for special synchronization codes.

Command characters

The following codes are sometimes referred to as command characters. They are commonly used in pairs, although USB-PD uses 4-symbol sequences to begin its packets.

Control character5b symbolsPurpose
JK11000 10001Sync, Start delimiter
I11111100BASE-X idle marker
T01101USB-PD end delimiter
TT01101 01101FDDI end delimiter
TS01101 11001
IH11111 00100SAL
TR01101 00111100BASE-X end delimiter
SR11001 00111
SS11001 11001
H00100100BASE-X transmit error
JJJK11000 11000 11000 10001USB-PD Start Of Packet (SOP)
JJLL11000 11000 00110 00110USB-PD SOP′
JLJL11000 00110 11000 00110USB-PD SOP″
JSSL11000 11001 11001 00110USB-PD SOP′_Debug
JSLK11000 11001 00110 10001USB-PD SOP″_Debug
RRRS00111 00111 00111 11001USB-PD Hard Reset
RJRL00111 11000 00111 00110USB-PD Cable Reset

References

References

  1. "AES10-2008 (r2019): AES Recommended Practice for Digital Audio Engineering - Serial Multichannel Audio Digital Interface (MADI)". [[Audio Engineering Society]].
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about 4B5B — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report