Самосинхронизирующиеся коды
1 1 1 1 1 1 1 1 1 1 Рейтинг 4.64 [7 Голоса (ов)]

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

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

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

Таким образом, хороший цифровой код должен обеспечивать синхронизацию.

Самосинхронизирующиеся коды

Потенциальный код без возвращения к нулю NRZ (NonReturntoZero, NRZ)

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

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

Метод биполярного кодирования с альтернативной инверсией AMI

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

Код AMI частично ликвидирует проблемы постоянной составляющей и отсутствия самосинхронизации, присущие коду NRZ. Это происходит при передаче длинных последовательностей единиц. Длинные же последовательности нулей также опасны для кода AMI.
Дополнительный уровень в коде AMI требует увеличение мощности.

Потенциальный код с инверсией при единице NRZI

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

Для улучшения потенциальных кодов, подобных AMI и NRZI, используются два метода логического кодирования:

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

Биполярный импульсный код

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

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

В локальных сетях до недавнего времени являлся самым распространенным методом кодирования, применяется в технологиях Ethernet и Token Ring.

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

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

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

 сложение по модулю 2

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

Название которого отражает его суть - каждые два бита (2В) передаются за один такт сигналом, имеющим четыре состояния (1Q), Паре бит:

  • 00 - потенциал -2,5 В;
  • 01- потенциал -0,833 В;
  • 11 - потенциал +0,833 В;
  • 10 - потенциал +2,5 В.

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

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