Синхронизирующие коды.

 

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

 

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

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

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

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

 

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


Все эти сигналы обладают одной или несколькими из следующих характеристик:

- униполярный код: напряжение всех сигналов неотрицательно либо, наоборот, не положительно;

- полярный код: сигнал имеет положительный и отрицательный потенциалы (противоположные алгебраические знаки определяют логические состояния);

- биполярный код: изменение сигнала происходит между тремя уровнями.

 

 

На рис. 1.20апоказан код без возвращения к нулю (NRZ-код).

Уровень сигнала остается стабильным для каждой последовательности одноименных битов. В этом случае уровень сигнала остается низким для бита 1 и возрастает до некоторого уровня напряжения для бита 0.

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

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

NRZ-код может быть полярным и биполярным в зависимости от конкретной реализации.

 

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

Основной недостаток RZ-кода состоит в том, что он требует двух переходов (изменений) сигнала для каждого бита. Следовательно, RZ-код потребует вдвое большей скорости (в бодах) по сравнению с обычным кодом.

 

Рис. 1.20в иллюстрируетманчестерский код. Этот код обеспечивает изменение состояния сигнала при представлении каждого бита. Это хороший синхронизирующий код. Однако, как и RZ-код, он требует удвоенной скорости (в бодах) для передачи заданного количества битов.

 

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