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


Манче́стерское коди́рование[1], код Манчестер-II[2], абсолютный биимпульсный код[3] (иногда применяются синонимы: линейное кодирование[3][4], физическое кодирование, манипуляция сигнала, модуляция, импульсно-кодовая модуляция[3]) — один из способов кодирования двоичным цифровым сигналом исходных двоичных данных для передачи по одному двухуровневому каналу связи или записи на носитель информации.

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

Сигнал, закодированный в соответствии с манчестерским кодом, не имеет постоянной составляющей даже в случае передачи длинных последовательностей из нулей и единиц, поэтому передающие сигнал электрические соединения могут быть гальванически развязаны, например, с помощью трансформатора[5].

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

Кодирование манчестерского кода относительно простое — производится логической операцией «ИСКЛЮЧАЮЩЕЕ ИЛИ» (сложение по модулю два, XOR) над текущим кодируемым битом и битом тактового генератора, в случае кодирования по IEEE 802.3 (примеры на псевдокоде):

При аппаратной реализации используется тактовый генератор со скважностью 2 и периодом повторения, равным периоду кодирования, регистр сдвига из которого на каждом периоде выталкивается кодируемый бит данных и логического элемента «ИСКЛЮЧАЮЩЕЕ ИЛИ».