Найти тему
Разумный мир

Код Manchester-II. Часть 2. Кодирование. Модуляция

Оглавление

Процесс кодирования информации в код Manchester-II прост. Во всяком случае, в теории и в том виде, как это показано во многих статьях и на страницах учебников. Но практика, как всегда, вносит свои коррективы.

Сегодня мы рассмотрим, как устроен модулятор кодера Manchester-II. Полноценный кодер включает в себя много других узлов, кроме модулятора. Но, поскольку объем материала и размер статей получается очень большим, а описание подробным, аппаратный кодер, причем несколько вариантов, и программный кодер будут темами последующих статей. И статей будет заметно больше, чем я изначально планировал.

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

Ссылка на первую статью цикла

Код Manchester-II. Часть 1. Как это работает

Простейший фазовый модулятор (инверсия фазы)

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

А значит, достаточно простого, всем знакомого, фазоинверсного каскада на транзисторе с последующим переключателем

Простейший фазовый модулятор обеспечивающий управление инверсией фазы. Иллюстрация моя
Простейший фазовый модулятор обеспечивающий управление инверсией фазы. Иллюстрация моя

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

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

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

Реальная работа фазового модулятора с инверсией фазы. Иллюстрация моя
Реальная работа фазового модулятора с инверсией фазы. Иллюстрация моя

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

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

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

Модулированный сигнал после ФНЧ. Иллюстрация моя
Модулированный сигнал после ФНЧ. Иллюстрация моя

Это тоже "приукрашенный" вид сигнала, но он гораздо ближе к реальному. И да, это все тот же код Manchester-II.

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

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

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

Простейший цифровой фазовый модулятор (инверсия фазы)

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

Простейший цифровой фазовый модулятор с инверсией фазы. Иллюстрация моя
Простейший цифровой фазовый модулятор с инверсией фазы. Иллюстрация моя

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

А теперь классическая иллюстрация работы этого модулятора, которую можно встретить практически в любой статье и любом учебнике

Классическая иллюстрация кодирования Manchester-II, которую можно встретить практически в любой статье и любом учебнике. В данном случае, нарисовано мной
Классическая иллюстрация кодирования Manchester-II, которую можно встретить практически в любой статье и любом учебнике. В данном случае, нарисовано мной

Красиво, что называется, "как в учебнике". Да, это теоретическая картинка. И мы уже знаем, что в реальности все станет совсем не таким красивым и четким.

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

Столь любый многими пример простейшего кодера Manchester-II
Столь любый многими пример простейшего кодера Manchester-II

Да, это обычный логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR). Вот за такую простоту во многих статьях и учебниках и любят этот пример. Сам этот логический элемент не является базовым, но может быть легко построен, например, из четырех элементов 2И-НЕ. И этот модулятор, я не могу назвать его кодером, полностью соответствует ранее функциональной схеме простейшего модулятора.

На выходе логического элемента 2XOR уровень "1" будет только в том случае, если на входах уровни разные. Иначе на выходе будет "0". То есть, если DATA "0", то тактовые импульсы проходят на выход без изменения фазы. А если DATA "1", то с инверсией фазы. Разумеется, возможно использовать и логический элемент с инверсией.

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

  • Скважность тактовых импульсов может отличаться от 2. Даже если тактовый генератор формирует импульсы со скважностью точно 2, прохождение через элементы схемы может исказить скважность. По разным причинам. Например, у логического элемента разное время переключения 0->1 и 1->0.
  • Фронты тактовых импульсов и импульсов данных могут не совпадать во времени. Более того, такое несовпадение является фактически "нормой". Идеальное совпадение это теоретическая абстракция.
  • Длительность фронтов отлична от нуля. Даже самые быстродействующие логические элементы обеспечивают длительность фронта не меньшую долей наносекунды. Практически, сотни пикосекунд.

Это наиболее важные неидеальности. Именно их приходится учитывать при построении реальных кодировщиков. Давайте рассмотрим влияние этих неидеальностей.

Отличная от 2 скважность тактовых импульсов

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

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

Практически, приемник может справиться и с отклонением порядка 10%, а иногда и 20%. Но это суммарное отклонение на входе приемника. То есть, это суммарная погрешность передатчика и искажений в канале связи. И чем большую погрешность дает передатчик, тем более высокие требования предъявляются к каналу.

Отличная от нуля длительность фронтов

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

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

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

Ничего не напоминает? Это в точности те же самые помехи, что возникали у нас в аналоговом модуляторе! Поэтому я и уделил столько внимания аналоговому модулятору и синусоидальному сигналу.

Причина возникновения этих помех идентична - конечная скорость изменения уровня сигнала. И это не зависит от того, аналоговый у нас сигнал, или цифровой. Просто у цифрового сигнала скорость изменения уровня гораздо выше, чем у синуса. Если конечно фронты не слишком затянуты по какой то причине.

И, если амплитуда этих помех не выходит за пределы логических уровней, мы их можем даже игнорировать. Теоретически. А практически, эти импульсы помех влияют и на электромагнитную совместимость (ЭМС). В этом случае, как и для синусоидальных сигналов, после модулятора необходимо устанавливать ФНЧ.

Не одновременность фронтов сигналов данных и тактовых импульсов

Это тоже почти "неизбежное зло". На высоких частотах даже различная длина дорожек печатной платы для сигналов данных и тактирования приводит к фазовым сдвигам. И из всех рассмотренных неидеальностей это самая неприятная

Возникновение ложных изменений состояния модулированного сигнала при рассинхронизации фронтов сигналов данных и тактовых импульсов. Использован элемент ИСКЛЮЧАЮЩЕЕ-ИЛИ с инверсией. Иллюстрация моя
Возникновение ложных изменений состояния модулированного сигнала при рассинхронизации фронтов сигналов данных и тактовых импульсов. Использован элемент ИСКЛЮЧАЮЩЕЕ-ИЛИ с инверсией. Иллюстрация моя

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

Модулятор без модуляции. Или взгляд под другим углом

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

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

Две из четырех возможных комбинаций в Manchester-II являются ошибочными (запрещенными). Но нам сейчас это не важно.

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

Но это дает еще и один из способов построения декодера. И мы это тоже увидим в дальнейшем.

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

Заключение

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

До новых встреч!