Кодирование передаваемой по сети информации имеет самое непосредственное отношение к соотношению максимально допустимой скорости передачи и пропускной способности используемой среды передачи. Например, при разных кодах предельная скорость передачи по одному и тому же кабелю может отличаться в два раза. От выбранного кода прямо зависят также сложность сетевой аппаратуры и надежность передачи информации.
Некоторые коды, используемые в локальных сетях, показаны на рис. 2.10. Рассмотрим их преимущества и недостатки.
Код NRZ (Non Return to Zero - без возврата к нулю) - это простейший код, представляющий собой практически обычный цифровой сигнал (правда, возможно преобразование на обратную полярность или изменение уровней, соответствующих нулю и единице). К несомненным достоинствам кода NRZ относятся его очень простая реализация (исходный сигнал не надо ни кодировать на передающем конце, ни декодировать на приемном конце), а также минимальная среди других кодов пропускная способность линии связи, требуемая при данной скорости передачи. Пример: наиболее частое изменение сигнала в сети будет при непрерывном чередовании единиц и нулей, то есть при последовательности 1010101010..., поэтому при скорости передачи, равной 10 Мбит/с (длительность одного бита 100 не), частота изменения сигнала и соответственно требуемая пропускная способность линии составит 1 / 200нс = 5 МГц (рис. 2.11).
Самый большой недостаток кода NRZ - это возможность потери синхронизации приемником при приеме слишком длинных блоков (пакетов) информации. Приемник может привязывать момент начала приема только к первому (стартовому) биту пакета, а в течение приема пакета он вынужден пользоваться только собственным внутренним тактовым генератором. Если часы приемника расходятся с часами передатчика в ту или другую сторону, то временной сдвиг к концу приема пакета может превысить длительность одного бита или даже нескольких бит. В результате произойдет потеря переданных данных. Так, при длине пакета в 10000 бит допустимое расхождение часов составит не более 0,01% даже при идеальной передаче формы сигнала по кабелю.
Чтобы избежать потери синхронизации, можно было бы ввести вторую линию связи для синхросигнала (рис. 2.12). Но при этом требуемое количество кабеля увеличивается в два раза, количество приемников и передатчиков также увеличивается в два раза. При большой длине сети и большом количестве абонентов это оказывается невыгодным.
Поэтому код NRZ используется только для передачи короткими пакетами (обычно до 1 Кбита). Для синхронизации начала приема пакета используется стартовый служебный бит, чей уровень отличается от пассивного состояния линии связи (например, пассивное состояние линии при отсутствии передачи - 0, стартовый бит - 1). Наиболее известное применение кода NRZ - стандарт RS232-C, последовательный порт персонального компьютера. Передача информации в нем ведется байтами (8 бит), сопровождаемыми стартовым и стоповым битами.
Код RZ (Return to Zero - с возвратом к нулю) - этот трехуровневый код получил такое название потому, что после значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к некоему «нулевому» уровню (например, к нулевому потенциалу). Переход к нему происходит в середине каждого бита. Логическому нулю, таким образом, соответствует положительный импульс, логической единице -отрицательный (или наоборот) в первой половине битового интервала.
Особенностью кода RZ является то, что в центре бита всегда есть переход (положительный или отрицательный), следовательно, из этого кода приемник может выделить синхроимпульс (строб). В данном случае возможна временная привязка не только к началу пакета, как в случае кода NRZ, но и к каждому отдельному биту, поэтому потери синхронизации не произойдет при любой длине пакета. Такие коды, несущие в себе строб, получили название самосинхронизирующихся.
Недостаток кода RZ состоит в том, что для него требуется вдвое большая полоса пропускания канала при той же скорости передачи по сравнению с NRZ (так как здесь на один бит приходится два изменения уровня напряжения). Например, для скорости передачи информации 10 Мбит/с требуется пропускная способность линии связи 10 МГц, а не 5 МГц, как при коде NRZ.
Код RZ применяется не только в сетях на основе электрического кабеля, но и в оптоволоконных сетях. Поскольку в них не существует положительных и отрицательных уровней сигнала, используется три уровня:
отсутствие света, «средний» свет, «сильный» свет. Это очень удобно: даже когда нет передачи информации, свет все равно присутствует, что позволяет легко определить целостность оптоволоконной линии связи без дополнительных мер (рис. 2.13).
Код Манчестер-11, или манчестерский код, получил наибольшее распространение в локальных сетях. Он также относится к самосинхронизирующимся кодам, но в отличие от кода RZ имеет не три, а всего только два уровня, что способствует его лучшей помехозащищенности. Логическому нулю соответствует положительный переход в центре бита, есть первая половина битового интервала - низкий уровень, вторая половина - высокий, а логической единице соответствует отрицательный переход в центре бита (или наоборот).
Обязательное наличие перехода в центре бита позволяет приемнику кода Манчестер-11 легко выделить из пришедшего сигнала синхросигнал, что дает возможность передавать информацию сколь угодно большими пакетами без потерь из-за рассинхронизации. Допустимое расхождение часов приемника и передатчика может достигать величины 25%. Как и в случае кода RZ, пропускная способность линии требуется в два раза выше, чем при использовании простейшего кода NRZ. Например, для скорости передачи 10 Мбит/с требуется полоса пропускания 10 МГц. Код Манчестер-11 используется как в электрических кабелях, так и отоволоконных кабелях (в последнем случае один уровень соответствует отсутствию света, а другой - наличию света).
Большое достоинство манчестерского кода - отсутствие постоянной составляющей в сигнале (половину времени сигнал положительный, другую половину - отрицательный). Это дает возможность применять для гальванической развязки импульсные трансформаторы. При этом не/требуется дополнительного источника питания для линии связи (как в случае использования оптронной развязки), резко уменьшается влияние низкочастотных помех, которые не проходят через трансформатор, легко решается проблема согласования. Если же один из уровней сигнала в манчестерском коде нулевой (как, например, в сети Ethernet), то величина постоянной составляющей в течение передачи будет равна примерно половине амплитуды сигнала. Это позволяет легко фиксировать столкновения пакетов в сети (конфликт, коллизию) по отклонению величины постоянной составляющей за установленные пределы.
Частотный спектр сигнала при манчестерском кодировании включает в себя только две частоты: при скорости передачи 10 Мбит/с это 10 МГц (соответствует передаваемой цепочке из одних нулей или из одних единиц) и 5 МГц (соответствует последовательности из чередующихся нулей и единиц: 1010101010 ...), поэтому с помощью простейших полосовых фильтров можно легко отфильтровать все другие частоты (помехи, наводки, шумы).
Так же как и в случае кода RZ, при манчестерском кодировании очень просто определить, идет передача или нет, то есть детектировать занятость сети или, как еще говорят, обнаруживать несущую частоту. Для этого достаточно контролировать, происходит ли изменение сигнала в течение битового интервала. Обнаружение несущей частоты необходимо, например, для определения момента начала и конца принимаемого пакета, а также для предотвращения начала передачи в случае занятости сети (когда передает какой-то другой абонент).
Стандартный манчестерский код имеет несколько вариантов, один из которых показан на рис. 2.10. Данный код, в отличие от классического, не зависит от перемены мест двух проводов кабеля. Особенно это удобно в случае, когда для связи используется витая пара, провода которой легко перепутать. Именно этот код используется в одной из самых известных сетей Token-Ring фирмы IBM.
Принцип данного кода прост: в начале каждого битового интервала сигнал меняет уровень на противоположный предыдущему, а в середине единичных (и только единичных) битовых интервалов уровень изменяется еще раз. Таким образом, в начале битового интервала всегда есть переход, который используется для самосинхронизации. Как и в случае классического кода Манчестер-11, в частотном спектре при этом присутствует две частоты. При скорости 10 Мбит/с это частоты 10 МГц (при последовательности одних единиц: 11111111...) и 5 МГц (при последовательности одних нулей: 00000000...).
Здесь же стоит упомянуть о том, что часто совершенно неправомерно считается, что скорость передачи в бодах равняется скорости передачи в битах в секунду. Это верно только в случае кода NRZ. Скорость в бодах характеризует не количество передаваемых бит в секунду, а количество изменений уровня сигнала в секунду. При использовании кодов RZ или Манчестер-11 требуемая скорость в бодах оказывается вдвое выше, чем при коде NRZ, поэтому логичнее измерять скорость передачи по сети не в бодах, а в битах в секунду (бит/с, Кбит/с, Мбит/с).
Все разрабатываемые в последнее время коды призваны найти компромисс между требуемой при заданной скорости передачи полосой пропускания кабеля и возможностью самосинхронизации. Разработчики стремятся сохранить самосинхронизацию, но не ценой двукратного увеличения полосы пропускания.
Чаще всего для этого в поток передаваемых битов добавляют биты синхронизации, например, один бит синхронизации на 4, 5 или 6 информационных битов или два бита синхронизации на 8 информационных битов. Правда, в действительности все обстоит несколько сложнее: кодирование не сводится к простой вставке в передаваемые данные дополнительных битов. Группы информационных битов преобразуются в передаваемые по сети группы с количеством битов на один или два больше. Приемник, естественно, осуществляет обратное преобразование, восстанавливает исходные информационные биты. Довольно просто осуществляется в этом случае и обнаружение несущей частоты (то есть детектирование передачи).
Так, в сети FDDI (скорость передачи 100 Мбит/с) применяется код 4В/5В, который 4 информационных бита преобразует в 5 передаваемых битов. При этом синхронизация приемника осуществляется один раз на 4 бита, а не в каждом бите, как в случае кода Манчестер-11. Требуемая полоса пропускания увеличивается по сравнению с кодом NRZ не в два раза, а только в 1,25 раза (то есть составляет не 100 МГц, а всего лишь 62,5 МГц). По тому же принципу строятся и другие коды, например 5В/6В, используемый в стандартной сети lOOVG-AnyLAN, или 8В/10В, используемый в сети Gigabit Ethernet.
В сегменте 100BASE-T4 сети Fast Ethernet применен несколько иной подход. Там используется код 8В/6Т, предусматривающий параллельную передачу трех трехуровневых сигналов по трем витым парам» Это позволяет достичь скорости передачи 100 Мбит/с на дешевых кабелях с витыми парами категории 3, имеющих полосу пропускания всего лишь 16 МГц (см. табл. 2.1). Правда, это требует большего расхода кабеля и увеличения количества приемников и передатчиков. К тому же принципиально важно, чтобы все провода были одной длины, чтобы задержки сигнала в них не различались на заметную величину.
Подробнее эти коды будут рассмотрены в разделах книги, посвященных конкретным типам существующих сетей.
Все упомянутые коды предусматривают непосредственную передачу в сеть цифровых двух- или трехуровневых прямоугольных импульсов. Однако иногда в сетях используется и другой путь - модуляция информационными импульсами высокочастотного аналогового сигнала. Такое аналоговое кодирование позволяет при переходе на широкополосную передачу существенно увеличить пропускную способность канала связи. К тому же, как уже отмечалось, при прохождении по каналу связи аналогового сигнала (синусоидального) не искажается форма сигнала, а только уменьшается его амплитуда, а в случае цифрового сигнала еще и искажается форма сигнала (см. рис. 2.5).
К самым простым видам аналогового кодирования относятся следующие (рис. 2.14):
• амплитудная модуляция (AM), при которой логической единице соответствует наличие сигнала, а логическому нулю -его отсутствие (или сигнал меньшей амплитуды). Частота сигнала остается постоянной;
• частотная модуляция (ЧМ), при которой логической единице соответствует сигнал более высокой частоты, а логическому нулю - сигнал более низкой частоты (или наоборот). Амплитуда сигнала остается постоянной;
• фазовая модуляция (ФМ), при которой смене логического нуля на логическую единицу и логической единицы на логический нуль соответствует резкое изменение фазы синусоидального сигнала одной и той же частоты и амплитуды.
Чаще всего аналоговое кодирование используется при передаче информации по каналу с узкой полосой пропускания, например по телефонным линиям в глобальных сетях. В локальных сетях оно применяется редко из-за высокой сложности и стоимости как кодирующего, так и декодирующего оборудования.