Почему мы должны использовать манчестерское кодирование для передачи данных по Ethernet?

11

Если вы хотите перенести данные с одного компьютера на другой, ваши данные (в двоичном виде) сначала поступят на сетевую карту ( Network Interface Card ), где данные будут закодированы (например, с отметкой времени таймера) и отправлены по сети в электронный сигнал.

Пример Манчестерского Кодирования:

101110011001   // data
101010101010   // timer tick on network
000100110011   // result using XOR

Почему NIC не передает напрямую двоичные данные, а должен сначала их кодировать?

HQT
источник

Ответы:

13

Потому что использование манчестерского кодирования имеет хорошее преимущество - самосинхронизация (более низкая частота ошибок и более надежная передача).

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

введите описание изображения здесь
Источник изображения

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

Лукас Кауфман
источник
Нет, я не спрашиваю преимущества кодировки Machester, я просто хочу знать, зачем нужна кодировка?
2012 г.
2
Как я уже сказал, потому что, когда вы не кодируете их, вам нужно синхронизировать часы отдельно, что означает, что у вас будет более высокий уровень ошибок и меньшая передача.
Лукас Кауфман
Но я думаю, что если вы кодируете (кодировку Machester или другую кодировку тоже), два тактовых сигнала все равно должны работать с одинаковой частотой, иначе они будут декодироваться неправильно.
2012 г.
Нет, это не так, потому что часы являются частью способа, которым они кодируются, как вы видите, вы не идете вверх и вниз к базовой линии, вместо этого базовая линия сообщает вам, когда ничего не отправляется. Поэтому отдельные часы больше не нужны
Лукас Кауфман
3
Дополнительная причина: предотвращает длительные прогоны 0 или 1 с, поэтому ошибки (например, отсоединения) будут более очевидными.
Tucuxi
13

Существует по крайней мере три (может быть и больше) причины для использования кодировки (такой как кодировка Манчестера, которую вы упоминаете) при передаче цифровой информации:

  • Данные и часы объединяются в один сигнал. Если бы часы не были отправлены с данными, то приемник не знал бы, когда следует выбирать сигнал для извлечения цифровых значений. Даже если передатчик и приемник как-то идеально синхронизированы, необходимо учитывать бесконечно малую задержку среды передачи. Другой альтернативой является добавление линии данных к линии часов, но это удваивает количество проводов. Дешевле и надежнее вдвое (или вдвое, в зависимости от перспективы) требования к пропускной способности (или возможностям) кабеля и приемопередатчика, чем использование большего количества проводных и объемных разъемов.
  • Длинная строка с нулями (нулями) больше не будет выглядеть как мертвая или отключенная строка. Длинный укус больше не похож на застрявший уровень.
  • Кодированный сигнал имеет более сбалансированный энергетический профиль, то есть усредненное по времени напряжение должно стремиться к нулю. Логический сигнал на плате использует 0 вольт для логического нуля и положительное напряжение (5 вольт для старого TTL, 3,3 вольт или меньше для современной логики) для логической единицы. Только логика данных всех нулей будет иметь нулевой энергетический профиль; любой другой шаблон данных всегда будет иметь средний уровень напряжения выше нуля и характерное магнитное поле. Но поскольку в таких кодировках, как Манчестер, используются как положительные, так и отрицательные уровни напряжениямагнитные поля, создаваемые передаваемым сигналом, намного меньше, поскольку они будут стремиться нейтрализовать друг друга. Это позволяет связывать провода ближе друг к другу в кабелях, но создает меньше помех друг другу. (Даже схемы медленной передачи, такие как RS / EIA-232, используют как положительные, так и отрицательные уровни напряжения, чтобы сбалансировать профиль энергии. Вероятно, межплатные соединения менее 0,5 метра и внутри корпуса будут использовать только положительные напряжения.)
опилки
источник
IEEE 1284 использует только положительные напряжения, уровни TTL.
Игнасио Васкес-Абрамс
@ IgnacioVazquez-Abrams - LOL, хорошо, вы нашли исключение, но я хеджировал это замечание с «вероятно». И это обычно использует ленточный (то есть плоский и широкий) кабель с чередующимися проводниками сигнала земля-сигнал-земля. Дело в том, что я пытался упомянуть, где вы, скорее всего, найдете каналы данных только для положительного напряжения; Я не пытался охарактеризовать ограничение приложения.
опилки
3

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

  1. Тактовые сигналы
  2. Синхронные сигналы
  3. кодирование

После этого причина в том, что «необходим приемник для однозначного определения начала, конца или середины каждого бита без ссылки на внешние часы

И, наконец, для этого манчестерское кодирование является одним из подходов.

Сандип Кумар
источник
3

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

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

Единственная проблема с манчестерским кодом состоит в том, что вам нужно удвоить частоту вашей скорости передачи данных, так как 8 битов превращаются в 16 битов данных. Поэтому, если вам требуется скорость передачи данных 5 КБ, вам потребуется скорость передачи 10 КБ.

Приложение. Надеюсь, что ссылка разрешена, но на всякий случай перейдите на сайт Maxim и поищите Манчестерское кодирование данных для радиосвязи. http://www.maximintegrated.com/en/app-notes/index.mvp/id/3435 Это должно помочь любому понять достоинства этой кодировки.

Поздний разработчик
источник