Перейти к содержанию

4B5B

Материал из Википедии — свободной энциклопедии

4B5B — это тип линейного кодирования для передачи данных. 4B5B отображает группы 4 бит данных в группы 5 бит для передачи. Эти 5-битные слова определены в словаре и они выбираются таким образом, чтобы обеспечить достаточное количество переходов в состоянии линии для генерации самосинхронизирующегося сигнала. Побочным эффектом такого кодирования является то, что для передачи той же информации требуется на 25% больше бит.

Альтернативой использованию кодирования 4B5B является применение скремблера. Некоторые системы используют скремблеры совместно с кодированием 4B5B для обеспечения баланса по постоянному току и улучшения электромагнитной совместимости.

В зависимости от интересующего стандарта или спецификации, некоторые 5-битные выходные коды могут оставаться неиспользуемыми. Обнаружение любого из неиспользуемых кодов в потоке данных может служить индикатором неисправности где-либо в линии связи. Таким образом, неиспользуемые коды могут применяться для обнаружения ошибок в потоке данных.

Приложения

[править | править код]

Кодирование 4B5B получило распространение благодаря стандарту FDDI (англ. Fiber Distributed Data Interface) в середине 1980 годов. В 1989 кодирование было принято для передачи цифрового аудиосигнала MADI (англ.  Multichannel Audio Digital Interface)[1], а в 1995 году — стандартом Fast Ethernet.

Под названием 4B5B обычно подразумевается версия, используемая в FDDI. Другие кодировки из 4 бит в 5-бит используются для магнитной записи и известны как групповая кодированная запись (GCR), но они являются кодами с (0,2) ограниченной длиной последовательности нулей типа (0,2), допускающими не более двух нулей подряд. 4B5B позволяет до трёх последовательных нулей (RLL код типа (0,3)), что обеспечивает большее разнообразие управляющих кодов.

На оптическом волокне выход 4B5B кодируется методом NRZI. FDDI по медному кабелю (CDDI) использует вместо этого кодирование MLT-3, как и 100BASE-TX Fast Ethernet.

Кодирование 4B5B применяется также для связи USB Power Delivery[англ.] (USB-PD)[2], где код передаётся через пин USB-C CC (дополнительно кодируется с помощью двухфазного кодирования сигнала[англ.]) или по силовым линиям USB-A/B (дополнительно кодируется с частотной модуляции).

Синхронизация

[править | править код]

Коды 4B5B разработаны так, чтобы в каждом 5-битном выходном коде гарантировано было как минимум два перехода. Эти переходы необходимы приёмнику для восстановления тактовой частоты[англ.]. Например, последовательность из 4 бит, таких как 00002, при использовании кодирования NRZI не содержит переходов, что может вызвать проблемы синхронизации у приёмника. Кодирование 4B5B решает эту проблему, назначая 4-битному блоку 5-битный код, в данном случае, 111102.

Существует восемь 5-битных кодов, содержащих три последовательных нуля: 00000, 00001, 00010, 01000, 10000, 00011, 10001, 11000. Таким образом, остаётся 24 доступных кода.

Таблица кодирования

[править | править код]
Данные Код 4B5B
(Hex) (Binary)
0000011110
1000101001
2001010100
3001110101
4010001010
5010101011
6011001110
7011101111
Данные Код 4B5B
(Hex) (Binary)
8100010010
9100110011
A101010110
B101110111
C110011010
D110111011
E111011100
F111111101
Символ Код 4B5B Описание FDDI Fast Ethernet USB-PD
H00100ОстановДаДаНет
I11111ОжиданиеДаДаНет
J11000Старт #1ДаДаДа
K10001Старт #2ДаДаДа
L00110Старт #3НетНетДа
Q00000Тишина (потеря сигнала)ДаДаНет
R00111СбросДаДаДа
S11001УстановитьДаНетДа
T01101Конец (завершить)ДаДаДа

Три последовательных нулевых бита в обычных данных встречаются только тогда, когда код, заканчивающийся двумя нулями (2, E), сопровождается кодом, начинающимся с нуля (1, 4, 5, 6, 7). Следовательно, они всегда будут разделены кратным длиной закодированного 5-битного символа и никогда не будут разделены одним символом. Нарушения этого свойства используются для специальных синхронизирующих кодов.

Командные символы

[править | править код]

Следующие коды иногда называют управляющими символами. Они обычно используются парами, хотя USB-PD[англ.] использует последовательности из 4 символов для начала своих пакетов.

Контроьлный символ Символ 5b Цель
JK11000 10001Sync, начальный разделитель
I11111100BASE-X маркер простоя
T01101USB-PD конечный разделитель
TT01101 01101FDDI конечный разделитель
TS01101 11001Не используется
IH11111 00100SAL
TR01101 00111100BASE-X конечный разделитель
SR11001 00111Не используется
SS11001 11001Не используется
H00100100BASE-X ошибка передачи
JJJK11000 11000 11000 10001USB-PD Начало пакета (SOP)
JJLL11000 11000 00110 00110USB-PD SOP′
JLJL11000 00110 11000 00110USB-PD SOP″
JSSL11000 11001 11001 00110USB-PD SOP′_Отладка
JSLK11000 11001 00110 10001USB-PD SOP″_Отладка
RRRS00111 00111 00111 11001USB-PD Жёсткая перезагрузка
RJRL00111 11000 00111 00110USB-PD Сброс кабеля

Примечания

[править | править код]

Литература

[править | править код]
  • 5.3 Symbol Encoding // Universal Serial Bus Power Delivery Specification. — Revision 2.0 Version 1.3. — USB Implementers Forum, 2017.
    Цитата: «Следует использовать кодирование 4b5b. Оно кодирует 4-битные данные в 5-битные символы для передачи и декодирует 5-битные символы в 4-битные данные для использования приёмником.»