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

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

Начнем с ошибочного мнения, где мы тупо добавим сигнал, и проследим, что получится.

 Типичная ошибка

Теперь разберем все по косточкам, что же здесь не так? Данные приходят на Триггер и по каждому положительному фронту ( из лог. 0 в лог 1), будет перезаписывать состояние входа D. Поскольку на входе D у нас лог 1, то на выходе получим переброс состояния Триггера. Обратите внимание , что Триггер дал небольшую задержку, которую мы должны компенсировать. Мы это сделаем на элементе Исключающие - Или (обычно в микросхеме присутствуют несколько элементов, мы используем это).Это простая задержка. Затем данные придут на один из элементов И (умножение). Одновременно с этим частота (пусть это будет 2,5 мег. ,  для заполнения) придет на другой элемент И (умножение). Эти 2 элемента у нас будут выполнять функцию ключа, а управление ключиком идет с Триггера. Поскольку мы взяли прямой и инверсный выход Триггера, то элементы И будут пропускать только один сигнал, либо данные , либо мусор. Затем на элементе Исключающее - Или , мы смешаем эти сигналы, и получим готовый сигнал для передачи. Потом просто умощняем и передаем. Обратите внимание на полученный после смешивания сигнал, я выделил место с которым в приемнике при разделении будут проблемы. Почему? Да ведь они попадают в случайном месте, и в итоге приемником опознаются как лог 0 , или лог 1 , в зависимости от времени прихода пакета данных.В середине сам пакет данных (условный), он застыл на месте, а мусор (примешиваемую частоту ) попробуйте подвигать, относительно зеленых границ пакета. Учитывая физиологию манчестера , можно совершенно точно сказать, выделить данные из пакета не возможно (если точнее, ничего невозможного не бывает, но Очень сложно).

Какие же выводы из всего этого. Первое что бросается в глаза, или что хочется сделать? Привести оба сигнала к одному, настоящему времени. То есть синхронизировать их перед тем как смешать. Как же это сделать? Нет ничего проще, и придумано не нами, а на заре цифровой обработки. Обычно применяемая синхронизация в 2 раза выше по частоте, чем полезный сигнал. Придется еще раз вернуться к манчестеру. Как будет лог. 1 данных  в манчестере?  Правильно, 50 наносекунд в лог. 1 и 50 наносекунд в лог. 0.  Лог. 0 соответственно наоборот. Теперь попробуем нарисовать часть преамбулы (условно), пакета.

комбинация в манчестере

Обратите внимание - это данные в представлении манчестера 10 мег. Первая половина 50 наносекунд - данные, вторая половина 50 наносекунд противоположность первой по логическому состоянию. Сочетание в данных 1-0 , даст 50-100-50 (в наносекундах). Что же нужно знать нам? Наименьшее состояние по времени 50 наносекунд, наибольшее 100 наносекунд. Частота синхрогенератора должна быть вдвое большей, то есть за 50 наносекунд у нас должен пройти такт, а это 20 мег. А для того , чтоб мусор мы не восприняли как данные частота должна быть 3 раза по 50 наносекунд, для удобства возьмем 4 раза по 50 наносекунд = 2,5 мег.  Теперь есть исходные данные для нашего конструктора.

Перейдем к схеме передатчика.