К основным требованиям следует отнести:
1. уменьшение уровня низкочастотной (и постоянной) составляющей в спектре передаваемых сообщений.
2. обеспечение синхронизации между передатчиком и приёмником.
3. обнаружение и по возможности исправление битовых ошибок.
Низкочастотная составляющая.
Её наличие обусловлено тем, что передаваемое сообщение представляет собой длинную последовательность из 0 и 1. Для наглядности будем полагать, что 0 соответствует низкий уровень напряжения, 1 – высокий. Если на некотором временном интервале в последовательности преобладают 0, то среднее значение напряжения будет близком к 0. Если преобладают 1, то среднее значение будет соответствовать некоторому постоянному напряжению. В связи с этим появляется низкочастотная составляющая, которая приближается к постоянному напряжению, из-за чего многие линии связи, не обеспечивающие прямого гальванического соединения между приёмником и источником, могут оказаться неработоспособными.
Синхронизация передатчика.
Пересылка сообщений по цифровым каналам осуществляется отдельными порциями в отведённые такты одинаковой длительности, и приёмник старается считать поступивший бит данных в середине каждого такта, т.е. он должен синхронизировать свои действия с передатчиком. Отсутствие синхронизма между передатчиком и приёмником может привести к ошибкам. Тёмным цветом на рисунке 3.8 выделены ошибочные биты при сдвиге принимаемой последовательности битов на один такой интервал. Использование отдельной линии связи для передачи тактовых импульсов в компьютерных сетях нецелесообразно поэтому в сетях для синхронизации используют так называемые самосинхронизирующиеся коды, которые несут в себе информацию для приёмника о том, в какой момент времени нужно осуществлять безошибочное распознавание очередного бита.
Распознавание и исправление искажённых данных.
Чаще всего они осуществляются на канальном, сетевом, транспортном или прикладном уровнях. Однако распознавание ошибок на физическом уровне экономит время, т.к. приёмник не ждёт полного помещения кадра в буфер, а отбраковывает его сразу при распознавании ошибочных битов внутри кадра.
Требования, предъявляемые к кодам, являются противоречивыми, поэтому каждый из рассматриваемых в дальнейшем способов кодирования обладает своими достоинствами и недостатками.
Классификация способов кодирования.
По назначению:
- логическое кодирование данных (data encoding), используемое для уменьшения уровня низкочастотных составляющих потенциальных кодов (избыточные коды и скремблирование)
- физическое (сигнальное) кодирование (signal encoding), предназначенное для представления дискретных символов (результатов логического кодирования) в электрические или оптические сигналы, передаваемые по линии связи.
По способности поддержки синхронизма передатчика и приёмника различают самосинхронизирующиеся коды и коды, не обладающие такой способностью.
Многие классификационные признаки кодов связаны с особенностями отображения логического нуля и единицы.
В зависимости от информативного параметра различают потенциальный способ кодирования (или код), при котором информативным параметров является постоянный уровень напряжения на всем тактовом интервале, например, высокий уровень соответствует логической единице, низкий – логическому нулю, и импульсный, при котором информативным параметром является перепад напряжения.
По полярности кодовых импульсов различают следующие способы кодирования:
- униполярный, когда для одного из логических значений используется импульс одной полярности, а другие значение представлено нулевым уровнем;
- полярный, при котором логические 1 и 0 представляются двумя различными полярностями напряжения;
- биполярный, при котором фиксируются три значения (положительное, нулевое и отрицательное).
Потенциальные коды.
При кодировании без возврата к нулю состояние может измениться только на границе тактового интервала. Известно 2 вида NRZ-кодов:
1. недифференциальный, в котором уровни сигнала непосредственно отражают значение бита (рис. 3.9, а);
2. дифференциальный, в котором состояние меняется в начале битового интервала для 1 и не меняется для 0 (рис. 3.9, б).
К достоинству метода NRZ следует отнести простоту реализации и достаточно чёткую распознаваемость логических 0 и 1. Однако метод не обладает способностью самосинхронизации и требует гальванической развязки передатчика и приёмника с линией связи из-за наличия постоянной составляющей напряжения в спектре передаваемого сигнала.
Модификацией рассмотренных кодов является NRZ-код с инверсией при единице, в котором состояние изменяется на противоположное в начале битового интервала при передаче логического 0 и остаётся неизменным при передаче 1 (рис. 3.9, в). Возможна обратная кодировка.
Биполярный код с альтернативной инверсией – это трехуровневый код (рис. 3.9, г), в котором нулевое напряжение используется для кодирования логического нуля, а двумя уровнями напряжения (положительным и отрицательным) кодируется логическая единица, причём напряжение каждой последующей единицы имеет противоположный знак по сравнению с предыдущей.