ESP32 に有線LANをつなげる
では、Ethernet の PHY を接続、サンプルプログラムを動かしてテストしていました。
今回は使い慣れた WiFi 用のプログラムを書き直して有線LAN対応にする方法について。
以下のようにすればできるようになります。

(2020/06/18追記 続きの記事を書きました→
「ESP32 の 有線LAN / 無線LANの書き分け」
https://qiita.com/nanbuwks/items/f7e3a8ed24d56bb56501 )
ESP32には WiFi 機能があるが、有線LANの機能も入っている。
ESP32 Series Datasheet
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
によると、4.1.7 Ethernet MAC Interface に以下のようにある。
An IEEE-802.3-2008-compliant Media Access Controller (MAC) is provided for Ethernet LAN communications.
ESP32 requires an external physical interface device (PHY) to connect to the physical LAN bus (twisted-pair, fiber,
etc.). The PHY is connected to ESP32 through 17 signals of MII or nine signals of RMII.
(MIIかRMIIを使ってツイストペアやファイバー等を使ったLANへの接続ができる)
MIIとかPHYとか
以下の意味です。
PHY: physical layer ・・・OSI参照モデルでいう最下層(第1層:物理層)。 アナログ信号処理などを行う。
MAC:physical layer ・・・IEEE 802プロトコルにおいて、OSI参照モデルでいう第2層(データリンク層)の下層にあたる。MACアドレスはこの層に付く。MACアドレスによる通信、PHYでの衝突調停などを行う。ちなみにMACに対応する第2層の上層はLLC。
MII:100BaseのPHY層と上位層(MAC層)を接続するための信号規格。1ポートに対し18本の信号線が必要。
RMII:MIIに必要な信号線を削減したもの。1ポートに対し9本の信号線が必要。
なお、MIIを拡張したものとしてGMII、RGMII、SGMII、OSGMIIなどの規格がある。
MAC(MEDIA ACCESS CONTROL)とは、第2層にある。ESP32には第2層まで実装されているということですね。
ESP32にPHYをつけて使えるようにするためには、PHYチップ、パルストランス、RJ45コネクタ、クロック、電源、抵抗やコンデンサ、ノイズフィルターぐらいが必要。その上で適切な制御をすることで有線LANで通信することができる。