Виды и способы кодирование данных
Содержание:
- Общее
- Популярные схемы кодирования, которые применяются в локальных сетях
- Коммутация каналов и пакетов
- Законы и функции булевой алгебры
- Алгоритмы сжатия данных
Общее
Кодирование на двух нижних каналах характеризует метод представления информации сигналами, которые распространяются по среде транспортировки. Кодирование можно рассматривать как двухступенчатое. И ясно, что на принимающей стороне реализуется симметричное декодирование.
Логическое кодирование данных изменяет поток бит созданного кадра МАС-уровня в последовательность символов, которые подлежат физическому кодированию для транспортировки по каналу связи. Для логического кодирования используют разные схемы:
- 4B/5B — каждые 4 бита входного потока кодируются 5-битным символом (табл 1.1). Получается двукратная избыточность, так как 24 = 16 входных комбинаций показываются символами из 25 = 32. Расходы по количеству битовых интервалов составляют: (5-4)/4 = 1/4 (25%). Такая избыточность разрешает определить ряд служебных символов, которые служат для синхронизации. Применяется в 100BaseFX/TX, FDDI
- 8B/10B — аналогичная схема (8 бит кодируются 10-битным символом) но уже избыточность равна 4 раза (256 входных в 1024 выходных).
- 5B/6B — 5 бит входного потока кодируются 6-битными символами. Применяется в 100VG-AnyLAN
- 8B/6T — 8 бит входного потока кодируются шестью троичными (T = ternary) цифрами (-,0,+). К примеру: 00h: +-00+-; 01h: 0+-+=0; Код имеет избыточность 36/28 = 729/256 = 2,85. Скорость транспортировки символов в линию является ниже битовой скорости и их поступления на кодирования. Применяется в 100BaseT4.
- Вставка бит — такая схема работает на исключение недопустимых последовательностей бит. Ее работу объясним на реализации в протоколе HDLC. Тут входной поток смотрится как непрерывная последовательность бит, для которой цепочка из более чем пяти смежных 1 анализируется как служебный сигнал (пример: 01111110 является флагом-разделителем кадра). Если в транслируемом потоке встречается непрерывная последовательность из 1, то после каждой пятой в выходной поток передатчик вставляет 0. Приемник анализирует входящую цепочку, и если после цепочки 011111 он видит 0, то он его отбрасывает и последовательность 011111 присоединяет к остальному выходному потоку данных. Если принят бит 1, то последовательность 011111 смотрится как служебный символ. Такая техника решает две задачи — исключать длинные монотонные последовательности, которые неудобные для самосинхронизации физического кодирования и разрешает опознание границ кадра и особых состояний в непрерывном битовом потоке.
Таблица 1 — Кодирование 4В/5В
Входной символ | Выходной символ |
---|---|
0000 (0) | 11110 |
0001 (1) | 01001 |
0010 (2) | 10100 |
0011 (3) | 10101 |
0100 (4) | 01010 |
0101 (5) | 01011 |
0110 (6) | 01110 |
0111 (7) | 01111 |
1000 (8) | 10010 |
1001 (9) | 10011 |
1010 (A) | 10110 |
1011 (B) | 10111 |
1100 (C) | 11010 |
1101 (D) | 11011 |
1110 (E) | 11100 |
1111 (F) | 11101 |
Служебный символ | Выходной символ |
---|---|
Idle | 11111 |
J | 11000 |
K | 10001 |
T | 01101 |
R | 11001 |
S | 11001 |
Quiet | 00000 |
Halt | 00100 |
Избыточность логического кодирования разрешает облегчить задачи физического кодирования — исключить неудобные битовые последовательности, улучшить спектральные характеристики физического сигнала и др. Физическое/сигнальное кодирование пишет правила представления дискретных символов, результат логического кодирования в результат физические сигналы линии. Физические сигналы могут иметь непрерывную (аналоговую) форму — бесконечное число значений, из которого выбирают допустимое распознаваемое множество. На уровне физических сигналов вместо битовой скорости (бит/с) используют понятие скорость изменения сигнала в линии которая измеряется в бодах (baud). Под таким определением определяют число изменений различных состояний линии за единицу времени. На физическом уровне проходит синхронизация приемника и передатчика. Внешнюю синхронизацию не используют из-за дороговизны реализации еще одного канала. Много схем физического кодирования являются самосинхронизирующимися — они разрешают выделить синхросигнал из принимаемой последовательности состояний канала.
Скремблирование на физическом уровне разрешает подавить очень сильные спектральные характеристики сигнала, размазывая их по некоторой полосе спектра. Очень сильные помеха искажают соседние каналы передачи. При разговоре о физическом кодирировании, возможное использование следующие термины:
- Транзитное кодирование — информативным есть переход из одного состояния в другое
- Потенциальное кодирование — информативным есть уровень сигнала в конкретные моменты времени
- Полярное — сигнал одной полярности реализуется для представления одного значения, сигнал другой полярности для — другого. При оптоволоконное транспортировке вместо полярности используют амплитуды импульса
- Униполярное — сигнал одной полярности реализуется для представления одного значения, нулевой сигнал — для другого
- Биполярное — используется отрицательное, положительное и нулевое значения для представления трех состояний
- Двухфазное — в каждом битовом интервале присутствует переход из одного состояния в другое, что используется для выделения синхросигнала.
Популярные схемы кодирования, которые применяются в локальных сетях
AMI/ABP
AMI — Alternate Mark Inversion или же ABP — Alternate bipolare, биполярная схема, которая использует значения +V, 0V и -V. Все нулевые биты имеют значения 0V, единичные — чередующимися значениями +V, -V (рис.1). Применяется в DSx (DS1 — DS4), ISDN. Такая схема не есть полностью самосинхронизирующейся — длинная цепочка нулей приведет к потере синхронизации.
MAMI
MAMI — Modified Alternate Mark Inversion, или же ASI — модифицированная схема AMI, импульсами чередующейся полярности кодируется 0, а 1 — нулевым потенциалом. Применяется в ISDN (S/T — интерфейсы).
B8ZS
B8ZS — Bipolar with 8 Zero Substitution, схема аналогичная AMI, но для синхронизации исключает цепочки 8 и более нулей ( за счет вставки бит).
HDB3
HDB3 — High Density Bipolar 3, схема аналогичная AMI, но не допускает передачи цепочки более трех нулей. Вместо последовательности из четырех нулей вставляется один из четырех биполярных кодов. (Рис.2)
Манчестерское кодирование
Manchester encoding — двухфазное полярное/униполярное самосинхронизирующееся кодирование. Текущий бит узнается по направлению смены состояния в середине битового интервала: от -V к +V: 1. От +V к -V: 0. Переход в начале интервала может и не быть. Применяется в Ethernet. (В начальных версиях — униполярное). (рис.3)
Дифференциальное манчестерское кодирование
Differential manchester encoding — двухфазное полярное/униполярное самосинхронизирующиеся код. Текущий бит узнается по наличию перехода в начале битового интервала (рис. 4.1), например 0 — есть переход (Вертикальный фрагмент), 1 — нет перехода (горизонтальный фрагмент). Можно и наоборот определять 0 и 1.В середине битового интервала переход есть всегда. Он нужен для синхронизации. В Token Ring применяется измененная версия такой схемы, где кроме бит 0 и 1 определенны также два бита j и k (Рис. 4.2). Здесь нет переходов в середине интервала. Бит К имеет переход в начале интервала, а j — нет.
MLT-3
Трехуровневое кодирование со скремблированием который не самосинхронизуется. Используются уровни (+V, 0, -V) постоянные в линии каждого битового интервала. При передаче 0 значения не меняются, при передаче 1 — меняются на соседние по цепочке +V, 0, -V, 0, +V и тд. (рис. 5). Такая схема является усложнонным вариантом NRZI. Применяется в FDDI и 100BaseTX.
NRZ и NRZI
NRZ — Non-return to zero (без возврата к нулю), биполярная нетранзиктивная схема (состояния меняются на границе), которая имеет 2 варианта. Первый вариант это недифференциальное NRZ (используется в RS-232) состояние напрямую отражает значение бита (рис. 6.а). В другом варианте — дифференциальном, NRZ состояние меняется в начале битового интервала для 1 и не меняется для 0. (рис.6.Б). Привязки 1 и 0 к определенному состоянию нету.
NRZI — Non-return to zero Inverted, измененная схема NRZ (рис. 6.в). Тут состояния изменяются на противоположные в начале битового интервала 0, и не меняются при передаче 1. Возможна и обратная схема представления. Используются в FDDI, 100BaseFX.
RZ
RZ — Return to zero (с возвратом к нулю), биполярная транзитивная самосинхронизирующаяся схема. Состояние в определенный момент битового интервала всегда возвращается к нулю. Имеет дифференциальный/недифференциальный варианты. В дифференциальном привязки 1 и 0 к состоянию нету. (рис. 7.а).
FM 0
FM 0 — Frequency Modulation 0 (частотная модуляция), самосинхронизирующийся полярный код. Меняется на противоположное на границе каждого битового интервала. При передаче 1 в течение битового интервала состояние неизменное. При передаче 0, в середине битового интервала состояние меняется на противоположное. (рис. 8). Используется в LocalTalk.
PAM 5
PAM 5 — Pulse Amplitude Modulation, пятиуровневое биполярное кодирование, где пара бит в зависимости от предыстории оказывается одним из 5 уровней потенциала. Нужен неширокая полоса частот (вдвое ниже битовой скорости). Используется в 1000BaseT.
2B1Q
Здесь пара бит оказывается одним четверичным символом (Quater-nary symbol), где каждому соответствует один из 4 уровней сигнала. В табллице показано представление символов в сети ISDN.
Биты | Четверичный символ | Уровень, В |
---|---|---|
00 | -3 | -2,5 |
01 | -1 | -0,883 |
10 | +3 | +2,5 |
11 | +1 | +0,883 |
4B3T
4B3T — блок из 4 бит (16 состояний) кодируется тремя троичными символами (27 символов). Из множества возможных методов изменений рассмотрим MMS43, который используется в интерфейсе BRI сетей ISDN (таблица). Тут применяются специальные методы для исключения постоянной составляющей напряжения в линии, в следствии чего кодирования ряда комбинаций зависит от предыстории — состояния, где находится кодер. Пример: последовательность бит 1100 1101 будет представлена как: + + + — 0 -.
Двоичный код | S1 | Переход | S2 | Переход | S3 | Переход | S4 | Переход |
---|---|---|---|---|---|---|---|---|
0001 | 0 — + | S1 | 0 — + | S2 | 0 — + | S3 | 0 — + | S4 |
0111 | — 0 + | S1 | — 0 + | S2 | — 0 + | S3 | — 0 + | S4 |
0100 | — + 0 | S1 | — + 0 | S2 | — + 0 | S3 | — + 0 | S4 |
0010 | + — 0 | S1 | + — 0 | S2 | + — 0 | S3 | + — 0 | S4 |
1011 | + 0 — | S1 | + 0 — | S2 | + 0 — | S3 | + 0 — | S4 |
1110 | 0 + — | S1 | 0 + — | S2 | 0 + — | S3 | 0 + — | S4 |
1001 | + — + | S2 | + — + | S3 | + — + | S4 | — — — | S1 |
0011 | 0 0 + | S2 | 0 0 + | S3 | 0 0 + | S4 | — — 0 | S2 |
1101 | 0 + 0 | S2 | 0 + 0 | S3 | 0 + 0 | S4 | — 0 — | S2 |
1000 | + 0 0 | S2 | + 0 0 | S3 | + 0 0 | S4 | 0 — — | S2 |
0110 | — + + | S2 | — + + | S3 | — — + | S2 | — — + | S3 |
1010 | + + — | S2 | + + — | S3 | + — — | S2 | + — — | S3 |
1111 | + + 0 | S3 | 0 0 — | S1 | 0 0 — | S1 | 0 0 — | S3 |
0000 | + 0 + | S3 | 0 — 0 | S1 | 0 — 0 | S2 | 0 — 0 | S3 |
0101 | 0 + + | S3 | — 0 0 | S1 | — 0 0 | S2 | — 0 0 | S3 |
1100 | + + + | S4 | — + — | S1 | — + — | S2 | — + — | S3 |
Итог
Схемы, которые не являются самосинхронизирующими, вместе с логическим кодированием и определением фиксированной длительности битовых интервалов разрешают достигать синхронизации. Старт-бит и стоп-бит служат для синхронизации, а контрольный бит вводит избыточность для повышения достоверности приема.