Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Логическое кодирование



Некоторые разновидности цифрового кодирования очень чувствительны к характеру передаваемых данных. Например, при передаче длинных последовательностей логических нулей посредством потенциального кода типа NRZ или AMI сигнал на линии долгое время не изменяется, и приемник может ошибиться с моментом считывания очередного бита. Для кода NRZ подобные проблемы возникают и при передаче длинных последовательностей логических единиц. Логическое кодирование (которому может подвергаться исходная последовательность данных) должно внедрять в длинные последовательности бит, биты с противоположным значением, или вообще заменять их другими последовательностями. Кроме исключения “проблемных” битовых последовательностей, логическое кодирование позволяет также увеличить кодовое расстояние между символами (для упрощения декодирования), улучшить спектральные характеристики сигнала, а кроме того передавать в общем потоке служебные сигналы. В основном для логического кодирования применяются три группы методов: вставка бит, избыточное кодирование и скремблирование.

Вставка бит (bit stuffing) – наиболее прямолинейный способ исключения длинных последовательностей, например, логических единиц. Если в передаваемой последовательности встречается непрерывная цепочка “1”, то передатчик вставляет “0” после каждой, например, пятой “1”. Приемник отбрасывает все эти лишние “0”, которые встречаются после пяти “1”. Разумеется, можно проводить и обратную операцию – вставку “1” в длинные последовательности “0”. Схема вставки бит применяется, например, в протоколе HDLC.

Избыточное кодирование основано на разбиении исходной последовательности бит на участки одинаковой длины – символы. Затем каждый символ заменяется (как правило, табличным способом) на новый, имеющий либо большее количество бит, либо другое основание системы счисления (например, на символ, состоящий из троичных разрядов). Рассмотрим некоторые распространенные схемы логического кодирования.

Логический код 4B/5B заменяет каждые 4 бита входного потока (исходный символ) на 5-битный выходной символ. Так как количество различных 5-битных символов равно 32, а исходные символы могут содержать лишь одну из 16 битовых комбинаций, среди возможных выходных кодов можно отобрать 16 “удобных” комбинаций – не содержащих большого количества нулей (больше трех подряд), среди оставшихся кодов выделить служебные символы (для поддержания синхронизации, выделения границ кадров и их полей и т.д.), а оставшиеся коды считать запрещенными.

 

Входной символ Выходной символ Входной символ Выходной символ

Табл. 5.1. Код 4B/5B

 

Накладные расходы при кодировании 4B/5B составляют 25% (один лишний бит на четыре бита данных), соответственно для достижения той же пропускной способности, что и без логического кодирования, передатчик должен работать на повышенной на 25% частоте. Код 4B/5B используется в FDDI и Fast Ethernet: 100BaseFX и 100BaseTX.

Логический код 8B/10B заменяет каждый 8-битный исходный символ 10-битным выходным символом. При том же уровне накладных расходов (25%), что в случае кода 4B/5B, обладает 4-кратной избыточностью (1024 выходных символов и 256 исходных символов). При кодировании 8B/10B каждому исходному символу сопоставлено два выходных символа, выбор из которых осуществляется в зависимости от последнего бита предыдущего переданного символа. В результате код обеспечивает стабильное соотношение “0” и “1” в выходном потоке, независимо от исходных данных. Это свойство важно для лазерных передатчиков, поскольку от данного соотношения зависит их нагрев и количество ошибок приема. Код 8B/10B используется в Gigabit Ethernet: 1000BaseSX, 1000BaseLX, 1000BaseCX.

Логический код 8B/6T кодирует каждые 8 бит исходной информации шестью троичными (T – ternary, троичный) разрядами, принимающими значения {+, 0, –}. Например, “00000000” = “+–00+–“, “11111110” = “–+0+00”. Избыточность кода 8B/6T выше, чем у кода 4B/5B и составляет 36/28 = 729/256 = 2,85. Применяется в Fast Ethernet – 100BaseT4.

 

Скремблирование заключается в побитном вычислении выходной последовательности на основании значений бит исходной последовательности и уже вычисленных бит результата. Например, скремблер может вычислять для каждого бита следующее выражение: Bi=AiABi-5A Bi-7, где Ai – i-й бит исходной последовательности, Bi – i-й бит результата скремблирования, A – операция сложения по модулю два. Различные алгоритмы скремблирования отличаются разным количеством слагаемых и разным сдвигом между слагаемыми (в приведенном выше примере используется два слагаемых со сдвигами 5 и 7). Например, в ISDN используется два варианта скремблирования: со сдвигами 5 и 23, и со сдвигами 18 и 23.

Существуют специальные методы скремблирования, применяемые совместно определенными методами физического кодирования. Например, для улучшения кода AMI применяются методы B8ZS и HDB3. Метод B8ZS (Bipolar win 8-Zeros Substitution, биполярный с заменой 8 нулей) заменяет последовательности, состоящие из 8 нулей на “000V10V1”, где V – сигнал единицы запрещенной в данном такте полярности, а 1 – сигнал единицы корректной полярности. Если на 8 тактах приемник наблюдает три начальных нуля и два искажения полярности, то он заменяет эти 8 бит на 8 логических нулей. Метод HDB3 (High-Density Bipolar 3-Zeros, биполярный трех-нулевой высокой плотности) заменяет последовательности из четырех идущих подряд нулей на один из четырех четырехразрядных биполярных кодов в зависимости от предыстории – полярности предыдущего импульса и предыдущей замены.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.