Код Манчестер-II или манчестерский код получил наибольшее распространение в локальных сетях. Он также относится к самосинхронизирующимся кодам, но в отличие от кода RZ имеет не три, а только два уровня, что обеспечивает лучшую помехозащищенность.

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

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

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

Рисунок.7.3 Двухуровневый код Манчестер-II.

Большое достоинство манчестерского кода - отсутствие постоянной составляющей при передаче длинной последовательности единиц или нулей. Благодаря этому гальваническая развязка сигналов выполняется простейшими способами, например, с помощью импульсных трансформаторов.

Важная характеристика манчестерского кода - отсутствие у сигнала постоянной составляющей при передаче длинной последовательности единиц или нулей. Благодаря этому передатчики и приемники можно “развязать” гальванически с помощью импульсных трансформаторов.

Частотный спектр сигнала при манчестерском кодировании включает только две несущие частоты. Для десятимегабитного протокола - это 10 ММГц при передаче сигнала, состоящего из одних нулей или одних единиц, и 5 ММГц - для сигнала с чередованием нулей и единиц. Поэтому с помощью полосовых фильтров можно легко отфильтровать все другие частоты.

Достоинства манчестерского кода:

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

Недостаток манчестерского кода:

  • как и для кода RZ требуется вдвое больше полоса пропускания, чем при использовании кода NRZ при той же скорости передачи.

Код Манчестер-II нашел применение в оптоволоконных и электропроводных сетях. Самый распространенный протокол локальных сетей Ethernet 10 Мбит/с использует именно этот код.

Итак, для начала поговорим о том, что представляет собой «манчестерское» кодирование.

В «манчестерском» коде единица кодируется переходом сигнала в середине битового интервала из состояния «OFF» в состояние «ON», а ноль — наоборот, переходом сигнала в середине
битового интервала из состояния «ON» в состояние «OFF».

Что такое состояния «ON» и «OFF»?
Состояния сигнала «ON» и «OFF» — это логические состояния. В общем случае «OFF» — это неактивное состояние, такое же, как при отсутствии какого-либо обмена вообще, а «ON» — это активное состояние, то есть такое, которое как-либо отличается от неактивного. Поэтому, несмотря на то, что на картинке справа состояние сигнала «ON» показано высоким уровнем сигнала, а состояние «OFF» показано низким уровнем, это не нужно понимать буквально (просто с высоким и низким уровнем картинка привычнее и нагляднее). На самом деле состояния «ON» и «OFF» могут быть закодированы совершенно по-разному. Например, ИК-пульты кодируют эти состояния наличием или отсутствием импульсов на определённой частоте, интегральные фотоприёмники (у которых чаще всего неактивным является высокий уровень сигнала на выходе) выдают код, в котором «ON» закодировано низким уровнем, а «OFF» — высоким и т.д.

Длительность нуля и единицы в манчестерском кодировании одинаковая, то есть длина сообщения не зависит от того, сколько в сообщении нулей или единиц, а зависит только от общего количества бит.

Ключевым свойством «манчестерского» кодирования является то, что при передаче каждого бита обязательно присутствуют оба состояния сигнала: «ON» и «OFF» (ещё раз смотрим на рисунок вверху). То есть, во время передачи каждого бита сигнал должен хотя бы раз изменить своё состояние. То есть «манчестерский» код может состоять только из интервалов одинарной, если соседние биты одинаковые, и двойной, если соседние биты отличаются, длительности (это продемонстрировано на рисунке слева).

Описанное свойство позволяет дополнительно синхронизировать приёмник с передатчиком при приёме каждого бита, определять — может ли вообще принимаемый код быть «манчестерским», диагностировать конец сообщения или «потерю» сигнала передатчика.

Скажем, если предположить, что частота передатчика не может скачком измениться более чем в 1,5 раза, то отсутствие изменения состояния сигнала в течении 3-х полубит можно смело трактовать как конец сообщения или «потерю» сигнала передатчика (если мы заранее знаем длину сообщения). Или, например, при исследовании какого-то неизвестного кода, если мы видим, что в коде присутствует более двух вариантов интервалов между состояниями «ON» и «OFF», то можно однозначно сделать заключение о том, что исследуемый код не «манчестерский».

Надеюсь, с тем, что такое «манчестерский» код, всё более или менее понятно, поэтому переходим к следующему вопросу — как этот код принимать и декодировать.

Ну, очевидно, что определить начало передачи данных можно по изменению состояния сигнала, воспринимаемого приёмником, с «OFF» на «ON». Однако тут есть один нюанс. Поскольку передача единицы тоже начинается с состояния «OFF», то при первом изменении сигнала из «OFF» в «ON» мы совершенно никак не сможем диагностировать что это — середина передачи единицы или начало передачи нуля. Единственное, что тут можно сделать — это заранее условиться, какой бит должен передаваться первым (то есть ввести специальный старт-бит, значение которого будет всегда строго определено).

Всё, теперь, если мы знаем с какого бита посылка начинается, знаем длительности интервалов состояний «ON» и «OFF», наш приёмник обладает точным, стабильным генератором и мы
точно знаем сколько хотим принять бит, то можно составить первый простейший алгоритм восстановления исходной, закодированной «манчестерским» кодом посылки:

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

Вариант второй. Мы знаем с какого бита посылка начинается, знаем длительности интервалов «ON» и «OFF», наш приёмник обладает стабильным генератором, но мы ничего не знаем о длине сообщения. В этом случае можно воспользоваться тем свойством манчестерского кода, что сигнал не может оставаться постоянным в течении 3-х и более полубит. То есть, момент, когда сигнал в течении 3-х полубит остаётся в состоянии «OFF» можно считать концом сообщения. Алгоритм восстановления исходного кода в этом случае может выглядеть так:

  1. — по изменению состояния сигнала с «OFF» на «ON» определяем начало передачи
  2. — отсчитываем четверть длительности бита (чтобы попасть в середину полубита)
  3. — с этого момента (пусть это будет момент номер 1) и далее, через интервалы, равные длительности полубита, анализируем значение сигнала. Как только
    случится такое, что сигнал в трёх последних замерах будет в состоянии «OFF» — это будет сигнализировать об окончании сообщения. Кроме того, записывая значение сигнала во все моменты с нечетными номерами, кроме последнего, — мы восстановим исходное сообщение.

Вариант третий. Мы знаем с какого бита посылка начинается, но не знаем длительности интервалов, в течении которых сигнал находится в состоянии «ON» и «OFF». Что нам делать в
этом случае? Если вы по счастливой случайности знаете значение не только первого бита, но и второго, — значит вам точно известно, через какие интервалы (через целый бит или через половину)
произойдут первые 2 переключения и вы с лёгкостью можете необходимые интервалы засечь или, научно выражаясь, — синхронизировать приёмник с передатчиком.
(Ага, вот мы и раскусили зачем у целых 2 стартовых бита. Кстати, в сетях ethernet, где тоже используется «манчестерское» кодирование, для начальной синхронизации используется целая 56-битная преамбула).
Далее можно легко воспользоваться первым или вторым из приведённых выше алгоритмов.

Ну и, предположим, ещё один вариант. Мы знаем первые два бита посылки, но наш генератор — полное говно, хотя и работает (или, говоря научными терминами, мы можем гарантировать, что за время, равное длительности полубита, частота генератора не может измениться в 1,5 раза и более). Тут-то как быть?

Да просто надо по каждому новому фронту заново вычислять значения длительности полубита и целого бита. То есть, другими словами, нужно синхронизировать приёмник с передатчиком не один раз в самом начале, а по каждому новому фронту (под фронтом будем понимать переключения между состояниями «ON»/»OFF»), благо при манчестерском кодировании у нас новый фронт присутствует в каждом передаваемом бите.

Короче говоря, рассматривать разные комбинации можно долго, запомните главное преимущество, за которое «манчестерский» код всем так полюбился: при передаче каждого бита существует изменение состояния «ON»/»OFF», которое даёт возможность синхронизировать передатчик и приёмник.

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

Метка EM4100 хранит 64 бита данных, значит, конструкция должна содержать 64-битный сдвиговый регистр, составленный из восьми 8-битных регистров 74HC165. Регистр перезагружается после каждых 64 сдвигов, чтобы сбросить данные и начать сначала. Данные на входах регистра следующие:
  • Паттерн синхронизации: девять единиц
  • Идентификатор производителя/версии: 2 блока по 5 бит, из которых 4 бита - данные, а пятый - четность
  • Уникальный идентификатор: 8 блоков по 5 бит, из которых 4 бита - данные, а пятый - четность
  • Контрольная сумма: 4 бита четности, подсчитанные по столбцам
  • Стоп-бит: «0»

Даже метки с шифрованием уязвимы для множества атак. Кроме того, становится все легче эмулировать метки на смартфонах с поддержкой NFC (которые обычно работают на 13,56 МГц). Просто правильно напишите приложение для модуляции поля, и вы сможете делать все, что хотите.

В качестве стандартной отмазки напомню, что автор (И переводчик! - Прим. перев. ) не несет никакой ответствености за последствия использования информации из данной статьи. Читатель должен сам отвечать за все свои действия.

Корпус

Иногда очень везет. Красивый корпус не помешал бы именно сейчас, когда прототип закончен, а печатная плата заказана. И именно в это время Флеминг закончил собирать и запустил станок лазерной резки OSAA PhotonSaw . После года работы над проектом лазер готов вырезать свои первые детали. Флемминг и Рун делают последние юстировки и ставят на место алюминиевую крышку лазерного шкафа. Вы можете себе представить, как все мы были рады видеть, что эта штука работает.

С работающим станком мы получили возможность протестировать наш проект в реальной жизни. Корпус для нашей RFID-метки сделали из 2-миллиметрового огрстекла. Этот корпус - первый объект, сделанный на PhotonSaw, да!

Родилась идея расположить катушку на внешней стороне корпуса. Сперва было решено использовать половину высоты корпуса, но это не работало на практике (дополнительные отверстия в длинных сторонах, таким образом, не используются). Катушка просто великолепно разместилась по периметру всего корпуса, хотя у меня были сомнения, не будет ли прямоугольная обмотка (105x55 мм) слишком большой для нормальной электромагнитной связи.

Тестовая катушка была намотана, без всяких расчетов, проводом 0,4 мм в 66 витков. И, очевидно, нам опять повезло, потому что катушка получилась точно такой как надо, индуктивностью 645 мкГн, с подключенной меткой давая резонансную частоту 125,2 кГц. Тест на дверном считывателе показал, что прототип работает просто прекрасно с этой катушкой.

С катушкой снаружи корпуса толщину последнего можно уменьшить. Внутренняя толщина теперь зависит только от высоты деталей на плате, и с учетом толщины платы должна составлять около 6 мм. Кроме того, было бы хорошо добавить гравировку. Флемминг предложил скруглить боковые стороны корпуса из эстетических и эргономических соображений. Изогнутый корпус также будет лучше защищать боковые стороны катушки, потому что там, где нет сильного натяжения, витки провода любят вылезать наружу.

Станок PhotonSaw еще не совсем в нормальном состоянии: гравировка на верхней крышке значительно съехала. Необходимо его окончательно отладить перед изготовлением финальной версии корпуса. Изогнутые контуры также подверглись ошибке расчета в программном обеспечении, так как луч не вернулся в начальное положение после прохода замкнутой траектории. Но во всяком случае, кривые выглядят действительно гладкими.

Сборка печатной платы

Прибыла заказанная плата:

Сборка была не очень сложной. На плату по трафарету нанесли паяльную пасту, разместили все детали, а затем запаяли в самодельной печи.

Через разделительную емкость (47 пФ имеют сопротивление примерно 27 кОм на частоте 125 кГц) и защитные диоды ток поступает на шины питания. Энергии, поступающей с катушки, хватает на поддержание напряжения питания около 1 В. Ток может достигать 250-500 мкА. Удивительно, но микросхемы 74HC, похоже, работают при таком питании. К сожалению, при таком напряжении происходят довольно странные вещи. Микросхемы 74HC имеют внутреннюю схему сброса, и нужно убедиться, что она срабатывает. Обратите внимание, что отключение защитных диодов не помогает. На входах микросхем есть внутренние защитные диоды, которые в этом случае открываются и выполняют ту же работу.

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

Симптомы наблюдались следующие: метка работает некоторое время, при этом посылая корректные данные. Если катушку убрать от считывателя, а затем вернуть обратно, можете делать ставки, выключится ли при этом метка. Иногда срабатывает, иногда - нет. Отключение ФАПЧ ухудшает ситуацию. Низкое энергопотребление приводит к тому, что ридер время от времени будет принимать данные от выключенной метки. Вот что значит «энергоэффективная система».

Существует два решения: 1) уменьшить конденсатор в цепи восстановления тактового сигнала до 15 пФ, и 2) включить между питанием и землей резистор 22-100 кОм для сброса лишней энергии. Второй метод приводит к росту утечек во время работы и на самом деле не требуется при уменьшении емкости конденсатора. Тем не менее, он предусмотрен как опция, и это все равно лучше, чем неопределенное состояние микросхем.

Модуляция током или напряжением

Модулятор принес свежую порцию головной боли. Модуляция полностью исчезала при помещении катушки на определенном расстоянии от считывателя. Также это могло случиться при перемещении катушки к ридеру или от него.

Причина оказалась в схеме модулятора. МОП-транзисторы замыкают катушку на резистор определенного сопротивления. Однако, если потребление энергии из контура велико, сопротивление модулятора значительно выше, чем сопротивление цепей питания. Это приводит к тому, что глубина модуляции зависит от потребляемого тока, а это не очень хорошо. Ситуацию ухудшил выбор ограничительного стабилитрона на более низкое напряжение, чем в прототипе.

Было принято решение перевести модулятор из режима модуляции напряжением в режим модуляции током. Для первого режима резистор находился в цепи стока, а теперь он включен между истоком и землей. На этом резисторе будет падать напряжение затвор-исток, пока не останется значение чуть выше порога открывания транзистора (0,9-1,1 В), которое переведет транзистор в линейный режим. Теперь ток через транзистор будет стабильным, независимо от напряжения на стоке.

Тестирование на прототипе показало, что модуляция током работает очень хорошо. Дешевый безымянный считыватель больше не сбоит (ну ладно, может быть один раз на сотню или около того). Можно предположить, что это изменение будет работать чудесно и на других ридерах, и метка теперь, вероятно, сможет работать на большинстве из них.

Законченная версия 1

Можно заметить внесенные изменения на печатной плате. У меня не было 15 пФ SMD-конденсатора, пришлось впаять обычный, с ногами. Модулятор оброс дополнительными резисторами на истоках транзисторов. В целом приемлемо для первой версии.

(картинки кликабельны)





Видео-демонстрация

Заключение

Вы можете подумать, что этот проект, собранный на логике 7400, можно отнести к ретро-схемотехнике, но это не совсем так. Во-первых, современное семейство 74HC не такое уж и старое. Во-вторых, низкопотребляющие схемы всегда актуальны. В-третьих, микросхемы одиночных логических элементов (такие, как использованный триггер Шмитта) часто используются в современных разработках. Часто забывают, что развитие технологий не прекращается и для старых семейств микросхем. Они просто стали менее заметны на фоне общего разнообразия.

Аналоговая часть оказалась сложнее в разработке, чем цифровая. Частично из-за отсутствия спецификаций, но в основном, за счет множества компромиссов, необходимых для соответствия параметрам, и непредвиденных побочных эффектов. Цифровые конструкции имеют относительно мало вариантов, в то время как аналоговые обычно требуют баланса между различными (и часто противоположными) критериями.

Я должен признаться, что микросхемы 74HC сделаны очень, очень хорошо. Разработчики знали, что они делают, и достигли очень низкого энергопотребления. Сперва у меня были некоторые сомнения, сможет ли метка работать от пассивного питания, но после прочтения спецификаций это осталось лишь вопросом правильной схемотехники. Хотя, есть еще возможности для оптимизации различных частей метки.

Теперь посмотрим, как этот проект покажет себя на конкурсе 7400 2012 года. Подача заявок на конкурс заканчивается 31 ноября. Пожелаем автору удачи! - Прим. перев.

Теги: Добавить метки

Манчестерский код

В локальных сетях до недавнего времени самым распространенным методом кодирования был так называемый манчестерский код (рис. 2.16, г). Он применяется в технологиях Ethernet и Token Ring.

В манчестерском коде для кодирования единиц и нулей используется перепад потенциала, то есть фронт импульса. При манчестерском кодировании каждый такт делится на две части. Информация кодируется перепадами потенциала, происходящими в середине каждого такта. Единица кодируется перепадом от низкого уровня сигнала к высокому, а ноль - обратным перепадом. В начале каждого такта может происходить служебный перепад сигнала, если нужно представить несколько единиц или нулей подряд. Так как сигнал изменяется по крайней мере один раз за такт передачи одного бита данных, то манчестерский код обладает хорошими самосинхронизирующими свойствами. Полоса пропускания манчестерского кода уже, чем у биполярного импульсного. У него также нет постоянной составляющей, а основная гармоника в худшем случае (при передаче последовательности единиц или нулей) имеет частоту N Гц, а в лучшем (при передаче чередующихся единиц и нулей) она равна N/2 Гц, как и у кодов AMI или NRZ. В среднем ширина полосы манчестерского кода в полтора раза уже, чем у биполярного импульсного кода, а основная гармоника колеблется вблизи значения 3N/4. Манчестерский код имеет еще одно преимущество перед биполярным импульсным кодом. В последнем для передачи данных используются три уровня сигнала, а в манчестерском - два.

Потенциальный код 2B1Q

На рис. 2.16, д показан потенциальный код с четырьмя уровнями сигнала для кодирования данных. Это код 2B1Q , название которого отражает его суть - каждые два бита (2В) передаются за один такт сигналом, имеющим четыре состояния (1Q), Паре бит 00 соответствует потенциал -2,5 В, паре бит 01 соответствует потенциал -0,833 В, паре 11 - потенциал +0,833 В, а паре 10 - потенциал +2,5 В. При этом способе кодирования требуются дополнительные меры по борьбе с длинными последовательностями одинаковых пар бит, так как при этом сигнал превращается в постоянную составляющую. При случайном чередовании бит спектр сигнала в два раза уже, чем у кода NRZ, так как при той же битовой скорости длительность такта увеличивается в два раза. Таким образом, с помощью кода 2B1Q можно по одной и той же линии передавать данные в два раза быстрее, чем с помощью кода AMI или NRZI. Однако для его реализации мощность передатчика должна быть выше, чтобы четыре уровня четко различались приемником на фоне помех.

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

Логическое кодирование используется для улучшения потенциальных кодов типа AMI, NRZI или 2Q1B. Логическое кодирование должно заменять длинные последовательности бит, приводящие к постоянному потенциалу, вкраплениями единиц. Как уже отмечалось выше, для логического кодирования характерны два метода - избыточные коды и скрэмблирование.

Избыточные коды

Избыточные коды основаны на разбиении исходной последовательности бит на порции, которые часто называют символами. Затем каждый исходный символ заменяется на новый, который имеет большее количество бит, чем исходный. Например, логический код 4В/5В, используемый в технологиях FDDI и Fast Ethernet, заменяет исходные символы длиной в 4 бита на символы длиной в 5 бит. Так как результирующие символы содержат избыточные биты, то общее количество битовых комбинаций в них больше, чем в исходных. Так, в коде 4В/5В результирующие символы могут содержать 32 битовых комбинации, в то время как исходные символы - только 16. Поэтому в результирующем коде можно отобрать 16 таких комбинаций, которые не содержат большого количества нулей, а остальные считать запрещенными кодами (code violation) . Кроме устранения постоянной составляющей и придания коду свойства самосинхронизации, избыточные коды позволяют приемнику распознавать искаженные биты. Если приемник принимает запрещенный код, значит, на линии произошло искажение сигнала.

Соответствие исходных и результирующих кодов 4В/5В представлено ниже.

Код 4В/5В затем передается по линии с помощью физического кодирования по одному из методов потенциального кодирования, чувствительному только к длинным последовательностям нулей. Символы кода 4В/5В длиной 5 бит гарантируют, что при любом их сочетании на линии не могут встретиться более трех нулей подряд.

Буква В в названии кода означает, что элементарный сигнал имеет 2 состояния - от английского binary - двоичный. Имеются также коды и с тремя состояниями сигнала, например, в коде 8В/6Т для кодирования 8 бит исходной информации используется код из 6 сигналов, каждый из которых имеет три состояния. Избыточность кода 8В/6Т выше, чем кода 4В/5В, так как на 256 исходных кодов приходится 3 6 =729 результирующих символов.

Использование таблицы перекодировки является очень простой операцией, поэтому этот подход не усложняет сетевые адаптеры и интерфейсные блоки коммутаторов и маршрутизаторов.

Для обеспечения заданной пропускной способности линии передатчик, использующий избыточный код, должен работать с повышенной тактовой частотой. Так, для передачи кодов 4В/5В со скоростью 100 Мб/с передатчик должен работать с тактовой частотой 125 МГц. При этом спектр сигнала на линии расширяется по сравнению со случаем, когда по линии передается чистый, не избыточный код. Тем не менее спектр избыточного потенциального кода оказывается уже спектра манчестерского кода, что оправдывает дополнительный этап логического кодирования, а также работу приемника и передатчика на повышенной тактовой частоте.

Скрэмблирование

Перемешивание данных скрэмблером перед передачей их в линию с помощью потенциального кода является другим способом логического кодирования.

Методы скрэмблирования заключаются в побитном вычислении результирующего кода на основании бит исходного кода и полученных в предыдущих тактах бит результирующего кода. Например, скрэмблер может реализовывать следующее соотношение:

где Bi - двоичная цифра результирующего кода, полученная на i-м такте работы скрэмблера, Ai - двоичная цифра исходного кода, поступающая на i-м такте на вход скрэмблера, Bi-з и Bi-5 - двоичные цифры результирующего кода, полученные на предыдущих тактах работы скрэмблера, соответственно на 3 и на 5 тактов ранее текущего такта, - операция исключающего ИЛИ (сложение по модулю 2). Например, для исходной последовательности 110110000001 скрэмблер даст следующий результирующий код: B1 = А1 = 1 (первые три цифры результирующего кода будут совпадать с исходным, так как еще нет нужных предыдущих цифр)

Таким образом, на выходе скрэмблера появится последовательность 110001101111, в которой нет последовательности из шести нулей, присутствовавшей в исходном коде.

После получения результирующей последовательности приемник передает ее дескрэмблеру, который восстанавливает исходную последовательность на основании обратного соотношения:

Различные алгоритмы скрэмблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сети к абоненту используется преобразование со сдвигами в 5 и 23 позиции, а при передаче данных от абонента в сеть - со сдвигами 18 и 23 позиции.

Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скрэмблирования.

Для улучшения кода Bipolar AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами.

На рис. 2.17 показано использование метода B8ZS (Bipolar with 8-Zeros Substitution) и метода HDB3 (High-Density Bipolar 3-Zeros) для корректировки кода AMI. Исходный код состоит из двух длинных последовательностей нулей: в первом случае - из 8, а во втором - из 5.

Рис. 2.17. Коды B8ZS и HDB3. V - сигнал единицы запрещенной полярности; 1*-сигнал единицы корректной полярности, но заменившей 0 в исходном коде

Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-1*-0-V-1*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* - сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль. В результате на 8 тактах приемник наблюдает 2 искажения - очень маловероятно, что это случилось из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их на исходные 8 нулей. Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр.

Лекция 4: Модель OSI

  1. Уровни и процесс связи в модели OSI

  2. Взаимодействие уровней в процессе связи

Для единого представления данных в сетях с неоднородными устройствами и программным обеспечением международная организация по стандартам ISO (International Standardization Organization) разработала базовую модель связи открытых систем OSI (Open System Interconnection). Эта модель описывает правила и процедуры передачи данных в различных сетевых средах при организации сеанса связи. Основными элементами модели являются уровни, прикладные процессы и физические средства соединения. На рис. 2.1 представлена структура базовой модели. Каждый уровень модели OSI выполняет определенную задачу в процессе передачи данных по сети. Базовая модель является основой для разработки сетевых протоколов. OSI разделяет коммуникационные функции в сети на семь уровней, каждый из которых обслуживает различные части процесса области взаимодействия открытых систем.

Рис. 2.1 Модель OSI

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

Взаимодействие уровней модели OSI

Модель OSI можно разделить на две различных модели, как показано на рис.2.2:

    горизонтальную модель на базе протоколов, обеспечивающую механизм взаимодействия программ и процессов на различных машинах;

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

Рис. 2.2 Схема взаимодействия компьютеров в базовой эталонной модели OSI

Каждый уровень компьютера–отправителя взаимодействует с таким же уровнем компьютера-получателя, как будто он связан напрямую. Такая связь называется логической или виртуальной связью. В действительности взаимодействие осуществляется между смежными уровнями одного компьютера.

Итак, информация на компьютере-отправителе должна пройти через все уровни. Затем она передается по физической среде до компьютера–получателя и опять проходит сквозь все слои, пока не доходит до того же уровня, с которого она была послана на компьютере-отправителе.

В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной модели соседние уровни обмениваются данными с использованием интерфейсов прикладных программ API (Application Programming Interface).

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

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

Рис. 2.3 Формирование пакета каждого уровня семиуровневой модели

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

Отдельные уровни модели OSI удобно рассматривать как группы программ , предназначенных для выполнения конкретных функций . Один уровень, к примеру, отвечает за обеспечение преобразования данных из ASCII в EBCDIC и содержит программы необходимые для выполнения этой задачи.

Каждый уровень обеспечивает сервис для вышестоящего уровня, запрашивая в свою очередь, сервис у нижестоящего уровня. Верхние уровни запрашивают сервис почти одинаково: как правило, это требование маршрутизации каких-то данных из одной сети в другую. Практическая реализация принципов адресации данных возложена на нижние уровни.

Рассматриваемая модель определяет взаимодействие открытых систем разных производителей в одной сети. Поэтому она выполняет для них координирующие действия по:

    взаимодействию прикладных процессов;

    формам представления данных;

    единообразному хранению данных;

    управлению сетевыми ресурсами;

    безопасности данных и защите информации;

    диагностике программ и технических средств.

На рис. 2.4 приведено краткое описание функций всех уровней.

Рис. 2.4 Функции уровней

Прикладной уровень (Application layer)

Прикладной уровень обеспечивает прикладным процессам средства доступа к области взаимодействия, является верхним (седьмым) уровнем и непосредственно примыкает к прикладным процессам. В действительности прикладной уровень – это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например с помощью протокола электронной почты . Специальные элементы прикладного сервиса обеспечивают сервис для конкретных прикладных программ, таких как программы пересылки файлов и эмуляции терминалов. Если, например программе необходимо переслать файлы, то обязательно будет использован протокол передачи, доступа и управления файлами FTAM (File Transfer, Access, and Management). В модели OSI прикладная программа , которой нужно выполнить конкретную задачу (например, обновить базу данных на компьютере), посылает конкретные данные в виде Дейтаграммы на прикладной уровень . Одна из основных задач этого уровня - определить, как следует обрабатывать запрос прикладной программы, другими словами, какой вид должен принять данный запрос.

Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message).

Прикладной уровень выполняет следующие функции:

Описание форм и методов взаимодействия прикладных процессов.

    Выполнение различных видов работ.

    передача файлов;

    управление заданиями;

    управление системой и т.д.

    Идентификация пользователей по их паролям, адресам, электронным подписям;

    Определение функционирующих абонентов и возможности доступа к новым прикладным процессам;

    Определение достаточности имеющихся ресурсов;

    Организация запросов на соединение с другими прикладными процессами;

    Передача заявок представительскому уровню на необходимые методы описания информации;

    Выбор процедур планируемого диалога процессов;

    Управление данными, которыми обмениваются прикладные процессы и синхронизация взаимодействия прикладных процессов;

    Определение качества обслуживания (время доставки блоков данных, допустимой частоты ошибок);

    Соглашение об исправлении ошибок и определении достоверности данных;

    Согласование ограничений, накладываемых на синтаксис (наборы символов, структура данных).

Указанные функции определяют виды сервиса, которые прикладной уровень предоставляет прикладным процессам. Кроме этого, прикладной уровень передает прикладным процессам сервис, предоставляемый физическим, канальным, сетевым, транспортным, сеансовым и представительским уровнями.

На прикладном уровне необходимо предоставить в распоряжение пользователей уже переработанную информацию. С этим может справиться системное и пользовательское программное обеспечение.

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

К числу наиболее распространенных протоколов верхних трех уровней относятся:

    FTP (File Transfer Protocol) протокол передачи файлов;

    TFTP (Trivial File Transfer Protocol) простейший протокол пересылки файлов;

    X.400 электронная почта;

    Telnet работа с удаленным терминалом;

    SMTP (Simple Mail Transfer Protocol) простой протокол почтового обмена;

    CMIP (Common Management Information Protocol) общий протокол управления информацией;

    SLIP (Serial Line IP) IP для последовательных линий. Протокол последовательной посимвольной передачи данных;

    SNMP (Simple Network Management Protocol) простой протокол сетевого управления;

    FTAM (File Transfer, Access, and Management) протокол передачи, доступа и управления файлами.

Уровень представления данных (Presentation layer)

Уровень представления данных или представительский уровень представляет данные, передаваемые между прикладными процессами, в нужной форме данные.

Этот уровень обеспечивает то, что информация, передаваемая прикладным уровнем, будет понятна прикладному уровню в другой системе. В случаях необходимости уровень представления в момент передачи информации выполняет преобразование форматов данных в некоторый общий формат представления, а в момент приема, соответственно, выполняет обратное преобразование. Таким образом, прикладные уровни могут преодолеть, например, синтаксические различия в представлении данных. Такая ситуация может возникнуть в ЛВС с неоднотипными компьютерами (IBM PC и Macintosh ), которым необходимо обмениваться данными. Так, в полях баз данных информация должна быть представлена в виде букв и цифр, а зачастую и в виде графического изображения. Обрабатывать же эти данные нужно, например, как числа с плавающей запятой.

В основу общего представления данных положена единая для всех уровней модели система ASN.1. Эта система служит для описания структуры файлов, а также позволяет решить проблему шифрования данных. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которым секретность обмена данными обеспечивается сразу для всех прикладных сервисов. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP. Этот уровень обеспечивает преобразование данных (кодирование, компрессия и т.п.) прикладного уровня в поток информации для транспортного уровня.

Представительный уровень выполняет следующие основные функции:

    Генерация запросов на установление сеансов взаимодействия прикладных процессов.

    Согласование представления данных между прикладными процессами.

    Реализация форм представления данных.

    Представление графического материала (чертежей, рисунков, схем).

    Засекречивание данных.

    Передача запросов на прекращение сеансов.

Протоколы уровня представления данных обычно являются составной частью протоколов трех верхних уровней модели.

Сеансовый уровень (Session layer)

Сеансовый уровень – это уровень, определяющий процедуру проведения сеансов между пользователями или прикладными процессами.

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

Сеансовый уровень управляет передачей информации между прикладными процессами, координирует прием, передачу и выдачу одного сеанса связи. Кроме того, сеансовый уровень содержит дополнительно функции управления паролями, управления диалогом, синхронизации и отмены связи в сеансе передачи после сбоя вследствие ошибок в нижерасположенных уровнях. Функции этого уровня состоят в координации связи между двумя прикладными программами, работающими на разных рабочих станциях. Это происходит в виде хорошо структурированного диалога. В число этих функций входит создание сеанса, управление передачей и приемом пакетов сообщений во время сеанса и завершение сеанса.

На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:

    полудуплексной (процессы будут передавать и принимать данные по очереди);

    дуплексной (процессы будут передавать данные, и принимать их одновременно).

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

Сеансовый уровень обеспечивает выполнение следующих функций:

    Установление и завершение на сеансовом уровне соединения между взаимодействующими системами.

    Выполнение нормального и срочного обмена данными между прикладными процессами.

    Управление взаимодействием прикладных процессов.

    Синхронизация сеансовых соединений.

    Извещение прикладных процессов об исключительных ситуациях.

    Установление в прикладном процессе меток, позволяющих после отказа либо ошибки восстановить его выполнение от ближайшей метки.

    Прерывание в нужных случаях прикладного процесса и его корректное возобновление.

    Прекращение сеанса без потери данных.

    Передача особых сообщений о ходе проведения сеанса.

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

Транспортный уровень (Transport Layer).

Транспортный уровень предназначен для передачи пакетов через коммуникационную сеть. На транспортном уровне пакеты разбиваются на блоки.

На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Работа транспортного уровня заключается в том, чтобы обеспечить приложениям или верхним уровням модели (прикладному и сеансовому) передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

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

В функции транспортного уровня входят:

    Управление передачей по сети и обеспечение целостности блоков данных.

    Обнаружение ошибок, частичная их ликвидация и сообщение о неисправленных ошибках.

    Восстановление передачи после отказов и неисправностей.

    Укрупнение или разделение блоков данных.

    Предоставление приоритетов при передаче блоков (нормальная или срочная).

    Подтверждение передачи.

    Ликвидация блоков при тупиковых ситуациях в сети.

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

Наиболее распространенные протоколы транспортного уровня включают в себя:

    TCP (Transmission Control Protocol) протокол управления передачей стека TCP/IP;

    UDP (User Datagram Protocol) пользовательский протокол дейтаграмм стека TCP/IP;

    NCP (NetWare Core Protocol) базовый протокол сетей NetWare;

    SPX (Sequenced Packet eXchange) упорядоченный обмен пакетами стека Novell;

    TP4 (Transmission Protocol) – протокол передачи класса 4.

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

Единица кодируется перепадом от высокого уровня сигнала к низкому, а ноль - обратным перепадом. В начале такта может происходить служебный перепад сигнала (при передаче несколько единиц или нулей подряд).

Рассмотрим частные случаи кодирования, как в предыдущих случаях.

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

Сигнал не содержит постоянную составляющую, частота основной гармоники сигнала находится в интервале от fо=N/2 Гц до fо=N Гц, изменяясь в зависимости от вида битового потока.

Манчестерское кодирование использовалось в ранних версиях технологии Ethernet со скоростью передачи 10 Мбит/с.

Дифференциальный манчестерский код (Differential Manchester)

Логические значения «0» и «1» передаются соответственно наличием или отсутствием смены уровня сигнала в начале тактового (битового) интервала. В середине битового интервала имеет место обязательная смена значения сигнала.

Дифференциальное манчестерское кодирование

Этот код обладает теми же самыми преимуществами и недостатками, что и манчестерский .

Из всех рассмотренных нами кодов манчестерское кодирование обладает лучшей самосинхронизацией, поскольку перепад сигнала происходит минимум один раз за такт.

Манчестерский код используется в сетях Ethernet со скоростью передачи 10 Мбит/с (10Bаsе-Т). Дифференциальный манчестерский код – в сетях с технологией Token Ring.

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

Код с возвратом к нулю rz (Return to Zero)

Бит «1» - импульс одной полярности в первой половине битового интервала, во второй половине битового интервала сигнал имеет нулевой потенциал.

Бит «0» – импульс другой полярности в первой половине битового интервала, во второй половине битового интервала сигнал имеет нулевой потенциал. Код имеет хорошие синхронизирующие свойства.

Для этого кода битовый интервал
.

Код с инверсией кодовых значений cmi.

При этом методе передачи бит 1 представляется по правилам квазитроичного кодирования, а бит 0 - в виде двух импульсов противоположной полярности со сменой знака посередине. Код также обладает хорошими синхронизирующими свойствами.

Потенциальный код 2b1q

Это потенциальный код с четырьмя уровнями сигнала для кодирования данных. Название отражает суть кодирования – каждые два бита () передаются за один такт сигналом определенного уровня (1Q ) . Линейный сигнал имеет четыре состояния. Другими словами, скорость передачи информации N при этом методе кодирования в два раза больше скорости модуляции В.

Кодирование 2B1Q

Сигнал в коде 2B1Q

На рисунке изображен сигнал, соответствующий последовательности бит: 01 01 10 00. Основная частота сигнала в коде 2B1Q не превышает значения fо=N/4 Гц.

Однако для реализации этого метода кодирования мощность передатчика должна быть выше, чтобы четыре значения потенциала четко различались приемником на фоне помех.

Код MLT3 (Multi Level Transmission - 3) .

Используются три уровня передачи: «-1», «0», «+1».

Единице соответствует обязательный переход с одного уровня сигнала на другой на границе тактового интервала.

Нулю соответствует отсутствие изменения уровня линейного сигнала.

При передаче последовательности единиц период изменения уровня сигнала включает четыре бита. В этом случае fо=N/4 Гц. Это максимальная основная частота сигнала в коде MLT-3. В случае чередующейся последовательности нулей и единиц основная гармоника сигнала находится на частоте fо=N/8 Гц , что в два раза меньше чем у кода NRZI .

Сигнал в коде MLT-3

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

Логическое кодирование выполняется передатчиком до физического кодирования, рассмотренного выше, средствами канального или физического уровня . На этапе логического кодирования борются с недостатками методов физического цифрового кодирования - отсутствие синхронизации , наличие постоянной составляющей . Таким образом, сначала с помощью средств логического кодирования формируются исправленные битовые последовательности, которые потом с помощью простых методов физического кодирования передаются по линиям связи.

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

Различают два метода логического кодирования :

- кодированиеизбыточным кодом ;

- скремблирование.

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

Логический код 4В/5В заменяет исходные группы длиной в 4 бита кодовыми словами длиной в 5 бит. В результате общее количество возможных битовых комбинаций для них (2 5 =32) больше, чем для исходных групп (2 4 =16). Поэтому в кодовую таблицу можно включить 16 таких комбинаций, которые не содержат более двух нулей подряд , и использовать их для передачи данных. Код гарантирует, что при любом сочетании кодовых слов на линии не могут встретиться более трех нулей подряд.

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

Линейный код

Символ

Исходная группа

Логическое кодирование 4В/5В используется в сетях Ethernet со скоростью передачи 100МБит/с:

    в сочетании с кодом NRZI (спецификация 100Base FX, среда передачи - оптоволокно);

    в сочетании с кодом MLT-3 (спецификация 100Base TX, среда передачи UTP Cat 5e).

Имеются также коды и с тремя состояниями сигнала, например, в коде 8В/6Т для кодирования 8 бит исходной информации используются кодовые слова троичного кода из 6 элементов. Каждый элемент может принимать одно из трех значений (+1, 0, -1). Избыточность кода 8В/6Т выше, чем кода 4В/5В , так как на 2 8 = 256 исходных символов приходится 3 6 =729 результирующих кодовых слов. Этот метод кодирования используется в спецификации 100Base T4 – при организации 100Мбит/с Ethernet по кабелю UTP Cat3 (устаревшая спецификация). Здесь для передачи битового потока одновременно используются 3 витые пары. Скорость передачи информации по каждой паре составляет N=100 Мбит/с / 3 = 33,3 Мбит/с, скорость модуляции линейного сигнала равна 25 М Бод (8:6=1,33; 33,3:1,33=25), что позволяет использовать неэкранированную витую пару UTP Cat3.

В коде 8B/10В каждые 8 бит исходной последовательности заменяются десятью битами кодового слова. При этом на 256 исходных комбинаций приходится 1024 результирующих комбинаций. При замене в соответствии с кодовой таблицей соблюдаются следующие правила:

      ни одна результирующая комбинация (кодовое слово) не должна иметь более 4-х одинаковых бит подряд;

      ни одна результирующая комбинация не должна содержать более 6 нулей или 6 единиц;

Код 8B/10В(+NRZI) используется в стандарте Gigabit Ethernet 1000Base-Х (когда в качестве среды передачи данных используется оптоволокно).

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

Для обеспечения заданной пропускной способности N Бит/с передатчик, использующий избыточный код, должен работать с повышенной тактовой частотой. Так, для передачи сигнала в коде 4В/5В со скоростью передачи информации N=100 Мбит/с, передатчик должен работать с тактовой частотой 125 МГц (то есть B =125 МБод) . При этом спектр линейного сигнала расширяется. Тем не менее, спектр сигнала избыточного потенциального кода оказывается уже спектра сигнала в манчестерском коде , что оправдывает дополнительный этап логического кодирования, а также работу приемника и передатчика на повышенной тактовой частоте.

Скремблирование представляет собой такое "перемешивание" исходной битовой последовательности, при котором вероятность появления единиц и нулей на входе модуля физического кодирования становится близкой 0,5. Устройства (или программные модули), выполняющие такую операцию, называются скремблерами (scramble - свалка, беспорядочная сборка) .

Схема включения скремблера в канал связи

Скремблер в передатчике выполняет преобразование структуры исходного цифрового потока. Дескремблер в приемнике восстанавливает исходную последовательность бит. Практически единственной операцией, используемой в скремблерах и дескремблерах, является XOR - "побитное исключающее ИЛИ" (сложение по модулю 2) .

Основная часть скремблера и дескремблера – это генератор псевдослучайной последовательности (ПСП) в виде К-разрядного регистра сдвига с обратными связями.

Различают 2 основных типа пар скремблеров – дескремблеров:

    самосинхронизирующиеся;

    с начальной установкой (аддитивные).

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

Вариант реализации скремблирования в самосинхронизирующейся схеме.

Пусть, например, скремблер реализует соотношение В i =A i +B i -5 +B i -7 .

Здесь Bi – двоичная цифра результирующего кода, полученная на i-м такте работы скремблера; Ai – двоичная цифра исходного кода, поступающая в передатчике на вход скремблера на i-м такте; B i -5 и B i -7 – двоичные цифры результирующего кода, полученные на предыдущих тактах работы скремблера, соответственно на «i-5» и «i-7» тактах.

Дескремблер в приемнике восстанавливает исходную последовательность, используя соотношение

C i =B i +B i-5 +B i-7 =(A i +B i-5 +B i-7)+B i-5 +B i-7 =A i

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