相比于WiFi,有线以太网(RJ45)连接因其稳定性、速度和安全性更胜一筹:
ESP32 <--> LAN8720 <--> 路由器/交换机
ESP32虽然内置了以太网MAC控制器,这相当于它有了处理以太网数据帧的“大脑”,但它缺少将数字信号转换成可以在网线中传输的模拟信号的PHY芯片。PHY芯片通过一个叫做RMII(精简媒体独立接口)的接口与ESP32的MAC控制器进行通信。
TXD[1:0] 输出 发送数据线。MAC通过这两根线将数据发送给PHY。在每个REF_CLK的上升沿,MAC会在这两根线上送出2位数据。
RXD[1:0] 输入 接收数据线。PHY通过这两根线将从网线上接收到的数据传送给MAC。同样,在每个REF_CLK的上升沿,PHY会送出2位数据。
TX_EN 输出 发送使能。当MAC想要开始发送一帧数据时,将此信号拉高。它标志着TXD[1:0]上的数据是有效的。
CRS_DV 输入 载波侦听/数据有效(这是最重要的接收控制信号)。这是一个复合信号:
1. CRS (Carrier Sense): PHY检测到网络上有数据活动时(无论是发给谁的)就会拉高此信号。
2. DV (Data Valid): 当PHY正在接收一帧目标地址为本机的有效数据时,它会始终保持此信号为高电平,直到帧结束。
RX_ER 输入 接收错误。当PHY在接收数据过程中检测到错误(如编码错误、CRC错误)时,会在保持CRS_DV为高的同时,在一个时钟周期内拉高RX_ER,向MAC报告错误。
MDIO 双向 管理数据输入/输出。这是一个双向串行数据线,用于MAC(主机)通过读写PHY内部的寄存器来配置PHY和读取PHY状态。
MDC 输出 管理数据时钟。为MDIO接口提供同步时钟信号。由MAC产生。
REF_CLK 双向 参考时钟(50MHz)。这是整个RMII通信的同步时钟源,所有信号的时序都以此时钟为基准。(时钟源配置错误是导致ESP32以太网无法连接的最常见原因)
1,MAC提供: ESP32内部生成50MHz时钟并通过此引脚输出给PHY。
2,PHY提供: PHY芯片利用其外部晶振产生时钟并通过此引脚输出给ESP32。