# 4B5B

En telecomunicacions, 4B5B és una forma de codi de línia de comunicacions de dades. 4B5B mapeja grups de 4 bits de dades a grups de 5 bits per a la transmissió. Aquestes paraules de 5 bits estan predeterminades en un diccionari i es trien per garantir que hi haurà suficients transicions en l'estat de línia per produir un senyal d'auto-rellotge. Un efecte col·lateral del codi és que es necessiten un 25% més de bits per enviar la mateixa informació.
Una alternativa a l'ús de la codificació 4B5B és utilitzar un codificador. Alguns sistemes utilitzen codificadors juntament amb la codificació 4B5B per assegurar l'equilibri de CC i millorar la compatibilitat electromagnètica.
Depenent de l'estàndard o l'especificació d'interès, és possible que hi hagi diversos codis de sortida de 5 bits sense utilitzar. La presència de qualsevol dels codis no utilitzats al flux de dades es pot utilitzar com a indicació que hi ha una fallada en algun lloc de l'enllaç. Per tant, els codis no utilitzats es poden utilitzar per detectar errors en el flux de dades.

## Aplicacions

El 4B5B va ser popularitzat per Fiber Distributed Data Interface (FDDI) a mitjans dels anys vuitanta. Va ser adoptat per a la transmissió d'àudio digital per MADI el 1989. i per Fast Ethernet el 1995.
El nom 4B5B s'entén generalment com a la versió FDDI. S'han utilitzat altres codis de 4 a 5 bits per a l'enregistrament magnètic i es coneixen com a enregistrament codificat en grup (GCR), però aquests són codis limitats de longitud d'execució (0,2), amb com a màxim dos zeros consecutius. 4B5B permet fins a tres zeros consecutius (un codi RLL (0,3)), proporcionant una major varietat de codis de control.
A la fibra òptica, la sortida 4B5B està codificada per NRZI. FDDI sobre coure (CDDI) utilitza la codificació MLT-3, com també 100BASE-TX Fast Ethernet.
La codificació 4B5B també s'utilitza per a la comunicació USB Power Delivery, on s'envia a través del pin USB-C CC (codificada més amb el codi de marca bifàsica) o les línies d'alimentació USB-A/B (codificades més mitjançant el canvi de freqüència). claus).

## Rellotge

Els codis 4B5B estan dissenyats per produir almenys dues transicions per cada 5 bits de codi de sortida, independentment de les dades d'entrada. Les transicions proporcionen les transicions necessàries perquè el receptor realitzi la recuperació del rellotge. Per exemple, una execució de 4 bits com 0000 2 utilitzant la codificació NRZI no conté transicions i això pot causar problemes de rellotge al receptor. 4B5B resol aquest problema assignant al bloc de 4 bits un codi de 5 bits, en aquest cas, 11110 2 .

## Taula de codificació

| Dades | Dades | Codi 4B5B |
| (hexadecimal) | (binari) | Codi 4B5B |
| 0 | 0000 | 11110 |
| 1 | 0001 | 01001 |
| 2 | 0010 | 10100 |
| 3 | 0011 | 10101 |
| 4 | 0100 | 01010 |
| 5 | 0101 | 01011 |
| 6 | 0110 | 01110 |
| 7 | 0111 | 01111 |
| Dades | Dades | Codi 4B5B |
| (hexadecimal) | (binari) | Codi 4B5B |
| 8 | 1000 | 10010 |
| 9 | 1001 | 10011 |
| A | 1010 | 10110 |
| B | 1011 | 10111 |
| C | 1100 | 11010 |
| D | 1101 | 11011 |
| E | 1110 | 11100 |
| F | 1111 | 11101 |
| Símbol | Codi 4B5B | Descripció | FDDI | Fast Ethernet |
| H | 00100 | Atura | Sí | Sí |
| jo | 11111 | Ociós | Sí | Sí |
| J | 11000 | Comença #1 | Sí | Sí |
| K | 10001 | Comença #2 | Sí | Sí |
| L | 00110 | Comença #3 | No | No |
| Q | 00000 | Silenci (pèrdua de senyal) | Sí | Sí |
| R | 00111 | Restableix | Sí | Sí |
| S | 11001 | Conjunt | Sí | No |
| T | 01101 | Finalitzar (acabar) | Sí | Sí |
Tres bits zero consecutius només apareixen a les dades normals quan un codi que acaba amb dos bits 0 (2, E) va seguit d'un codi que comença amb un bit 0 (1, 4, 5, 6, 7), de manera que sempre apareixerà separat per múltiples de la longitud del símbol codificat de 5 bits (i mai separats per un sol símbol). Les infraccions d'aquesta propietat s'utilitzen per a codis de sincronització especials.

## Caràcters de control

Els codis següents de vegades s'anomenen caràcters de control. S'utilitzen habitualment en parelles, tot i que USB-PD utilitza seqüències de 4 símbols per començar els seus paquets
| Caràcter de control | símbols 5b | Propòsit |
| JK | 11000 10001 | Sincronització, delimitador d'inici |
| jo | 11111 | Marcador inactiu 100BASE-X |
| T | 01101 | Delimitador final USB-PD |
| TT | 01101 01101 | Delimitador final FDDI |
| TS | 01101 11001 | Sense ús |
| IH | 11111 00100 | SAL |
| TR | 01101 00111 | Delimitador final 100BASE-X |
| SR | 11001 00111 | Sense ús |
| SS | 11001 11001 | Sense ús |
| H | 00100 | Error de transmissió 100BASE-X |
| JJJK | 11000 11000 11000 10001 | USB-PD Inici del paquet (SOP) |
| JJLL | 11000 11000 00110 00110 | USB-PD SOP′ |
| JLJL | 11000 00110 11000 00110 | USB-PD SOP″ |
| JSSL | 11000 11001 11001 00110 | USB-PD SOP′_Debug |
| JSLK | 11000 11001 00110 10001 | USB-PD SOP″_Depuració |
| RRRS | 00111 00111 00111 11001 | Restabliment dur USB-PD |
| RJRL | 00111 11000 00111 00110 | Restabliment del cable USB-PD |

## Referències

* ↑ AES10-2008 (r2019): AES Recommended Practice for Digital Audio Engineering - Serial Multichannel Audio Digital Interface (MADI). Audio Engineering Society.
* ↑ «5.3 Symbol Encoding». A: Universal Serial Bus Power Delivery Specification. USB Implementers Forum, 12 gener 2017, p. 105 (Revision 2.0 Version 1.3).

## Enllaços externs

* Simulador - Línia codificadora 4B/5B escrita a Matlab
* CodSim 2.0: Simulador de codi obert per al Model de Comunicació de Dades Digitals de la Universitat de Màlaga escrit en HTML