Codifica 4B/5B

Nelle telecomunicazioni, 4B5B è una forma di codice per la trasmissione di dati. 4B5B lavora mappando gruppi di 4 bit in gruppi di 5. Siccome ci sono 32 possibili combinazioni usando 5 bit e solo 16 usandone 4, i 16 gruppi di 5 bit col maggior numero di transizioni sono usati per fornire più transizioni possibili. 4B5B garantisce almeno una transizione per blocco (ingresso di 4 bit / uscita di 5) il quale permette al segnale di essere scoperto. Sfortunatamente l'uso di 5 bit per rappresentarne 4 implica che per trasmettere i dati abbiamo bisogno di una larghezza di banda più grande del 25%.

Dipendentemente dallo standard o dalle specifiche, potrebbero esserci diversi caratteri che 4B5B non usa. La presenza di uno dei caratteri "inusati" nello stream di dati può essere usato come indice di un problema nella connessione. Infatti, i caratteri non usati vengono attualmente usati per scovare gli errori negli stream di dati.

Con la codifica 4B5B vengono risolti i problemi relativi alla trasmissione di più zeri consecutivi. Le sequenze generate vengono poi trasmesse attraverso una codifica NRZI (Senza ritorno a zero invertito), che elimina anche il problema della presenza di un numero eccessivo di 1 consecutivi. Il risultato è che la codifica 4B/5B elimina ripetizioni consecutive di un numero eccessivo di valori binari tutti uguali.

4B5B è usato nei seguenti standard:

  • 100BASE-TX standard definito da IEEE 802.3u nel 1995.
  • AES10-2003 MADI (Multichannel Audio Digital Interface)

Esempio

Un esempio di mappatura può essere il seguente:

Nome 4B 5B Descrizione
0000011110hex data 0
1000101001hex data 1
2001010100hex data 2
3001110101hex data 3
4010001010hex data 4
5010101011hex data 5
6011001110hex data 6
7011101111hex data 7
8100010010hex data 8
9100110011hex data 9
A101010110hex data A
B101110111hex data B
C110011010hex data C
D110111011hex data D
E111011100hex data E
F111111101hex data F
I-NONE-11111Idle
J-NONE-11000SSD #1
K-NONE-10001SSD #2
T-NONE-01101ESD #1
R-NONE-00111ESD #2
H-NONE-00100Halt

SSD = (Start of Stream Delimiter - 100BASE-TX Ethernet) Delimitatore di inizio stream

ESD = (End of Stream Delimiter - 100BASE-TX Ethernet) Delimitatore di fine stream

I caratteri seguenti sono settati come riferimenti a caratteri di controllo
Carattere di Controllo Simboli 5B Scopo
JK11000 10001Sync, SSD
II11111 11111Non Usato
TT01101 01101Non Usato
TS01101 11001Non Usato
IH11111 00100SAL
TR01101 00111ESD
SR11001 00111Non Usato
SS11001 11001Non Usato
HH00100 00100HDLC0
HI00100 11111HDLC1
HQ00100 00000HDLC2
RR00111 00111HDLC3
RS00111 11001HDLC4
QH00000 00100HDLC5
QI00000 11111HDLC6
QQ00000 00000HDLC7

HDLC = High-Level Data Link Control