PHY Ethernet — приёмопередатчик физического уровня
Микроконтроллер с Ethernet работает с кадрами, а по витой паре бегут трёхуровневые сигналы со скоростью 125 Мбод. Между этими мирами стоит отдельная микросхема — PHY: она превращает биты в сигнал линии и обратно и следит за состоянием соединения.
Обновлено Редакция GAW
PHY Ethernet (physical layer transceiver, приёмопередатчик физического уровня) — микросхема или блок, который превращает поток данных от контроллера кадров (MAC) в сигналы на витой паре и обратно. PHY кодирует и декодирует данные, следит, есть ли связь, договаривается с коммутатором о скорости и дуплексе и сообщает о состоянии линии по шине управления. Примеры отдельных PHY для микроконтроллеров — Microchip LAN8720A и TI DP83848; в контроллерах W5500 и ENC28J60 PHY встроен вместе с MAC. Где в схеме каждый вариант, разобрано в статье «Ethernet для микроконтроллера».
Что делает PHY
- Передача и приём. В режиме 100BASE-TX полубайты от MAC проходят код 4B/5B, скремблер,
NRZIи трёхуровневый код MLT-3 и через трансформатор уходят в кабель (LAN8720A, рис. 3-1). На приёме PHY восстанавливает из сигнала такт и данные. - Договорённость о режиме. PHY проводит автосогласование скорости и дуплекса, а многие PHY умеют сами менять местами приёмную и передающую пары (Auto-MDIX).
- Связь с MAC. Данные идут по интерфейсу MII или RMII, а регистры состояния и настройки PHY читают и пишут по отдельной шине MDIO.
Адрес и страп-выводы
На шине MDIO может быть до 32 устройств, поэтому у каждого PHY есть адрес. Его, как и режим работы, микросхема берёт при сбросе со страп-выводов — тех же выводов, что потом работают как линии данных или светодиоды. У DP83848 адрес по умолчанию 0x01, а адрес 0 переводит PHY в режим изоляции от MII; у LAN8720A страпом задаётся только младший бит адреса (PHYAD0) и режим MODE[2:0] (DP83848, разд. 6; LAN8720A, разд. 3.7). Работать PHY может и без обращения к регистрам — начальный режим полностью определяют страпы (LAN8720A, разд. 1.2).
Не путать
Слово PHY означает физический уровень любого интерфейса: у USB тоже есть PHY, и в справочном руководстве STM32F4 упоминаются оба (RM0090). На этой странице — только PHY Ethernet. Не путать и с контроллером MAC: тот собирает кадры, проверяет CRC и фильтрует адреса, а PHY занимается только сигналом на линии.
Частые вопросы
Нужен ли отдельный PHY, если взять W5500 или ENC28J60?
Нет. Эти контроллеры содержат и MAC, и PHY: к ним подключают только трансформатор и разъём RJ-45. Отдельный PHY нужен микроконтроллеру со встроенным MAC — например, STM32F407 или ESP32, — который сам формирует кадры и передаёт их PHY по RMII или MII.
Почему PHY не отвечает по MDIO?
Чаще всего из-за адреса или такта. Адрес PHY на шине задают страп-выводы при сбросе, и если в этот момент вывод микроконтроллера тянул линию не туда, адрес окажется другим. У DP83848 по умолчанию адрес 0x01, а адрес 0 вообще переводит его в режим изоляции. Без опорного такта (в RMII — 50 МГц) PHY тоже не работает.
Можно ли заменить один PHY другим без изменения схемы?
Не всегда. Базовые регистры стандартны, и программа обычно заработает, но обвязка линии зависит от выходного каскада: у PHY с токовым выходом средняя точка трансформатора подключается к питанию, а у PHY с выходом в режиме напряжения схема другая. Страп-выводы, источник такта и питание у разных микросхем тоже разные.
Источники
- Microchip. LAN8720A/LAN8720Ai Small Footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and flexPWR Technology, DS00002165C — разд. 1.2 — PHY 10BASE-T/100BASE-TX по IEEE 802.3-2005, связь с MAC по RMII, автосогласование, HP Auto-MDIX, регистры не обязательны для работы, начальная настройка страп-выводами; рис. 3-1 — тракт передачи 4B/5B, скремблер, NRZI, MLT-3, драйвер через трансформатор 1:1; разд. 3.7 — страп-выводы PHYAD0, MODE[2:0], REGOFF, nINTSEL
- Texas Instruments. DP83848C/I/VYB/YB PHYTER QFP Single Port 10/100 Mb/s Ethernet Physical Layer Transceiver, SNLS266E — разд. 1, 6 — интерфейсы MII и RMII (25 МГц в MII, 50 МГц в RMII), Auto-MDIX, автосогласование, меньше 270 мВт типично; страп-выводы PHYAD (по умолчанию 0x01, адрес 0 — изоляция), MII_MODE, AN_EN, MDIX_EN; разд. 6.4.3 — до 32 устройств на шине MDIO
- STMicroelectronics. RM0090 Reference manual: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439, Rev 21 — гл. 33 — MAC Ethernet работает с внешним PHY 10/100 Мбит/с по MII или RMII, PHY настраивается через SMI (MDC/MDIO); в перечне выводов упоминается и PHY USB 2.0 — тот же термин для другого интерфейса
Нашли ошибку?
Смотрите также
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- MAC EthernetБлок, который формирует и принимает кадры Ethernet
- MII и RMIIПараллельные интерфейсы между MAC и PHY Ethernet
- MDIO и MDCДвухпроводная шина регистров PHY Ethernet
- Трансформатор EthernetИмпульсный трансформатор между PHY и разъёмом RJ-45
- Автосогласование EthernetКак PHY выбирают скорость и дуплекс по пачкам FLP