网口不通?先搞懂 MAC 和 PHY
2026/7/17 23:57:21 网站建设 项目流程

边缘 AI 摄像头,视频流要通过网线推送到服务器。

板子到手,网线插上,灯不亮。换根线,灯亮了,ping 不通。调驱动,改设备树,翻论坛,一下午没了。

问题也许是 MAC 和 PHY

本期是 Comake 硬件科普第四期:开发板怎么上网——MAC、PHY、RMII、RGMII。

内容如下:

1️⃣ MAC 和 PHY 分别是什么

2️⃣ MII、RMII、RGMII 有什么区别

3️⃣ RGMII 信号测试要注意什么

4️⃣ 电路设计有哪些坑

一、OSI 模型:MAC 和 PHY 在哪一层

OSI(开放式通信系统互联参考模型)是 ISO 提出的标准框架。

MAC 和 PHY 分别工作在 OSI 七层模型的数据链路层物理层

  • MAC(Media Access Control,介质访问控制):数据链路层,管“数据怎么打包、什么时候发”。

  • PHY(Physical Layer,物理层):物理层,管“数据怎么变成网线上的电信号”。

二、网络系统的硬件组成

从硬件角度看,以太网接口由三部分组成:

CPU + MAC + PHY

芯片设计通常有三种方案:

为什么 MAC 和 PHY 经常分开?

PHY 包含大量模拟电路,MAC 是纯数字电路。考虑到芯片面积及模拟/数字混合架构

的原因,通常把 MAC 集成进主控,PHY 放在片外。

三、MAC:数据链路层

MAC 有两个含义:

  • 硬件控制器:芯片内部的一个模块

  • 通信协议:OSI 七层中数据链路层的下半部分

MAC 的作用:

  • 发送数据时:判断是否可以发送。如果可以,给数据加上控制信息,按规定的格式发到物理层。

  • 接收数据时:判断输入信息是否有错误。如果没有错误,去掉控制信息,发到 LLC(逻辑链路控制)层。

  • MAC 硬件的一端接主控总线,另一端接 PHY,中间通过 MII 接口连接。

四、PHY:物理层

PHY(Physical Layer)是 IEEE 802.3 中定义的标准模块。作用如下

  • 物理接口收发器,实现 OSI 模型的物理层

  • 实现 MII/GMII 子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI 子层

PHY 怎么配置?

通过 SMI 总线——两根线:MDC(时钟) 和 MDIO(数据) 。MAC 或 CPU 通过这两根线读写 PHY 寄存器,控制速率、双工、自协商等。

调 PHY 驱动,本质就是操作寄存器。

SMI 总线包括两根线:

  • MDC:时钟信号

  • MDIO:数据信号

具体控制和状态读写,通过操作 PHY 内部的寄存器实现。

五、PHY 与 Switch 的区别

PHY:单网口物理层收发器,一个网络接口对应一个 PHY。

Switch:多网口交换芯片,内部结构是多个 MAC + 多个 PHY,主要功能是将数据在不同端口之间转发,同时留有数据接口与 SoC 对接。

区分方式:

  • PHY = 一个网口

  • Switch = 多个网口,带交换功能

六、MII:MAC 和 PHY 之间的接口

MII(Media Independent Interface)是 MAC 与 PHY 连接的标准接口,由 IEEE 802.3 定义。

关键特性:

  • 支持 10Mb/s 和 100Mb/s 数据传输速率

  • 数据传输位宽为 4 位

  • “媒体独立” :任何类型的 PHY 都可以工作,不需要重新设计 MAC 接口

MII 总共需要 16 个信号,主要包括四部分:

  • 发送数据接口:MAC → PHY

  • 接收数据接口:PHY → MAC

  • 状态指示信号:PHY → MAC

  • 管理和控制接口(MDIO) :MAC ↔ PHY

七、RMII:精简版 MII

RMII(Reduced Media Independent Interface),精简 MII 接口,比 MII 少了一半的数据线。

特点:

  • 收发各使用 2 位 数据

  • 收发时钟均采用 50MHz 时钟源

  • 适合对引脚数量敏感的场合

八、RGMII:千兆版精简 MII

RGMII(Reduced Gigabit Media Independent Interface),精简 GMII 接口。

数据线变化:

  • 发送/接收数据线从 8 条减少为 4 条

  • TX_ER 和 TX_EN 复用,通过 TX_CTL 传送

  • RX_ER 和 RX_DV 复用,通过 RX_CTL 传送

时钟频率(4-bit 数据接口,上升沿和下降沿同时采样):

1 个字节 = 8 bit。RGMII 接口只有 4 位,先发送低位再发送高位。1000M 时时钟周期为 8ns,半个周期为 4ns。

九、RGMII 信号测试注意事项

  • 示波器要求

    RGMII TX/RX CLK 为 125MHz,需用带宽大于5倍被测信号频率示波器,波形才不会出现幅度失真。

  • 测试点位置

    测试探头要选择在 负载端(终端),而不是信号源端,避免信号反射造成失真。

  • 探头接地

    测试探头的 GND 要选择最靠近信号的 GND,避免寄生电容和寄生电感造成影响。

十、RGMII 电路设计注意点

同一个 GMAC,只能搭配一个 PHY 使用。

所以对既有MAC也有内置ephy的SOC(双或多网口),需要确认清楚内部是否共用MAC

时序问题:

  • RGMII 要求接收端在数据中间采样,需要时钟延时。

  • 1Gbps 速率下,RGMII 时钟周期为 8ns。发送端在时钟沿发送数据,接收端需要时钟延时约 2ns 后在数据中间采样。

十一、Comake Pi 开发板的网络接口

Comake Pi D1开发板在网络接口上的设计:

✅ MAC 集成在 SoC 内:标准设计,减少外围器件

✅ PCB 走线经过验证:阻抗控制已优化

✅ 文档齐全:PCB 走线要求、PHY 配置指南

✅支持外挂PHY,成本、应用更灵活

以太网接口看似简单——插上网线就能用。

但 MAC 和 PHY 之间的 MII/RMII/RGMII 接口,涉及时钟同步、信号完整性、时序匹配等多个细节,任何一个环节出问题,网口就不工作了。

理解 MAC 和 PHY,就理解了“数据如何从芯片走到网线上”。

十二、了解 Comake 开发板

🔗Comake Pi D1 | Comake Pi D2

👉 点击链接了解开发板详情

加入 Comake 开发者社区

👉点击阅读原文, 注册社区,获取完整技术资料和项目支持

Tips:Comake Pi 系列开发板的硬件参考设计,包含原理图、PCB、硬件说明、HWchecklist、配件安装指南均在【Comake 技术支持-SDK下载】,注册社区即可获取。有任何问题可通过 Comake 论坛提问。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询