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 доступных кода.
Таблица кодирования
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Три последовательных нулевых бита в обычных данных встречаются только тогда, когда код, заканчивающийся двумя нулями (2, E), сопровождается кодом, начинающимся с нуля (1, 4, 5, 6, 7). Следовательно, они всегда будут разделены кратным длиной закодированного 5-битного символа и никогда не будут разделены одним символом. Нарушения этого свойства используются для специальных синхронизирующих кодов.
Командные символы
Следующие коды иногда называют управляющими символами. Они обычно используются парами, хотя USB-PD использует последовательности из 4 символов для начала своих пакетов.
| Контроьлный символ | Символ 5b | Цель |
|---|---|---|
| JK | 11000 10001 | Sync, начальный разделитель |
| I | 11111 | 100BASE-X маркер простоя |
| T | 01101 | USB-PD конечный разделитель |
| TT | 01101 01101 | FDDI конечный разделитель |
| TS | 01101 11001 | Не используется |
| IH | 11111 00100 | SAL |
| TR | 01101 00111 | 100BASE-X конечный разделитель |
| SR | 11001 00111 | Не используется |
| SS | 11001 11001 | Не используется |
| H | 00100 | 100BASE-X ошибка передачи |
| JJJK | 11000 11000 11000 10001 | USB-PD Начало пакета (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′_Отладка |
| JSLK | 11000 11001 00110 10001 | USB-PD SOP″_Отладка |
| RRRS | 00111 00111 00111 11001 | USB-PD Жёсткая перезагрузка |
| RJRL | 00111 11000 00111 00110 | USB-PD Сброс кабеля |
См. также
Примечания
- ↑ AES10-2008 (r2019): AES Recommended Practice for Digital Audio Engineering - Serial Multichannel Audio Digital Interface (MADI). Audio Engineering Society.
- ↑ USB-PD, 2017, с. 105.
Литература
- 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-битные данные для использования приёмником.»