Как подключить плату с Ethernet к компьютеру без роутера?
Обновлено Редакция GAW
Без роутера в сети нет ни сервера DHCP, ни шлюза, поэтому адреса придётся задать вручную. Это самый надёжный способ для стенда: компьютер и плата с W5500, ENC28J60 или ESP32 общаются как два узла одной подсети.
Адреса
| Узел | Адрес | Маска | Шлюз |
|---|---|---|---|
| Компьютер | 192.168.50.1 | 255.255.255.0 | не нужен |
| Плата | 192.168.50.2 | 255.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 включён на другой стороне. Наш вывод: если связи нет при правильных адресах, попробуйте другой тип кабеля или подключите обоих через коммутатор.
Проверка
- Индикаторы связи на разъёмах горят.
- С компьютера отвечает
ping 192.168.50.2. - Если связи нет — проверьте, что микросхема вообще отвечает: ответ «Как проверить, что 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.
Источники
- 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)
- IETF. RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses, 2005 — префикс 169.254/16; узел без настроенного адреса выбирает случайный адрес из диапазона 169.254.1.0–169.254.254.255; такие адреса действуют только внутри канала
- WIZnet. W5500 Datasheet v1.1.0, 2022 — разд. 5.5.6: Auto-MDIX не поддерживается — к коммутатору и роутеру прямой кабель, к компьютеру или другой W5500 — перекрёстный; с устройством, у которого Auto-MDIX включён, подходит любой кабель
Нашли ошибку?
Смотрите также
- Калькулятор подсетей IPv4Маска и CIDR, сеть, broadcast, узлы, частные диапазоны, деление на подсети
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- W5500Ethernet по SPI с аппаратным TCP/IP: выводы, PMODE, обвязка, ток
- Auto-MDIXPHY сам меняет местами пары приёма и передачи
- Как проверить, что W5500 отвечает по SPI?Прочитать VERSIONR (0x0039): ответ 0x04, затем бит LNK в PHYCFGR