Файл: Методы кодирования данных (Биполярный код AMI и Потенциальный код NRZI).pdf
Добавлен: 29.03.2023
Просмотров: 831
Скачиваний: 2
ВВЕДЕНИЕ
Существует множество методов кодирования данных. Выбор кодировки должен соответствовать целям проекта реализуемых программистом. Поэтому каждый специалист занимающийся программированием должен иметь представление о способах кодирования информации. Данные навыки например необходимы для передачи данных между передатчиком и приемником.
Для того чтобы передатчик и приемник, соединенные некоторой средой, могли обмениваться информацией, им необходимо договориться о том, какие сигналы будут соответствовать двоичным единицам и нулям дискретной информации. Для представления дискретной информации в среде передачи данных применяются сигналы двух типов: прямоугольные импульсы и синусоидальные волны. В первом случае используют термин «кодирование», во втором — «модуляция».
Методы кодирования отличаются шириной спектра сигнала при одной и той же скорости передачи данных. Для передачи данных с минимальным числом ошибок полоса пропускания канала должна быть шире, чем спектр сигнала — иначе выбранные для представления единиц и нулей сигналы значительно исказятся, и приемник не сможет правильно распознать переданную информацию. Поэтому спектр сигнала является одним из главных критериев оценки эффективности способа кодирования.
Кроме того, способ кодирования должен способствовать синхронизации приемника с передатчиком, а также обеспечивать приемлемое соотношение мощности сигнала к шуму. Эти требования являются взаимно противоречивыми, поэтому каждый применяемый на практике способ кодирования представляет собой компромисс между основными требованиями. Битовые ошибки в каналах связи нельзя исключить полностью, даже если выбранный код обеспечивает хорошую степень синхронизации и высокий уровень отношения сигнала к шуму. Поэтому при передаче дискретной информации применяются специальные коды, которые позволяют обнаруживать (а иногда даже исправлять) битовые ошибки.
1. Выбор способа кодирования
При выборе способа кодирования нужно одновременно стремиться к достижению нескольких целей:
- минимизировать ширину спектра сигнала, полученного в результате кодирования;
- обеспечивать синхронизацию между передатчиком и приемником;
- обеспечивать устойчивость к шумам;
- обнаруживать и по возможности исправлять битовые ошибки;
- минимизировать мощность передатчика.
Более узкий спектр сигнала позволяет на одной и той же линии (с одной и той же полосой пропускания) добиваться более высокой скорости передачи данных. Спектр сигнала в общем случае зависит как от способа кодирования, так и от тактовой частоты передатчика.
Синхронизация передатчика и приемника нужна для того, чтобы приемник точно знал, в какой момент времени считывать новую порцию информации с линии связи. При передаче дискретной информации время всегда разбивается на такты одинаковой длительности, и приемник старается считать новый сигнал в середине каждого такта, то есть синхронизировать свои действия с передатчиком
Распознавание и коррекцию искаженных данных сложно осуществить средствами физического уровня, поэтому чаще всего эту работу берут на себя протоколы, лежащие выше: канальный, сетевой, транспортный или прикладной. В то же время распознавание ошибок на физическом уровне экономит время, так как приемник не ждет полного помещения кадра в буфер, а отбраковывает его сразу при распознавании ошибочных битов внутри кадра.
Требования, предъявляемые к методам кодирования, являются взаимно противоречивыми, поэтому каждый из рассматриваемых далее популярных методов кодирования обладает своими достоинствами и недостатками в сравнении с другими.
2. Способы физического/сигнального кодирования данных
Физическое кодирование
|
Примеры физического кодирования |
Нижним уровнем в иерархии кодирования является физическое кодирование, которое определяет число дискретных уровней сигнала (амплитуды напряжения, амплитуды тока, амплитуды яркости).
Физическое кодирование рассматривает кодирование только на самом низшем уровне иерархии кодирования— на физическом уровне и не рассматривает более высокие уровни в иерархии кодирования, к которым относятся логические кодирования различных уровней.
С точки зрения физического кодирования цифровой сигнал может иметь два, три, четыре, пять ит.д. уровней амплитуды напряжения, амплитуды тока, амплитуды света.
Ни в одной из версий технологии Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 вольт и бита 1 — напряжением +5 вольт, так как такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая станция может интерпретировать её либо как 10000, либо как 01000, так как она не может отличить «отсутствие сигнала» от бита 0. Поэтому принимающей машине необходим способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Кодирование сигнала на физическом уровне позволяет приемнику синхронизироваться с передатчиком по смене напряжения в середине периода битов.
В некоторых случаях физическое кодирование решает проблемы:
- Ёмкостного сопротивления — нарастание в проводном канале связи постоянной составляющей (паразитной ёмкости), которое препятствует функциональности электрооборудования;
- Нарушение плотности следования единичных импульсов — при передачи последовательности логических нулей или единиц происходит рассинхронизация передатчика и приемника.
Потенциальный код NRZ
Метод потенциального кодирования, называемый также кодированием без возвращения к нулю (Non Return to Zero, NRZ). Последнее название отражает то обстоятельство, что в отличие от других методов кодирования при передаче последовательности единиц сигнал не возвращается к нулю в течение такта. Это биполярная нетранзиктивная схема (состояния меняются на границе), которая имеет два варианта. Первый вариант это недифференциальное NRZ (используется в RS-232) состояние напрямую отражает значение бита . В другом варианте — дифференциальном, NRZ состояние меняется в начале битового интервала для 1 и не меняется для 0. . Привязки 1 и 0 к определенному состоянию нету.
Достоинства метода NRZ.
- Простота реализации.
- Метод обладает хорошей распознаваемостью ошибок (благодаря наличию двух резко отличающихся потенциалов).
- Основная гармоника fо имеет достаточно низкую частоту (равную N/2 Гц, как было показано в предыдущем разделе), что приводит к узкому спектру.
Недостатки метода NRZ.
- Метод не обладает свойством самосинхронизации. Даже при наличии высокоточного тактового генератора приемник может ошибиться с выбором момента съема данных, так как частоты двух генераторов никогда не бывают полностью идентичными. Поэтому при высоких скоростях обмена данными и длинных последовательностях единиц или нулей небольшое рассогласование тактовых частот может привести к ошибке в целый такт и, соответственно, считыванию некорректного значения бита.
- Вторым серьезным недостатком метода NRZ является наличие низкочастотной составляющей, которая приближается к постоянному сигналу при передаче длинных последовательностей единиц или нулей. Из-за этого многие линии связи, не обеспечивающие прямого гальванического соединения между приемником и источником, этот вид кодирования не поддерживают. Поэтому в сетях код NRZ в основном используется в виде различных его модификаций, в которых устранены проблемы плохой самосинхронизации и постоянной составляющей.
Биполярный код AMI и Потенциальный код NRZI
Одной из модификаций метода NRZ является метод биполярного кодирования с альтер нативной инверсией (Alternate Mark Inversion, AMI). В этом методе применяются три уровня потенциала — отрицательный, нулевой и положительный. Для кодирования логического нуля используется нулевой потенциал, а логическая единица кодируется либо положительным потенциалом, либо отрицательным, при этом потенциал каждой новой единицы противоположен потенциалу предыдущей.
При передаче длинных последовательностей единиц код AMI частично решает проблемы наличия постоянной составляющей и отсутствия самосинхронизации, присущие коду NRZ. В этих случаях сигнал на линии представляет собой последовательность разно полярных импульсов с тем же спектром, что и у кода NRZ, передающего чередующиеся нули и единицы, то есть без постоянной составляющей и с основной гармоникой N/2 Гц (где N — битовая скорость передачи данных). Длинные же последовательности нулей для кода AMI столь же опасны, как и для кода NRZ — сигнал вырождается в постоянный потенциал нулевой амплитуды.
В целом, для различных комбинаций битов на линии использование кода AMI приводит к более узкому спектру сигнала, чем для кода NRZ, а значит, и к более высокой пропускной способности линии. Например, при передаче чередующихся единиц и нулей основная гармоника /о имеет частоту N/A Гц.
Код AMI предоставляет также некоторые возможности по распознаванию ошибочных сигналов. Так, нарушение строгой очередности в полярности сигналов говорит о ложном импульсе или исчезновении с линии корректного импульса.
В коде AMI используются не два, а три уровня сигнала на линии. Дополнительный уровень требует увеличение мощности передатчика примерно на 3 дБ для обеспечения той же достоверности приема битов на линии, что является общим недостатком кодов с несколькими состояниями сигнала по сравнению с кодами, в которых различают только два состояния.
Существует код, похожий на AMI, но только с двумя уровнями сигнала. При передаче нуля он передает потенциал, который был установлен на предыдущем такте (то есть не меняет его), а при передаче единицы потенциал инвертируется на противоположный. Этот код называется потенциальным кодом с инверсией при единице (Non Return to Zero with ones Inverted, NRZI). Он удобен в тех случаях, когда наличие третьего уровня сигнала весьма нежелательно, например в оптических кабелях, где устойчиво распознаются только два состояния сигнала — свет и темнота.
Код NRZI хорош тем, что в среднем требует меньше изменений сигнала при передаче произвольной двоичной информации, чем манчестерский код, за счет чего спектр его сигналов уже. Однако код NRZI обладает плохой самосинхронизацией, так как при передаче длинных последовательностей нулей сигнал вообще не меняется (например, при передаче последних 3-х нулей на рис. 1 a), и, значит, у приемника исчезает возможностьсинхронизации с передатчиком на значительное время, что может приводить к ошибкам распознавания данных. Для улучшения потенциальных кодов, подобных AMI и NRZI, используются два метода. Первый метод основан на добавлении в исходный код избыточных битов, содержащих логические единицы. Очевидно, что в этом случае длинные последовательности нулей прерываются, и код становится самосинхронизирующимся для любых передаваемых данных.
Исчезает также постоянная составляющая, а значит, еще более сужается спектр сигнала. Однако этот метод снижает полезную пропускную способность линии, так как избыточные единицы пользовательской информации не несут.
Другой метод основан на предварительном «перемешивании» исходной информации таким образом, чтобы вероятность появления единиц и нулей на линии становилась близкой к нулю. Устройства, или блоки, выполняющие такую операцию, называются скрэмблерами. При скремблировании используется известный алгоритм, поэтому приемник, получив двоичные данные, передает их на дескрэмблер, который восстанавливает исходную последовательность битов.
Биполярный импульсны код
Помимо потенциальных кодов в сетях используются и импульсные коды, в которых данные представлены полным импульсом или же его частью — фронтом. Наиболее простым кодом такого рода является биполярный импульсный код, в котором единица представляется импульсом одной полярности, а ноль — другой (см. рис.1, в). Каждый импульс длится половину такта. Подобный код обладает отличными самосинхронизирующими свойствами, но постоянная составляющая может присутствовать, например, при передаче длинной последовательности единиц или нулей. Кроме того, спектр у него шире, чем у потенциальных кодов. Так, при передаче всех нулей или единиц частота основной гармоники кода равнаМГц, что в два раза выше основной гармоники кода NRZ и в четыре раза выше основной гармоники кода AMI при передаче чередующихся единиц и нулей. Из-за слишком широкого спектра биполярный импульсный код используется редко.