1. MII (Media Independent Interface)
- 适用场景:10/100M,老旧设备。
- 特点:TX/RX 时钟全由 PHY 提供,控制线独立。
| 信号名称 | 方向 (MAC视角) | 描述与功能 |
|---|---|---|
| TX_CLK | Input | 发送时钟。PHY 提供。25MHz(100M) 或 2.5MHz(10M)。 |
| TXD[3:0] | Output | 发送数据。4位并行数据。 |
| TX_EN | Output | 发送使能。高电平有效。 |
| TX_ER | Output | 发送错误。指示当前发送的数据帧无效。 |
| RX_CLK | Input | 接收时钟。PHY 提供。频率同 TX_CLK。 |
| RXD[3:0] | Input | 接收数据。4位并行数据。 |
| RX_DV | Input | 接收数据有效。高电平有效。 |
| RX_ER | Input | 接收错误。指示当前接收的数据帧有误。 |
| CRS | Input | 载波侦听。指示介质忙(半双工用)。 |
| COL | Input | 冲突检测。指示发生冲突(半双工用)。 |
| MDC | Output | 管理时钟。 |
| MDIO | In/Out | 管理数据。 |
2. RMII (Reduced MII)
- 适用场景:10/100M,引脚受限的嵌入式设备。
- 特点:时钟统一,控制线合并,引脚最少。
| 信号名称 | 方向 (MAC视角) | 描述与功能 |
|---|---|---|
| REF_CLK | Input/Output | 参考时钟。50MHz。可由 MAC 输出,也可由外部晶振输入给 MAC 和 PHY。 |
| TXD[1:0] | Output | 发送数据。2位并行数据。 |
| TX_EN | Output | 发送使能。 |
| RXD[1:0] | Input | 接收数据。2位并行数据。 |
| CRS_DV | Input | 载波/数据有效。复用引脚:同时代表 MII 的 RX_DV 和 CRS。 |
| RX_ER | Input | 接收错误。(注:很多简化的 RMII 接口会省略此引脚)。 |
| MDC | Output | 管理时钟。 |
| MDIO | In/Out | 管理数据。 |
3. GMII (Gigabit MII)
- 适用场景:10/100/1000M,主要是芯片内部逻辑或 FPGA,PCB 走线极少用。
- 特点:双发送时钟(这是最容易搞错的地方)。
| 信号名称 | 方向 (MAC视角) | 描述与功能 |
|---|---|---|
| GTX_CLK | Output | 千兆发送时钟。125MHz。仅在 1000M 模式下使用,由 MAC 产生。 |
| TX_CLK | Input | 百兆/十兆发送时钟。25MHz/2.5MHz。仅在 10/100M 模式下使用,由 PHY 产生 (为了兼容 MII)。 |
| TXD[7:0] | Output | 发送数据。8位并行数据。 |
| TX_EN | Output | 发送使能。 |
| TX_ER | Output | 发送错误。 |
| RX_CLK | Input | 接收时钟。PHY 提供。125MHz(1000M) / 25MHz(100M) / 2.5MHz(10M)。 |
| RXD[7:0] | Input | 接收数据。8位并行数据。 |
| RX_DV | Input | 接收数据有效。 |
| RX_ER | Input | 接收错误。 |
| CRS | Input | 载波侦听。 |
| COL | Input | 冲突检测。 |
| MDC | Output | 管理时钟。 |
| MDIO | In/Out | 管理数据。 |
4. RGMII (Reduced Gigabit MII)
- 适用场景:10/100/1000M,当前最主流接口。
- 特点:DDR 双边沿采样,控制信号高度复用,无 COL/CRS。
| 信号名称 | 方向 (MAC视角) | 描述与功能 |
|---|---|---|
| TXC (TX_CLK) | Output | 发送时钟。MAC 提供。125M/25M/2.5M。注意配置 Internal Delay。 |
| TXD[3:0] | Output | 发送数据。4位。 1000M时:DDR模式 (上升/下降沿均传输)。 10/100M时:SDR模式 (仅上升沿)。 |
| TX_CTL | Output | 发送控制 (复用)。 上升沿 = TX_EN下降沿 = TX_EN XOR TX_ER |
| RXC (RX_CLK) | Input | 接收时钟。PHY 提供。频率同 TXC。注意配置 Internal Delay。 |
| RXD[3:0] | Input | 接收数据。4位。 1000M时:DDR模式。 10/100M时:SDR模式。 |
| RX_CTL | Input | 接收控制 (复用)。 上升沿 = RX_DV下降沿 = RX_DV XOR RX_ER |
| MDC | Output | 管理时钟。 |
| MDIO | In/Out | 管理数据。 |
BSP 开发者速记口诀
- 时钟是谁给的?
- MII: 全是 PHY 给。
- RMII: 大家听同一个(外部或内部 Ref)。
- RGMII: 谁发数据,谁给时钟 (Source Synchronous)。
- GMII 的坑?
- 别忘了它有两个 TX 时钟脚,一个跑千兆(MAC给),一个跑百兆(PHY给)。
- 为什么不通?
- 1000M: 查查是不是没开自动协商?
- RGMII: 查查设备树里的
rx-internal-delay加了吗?