Ethernet 100BaseX
Эта статья о том, как перешли с технологии Ethernet 10Base-T (скорость 10 Мб/с) к технологии Ethernet 100BaseX (100 Мб/с).
Для 100 Мб/с была изначально поставлена задача — сделать все максимально дешево
Когда решили переходить к оптоволокну — сохранить коллизионный механизм, чтобы не переделывать МАС
МАС 100 Мб/с должен быть получен из МАС 10 Мб/с путем увеличения тактового сигнала в 10 раз, а все остальное должно сохраниться. PHY должен же быть конечно переработан существенно.
- Поддержка механизма CSMA/CD MAC,
- Поддержка 100BASE-T MII, репиторов, дополнительного AutoNegotiation,
- В МАС должно входить 100 Мб/с,
- Обеспечить такую скорость на витой паре категории 5, 150 Ω STP (экранированная витая пара) или оптическое волокно по стандарту ISO/IEC11801,
- Обеспечить размеры сетей 200-400 метров: только 100 метровые отрезки на витой паре категории 5, а для двух-репитерной сети могут быть 200, 300 метров с репитором на оптоволоконе, зато полудуплекные сети могут быть до 2 км.
При кодировании Манчестером в худшем случае частота в 2 раза выше, чем битовая частота. Для такой скорости такое кодирование не подходит, потому что если вам нужна пропускная способность в 100 Мб/с, то частота сигнала будет 200 МГерц — это очень много. При таких частотах длина волны будет несколько сантиметров, более длинные волны просто отрываются от кабеля на изгибах.
Перешли к совсем иному способу кодирования MLT3, все было предпринято к тому, чтобы этот сигнал менялся как можно медленнее и плавнее. По этому по шумности удалось достичь приличных результатов, по крайней мере Ethernet пачки кабелей могут быть уложены вместе и работать при этом одновременно, они не наводят друг на друга слишком больших наводок.
Скорость передачи на самом деле не 100, а 125 Мб/с и за счет этого ввели разбавляющее кодирование 4B/5B. Разбавляющее кодирование позволяет управление линией. Система уже полнодуплексная, никаких взаимных коллизий не происходит никогда, 2 передатчика никогда не начинают передавать одновременно. Если вы делаете 100 коллизионный вариант передачи, то все коллизии для вас происходят в хабе.
Несколько изменилась структура PHY, для того чтобы универсализовать этот интерфейс и позволить ему развиваться и дальше структуру PHY немного переформатировали.
Появился MII, который соединяет МАС с PHY, потому что по такому интерфейсу можно подключить любую среду (он универсален: подходит для 10 Мб и 100 Мб). MII присутствует на 10 Мб и 100 Мб, на 1000 Мб его заменяет GMII.
Появились и новые слои. Например, PCS, которое занимается кодированием и раскодированием 4B/5B. А PMA и PMD занимаются кодированием MLT3 и подачей его в линию.
Спецификация технологии 100Base-T. МАС отрабатывает коллизии, если коллизионный режим, только формирует кадры и проверяет CRC, если режим полнодуплексный.
У репитера нет МАС. Не имеет своего МАС-адреса, не может сформировать кадр и проверить его на целостность.
Он принимает пакет из среды, раскодирует его до уровня промежуточного кодирования (усиливается, распознается, выравниваются фронты) или до уровня видимых кадров, перебрасывает по своей шине в другой PHY, который выбрасывает этот пакет в среду.
MII. Передача без коллизий.
TX_CLK — тактовый сигнал
Начала кадра обозначается включением сигнала TX_EN (положительный уровень). Дальше начинается передача в интерфейс шириной в 4 бита (начиная с преамбулы) TXD<3:0>. Провода под сигналы: Clock, enable, 4 бита данных, carrier sense и collision — на передачу. Еще 6 на прием.
В PHY вы выдаете МАСовские кадры по 4 бита. Преамбула сохранилась как наследство. На уровне MII кадры разграничиваются сигналом TX_EN.
Здесь начинает проявляться нестыковка между спецификациями ISO и Ethernet. ISO требует, чтобы устройство 2-ого уровня (МАС) было способно выделять кадры из сплошного бит-потока. МАС этого сделать не может, ему нужны вспомогательные сигналы. Эти вспомогательные символы формируются в 10Мб/c с помощью неправильных символов, а в 100Мб/c с помощью служебных символов промежуточного кодирования.
Механизм обнаружения коллизий. Здесь все как и раньше, только возникает сигнал COL. Это значит, что устройство PHY, установленное в режим полудуплекс c обнаружением коллизий, услышало прием одновременно с вашей передачей. В таком случае идет jam.
Сarrier Sense — «слышу сам себя», нужен для отработки коллизионного протокола.
На 100 Мб/c тактовая частота MII 25МГц, на 10 Мб/c — 2,5МГц. А временная диаграмма не меняется. Функциональность не меняется, в каком режиме включили — в таком и работает.
Передача данных начинается с поднятого сигнала RX_DV, который к концу преамбулы должен уже быть поднятым. На 10 Мб/c прием начинается от тишины к переходу к преамбулы. Пока устройство засинхронизируется, пройдет несколько тактов преамбулы. На 100 Мб/c начала кадра начинается с определенной последовательности, которая точно детектируется.
PCS — промежуточное кодирование.
Разбавочное кодирование помогает избежать намагничивания трансформаторов при длинной передаче «1» или «0» и для гарантии захвата синхронизации устройством на другой стороне передачи. У каждого кодирования есть такие последовательности, в которых легко потерять тактовый сигнал, разбавочное кодирование помогает этого избежать. В результате имеем много служебных символов. Спецсимволы для тишины, начала и конца кадра и другие, которые верхним уровнем не принимаются. В 100 Мб/c преамбула кодируется символами для данных, она является балластом. После окончания приема кадра МАС проверяет чек-сумму. Начала кадра определяется однозначно при кодировании 4В/5В!
Существуют киллер-пакеты, иногда достаточно одного пакета, чтобы намагнитить трансформатор. Для избежания этого решили добавить скремблирование (перемешивание бит) после разбавочного кодирования, но до MLT3-кодирования. Скремблер основам на синхронизируемом сдвиговом регистре с промежуточными обратными связями.