深入解析Ethernet PHY层:从xMII到Auto-Negotiation的完整通信流程

以太网自动协商机制 阅读详情

1. 理解Ethernet PHY层的基础架构

当你用网线连接电脑时,数据究竟是如何从网卡传输到路由器的?这个问题背后隐藏着一个关键角色——PHY层芯片。作为物理层的核心组件,PHY就像网络世界的翻译官,负责把MAC层传来的数字信号转换成能在网线上传输的模拟信号。

PHY层与上层的MAC层通过两大接口协同工作:xMII负责数据传输,MDIO负责控制配置。这种分工就像快递系统——xMII是运输货物的卡车,而MDIO是调度中心的控制台。实际应用中,我遇到过因为PHY配置不当导致网络时断时续的情况,后来通过MDIO接口调整寄存器才解决问题。

PHY层的工作频率直接决定了网络速度。以常见的百兆PHY为例,它需要处理25MHz的基础时钟,而千兆PHY则要应对125MHz的时钟频率。在硬件设计时,时钟信号的完整性至关重要,我曾经在PCB布局时因为时钟走线过长导致千兆网络降速到百兆,这个教训让我深刻理解了PHY对信号质量的高要求。

2. 解密xMII接口家族

xMII接口相当于PHY与MAC之间的高速公路,不同代际的xMII支持不同的网络速率。最基础的MII接口采用4位数据总线,时钟频率25MHz,适合10/100M网络。记得第一次调试MII接口时,我用逻辑分析仪抓取信号,发现TX_EN和RX_DV这两个控制信号对数据传输至关重要。

随着网络提速,GMII接口应运而生。它将数据总线扩展到8位,时钟提升到125MHz,完美支持千兆传输。但在实际项目中,GMII的引脚数量较多(共24个信号),对PCB布线挑战很大。这时RGMII(Reduced GMII)就成了救星,它通过双沿采样技术将信号线减少到12根,我在多个嵌入式设备中都采用这种设计。

调试xMII接口时有个实用技巧:用示波器检查TX_CLK和RX_CLK的相位关系。曾经有个项目因为时钟偏移导致数据采样错误,后来在RX_CLK路径上加了个延时单元就解决了问题。下表对比了主流xMII接口的关键参数:

接口类型数据宽度时钟频率典型应用
MII4-bit25MHz10/100M
GMII8-bit125MHz1000M
RGMII4-bit DDR125MHz1000M

3. MDIO协议深度剖析

MDIO接口就像是PHY芯片的遥控器,MAC通过它配置PHY的各个寄存器。这个双线制接口(MDC时钟+MDIO数据)采用类似I2C的访问方式,但时序规范更为严格。有次调试时我忽略了MDC的上升沿采样要求,导致寄存器写入失败,后来仔细研读802.3标准才找到问题。

PHY寄存器分为基础寄存器和扩展寄存器两大类。基础寄存器包含Control(0x00)和Status(0x01)等关键设置,而扩展寄存器则需要通过MMD机制访问。Control寄存器的bit[12]控制着自协商功能,我在调试网络适配问题时经常需要检查这个位。

MMD机制采用间接访问方式,先通过寄存器13指定设备地址,再通过寄存器14访问数据。这个过程就像先输入保险箱密码,再转动旋钮开锁。例如要访问7.61寄存器时,需要先写0x0007到寄存器13,再写0x0061到寄存器14,最后才能读取数据。这种设计虽然增加了访问步骤,但极大扩展了寄存器寻址空间。

4. 自协商(Auto-Negotiation)的魔法

自协商技术让不同厂商、不同速率的设备能够自动选择最佳工作模式。其核心是FLP(快速链路脉冲)机制,这种巧妙的设计向后兼容老的NLP脉冲。FLP将33个时钟脉冲和数据编码成脉冲簇,接收端通过检测脉冲间隔来解码信息。

在实际网络部署中,我遇到过自协商失败的典型案例:一端强制千兆全双工,另一端开启自协商,结果链路虽然建立但频繁丢包。这是因为强制模式会禁用自协商功能,最佳实践是两端都采用相同的配置策略。

自协商过程分为几个关键阶段:

  1. 能力通告:通过Base Page交换支持的速率和双工模式
  2. 技术匹配:选择双方都支持的最高优先级模式
  3. 链路训练:PHY进行均衡器和时钟同步调整
  4. 链路建立:数据通道正式开通

对于千兆以太网,自协商还会交换额外的Next Page信息。这些扩展页面包含EEE(节能以太网)等高级功能支持情况。在调试节能功能时,我经常检查寄存器7和寄存器8的内容,它们记录了Next Page的交互状态。

5. 物理层编码技术演进

不同速率的以太网采用截然不同的编码方案,这些技术演进反映了网络发展的智慧。10BASE-T的曼彻斯特编码简单可靠,但效率只有50%。我曾用示波器观察过这种编码波形,每个比特周期中间都有跳变,零电平代表空闲状态。

100BASE-TX转向更高效的4B/5B+MLT-3组合。这种方案通过4B/5B转换保证足够的信号跳变,再用MLT-3编码降低信号频率。实测中发现MLT-3信号的谐波干扰明显小于NRZ编码,这解释了为什么百兆以太网的辐射更小。

千兆以太网的编码最为复杂,采用4D-PAM5调制在四对双绞线上同时收发数据。这种方案就像在四条平行铁轨上双向行驶的列车,需要精确的时序控制。有次测试时发现千兆链路不稳定,最后发现是其中一对线的阻抗不匹配导致信号反射,更换优质网线后问题解决。

6. PHY状态机与链路训练

PHY内部运行着复杂的状态机,控制着链路建立的全过程。上电后PHY首先进入复位状态,然后开始自协商流程。在千兆以太网中,链路训练阶段尤为关键,这个阶段要完成:

  • 时钟恢复:从数据流中提取时钟信号
  • 均衡器收敛:补偿电缆带来的信号失真
  • 扰码同步:确保加扰/解扰器状态一致

调试PHY时,我经常监控Status寄存器(0x01)的bit[2:1],它们指示链路状态和自协商完成状态。对于千兆PHY,还需要关注寄存器1.15的Training状态位。曾经有个硬件设计因为MDI接口的阻抗不连续,导致训练阶段无法完成,后来优化了变压器匹配电路才解决。

7. 低功耗设计技巧

现代PHY支持多种节能技术,最典型的是EEE(Energy Efficient Ethernet)。当链路空闲时,PHY会进入LPI(低功耗空闲)状态,此时功耗可降低50%以上。但要注意,频繁切换功耗状态会增加链路恢复延迟,对实时性要求高的应用需要谨慎启用。

在嵌入式设备中,我通常通过MDIO配置PHY的EEE广告寄存器(MMD3.0x14),选择支持的节能模式。同时还要注意MAC侧的配合,有些MAC控制器需要特殊驱动支持才能正确响应PHY的LPI请求。实测数据表明,启用EEE后交换机在轻负载时的整机功耗可降低30%。

以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取 那么应用层在进行socket的时候,回调了open函数 fec_enet_open,这个函数中的fec_enet_mii_probe就不会从of_phy_connect中获取到phy_device,因此就会出现-19的错误。最关键的函数就是它,也就是本文的核心,这里是从寄存器中通过mdiobus的read方法来从phy中获取phy id,但是这里并没有获取到phy_id ,这寄存器都是以太网的通用寄存器。那这是获取不到phy id的过程,那么正常的获取phy id的流程又是怎样的呢? 阅读详情

相关推荐

以太网标准和MII接口简介

其实,大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz,不过此时跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因为插入了控制信息,而SerDes端口速率被提高是因为进行了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了。背板以太网是兼容光口以太网的。这些功能是可以关闭的。

weixin_45365488的博客 1万+

xMII总线简介

1、以太网介绍 以太网(Ethernet)是一种计算机局域网组网技术,基于IEEE 制定的IEEE 802.3 标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术,它支持10Mbps/100Mbps/1000Mbps等速率模式,10Gbps以太网技术也有应用。典型的以太网结构如图 2所示。 图2 以太网结构 MAC: MAC 是Media Acces...

大音希声 3505

以太网基础知识

1 以太网历史简介 …………………..2.1 CSMA/CD 现阶段成熟的局域网技术有三种:以太网(Ethernet)、令牌环(Token Ring)和光纤分布式数据接口(FDDI),其中以太网技术逐步成为局域网技术的主流。 图1 多路访问控制协议分类 图2 CSMA/CD发送数据帧流程图2.2 以太网帧结构

sun172270102的博客 2万+

以太网交换芯片及PHY处理相关

以太网交换芯片 下图为Microchip公司的一款产品,即就是Ethernet Switch。 请参考:https://www.microchip.com/wwwproducts/en/ksz9477 该芯片主要工作于计算机网络模型中的第二层中,通常都会包含以下几种功能模块。 ACL:访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出...

LUOHUATINGYUSHENG的博客 2万+

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

基于FPGA的以太网设计(3)----详解各类xMII接口

基于FPGA的以太网设计(3)----详解xMII接口

孤独的单刀 1万+

以太网自协商

自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。 自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息,从而解决双工和10M/100M速率自协商问题。自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。 自...

qq_32656953的博客 4126

手把手教你用示波器测试DDR5 DRAM信号完整性(附眼图分析技巧)

本文详细介绍了如何使用示波器测试DDR5 DRAM信号完整性,包括眼图分析技巧。从DDR5的核心挑战、测试设备选型到实测工作流程,提供了全面的指导。特别强调了DFE功能验证和系统级协同测试,帮助工程师解决信号完整性问题,提升测试效率。

g2h3i4j5的博客 1152

MAC和PHY基本组成与工作原理简析

一、网口的基本结构 如图是网络接口结构简图。网口由CPU、MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。 对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型: CPU集成MAC与PHY; CPU集成MAC,PHY采用独立芯片; CPU不集成MAC与PHY,MAC与PHY采用集成芯片...

Clearfix_Xia 2万+

IsaacLab 从入门到精通(一) 环境配置和依赖安装

本系列文章将针对机器人操作任务中的强化学习平台IsaacLab提供较为全面的教程

DejaWu33的博客 1万+

保姆级教程:用Fiddler+夜神模拟器搞定抖音App抓包(附SSL Pinning绕过实战)

本文提供了一套完整的移动端抓包解决方案,详细介绍了如何使用Fiddler和夜神模拟器进行抖音App抓包,并重点讲解了SSL Pinning绕过技术。通过Xposed框架和JustTrustMe模块的组合,实现高效抓包,适用于产品分析、竞品研究和安全测试等场景。

weixin_30855099的博客 422

自协商功能原理及工作过程

自协商原理:            自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据。        在具备自协商能力的端口没有Link的情况下,端口一直发送FLP,在FLP中包含着自己的连接能力信息,包括支持的速率能力、双工能力、流控能力等。这个连接能力是从自协商能力寄存器中得到的(Auto-Negotiatio

积水成渊 2万+

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1247

3.5 以太网 ETH Ethernet

3.5 以太网 ETH Ethernet一、关于MAC和PHY?二、常用接口有哪些?三、100Base-T,100Base-TX等的含义与区别四、网关?五、关于Layout六、参考链接 一、关于MAC和PHY? 开放系统互连参考模型 (Open System Interconnect 简称OSI):7层模型从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 一张非常强大的OSI七层模型图解。。。 硬件主要接触的是最底下两层,数据链路层的MAC(Media access cont

qq_28664971的博客 4859

ENVI 5.6 + Sarscape 5.2 保姆级教程:哨兵一号数据处理全流程(含DEM自动下载)

本文提供ENVI 5.6与Sarscape 5.2处理哨兵一号数据的完整实战教程。详细介绍了从数据导入、研究区裁剪、DEM自动下载与集成,到核心的配准、滤波及地理编码全流程,最终生成可用于定量分析的地理编码后向散射系数图。重点演示了DEM数据在SAR处理中的关键作用与自动获取方法,帮助用户快速掌握SAR数据基础处理技能。

coffee的博客 679

基于YOLOv11与相机标定的齿轮尺寸测量系统

本文详细介绍了一种基于深度学习的目标检测算法YOLOv11与相机标定技术相结合的齿轮尺寸自动测量系统。该系统能够实时检测图像中的齿轮目标,并精确测量其关键尺寸参数,包括齿顶圆直径、齿根圆直径、模数等。我们构建了完整的深度学习解决方案,包含数据采集与标注、模型训练、相机标定、尺寸测量算法以及用户友好的UI界面。本文提供了完整的代码实现,并推荐了相关的参考数据集,为工业视觉检测领域提供了实用的技术方案。关键词:YOLOv11;齿轮检测;尺寸测量;相机标定;深度学习;工业视觉python。

YOLO 411

自协商技术

由于强行设定的站点不会告诉正在协商的站点自己的速率和单双工方式,自动协商的站点就必须自己决定合适的速率和单双工方式来匹配对端,这叫做并行检测。在具备自协商能力的端口没有Link 的情况下,端口一直发送FLP,在FLP 中包含着自己的连接能力信息,包括支持的速率能力、双工能力、流控能力等。3.如果一端工作在全双工模式,另外一端工作在半双工模式(包括自协商出来的半双工,也一样处理),Ping是没有问题的,流量小的时候也没有任何问题,流量达到约15%以上时,就会出现冲突、错包,最终影响了工作性能!

weixin_53906196的博客 3849

基于MATLAB的语音声强度和响度分析及处理

综上所述,本文介绍了如何使用MATLAB进行语音信号的声强度和响度分析,并提供了相应的源代码。通过这些工具和方法,可以更好地理解和处理语音信号的声强度和响度特性,为语音信号处理和音频应用提供支持。声强度(Intensity)和响度(Loudness)是语音信号中常用的两个重要参数,用于描述声音的强度和感知响度。响度均衡化:可以通过对语音信号施加不同的加权滤波器,调整信号的频谱分布,从而改变声音的响度。除了分析语音信号的声强度和响度,MATLAB还提供了丰富的工具和函数,用于处理语音信号的声强度和响度。

COWizard的博客 617

一文读懂光纤以太网IEEE 802.3cz-下

本文主要介绍MultiGBASE-AU物理层内容,主要包括XMII、PCS子层、PMA子层及PMD子层四大板块的内容。

奋进的电子工程师博客 1111

消息平台接入实战:Hermes Agent 实现微信/钉钉日常任务自动化的 4 步配置

揭示 Hermes Agent 接入微信/钉钉时高频失效的根本原因——非 API 调用问题,而是上下文边界缺失;详解通过 soul.md 锁定人格基线、skills/ 目录原子化封装技能、CLAUDE.md 控制记忆节奏、Docker 环境适配四步构建可信赖自动化信任链,并给出身份证号过滤、中文标点

weixin_42520239的博客 163

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【车载以太网】PHY的协商机制

简单介绍完自动协商Auto-Negotiation这种机制,我们在说说一个类似的解决方案:Auto-Sense(自动适应),这是一种被动的方式,通过对比从对端收到的信号的时间间隔来计算对端的工作速度是10M还是100M/这种方式有个很明显的缺陷就是无法Sense双工状态。Auto-Negotiation通过和对端交换一种FLP(Fast Link Pluse)的特殊Frame,里面包含了自己可以支持的工作组合方式(速度/双工方式),对端收到之后和自己可以支持的工作组合方式相比较选择一种最佳的工作方式。

JJCar 的博客 813

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【驱动】以太网扫盲(四)phy驱动link up流程分析

在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂,不仔细研究的话还不好搞懂,另外百度到的资料也不够全面,这篇就总结梳理一下这方面的知识。1、用轮询/中断的方式通过 mdio 总线读取 phy 芯片的状态。2、在 phy link 状态变化的情况下,正确配置 mac 的状态。(例如:根据 phy 自协商的速率 10/100/1000M 把 mac 配置成对应速率)下面就以 stmmac 网口驱动为例,展示一下 phy 驱动整个调用过程。

嵌入式与Linux那些事的博客 8716

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PHY自协商

自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息,从而解决双工和10M/100M速率自协商问题。自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。自协商功能的基本机制是:每个网络设备在上电、管理命令发出、或是用户干预时发出FLP(快速连接脉冲),协商信息封装在这些FLP序列中。

四季帆的博客 7005

以太网自适应

名词解释 缩写 英文 中文 LIT link integrity test 链路可靠性测试 NLP normal link pulse 普通链路脉冲 FLP fast link pulse 快速链路脉冲 MDI Medi

5291

路由器重温——接口配置与管理1

路由器的接口相对于交换机接口来说最大的特点就是接口类型和配置更为复杂,一般可以把路由器上的接口分为三大类:一类是用于局域网组网的LAN接口,另一类是用于广域网接入/互联的WAN接口,最后一类可以应用于LAN组网,或者WAN接入/互联网中的逻辑接口。各种WAN接口有:Serial接口、Async接口(Async:异步)、CE1/PRI接口、E1-F接口、CT1/PRI接口、T1-F接口、3G Cellular接口(Cellular:蜂窝状)、POS接口、CPOS接口、PON接口、ADSL接口、VDSL接口和G

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 5678

网络之以太网

Author:onceday date:2022年7月20日局域网是一种使用广播信道的数据链路层网络,以太网是其最典型的代表。具有以下特点:以太网是一种共享介质的局域网技术,多个站点链接到同一个共享介质上,同一时间只能有一个站点发送数据,这种链路连接着多个终端,就是多路访问。冲突域是连接到同一个导线的所有节点的集合:所有的节点都共享带宽,就会发生冲突,且一个节点发出的报文(无论是单播、组播、广播)其余节点都可以收到。广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,

梅花香自苦寒来,宝剑锋从磨砺出。 7339
上一篇: GD32工程模板避坑指南:如何正确配置启动文件与外设库?以GD32F3系列为例
下一篇: YOLOv8车牌检测实战:从数据标注到模型部署的完整流程(附避坑指南)
php55
博客等级 码龄15年 51粉丝 1553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值