Перейти к содержанию

Как подключить плату с Ethernet к компьютеру без роутера?

Обновлено Редакция GAW

Без роутера в сети нет ни сервера DHCP, ни шлюза, поэтому адреса придётся задать вручную. Это самый надёжный способ для стенда: компьютер и плата с W5500, ENC28J60 или ESP32 общаются как два узла одной подсети.

Адреса

УзелАдресМаскаШлюз
Компьютер192.168.50.1255.255.255.0не нужен
Плата192.168.50.2255.255.255.0не нужен или 192.168.50.1

Адреса — наш пример из частного блока 192.168.0.0/16 по RFC 1918; подойдёт любая подсеть, не совпадающая с той, что уже есть на других сетевых картах компьютера (наш вывод). Подсеть, адреса узлов и проверку «в одной ли подсети» даст калькулятор подсетей.

Если адрес компьютеру не задать, он может выбрать себе случайный адрес 169.254.x.x из диапазона 169.254.1.0–169.254.254.255 (RFC 3927). Плата с адресом 192.168.50.2 до такого компьютера не достучится: маска /24 говорит, что они в разных сетях, а шлюза нет.

Кабель

Если сетевая карта компьютера поддерживает Auto-MDIX, то есть сама меняет местами пары приёма и передачи, подходит любой кабель. Есть ли эта функция, указано в характеристиках карты. У W5500 этой функции нет: по даташиту к компьютеру или другой W5500 нужен перекрёстный кабель, а прямой подойдёт, если Auto-MDIX включён на другой стороне. Наш вывод: если связи нет при правильных адресах, попробуйте другой тип кабеля или подключите обоих через коммутатор.

Проверка

  1. Индикаторы связи на разъёмах горят.
  2. С компьютера отвечает ping 192.168.50.2.
  3. Если связи нет — проверьте, что микросхема вообще отвечает: ответ «Как проверить, что W5500 отвечает по SPI».

Варианты подключения Ethernet к микроконтроллеру — в статье «Ethernet для микроконтроллера».

Похожие вопросы

Компьютер показывает адрес 169.254.x.x. Это нормально?

Это адрес, который компьютер назначил себе сам, не дождавшись сервера DHCP (RFC 3927). Плата со статическим адресом 192.168.x.x с ним не увидит друг друга — разные подсети. Задайте компьютеру статический адрес из подсети платы.

Можно ли раздавать адрес плате по DHCP с ноутбука?

Можно, если на компьютере запущен сервер DHCP. Но тогда адрес платы придётся узнавать по журналу сервера или выводу в UART; для стенда проще статические адреса. У W5500 клиента DHCP в аппаратуре нет — он работает в программе микроконтроллера.

Индикаторы на разъёме не горят. В чём дело?

Нет физической связи: кабель, разъём с трансформатором, питание или кварц PHY, а у W5500 — ещё неподходящий тип кабеля при сетевой карте без Auto-MDIX. Наличие связи у W5500 показывает бит LNK регистра PHYCFGR — порядок проверки в ответе о проверке W5500 по SPI.

Источники

  1. IETF. RFC 1918: Address Allocation for Private Internets, 1996 — разд. 3: частные блоки 10/8, 172.16/12 и 192.168/16 (192.168.0.0–192.168.255.255)
  2. IETF. RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses, 2005 — префикс 169.254/16; узел без настроенного адреса выбирает случайный адрес из диапазона 169.254.1.0–169.254.254.255; такие адреса действуют только внутри канала
  3. WIZnet. W5500 Datasheet v1.1.0, 2022 — разд. 5.5.6: Auto-MDIX не поддерживается — к коммутатору и роутеру прямой кабель, к компьютеру или другой W5500 — перекрёстный; с устройством, у которого Auto-MDIX включён, подходит любой кабель

Нашли ошибку?