Физическое кодирование

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

Физическое кодирование — способы представления данных в виде электрических или оптических импульсов.

Ни в одной из версий технологии Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 вольт и бита 1 — напряжением +5 вольт, так как такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая станция может интерпретировать её либо как 10000, либо как 01000, так как она не может отличить «отсутствие сигнала» от бита 0. Поэтому принимающей машине необходим способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Кодирование сигнала на физическом уровне позволяет приемнику синхронизироваться с передатчиком по смене напряжения в середине периода битов.

Иерархия кодирования[править | править исходный текст]

Система кодирования сигналов имеет многоуровневую иерархию.

Физическое кодирование[править | править исходный текст]

Самым нижним уровнем в иерархии кодирования является физическое кодирование, которое определяет число дискретных уровней сигнала (амплитуды напряжения, амплитуды тока, амплитуды света).
Физическое кодирование рассматривает кодирование только на самом низшем уровне иерархии кодирования - на физическом уровне и не рассматривает более высокие уровни в иерархии кодирования, к которым относятся логические кодирования различных уровней.
С точки зрения физического кодирования цифровой сигнал может иметь два, три, четыре, пять и т. д. уровней амплитуды напряжения, амплитуды тока, амплитуды света. Естественным становится вопрос:"Какое число уровней сигнала имеет наибольшую плотность кодирования?" Ответ на этот вопрос даёт "Теорема о наиболее экономичной системе счисления (системе кодирования)", описанная в книжке С. В. Фомина "Системы счисления", в § 14. Об одном замечательном свойстве троичной системы[1].

Логическое кодирование[править | править исходный текст]

Вторым уровнем в иерархии кодирования является самый нижний уровень логического кодирования с разными назначениями.
В совокупности физическое кодирование и логическое кодирование образуют систему кодирования самого низшего уровня.

Системы кодирования[править | править исходный текст]

Системы кодирования данных

Наиболее часто используемые системы кодирования:

  • NRZ (Non Return Zero) — без возврата к нулю
  • Манчестер II
  • RZ (Return to Zero) — с возвратом к нулю

Системы с двухуровневым кодированием[править | править исходный текст]

NRZ[править | править исходный текст]

Простейший код, обычный цифровой (дискретный) сигнал (может быть преобразован на обратную полярность или изменены уровни соответствующие нулю и единице).

Достоинства — простая реализация; не нужно кодировать и декодировать на концах. Высокая скорость передачи при заданной полосе пропускания (для обеспечения пропускной способности в 10Мбит/сек полоса пропускания составит 5 МГц, так как одно колебание равно 2 битам). Для синхронизации передачи байта используется старт-стоповый бит. Недостатки - Наличие постоянной составляющей, из за чего невозможно обеспечить гальваническую развязку с помощью трансформатора. Высокие требования к синхронизации частот на приёмном и передающем конце - за время передачи одного слова (байта) приемник не должен сбиться больше, чем на бит (например для слова длиной в байт с битом старта и стопа, т.е. всего 10 бит канальной информации, рассинхронизация частот приёмника и передатчика не может превышать 10% в обе стороны, для слова в 16 бит, т.е. 18 бит канальной информации, рассинхронизация не должна превышать 5,5%, а в физических реализациях и того меньше).

Манчестерский код, код Манчестер-2[править | править исходный текст]

Является самосинхронизирующимся, то есть не требует специальной кодировки синхроимпульса, который бы занимал полосу данных и поэтому является самым плотным кодом на единицу частоты. Логическому нулю соответствует положительный переход в центре бита, то есть первая половина битового интервала — низкий уровень, вторая половина — высокий (стандарт по Д.Е. Томасу). Логической единице соответствует отрицательный переход в центре бита. (Возможна и обратная реализация (стандарт IEEE 802.3) , обычно в приёмнике это проверяется вначале передачи. "Обратная реализация может возникнуть например в трансформаторе, если перепутать направление обмоток").

Обязательное наличие перехода в центре бита позволяет легко выделить синхросигнал. Допустимое расхождение частот передачи - до 25 % (это означает, что код Манчестер-2 - самый устойчивый к рассинхронизации, он самосинхронизуется в каждом бите передаваемой информации).

Плотность кода 1 бит/герц. В спектре сигнала, закодированного Манчестером-2, присутствует 2 частоты - частота передачи и половинная частота передачи (она образуется когда рядом стоят 0 и 1 или 1 и 0. При передаче гипотетической последовательности одних 0 или 1 в спектре будет присутствовать только частота передачи). Важным достоинством манчестерского кода является возможность обеспечить гальваническую развязку с помощью трансформатора, так как у него отсутствует постоянная составляющая. Вторым важным преимуществом является отсутствие необходимости в синхронизующих битах (как в NRZ-коде) и, вследствие этого, данные могут передаваться подряд сколь угодно долго, из-за чего плотность данных в общем потоке кода приближается к 100% (например для кода NRZ 1-8-0 она равна 80%).

NRZI[править | править исходный текст]

NRZI — Non Return to Zero Invertive (инверсное кодирование без возврата к нулю). Этот метод является модифицированным методом Non Return to Zero (NRZ), где для представления 1 и 0 используются потенциалы двух уровней. В коде NRZ I также используется 2 потенциала, но его текущее значение зависит от предыдущего. Если текущее значение бита “1”, то полученный потенциал должен быть инверсией от предыдущего, если значение бита “0” — такой же.

Поскольку код незащищен от долгих последовательностей “нулей” или “единиц”, то это может привести к проблемам синхронизации. Поэтому перед передачей, заданную последовательность битов рекомендуется предварительно закодировать кодом предусматривающим скремблирование (скремблер предназначен для придания свойств случайности передаваемой последовательности данных с целью облегчения выделения тактовой частоты приемником). Используется в Fast Ethernet 100Base-FX и 100Base-T4.

Системы с трёхуровневым кодированием[править | править исходный текст]

RZ[править | править исходный текст]

Это трехуровневый код. После значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к нулевому уровню. Переход к нему происходит в середине бита. Логическому нулю при этом соответствует положительный импульс, логической единице — отрицательный. Здесь на 1 бит приходится 2 изменения уровня напряжения, поэтому для скорости в 10 Мбит/сек требуется пропускная способность в 10 МГц.

MLT-3[править | править исходный текст]

Пример кодирования MLT-3.

MLT-3 Multi Level Transmission — 3 (многоуровневая передача) — немного схож с кодом NRZI, но в отличие от последнего имеет три уровня сигнала. Единице соответствует переход с одного уровня сигнала на другой, причем изменение уровня сигнала происходит последовательно с учетом предыдущего перехода. При передаче “нуля” сигнал не меняется.

Этот код, так же как и NRZI нуждается в предварительном кодировании. Используется в Fast Ethernet 100Base-TX.

Гибридный троичный код[править | править исходный текст]

Входной бит Предыдущее состояние
на выходе
Выходной бит
0 +
0
0
1 +
0 +

4B3T[править | править исходный текст]

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

MMS 43 coding table
Input Accumulated DC offset
1 2 3 4
0000 + 0 +   (+2) 0−0 (−1)
0001 0 − +   (+0)
0010 + − 0   (+0)
0011 0 0 +   (+1) − − 0   (−2)
0100 − + 0   (+0)
0101 0 + +   (+2) − 0 0   (−1)
0110 − + +   (+1) − − +   (−1)
0111 − 0 +   (+0)
1000 + 0 0   (+1) 0 − −   (−2)
1001 + − +   (+1) − − −   (−3)
1010 + + −   (+1) + − −   (−1)
1011 + 0 −   (+0)
1100 + + +   (+3) − + −   (−1)
1101 0 + 0   (+1) − 0 −   (−2)
1110 0 + −   (+0)
1111 + + 0   (+2) 0 0 −   (−1)

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

Ternary Binary Ternary Binary Ternary Binary
0 0 0 Н/Д − 0 0 0101 + − − 1010
+ 0 + 0000 − + + 0110 + 0 − 1011
0 − 0 0000 − − + 0110 + + + 1100
0 − + 0001 − 0 + 0111 − + − 1100
+ − 0 0010 + 0 0 1000 0 + 0 1101
0 0 + 0011 0 − − 1000 − 0 − 1101
− − 0 0011 + − + 1001 0 + − 1110
− + 0 0100 − − − 1001 + + 0 1111
0 + + 0101 + + − 1010 0 0 − 1111

Системы с четырёхуровневым кодированием[править | править исходный текст]

2B1Q[править | править исходный текст]

Системы с пятиуровневым кодированием[править | править исходный текст]

PAM-5[править | править исходный текст]

Системы с восьмиуровневым кодированием[править | править исходный текст]

PAM-8[править | править исходный текст]

Системы с десятиуровневым кодированием[править | править исходный текст]

PAM-10[править | править исходный текст]

Системы с двенадцатиуровневым кодированием[править | править исходный текст]

PAM-12[править | править исходный текст]

Системы с шестнадцатиуровневым кодированием[править | править исходный текст]

PAM-16[править | править исходный текст]

Источники[править | править исходный текст]

См. также[править | править исходный текст]

Литература[править | править исходный текст]

  1. Фомин С. В. Системы счисления. — 5-е изд. — М.:Наука, Гл. ред. физ.-мат. лит., 1987. — 48 с. — (Попул. лекции по мат.)