网口不通这件事,十有八九不是协议问题,而是PHY、网络变压器、RJ45这一段模拟链路出了问题。我之前有块板子回来,插上网线死活协商不上,最后拿放大镜对着原理图查了半天,发现是网络变压器中心抽头接错了——芯片手册里明明画得很清楚,就因为抄参考设计的时候手滑挪了一格,整版板子全部报废。从那以后我就养成一个习惯:凡是涉及网口的设计,我一定先把芯片手册里的那几页关键内容吃透,再动手画原理图和走线。
这篇文章就是围绕这条链路来写的。从怎么看PHY芯片手册,到网络变压器选型和周边电路怎么搭,再到RJ45端接和外壳地怎么处理,最后落到PCB差分走线的实战要求。把这个过程捋顺了,网口设计基本就不会出大问题。文章面向的是硬件工程师、PCB Layout工程师、嵌入式开发以及自己做网口小板的爱好者,内容偏实战,不讲太多空泛的理论。
先说一个容易被绕晕的点:很多人搜“PHY”会看到一堆DDR PHY、PCIe PHY之类的词,那是指内存控制器、PCIe控制器内部的物理层,跟本文说的以太网PHY(Ethernet PHY)不是一回事。本文里的PHY,特指以太网物理层收发器芯片,负责把MAC层的数据转换成能在双绞线上传的模拟差分信号。
1. 先把手册读透:PHY芯片手册里真正决定成败的三页
1.1 MDI引脚定义:别只抄原理图,要理解为什么这么接
每一颗PHY芯片的手册,前面几十页基本都是引脚图、引脚功能表、绝对最大额定值这些“看着就想翻过去”的内容。但你真正要抠细节的,是PHY与网络变压器相连的那一组引脚,也就是MDI(Medium Dependent Interface)引脚。
以我最近在用的GEK100这类PHY芯片为例,MDI引脚一般会标成MDI0_P/MDI0_N、MDI1_P/MDI1_N这种形式,百兆PHY通常是两对,千兆PHY则有四对。每一对对应双绞线里的一对线,命名里的P/N就是正负极性。除了差分信号引脚,手册里还会画出中心抽头(Center Tap)引脚,这才是容易踩坑的地方。
不要小看引脚定义这一页。很多PHY芯片的MDI引脚内部不是简单的差分驱动,而是带有偏置电路。如果你只把差分对连上变压器,却不管偏置和中心抽头的电源/地回路,信号幅度会不对,严重时根本协商不上。我见过有工程师在原理图上把MDI引脚直接飞线到变压器,结果量出来的差分信号只有正常幅度的一半,查了半天才发现少接了一组偏置电阻。
1.2 电压型PHY和电流型PHY:中心抽头接法为什么天差地别
PHY芯片按MDI驱动方式可以粗略分成两种:电流型(Current Mode)和电压型(Voltage Mode)。这两种PHY对网络变压器中心抽头的接法要求完全相反,这也是网口设计里最经典的坑。
电流型PHY的输出级是电流源结构,信号电流需要从变压器中心抽头那边获得直流通路,所以它的TX中心抽头通常要接一个电源电压,经过磁珠或电感滤波后接到PHY的模拟电源。电压型PHY的输出级是电压源结构,TX中心抽头一般通过一个0.1uF的电容交流接地,不需要接电源。如果你把电压型PHY的中心抽头误接到电源上,轻则PHY发热、信号畸形,重则直接烧毁PHY芯片。
| PHY类型 | TX中心抽头接法 | 常见端接方式 | 典型代表 |
|---|---|---|---|
| 电流型 | 接VCC,经磁珠/电感滤波 | 中心抽头到地接0.1uF电容 | 部分Broadcom/国产PHY |
| 电压型 | 经0.1uF电容交流接地 | 中心抽头到地接0.1uF电容 | 很多Realtek百兆PHY |
RX侧的接法也有讲究,有些PHY的RX中心抽头需要接电源,有些需要接地,这个没有统一规律,完全以手册为准。我的经验是:无论多熟的PHY型号,换新项目时都要重新翻一遍手册的推荐电路,别想当然沿用上一颗芯片的接法。
顺便说一个技巧:看手册的时候直接找“Recommended Circuit”或者“Typical Application Circuit”那一页,照抄下来通常都不会有问题。真正需要动脑子的,是理解每一颗电阻、电容、磁珠在这里起什么作用,这样你做EMC整改或者降成本替换物料的时候才心里有数。
2. PHY到网络变压器之间:电路看着简单,细节全在电阻电容里
2.1 串联电阻和共模电感:EMI和信号质量的平衡
从PHY的MDI引脚到网络变压器之间,很多参考设计会串联一颗小阻值电阻,常见的是0Ω、10Ω、22Ω。这颗电阻的作用主要是阻尼振铃、减小信号过冲,同时也能微调链路的阻抗匹配。不要觉得0Ω就是多余的,它给了你后续调试的空间——如果板子辐射超标,想在不改layout的前提下增大阻尼,直接把0Ω换成10Ω试试,省一次改板。
差分对上的串联电阻要尽量靠近PHY芯片放置,因为它的作用是“在信号源端吸收反射”,离PHY太远效果会打折扣。阻值选择也不是越大越好,太大会让信号幅度衰减过大,影响接收端的灵敏度。我之前做过一个测试板,把22Ω串阻加到千兆链路上,结果协商倒是正常,但长时间跑吞吐测试偶尔会掉包,后来换成10Ω就稳定了。
共模电感(Common Mode Choke)在很多PHY参考设计里是可选项。它的作用是抑制差分线上的共模噪声,对EMI有好处,但代价是体积、成本以及共模电感本身的寄生参数会影响差分信号。如果你的板子EMI不超标,可以不加;如果超标了,加共模电感通常是有效的整改手段。选共模电感时要看它的共模阻抗曲线和差分带宽,别选那种对千兆信号损耗过大的型号。
2.2 网络变压器的参数:选型只看“能不能用”是不够的
网络变压器(Ethernet Transformer,也叫局域网变压器、隔离变压器)在整个链路里承担三件事:一是电气隔离,把PHY侧和线缆侧的直流电平彻底隔开;二是阻抗匹配,让信号链路的阻抗统一在100Ω;三是共模噪声抑制,靠变压器内部的绕组结构和屏蔽层,把线缆引入的共模干扰挡在PHY之外。
选变压器的时候,关键参数不能只看封装对不对。我整理了一张表,基本覆盖了选型时要关注的指标:
| 参数 | 含义 | 典型值/要求 |
|---|---|---|
| 匝数比 | 初级与次级绕组比 | 百兆/千兆通常为1:1(1CT:1CT) |
| 电感量 | 绕组电感,保证低频信号传输 | 350μH min @100kHz |
| 隔离耐压 | 初级对次级的耐压 | 1500Vrms/60s 或更高 |
| 插入损耗 | 信号通过变压器后的衰减 | 100MHz时不大于1.0dB |
| 回波损耗 | 阻抗匹配程度 | 按IEEE 802.3要求 |
| 共模抑制比 | 对共模噪声的抑制能力 | 30MHz~500MHz典型值-30dB以下 |
我在某款球机摄像头主板上见过TF1102这颗网络变压器,这类型号基本就是按上述参数做的,适用于10/100M或10/100/1000M的以太网链路。选型时先看PHY手册有没有推荐变压器清单,如果没有,按PHY支持的速率和接口要求挑就行。特别注意:百兆变压器和千兆变压器不能混用,封装看着一样,但内部绕组数量和带宽差很多。
2.3 分离式方案还是集成RJ45座
网络变压器有两种常见的实现形式:一种是独立的变压器,单独一颗元器件,再接独立的RJ45座;另一种是把变压器做进RJ45座里,也就是我们常说的带变压器RJ45座,比如常见的HR911105A这类带网络变压器的网口座。
分离式方案的好处是选型灵活,变压器、RJ45座可以自由组合,layout时也更容易做隔离带设计和挖空处理,适合对EMC要求高、或者需要支持POE供电的方案。缺点是多一颗物料,占板面积大,手工焊接稍麻烦。
集成RJ45座的优点是省事,一颗件就把变压器和座子都搞定了,走线短、结构紧凑,很适合空间紧张的小板子。缺点是变压器的性能被固定了,没法针对PHY做精细匹配,而且座子内部变压器的位置是固定的,layout时隔离带和挖空处理往往只能将就。
我个人的习惯是:消费类、低成本、空间受限的产品用集成座;工业类、POE供电、需要过严格EMC测试的产品用分离式方案。
3. 变压器到RJ45:线序、端接、外壳地一个都不能少
3.1 RJ45引脚定义:为什么有时候直连网线不通
RJ45是8P8C的物理接口,8根引脚在不同标准下的颜色排布有差异,但电气定义是一致的。对于10/100M以太网,只用到了1、2、3、6这四根脚:1是TX+,2是TX-,3是RX+,6是RX-。千兆以太网则四对线全用,4、5、7、8分别对应另外两对差分线。
这里有个容易混淆的概念:MDI和MDI-X。MDI是终端设备的网口定义(比如电脑网卡),MDI-X是交换机、集线器的网口定义,两者的1/2和3/6在方向上交叉。传统上,同类型设备相连要用交叉线,不同类型设备相连用直连线。现在的PHY芯片基本都支持Auto MDI-X,自动检测并翻转方向,所以日常用直连线也能两头互连。但如果你用了一颗不支持Auto MDI-X的老PHY,又恰好把两个同类型的设备直连,就会看到链路始终协商不上。
画RJ45封装的时候还要注意屏蔽壳的引脚。带屏蔽的RJ45座会有一圈金属外壳引脚,这些引脚通常要接到“外壳地”(Chassis Ground)上,而不是直接接到信号地,这个细节放到后面3.3节细说。
3.2 Bob Smith端接:线路侧中心抽头为什么不能直接接地
网络变压器次级侧(也就是连接RJ45一侧)的中心抽头,标准做法是通过Bob Smith端接电路处理。典型电路是:每个中心抽头先串一颗50Ω电阻,然后所有电阻的公共端再接一颗1000pF/2kV的高压电容到地。
为什么要这么做?次级侧直连的是双绞线,线缆在户外会感应各种共模噪声和浪涌。如果中心抽头直接接地,这些共模噪声会直接灌入系统地,反而恶化EMI。Bob Smith端接的思路是:用50Ω电阻为共模噪声提供一条与双绞线特征阻抗匹配的泄放路径,再用电容把残留的高频噪声旁路到地。这样差模信号完全不受影响,共模噪声却能被有效抑制。
实际操作中,这组电阻电容要尽量靠近RJ45座放置,走线尽量短粗,电容要用高压陶瓷电容(比如2kV耐压),别为了省成本用普通50V的电容,浪涌测试时会打穿。
3.3 金属壳RJ45的外壳地和静电防护
带金属屏蔽壳的RJ45座,外壳引脚的处理直接影响ESD和EMI表现。最忌讳的做法是把外壳引脚直接大面积接到主板的数字地上,这样线缆侧引入的静电或浪涌会直接冲击数字地平面,影响整板稳定性。
常见且稳妥的做法是:外壳地单独走一小块铜皮,然后通过一个并联的1MΩ电阻和1000pF/2kV电容接到信号地。电阻的作用是泄放积累的静电荷,电容则提供高频噪声的回流路径。如果产品有独立的机壳地(比如金属外壳的设备),RJ45外壳优先接到机壳地,再通过同样的RC网络与信号地相接。
户外设备(像球机摄像头这类)对浪涌防护要求更高。RJ45侧通常还要加TVS管做浪涌钳位,TVS要放在RJ45座和变压器之间,靠近连接器,才能把浪涌挡在变压器前面。选TVS时一定要注意结电容,普通TVS的结电容可能有几十pF甚至上百pF,对千兆差分信号影响很大,要选专门用于以太网的低电容TVS。
4. PCB走线实操:布局和走线决定这块板子能不能过EMC
4.1 100Ω差分对:线宽线距怎么定
以太网的物理链路,从PHY到变压器再到RJ45,全程都要按100Ω差分阻抗来设计。这里的100Ω不是随便定的,它和双绞线的特征阻抗一致,只有链路阻抗匹配,信号反射才最小。
做阻抗设计的时候,不要只靠经验值,最好用Saturn PCB Design Toolkit或者Si9000这类工具估算一遍。以常见的4层板表层微带线为例,L1到L2介质厚度约4mil,线宽6mil,线距8mil左右,通常能算出100Ω差分的典型值。但每家的叠层、板材介电常数不同,最终还是要以板厂提供的阻抗文件为准。
差分走线有几条铁律:两根线同层并行走,尽量少打孔;整体参考地平面要连续,不能跨越分割;对内的等长误差控制在5mil以内,对与对之间宽松一些,50mil左右就够。百兆以太网的时序裕量大,等长要求可以再放宽,但千兆尽量不要偷懒。还有一个容易忽略的点:差分对旁边不要走其他高速信号线,间距至少拉开3倍线宽,防止串扰。
4.2 变压器下方为什么要挖空覆铜
网络变压器周围的地平面处理,是很多layout新手容易忽略的地方。标准的做法是:把变压器正下方的所有层覆铜全部挖掉,形成一个物理上的隔离窗口,窗口尺寸比变压器本体略大一圈。
挖空的原理要从变压器的隔离机制说起。网络变压器靠绕组间的绝缘和内部的屏蔽层实现隔离,但PCB上的覆铜如果铺到变压器底下,初级侧和次级侧的地就会通过铜皮形成寄生电容,高频共模噪声会借助这个寄生电容跨过隔离带,变压器的共模抑制能力就白费了。挖空去掉参考铜皮,等于把隔离带在物理上真正切断。
挖空操作要配合布局一起规划:变压器一侧的走线参考PHY侧的地,另一侧参考线缆侧的地,两侧的地平面在变压器下方断开,再通过高压电容或RC网络单点连接。挖空不能影响其他信号的回流路径,否则挖了反而制造新的参考平面断裂,过孔附近尤其要小心。
4.3 PHY、变压器、RJ45的布局顺序与间距
网口部分的布局思路就一句话:PHY、变压器、RJ45,三者按信号流方向一字排开,连线越短越好。PHY芯片尽量靠近变压器,差分走线出了PHY引脚之后,以最短路径进变压器;变压器到RJ45座之间的走线也尽量短,特别是次级侧,这段线是辐射天线的候选区,走线短一点,EMI风险就低一点。
PHY芯片的时钟晶振要靠近PHY放置,走线短而粗,周围包地,别让时钟信号和差分信号并行走长线。PHY的电源去耦也要重视,模拟电源、数字电源分开走,去耦电容就近放在电源引脚旁边,容值从小到大排列。像TPS5430这类DC-DC给PHY供电时,开关纹波如果没滤干净,PHY的接收灵敏度会变差,表现为业务流量一高就偶尔丢包。
这里补一句关于“PHY芯片背靠背”的说法。有些测试场景或者特殊设计里,两颗PHY直接面对面连接,不经过RJ45。这种情况通常还是要靠变压器或者电容做交流耦合,因为两颗PHY的MDI电平标准不一定兼容。做这种设计的时候,务必先查两颗PHY的MDI电平类型和端接要求,不能默认“直连就能通”。
4.4 实战案例:球机摄像头主板上的网口设计
我去年做过一块球机摄像头的主板,网口部分用的方案是SoC内置MAC加外部独立PHY,网络变压器用的是TF1102这类分离式变压器,RJ45座是带屏蔽的独立座。这个产品还要支持POE供电,所以网口设计不能只照顾信号,还要考虑电源的注入和提取。
布局的时候,我把RJ45座放在板边,紧跟着是网络变压器,再往后是TVS阵列和PHY芯片。变压器下方所有层挖空,两侧地平面分开,RJ45外壳地通过RC网络接到信号地。POE的电源从中心抽头进去,变压器的选型必须支持POE等级,中心抽头的滤波电容耐压要按POE工作电压选,普通50V电容肯定不行。
这块板子第一次打样回来,网口一下子就协商上千兆了,丢包测试也正常。真正花时间的是后面的EMI摸底测试,最初辐射超标,整改的时候我把变压器下方挖空区域扩大了一圈,又把RJ45外壳地的旁路电容从100pF换到1000pF,辐射峰值明显降下来了。这个案例再次验证了一个道理:网口设计里,变压器的隔离处理和外壳地的处理,对EMC的影响比很多人想象中大得多。
5. 硬件画完之后,软件和调测环节如何配合
5.1 设备树里的PHY节点:你在画板时就要想好的事情
嵌入式Linux产品里,网口能不能工作,一半看硬件,一半看设备树配置。PHY芯片在设备树里的节点,其实在你画原理图的时候就已经被硬件决定了:PHY地址、复位引脚、中断引脚,这些硬件引脚怎么接,设备树就得怎么写。
PHY地址由PHY芯片的AD0~AD4引脚决定,引脚上拉到电源或下拉到地,组合出不同的地址。设备树里reg = <1>这个1,不是随便填的,必须和PHY地址引脚的硬件配置对应上。你画原理图时如果把PHY地址引脚全部悬空或者上下拉搞错了,软件那边怎么调设备树都读不到PHY。
设备树里常见的PHY节点长这样:
&mdio { eth_phy: ethernet-phy@1 { compatible = "ethernet-phy-id0044.0dd4"; reg = <1>; max-speed = <1000>; reset-gpios = <&gpio 17 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; /* 若PHY需要延迟调整 */ tx-internal-delay-ps = <1000>; rx-internal-delay-ps = <1000>; }; };reset-gpios对应你原理图上PHY复位引脚接的那个GPIO,interrupts对应PHY中断引脚接的GPIO,max-speed用来限制最大协商速率。有些PHY的RGMII接口需要调整时钟延迟,tx-internal-delay-ps和rx-internal-delay-ps就是干这个用的,这个延迟和PCB走线长度也有关系,改板之后可能要重新调。
5.2 速率和双工:自协商不行时怎么定位
网口的自协商(Auto Negotiation)机制,本质是PHY在链路上发脉冲,双方交换各自支持的速率和双工模式。协商失败或者协商出不对的速率,不一定是软件问题,硬件链路上的任何一个环节都可能破坏自协商。
如果设备树配置没问题,但网口始终协商在100M而你期望千兆,先别急着调软件。查一下RJ45座子的4、5、7、8脚有没有虚焊,查一下变压器次级侧四对线有没有都通,查一下PCB走线有没有断裂。千兆必须四对线全通,任何一对断了,PHY会自动降级到百兆。这种情况我遇到过不止一次,最后都是拿万用表一量,发现RJ45座子引脚虚焊。
如果协商出来的速率对了,但ping包大流量时丢包,就要回头查硬件信号质量。重点看差分对等长、串阻阻值、TVS管电容是不是过大,以及变压器次级侧的Bob Smith端接有没有贴错。
6. 常见问题与排查技巧实录
6.1 网口完全不工作:一节一节量下去
网口完全不通的时候,不要一上来就怀疑驱动。按信号流从后往前查:先量RJ45座的线缆侧,用网线测试仪确认座子到水晶头这一段没问题;再量变压器次级绕组,看有没有断路;然后量变压器初级绕组和PHY侧的中心抽头电压,对照手册看是否正常。
PHY芯片有没有正常工作,可以从几个信号判断:晶振有没有起振,复位引脚电平对不对,MDIO接口读PHY寄存器能不能读到ID。如果MDIO读不到ID,大概率是PHY复位没释放、MDIO上拉电阻没贴,或者PHY地址引脚配置冲突了。用示波器量一下PHY的差分输出,如果TX差分对外面有波形但幅度很小,多半是中心抽头接错或者串阻太大。
6.2 千兆跌到百兆、协商不稳定:多半藏在细节里
协商问题的排查思路前面已经提到一些,这里补充两个容易被忽略的点。一个是ESD/TVS器件的结电容,一些看起来很普通的TVS管,结电容高达几十皮法,并联在千兆差分线上会把信号眼图压坏,导致协商不稳定。选器件时一定要看数据手册里的结电容指标,选那些标称适合以太网应用的型号。
另一个是变压器和RJ45座之间的走线。这段线虽然短,但如果走线没有按照参考平面完整的原则处理,跨过了分割槽,反射和共模辐射就会出现。我见过一块板子,变压器到RJ45之间的次级走线有一小段越过了地平面分割,结果EMI测试时对应的频点刚好超标,把走线改回同一参考平面之后问题消失。
6.3 辐射干扰和静电打挂:隔离和接地重新过一遍
网口相关的辐射超标和ESD问题,整改思路基本围绕三个点:变压器下方挖空是否到位、RJ45外壳地是否处理好、Bob Smith端接是否按要求做。这三个点任何一个没做好,都可能成为EMC的突破口。
有一次我做整改,辐射超标的频点和以太网125MHz时钟的谐波高度重合。排查下来,发现变压器下方虽然挖空了,但挖空区域旁边有一块孤铜,相当于给共模噪声搭了个天线。把孤铜删掉之后,超标频点直接降了6个dB。这个案例说明,挖空的“边界”处理同样重要,周围不要留悬浮铜皮。还有一次ESD测试,打RJ45金属壳时系统重启,后来把RJ45外壳地的那颗1000pF电容换成了2kV耐压的型号,同时把外壳地引脚到电容的走线加宽,问题就解决了。
网口设计做到后期,我最大的体会是:绝大多数问题都不是什么高深的理论难题,而是细节上的疏漏。原理图阶段对照PHY手册的推荐电路逐项核对,layout阶段认认真真处理隔离和接地,回来后用万用表和示波器逐级测量,基本能把问题消灭在萌芽阶段。按照这个思路去做,网口这个在外人看来“插上就能用”的接口,其实是很可控的。