Технология 1000Base-T на физическом уровне

Сергей Пахомов

Код NRZ

Код NRZI

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

Код МLТ-3

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

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

Кодирование PAM-5

Треллис-кодирование

Декодер Витерби

Треллис-кодирование 4D/PAM-5

 

Стандарт Gigabit Ethernet с использованием в качестве среды передачи данных кабеля 5-й категории (неэкранированная витая пара), описанный в разделе IEEE 802.3ab, был окончательно утвержден 28 июня 1999 года.

Прошло время, и сейчас уже можно говорить, что гигабитный Ethernet по «меди» прочно вошел в историю развития локальных сетей. Резкое падение цен как на гигабитные сетевые адаптеры 1000Base-T, так и на гигабитные модули к коммутаторам постепенно привело к тому, что установка подобных адаптеров в серверы становится стандартом де-факто. К примеру, некоторые производители серверов уже стали интегрировать гигабитные адаптеры 1000Base-T на серверные материнские платы, а количество компаний, производящих такие адаптеры, в начале этого года достигло 25. Кроме того, стали выпускаться и адаптеры, предназначенные для установки в рабочие станции (они отличаются тем, что рассчитаны на 32-битную 33-мегагерцевую PCI-шину). Все это позволяет с уверенностью говорить, что через год-два гигабитные сетевые адаптеры станут столь же распространенными, как сейчас адаптеры Fast Ethernet.

Рассмотрим принципиальные нововведения, воплощенные в стандарте IEEE 802.3ab и позволившие достичь столь высокой скорости передачи, при сохранении неизменным максимального расстояния между двумя компьютерами в 100 м, как это было в стандарте Fast Ethernet.

Прежде всего напомним, что сетевые адаптеры работают на физическом и канальном уровнях семиуровневой модели OSI (Open System Interconnection). Канальный уровень принято разделять на два подуровня: MAC и LCC. Подуровень MAC (Media Access Control) — это подуровень управления доступом к среде передачи данных, обеспечивающий корректное совместное использование общей разделяемой среды передачи данных, предоставляя ее в соответствии с определенным алгоритмом в распоряжение той или иной станции. Подуровень LCC (Logical Link Control) отвечает за передачу кадров между узлами с различной степенью надежности, а также реализует функции интерфейса с прилегающим к нему третьим (сетевым) уровнем.

Все отличия между Ethernet и Fast Ethernet сосредоточены только на физическом уровне. При этом MAC и LCC не претерпели каких-либо изменений.

Физический уровень можно условно разделить на три элемента: уровень согласования, независимый от среды интерфейс (Media Independent Interface, MII) и устройство физического уровня (Physical layer device, PHY). Устройство физического уровня также можно поделить на несколько подуровней: подуровень физического кодирования, подуровень физического присоединения (Physical Medium Attachment), подуровень зависимости физической среды (Physical Medium Dependent) и подуровень автопереговоров о скорости передачи данных (Auto-Negotiation).

Если отличия между Ethernet и Fast Ethernet минимальны и не затрагивают MAC-уровня, то при разработке стандарта Gigabit Ethernet 1000Base-T разработчикам пришлось не только внести изменения в физический уровень, но и затронуть MAC-уровень (рис. 1).

Тем не менее между всеми тремя технологиями осталось много общего. Прежде всего это метод доступа к среде передачи данных CSMA/CD, полудуплексный и полнодуплексный режимы работы, а также форматы кадров Ethernet. В то же время использование витой пары кабеля 5-й категории потребовало внести серьезные изменения в реализацию физического уровня адаптера.

Первой проблемой реализации скорости 1 Гбит/с стало обеспечение приемлемого диаметра сети при работе в полудуплексном режиме работы. Как известно, минимальный размер кадра в сетях Ethernet и Fast Ethernet составляет 64 байта. Однако размер кадра в 64 байта при скорости передачи в 1 Гбайт/с приводит к тому, что для надежного распознавания коллизий необходимо, чтобы максимальный диаметр сети (расстояние между двумя наиболее удаленными друг от друга компьютерами) составлял не более 25 м. Дело в том, что успешное распознавание коллизий возможно только в том случае, если время между посылкой двух последовательных кадров минимальной длины больше, чем двойное время распространения сигнала между двумя максимально удаленными друг от друга узлами в сети. Поэтому, чтобы обеспечить максимальный диаметр сети в 200 м (два кабеля по 100 м и коммутатор), минимальная длина кадра в стандарте Gigabit Ethernet была увеличена до 512 байт. Для увеличения длины кадра до требуемой сетевой адаптер дополняет поле данных до длины 448 байт так называемым расширением (extention). Поле расширения — это поле, заполненное запрещенными символами, которые невозможно принять за коды данных (рис. 2). В то же время увеличение минимальной длины кадра негативно сказывается при передаче коротких служебных сообщений, например квитанций, так как полезная передаваемая информация становится существенно меньше общей передаваемой информации. С целью сокращения накладных расходов при  использовании длинных кадров для передачи коротких квитанций стандартом Gigabit Ethernet допускается возможность передачи нескольких кадров подряд в режиме монопольного захвата среды, то есть без передачи среды другим станциям. Такой монопольный режим захвата называется Burst Mode. В этом режиме станция может передавать подряд несколько кадров с общей длиной не более 8192 байт (BurstLength).

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

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

Неэкранированный кабель 5-й категории состоит из четырех пар проводов, причем каждая пара перекручена между собой. Такой кабель рассчитан для работы на частоте 100 МГц (рис. 3).

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

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

Если взаимная индукция вычисляется в начале кабеля, то соответствующий тип помех будет называться NEXT (Near-end crosstalk loss). Если же помехи, вызванные взаимной индукцией, рассматриваются в конце кабеля, то они называются FEXT (Far-end crosstalk loss — рис. 4).

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

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

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

При цифровом кодировании битовых «нулей» и «единиц» используют либо потенциальные, либо импульсные коды. В потенциальных кодах (рис. 5) для представления логических нулей и единиц используют только значение потенциала сигнала. Например, единицу представляют в виде потенциала высокого уровня, а нуль — в виде потенциала низкого уровня. Импульсные коды позволяют представлять биты перепадом потенциала определенного направления. Так, перепад потенциала от низкого уровня к высокому может соответствовать логическому нулю.

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

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

Во-вторых, обладал бы способностью распознавать ошибки.

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

Код NRZ

В простейшем случае потенциального кодирования логическую единицу можно представлять высоким потенциалом, а логический нуль — низким. Подобный способ представления сигнала получил название «кодирование без возврата к нулю, или кодирование NRZ (Non Return to Zero)». Под термином «без возврата» в данном случае понимается то, что на протяжении всего тактового интервала не происходит изменения уровня сигнала. Метод NRZ прост в реализации, обладает хорошей распознаваемостью ошибок, но не обладает свойством самосинхронизации. Отсутствие самосинхронизации приводит к тому, что при появлении длинных последовательностей нулей или единиц приемник лишен возможности определять по входному сигналу те моменты времени, когда нужно в очередной раз считывать данные. Поэтому незначительное рассогласование тактовых частот приемника и передатчика может приводить к появлению ошибок, если приемник считывает данные не в тот момент времени, когда это нужно. Особенно критично такое явление при высоких скоростях передачи, когда время одного импульса чрезвычайно мало (при скорости передачи 100 Мбит/с время одного импульса составляет 10 нс). Другим недостатком кода NRZ является наличие низкочастотной составляющей в спектре сигнала при появлении длинных последовательностей нулей или единиц. Поэтому код NRZ не используется в чистом виде для передачи данных.

В начало В начало

Код NRZI

Другим типом кодирования является несколько видоизмененный NRZ-код, называемый NRZI (Non Return to Zero with one Inverted). Код NRZI является простейшей реализацией принципа кодирования сменой уровня сигнала или дифференциального кодирования. При таком кодировании при передаче нуля уровень сигнала не меняется, то есть потенциал сигнала остается таким же, как и в предыдущем такте. При передаче единицы потенциал инвертируется на противоположный. Сравнение кодов NRZ и NRZI показывает, что код NRZI обладает лучшей самосинхронизацией в том случае, если в кодируемой информации логических единиц больше, чем логических нулей. Таким образом, этот код позволяет «бороться» с длинными последовательностями единиц, но не обеспечивает должной самосинхронизации при появлении длинных последовательностей логических нулей.

В начало В начало

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

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

Из всех рассмотренных нами кодов манчестерский обладает лучшей самосинхронизацией, поскольку перепад сигнала происходит как минимум один раз за такт. Именно поэтому манчестерский код используется в сетях Ethernet со скоростью передачи 10 Мбит/с (10Ваsе 5, 10Ваsе 2, 10Bаsе-Т).

В начало В начало

Код МLТ-3

Код МLТ-3 (Multi Level Transmission-3) реализуется аналогично коду NRZI. Изменение уровня линейного сигнала происходит только в том случае, если на вход кодера поступает единица, однако в отличие от кода NRZI алгоритм формирования выбран таким образом, чтобы два соседних изменения всегда имели противоположные направления. Недостаток кода MLT-3 такой же, как и у кода NRZI, — отсутствие должной синхронизации при появлении длинных последовательностей логических нулей.

Как уже отмечалось, различные коды отличаются друг от друга не только степенью самосинхронизации, но и шириной спектра. Ширина спектра сигнала определяется в первую очередь теми гармониками, которые дают основной энергетический вклад в формирование сигнала. Основную гармонику легко рассчитать для каждого типа кода. В коде NRZ или NRZI максимальная частота основной гармоники (рис. 6) соответствует периодической последовательности логических нулей и единиц, то есть когда не встречается подряд нескольких нулей или единиц. В этом случае период основной гармоники равен временному интервалу двух битов, то есть при скорости передачи 100 Мбит/с частота основной гармоники должна быть 50 Гц.

В манчестерском коде максимальная частота основной гармоники соответствует ситуации, когда на вход кодера поступает длинная последовательность нулей. В этом случае период основной гармоники равен временному интервалу одного бита, то есть при скорости передачи 100 Мбит/с максимальная частота основной гармоники будет 100 Гц.

В коде MLT-3 максимальная частота основной гармоники (рис. 7) достигается при подаче на вход кодера длинных последовательностей логических единиц. В этом случае период основной гармоники соответствует временному интервалу четырех битов. Следовательно, при скорости передачи 100 Мбит/с максимальная частота основной гармоники будет равна 25 МГц.

Как уже отмечалось, манчестерское кодирование используется в сетях Ethrnet 10 Мбит/с, что связано и с хорошими самосинхронизирующими свойствами кода, и с допустимой максимальной частотой основной гармоники, которая при работе на скорости 10 Мбит/с составит 10 МГц. Этого значения достаточно для кабеля не только 5-й, но и 3-й категории, которая рассчитана на частоту 20 МГц.

В то же время использование манчестерского кодирования для более высокоскоростных сетей (100 Мбит/с, 1 Гбит/с) является неприемлемым, так как кабели не рассчитаны на работу при столь высоких частотах. Поэтому используются другие коды (NRZI и MLT-3), но для улучшения самосинхронизирующих свойств кода они подвергаются дополнительной обработке.

В начало В начало

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

Такая дополнительная обработка заключается в логическом блочном кодировании, когда одна группа бит по определенному алгоритму заменяется другой группой. Наиболее распространенными типами подобного кодирования являются избыточные коды 4B/5B, 8B/6T и 8B/10T.

В этих кодах исходные группы бит заменяются на новые, но более длинные группы. В коде 4B/5B группе из четырех бит ставится в соответствие группа из пяти бит. Возникает вопрос — для чего нужны все эти усложнения? Дело в том, что такое кодирование является избыточным. К примеру, в коде 4B/5B в исходной последовательности из четырех бит существует 16 различных битовых комбинаций нулей и единиц, а в группе из пяти бит таких комбинаций уже 32. Поэтому в результирующем коде можно выбрать 16 таких комбинаций, которые не содержат большого количества нулей (напомним, что в исходных кодах NRZI и MLT-3 длинные последовательности нулей приводят к потере синхронизации). При этом остальные не используемые комбинации можно считать запрещенными последовательностями. Таким образом, кроме улучшения самосинхронизирующих свойств исходного кода избыточное кодирование позволяет приемнику распознавать ошибки, так как появление запрещенной последовательности бит свидетельствует о возникновении ошибки. Соответствие исходных и результирующих кодов приведено в табл. 1.

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

В коде 8B/6T последовательность восьми бит исходной информации заменяется последовательностью из шести сигналов, каждый из которых может принимать три состояния. В восьмибитной последовательности имеется 256 различных состояний, а в последовательности шести трехуровневых сигналов таких состояний уже 729 (36=729), поэтому 473 состояния считаются запрещенными.

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

Все рассмотренные избыточные коды находят применение в сетях Ethernet. Так, код 4B/5B используется в стандарте 100Base-TX, а код 8B/6T — в стандарте 100Base-4T, который в настоящее время практически уже не используется. Код 8B/10T используется в стандарте 1000Base-Х (когда в качестве среды передачи данных используется оптоволокно).

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

В начало В начало

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

Скрэмблирование (scramble — перемешивание) заключается в перемешивании исходной последовательности нулей и единиц с целью улучшения спектральных характеристик и самосинхронизирующих свойств результирующей последовательности битов. Осуществляется скремблирование путем побитовой операции исключающего ИЛИ (XOR) исходной последовательности с псевдослучайной последовательностью. В результате получается «зашифрованный» поток, который восстанавливается на стороне приемника с помощью дескрэмблера.

С аппаратной точки зрения скрэмблер состоит из нескольких логических элементов XOR и регистров сдвига. Напомним, что логический элемент XOR (исключающее ИЛИ) совершает над двумя булевыми операндами x и y, которые могут принимать значение 0 или 1, логическую операцию на основе таблицы истинности (табл. 2).

Из данной таблицы непосредственно следует основное свойство операции исключающего ИЛИ:

.

Кроме того, нетрудно заметить, что к операции исключающего ИЛИ применим сочетательный закон:

На схемах логический элемент XOR принято обозначать так, как показано на рис. 8.

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

Рассмотрим простейшую запоминающую ячейку регистра сдвига, управляемую по положительному фронту тактирующего импульса С (рис. 9).

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

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

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

Рассмотрим генератор псевдослучайной последовательности, изображенный на рис. 11. Пусть в начальный момент времени все четыре запоминающие ячейки хранят некоторое предустановленное состояние. К примеру, можно предположить, что Q1=1, Q2=0, Q3=0 и Q4=1, а на входе первой ячейки D=0. После прихода тактирующего импульса все разряды сдвинутся на один бит, а на вход D поступит сигнал, значение которого определится по формуле:

Пользуясь данной формулой, нетрудно определить значения выходов запоминающих ячеек на каждом такте работы генератора. В табл. 3 показано состояние выходов запоминающих ячеек генератора псевдослучайной последовательности на каждом такте работы. При этом нетрудно заметить, что в начальный момент времени и через 15 тактов состояние генератора полностью повторяется, то есть 15 тактов работы — это период повторения нашей псевдослучайной последовательности (именно из наличия периода повторения последовательность и называется псевдослучайной). В общем случае, если генератор состоит из n-ячеек, период повторения равен:

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

Если обозначить двоичную цифру исходного кода, поступающую на i-м такте работы на вход скрэмблера, через Ai, а двоичную цифру результирующего кода, полученную на i-м такте работы, через Bi, то нетрудно заметить, что рассматриваемый скрэмблер осуществляет следующую логическую операцию: , где Bi-3 и Bi-4  — двоичные цифры результирующего кода, полученные на предыдущих тактах работы скрэмблера, соответственно на 3 и на 4 такта ранее текущего момента.

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

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

Рассмотренная четырехразрядная схема скрэмблера является одной из простейших. В технологии 1000Base-T используется значительно более сложный скрэмблер на 33 разряда, что увеличивает период повторения до 8 589 934 591 бит (233–1), то есть формируемые псевдослучайные последовательности повторяются через 68,72 с.

В начало В начало

Кодирование PAM-5

Разобравшись с тем, какие коды используются для представления данных, и рассмотрев методы улучшения самосинхронизирующих и спектральных свойств этих кодов, попробуем выяснить, достаточно ли этих мер, чтобы обеспечить передачу данных на скорости 1000 Мбит/с с использованием четырехпарного кабеля 5-й категории.

Как уже отмечалось, манчестерское кодирование обладает хорошими самосинхронизирующими свойствами и в этом смысле не требует каких-либо доработок, однако максимальная частота основной гармоники численно равна скорости передачи данных, то есть количеству переданных бит в секунду. Этого достаточно для передачи данных со скоростью 10 Мбит/с, так как кабель 3-й категории (а в стандарте 10Base-T может использоваться такой кабель) ограничен частотами в 16 МГц. Однако манчестерское кодирование не годится для передачи данных со скоростью 100 Мбит/с и выше.

Использование кода NRZI после дополнительной доработки с помощью избыточного блочного кода 4B/5B и скрэмблирования, а также трехпозиционного кода MLT-3 (с целью уменьшения максимальной частоты основной гармоники) позволяет передавать данные со скоростью 100 Мбит/с по кабелю 5-й категории. Действительно, при использовании кода MLT-3 максимальная частота основной гармоники численно равна одной четвертой от скорости передачи данных, то есть при скорости передачи 100 Мбит/с частота основной гармоники не превосходит 25 МГц, что вполне достаточно для кабеля 5-й категории. Однако такой способ не годится для передачи данных на скорости 1000 Мбит/с.

Поэтому в стандарте 1000Base-T используется принципиально иной способ кодирования. Для уменьшения тактовой частоты до величин, позволяющих передавать данные по витым парам категории 5, данные в линии представляются в так называемом коде PAM-5 (рис. 13). В нем передаваемый сигнал имеет набор из пяти фиксированных уровней {–2, –1, 0, +1, +2}. Четыре из них используются для кодирования информационных битов, а пятый предназначен для коррекции ошибок. На наборе из четырех фиксированных уровней одним дискретным состоянием сигнала можно закодировать сразу два информационных бита, поскольку комбинация из двух бит имеет четыре возможные комбинации (так называемые дибиты) — 00, 01, 10 и 11.

Переход к дибитам позволяет в два раза повысить битовую скорость. Чтобы различать битовую, или информационную, скорость и скорость различных дискретных состояний сигнала, вводят понятие бодовой скорости. Бод — это количество различных дискретных состояний сигнала в единицу времени. Поэтому, если в одном дискретном состоянии кодируется два бита, битовая скорость в два раза больше бодовой, то есть 1 Бод = 2 бит/с.

Если учесть, что кабель 5-й категории рассчитан на частоту 125 МГц, то есть способен работать с бодовой скоростью 125 МБод, то информационная скорость по одной витой паре составит 250 Мбит/с. Вспомним, что в кабеле имеется четыре витые пары, поэтому если задействовать все четыре пары (рис. 14), то можно повысить скорость передачи до 250 Мбит/сх4=1000 Мбит/с, то есть достичь желаемой скорости.

Как уже отмечалось, в кодировании PAM-5 имеется пять дискретных уровней, однако для передачи дибитов используется только четыре уровня. Пятый избыточный уровень кода (Forward Error Correction, FEC) используется для механизма построения коррекции ошибок. Он реализуется кодером Треллиса и декодером Витерби. Применение механизма коррекции ошибок позволяет увеличить помехоустойчивость приемника на 6 дБ.

В начало В начало

Треллис-кодирование

Рассмотрим принципы треллис-кодирования на основе простейшего кодера, состоящего из двух запоминающих ячеек и элементов XOR (рис. 15). Пусть на вход такого кодера поступает со скоростью k бит/с последовательность бит 0101110010. Если на выходе кодера установить считывающую ячейку, работающую с вдвое большей частотой, чем скорость поступления бит на вход кодера, то скорость выходного потока будет в два раза выше скорости входного потока. При этом считывающая ячейка за первую половину такта работы кодера считывает данные сначала с логического элемента XOR 2, а вторую половину такта — с логического элемента XOR 3. В результате каждому входному биту ставится в соответствие два выходных бита, то есть дибит, первый бит которого формируется элементом XOR 2, а второй — элементом XOR 3. По временной диаграмме состояния кодера нетрудно проследить, что при входной последовательности бит 0101110010 выходная последовательность будет 00 11 10 00 01 10 01 11 11 10.

Отметим одну важную особенность принципа формирования дибитов. Значение каждого формируемого дибита зависит не только от входящего информационного бита, но и от двух предыдущих бит, значения которых хранятся в двух запоминающих ячейках. Действительно, если принято, что Ai — входящий бит, то значение элемента XOR 2 определится выражением , а значение элемента XOR 3 — выражением . Таким образом, дибит формируется из пары битов, значение первого из которых равно , а второго — . Следовательно, значение дибита зависит от трех состояний: значения входного бита, значения первой запоминающей ячейки и значения второй запоминающей ячейки. Такие кодеры получили название сверточных кодеров на три состояния (K = 3) с выходной скоростью ½.

Работу кодера удобно рассматривать на основе не временных диаграмм, а так называемой диаграммы состояния. Состояние кодера будем указывать с помощью двух значений — значения первой и второй запоминающих ячеек. К примеру, если первая ячейка хранит значение 1 (Q1=1), а вторая — 0 (Q2=0), то состояние кодера описывается значением 10. Всего возможно четыре различных состояния кодера: 00, 01, 10 и 11.

Пусть в некоторый момент времени состояние кодера равно 00. Нас интересует, каким станет состояние кодера в следующий момент времени и какой дибит будет при этом сформирован. Возможны два исхода в зависимости от того, какой бит поступит на вход кодера. Если на вход кодера поступит 0, то следующее состояние кодера также будет 00, если же поступит 1, то следующее состояние (то есть после сдвига) будет 10. Значение формируемых при этом дибитов рассчитывается по формулам и . Если на вход кодера поступает 0, то будет сформирован дибит 00 (), если же на вход поступает 1, то формируется дибит 11 (). Приведенные рассуждения удобно представить наглядно с помощью диаграммы состояний (рис. 16), где в кружках обозначаются состояния кодера, а входящий бит и формируемый дибит пишутся через косую черту. Например, если входящий бит 1, а формируемый дибит 11, то записываем: 1/11.

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

Используя диаграмму состояний кодера, несложно построить временную диаграмму переходов для уже рассмотренной нами входной последовательности бит 0101110010. Для этого строится таблица, в столбцах которой отмечаются возможные состояния кодера, а в строках — моменты времени. Возможные переходы между различными состояниями кодера отображаются стрелками (на основе полной диаграммы состояний кодера — рис. 17), над которыми обозначаются входной бит, соответствующий данному переходу, и соответствующий дибит. Например, для двух первых моментов времени диаграмма состояния кодера выглядит так, как показано на рис. 18. Красной стрелкой отображен переход, соответствующий рассматриваемой последовательности бит.

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

Основным достоинством изложенного выше метода треллис-кодирования является его помехоустойчивость. Как будет показано в дальнейшем, благодаря избыточности кодирования (вспомним, что каждому информационному биту ставится в соответствие дибит, то есть избыточность кода равна 2) даже в случае возникновения ошибок приема (к примеру, вместо дибита 11 ошибочно принят дибит 10) исходная последовательность бит может быть безошибочно восстановлена.

Для восстановления исходной последовательности бит на стороне приемника используется декодер Витерби.

В начало В начало

Декодер Витерби

Декодер Витерби в случае безошибочного приема всей последовательности дибитов 00 11 10 00 01 10 01 11 11 10 будет обладать информацией об этой последовательности, а также о строении кодера (то есть о его диаграмме состояний) и о его начальном состоянии (00). Исходя из этой информации он должен восстановить исходную последовательность бит. Рассмотрим, каким образом происходит восстановление исходной информации.

Зная начальное состояние кодера (00), а также возможные изменения этого состояния (00 и 10), построим временную диаграмму для первых двух моментов времени (рис. 22). На этой диаграмме из состояния 00 существует только два возможных пути, соответствующих различным входным дибитам. Поскольку входным дибитом декодера является 00, то, пользуясь диаграммой состояний кодера Треллиса, устанавливаем, что следующим состоянием кодера будет 00, что соответствует исходному биту 0.

Однако у нас нет 100% гарантии того, что принятый дибит 00 является правильным, поэтому не стоит пока отметать и второй возможный путь из состояния 00 в состояние 10, соответствующий дибиту 11 и исходному биту 1. Два пути, показанные на диаграмме, отличаются друг от друга так называемой метрикой ошибок, которая для каждого пути рассчитывается следующим образом. Для перехода, соответствующего принятому дибиту (то есть для перехода, который считается верным), метрика ошибок принимается равной нулю, а для остальных переходов она рассчитывается по количеству отличающихся битов в принятом дибите и дибите, отвечающем рассматриваемому переходу. Например, если принятый дибит 00, а дибит, отвечающий рассматриваемому переходу, равен 11, то метрика ошибок для этого перехода равна 2.

Для следующего момента времени, соответствующего принятому дибиту 11, возможными будут два начальных состояния кодера: 00 и 10, а конечных состояния будет четыре: 00, 01, 10 и 11 (рис. 23). Соответственно для этих конечных состояний существует несколько возможных путей, отличающихся друг от друга метрикой ошибок. При расчете метрики ошибок необходимо учитывать метрику предыдущего состояния, то есть если для предыдущего момента времени метрика для состояния 10 была равной 2, то при переходе из этого состояния в состояние 01 метрика ошибок нового состояния (метрика всего пути) станет равной 2 + 1 = 3.

Для следующего момента времени, соответствующего принятому дибиту 10, отметим, что в состояния 00, 01 и 11 ведут по два пути (рис. 24). В этом случае необходимо оставить только те переходы, которым отвечает меньшая метрика ошибок. Кроме того, поскольку переходы из состояния 11 в состояние 11 и в состояние 01 отбрасываются, переход из состояния 10 в состояние 11, отвечающий предыдущему моменту времени, не имеет продолжения, поэтому тоже может быть отброшен. Аналогично отбрасывается переход, отвечающий предыдущему моменту времени из состояния 00 в 00.

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

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

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

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

В описанном выше случае мы предполагали, что все принятые декодером дибиты не содержат ошибок. Рассмотрим далее ситуацию, когда в принятой последовательности дибитов содержатся две ошибки. Пусть вместо правильной последовательности 00 11 10 00 01 10 01 11 11 10 декодер принимает последовательность 00 11 11 00 11 10 01 11 11 10, в которой третий и пятый дебит являются сбойными. Попробуем применить рассмотренный выше алгоритм Витерби, основанный на выборе пути с наименьшей метрикой ошибок, к данной последовательности и выясним, сможем ли мы восстановить в правильном виде исходную последовательность битов, то есть исправить сбойные ошибки.

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

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

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

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

В начало В начало

Треллис-кодирование 4D/PAM-5

Рассмотренный пример сверточного кодера имел всего четыре различных состояния: 00, 01, 10 и 11. В технологии 1000Base-T используется сверточный кодер уже на восемь различных состояний (с тремя элементами задержки), поэтому он называется восьмипозиционным. Кроме того, поскольку символы передаются по всем четырем витым парам кабеля одновременно с использованием пятиуровневого кодирования PAM-5, такое кодирование получило название четырехмерного 4D/PAM-5.

Другим существенным отличием кодера Треллиса, используемого в технологии 1000Base-T, является алгоритм перехода между различными состояниями кодера. В рассмотренном нами простейшем примере состояние кодера в следующий момент времени определялось исключительно текущим состоянием и входным битом. Так, если текущее состояние 00, а входной бит 1, то следующее состояние, то есть поле сдвига битов по запоминающим ячейкам, будет соответствовать 10. В реальном восьмипозиционном кодере Треллиса, управляющих (входных) битов два, а переходы между различными состояниями определяются по алгоритму наибольшего расстояния между точками сигнального созвездия. Как следует из рис. 30, кодер Треллиса реализует соотношение:

,

где d6, d7 и d8 — соответственно биты данных на линиях 6, 7 и 8.

Поясним это на конкретном примере.

Вспомним, что в коде PAM-5 используется пять уровней для передачи сигналов: –2, –1, 0, +1, +2. При этом уровням +2/–2 соответствует напряжение +1/–1 В, а уровням +1/–1 — напряжение +0,5/–0,5 В. Учитывая, что по четырем витым парам одновременно передается четыре уровня сигнала и каждый из этих уровней может принимать одно из пяти значений, всего получаем 625 (5х5х5х5) разных комбинаций сигналов. Различные возможные состояния сигнала удобно изображать на так называемой сигнальной плоскости. На этой плоскости каждое возможное состояние сигнала изображается сигнальной точкой, а совокупность всех сигнальных точек называют сигнальным созвездием. Естественно, что изобразить четырехмерное пространство не представляется возможным, поэтому рассмотрим для наглядности двухмерное сигнальное созвездие 5х5. Такое созвездие формально может соответствовать двум витым парам. Изобразим вдоль оси Х точки, отвечающие одной витой паре, а вдоль оси Y — другой. Тогда наше 2D-созвездие будет выглядеть так, как показано на рис. 31.

Обратим внимание, что минимальное расстояние между двумя точками такого созвездия равно 1.

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

Поэтому одной из задач кодера Треллиса является такое формирование сигнального созвездия, которое обеспечивало бы максимальное расстояние между различными сигнальными точками. Для того чтобы понять, как это делается, обозначим уровни сигналов –1 и +1 через Х, а уровни –2, 0, +2 через Y. Тогда исходное созвездие можно изобразить в виде, показанном на рис. 33.

Разделив это созвездие на два подсозвездия, одно из которых сформировано из точек XX и YY, а другое — из точек XY и YX, можно увеличить расстояние между сигнальными точками до (рис. 34).

При использовании двух витых пар задача кодера Треллиса заключается в том, чтобы по одной витой паре посылать только символы, принадлежащие какому-либо одному из сигнальных созвездий, например D0=XX+YY, а по второй витой паре — символы, принадлежащие другому созвездию, например D1=XY+YX. Тогда расстояние между посылаемыми символами станет в два раза больше, чем было в исходном созвездии. В результате улучшается распознаваемость точек в сигнальном созвездии, то есть возрастает помехозащищенность.

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

D0=XXXX+YYYY

D1=XXXY+YYYX

D2=XXYX+YYXY

D3=XXYY+XXYY

D4=XYXX+YXYY

D5=XYXY+YXYX

D6=XYYX+YXXY

D7=XYYY+YYYX

В полученных подсозвездиях минимальное расстояние между точками в два раза больше, чем в исходном созвездии. Кроме того, минимальное расстояние между точками двух разных подсозвездий также равно 2. Именно эти восемь сигнальных созвездий формируют диаграмму состояний треллис-кодера. К примеру, состоянию кодера 000 соответствует комбинация точек из созвездий D0D2D4D6 в том смысле, что по первой паре передаются точки из созвездия D0, по второй паре — из созвездия D2 и т.д. Следующему возможному состоянию кодера будет соответствовать такая комбинация, при которой минимальное расстояние между посылаемыми символами по каждой паре равно 2.

Использование треллис-кодирования по описанной схеме позволяет снизить соотношение «сигнал/шум» (SNR) на 6 дБ, то есть значительно увеличить помехоустойчивость при передаче данных.

КомпьютерПресс 2'2002