ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

无变压器以太网直连方案:PHY背靠背接线与MDI匹配网络实战解析

无变压器以太网直连方案:PHY背靠背接线与MDI匹配网络实战解析 上一阵子做一块双网口板子手头PCB空间紧巴巴两套带变压器的RJ45座子又大又贵就一直在琢磨一个事能不能把两颗PHY芯片直接背靠背连起来省掉中间那两颗网络变压器查了一圈资料、踩了几个坑之后结论是可以但有严格的适用边界。如果你也是做板级以太网互联、双主控板内以太网通信或者只是想把两颗PHY芯片用最简单方式拉通测试这篇“不用变压器”的接线与原理分析应该能帮上忙。这篇内容会围绕三种常见PHY组合给出具体接线参考把MDI接口的电压关系、偏置网络、耦合电容计算一次讲透同时把最容易踩的几个坑一并放在最后。先说明一个重要前提无变压器以太网不是IEEE 802.3体系里的标准用法它只适合短距离、共地、同一设备内部的PHY-to-PHY互联。我下面给出的三种组合都是围绕这个前提展开的工程实践而不是替代标准以太网接口的方案。1. 无变压器以太网的整体设计与思路拆解1.1 为什么标准以太网一定要用变压器要搞清楚怎么省掉变压器先得明白变压器在以太网里到底干了什么活。网络变压器也叫磁性元件、Transformer、Magnetics在标准100BASE-TX/1000BASE-T链路里承担三件事电气隔离、共模抑制、阻抗匹配。电气隔离是它最核心的价值。两栋楼之间的设备、两台独立供电的设备它们的“地”并不是同一个电位极端情况下两个地之间会有几十伏甚至更高的压差。如果直接把PHY芯片的差分信号对拉出去这个地电位差会直接灌进PHY芯片轻则通信异常重则打穿芯片。变压器用磁耦合方式传递信号物理上把两边的地隔开从根本上杜绝了这个问题。共模抑制也好理解。双绞线在现实世界中会收到各种电磁干扰共模电感或变压器中心抽头配合终端电阻能把外部耦合进来的共模干扰滤掉一部分保证差分信号能干净地到达对端。阻抗匹配方面传输线理论告诉我们电缆的特性阻抗通常是100Ω左右PHY芯片的MDI引脚也是按100Ω差分阻抗设计的。变压器在这里既做电平转换又做阻抗匹配保证信号在进入线缆前后的反射尽量小。所以标准以太网里变压器不是一个“可选项”而是一个集安全、信号完整性和电磁兼容于一体的张综合性组件。想省掉它就必须回答三个问题隔离怎么处理、共模干扰怎么控制、阻抗怎么匹配。1.2 什么场景可以赌一把省略变压器的适用边界答案是只有当两个以太网设备满足“三同原则”时才可以考虑不装变压器。第一个同是“同地”。两个PHY必须共用一个参考地而且地回路阻抗要足够低。最理想的是同一块PCB、同一个电源域其次是同一设备内部的两块子板通过短粗的地线连接。如果两个设备各自有独立电源靠一根普通线缆的地线来“共地”我强烈不建议这么做——你等于把隔离屏障拆了又把地环路引入。第二个同是“同域”。同一个电源域或紧耦合的电源域PHY的数字电源电压一致MDI信号的直流工作点才有共同基础。比如两边PHY都是3.3V供电信号电平基本在同一范围。第三个同是“同距离”。信号传输距离必须非常短。PCB板内走线几厘米、子板间飞线十几厘米、最多不要超过30到50厘米。一旦超出这个量级信号衰减和反射会让误码率急剧上升。满足这“三个同”变压器才算有了被替代的可能。反过来说只要有一项不满足——比如两台设备相隔几米、各自带电源、中间走普通网线那还是老老实实装变压器别拿PHY芯片去赌。1.3 三种PHY组合的选型逻辑这个项目里我实际测试了三组组合它们的场景各自不同正好覆盖了嵌入式以太网最常遇到的情况。方案PHY组合应用场景特点方案一LAN8720A LAN8720A同一块主板上的双网口背靠背互联同型号、同供电最简单直接方案二DP83848 LAN8720A不同PHY芯片、同一主控分别接出的短距互联异型号PHY电气特性有差异方案三RTL8201F RTL8201F两块独立小板通过短双绞线和RJ45座不带磁性直连接近真实线缆场景验证无磁直连极限选这三组不是随便拍的。方案一验证“最干净”的连接方案二验证“不同芯片之间电平与偏置的兼容性”方案三验证“如果一定要保留RJ45物理接口跳过磁性会怎样”。三组测试完基本就把无变压器以太网的能力边界摸清楚了。2. 核心细节MDI接口电气原理与无源匹配网络2.1 MDI差分对到底在传什么PHY芯片面向线缆的一侧标准名称叫MDIMedium Dependent Interface也就是媒体相关接口。在100BASE-TX模式下MDI使用两对线一对用于发送TX、TX-一对用于接收RX、RX-。物理编码层会把4B/5B编码后的数据流进一步编码成MLT-3三电平信号再经过驱动电路以差分方式送到MDI引脚。MLT-3信号的电压幅度在标准以太网里经过变压器后线缆上的差分幅度大约是±1V。在PHY芯片的MDI引脚这一侧也就是变压器初级信号幅度通常更大实测常见在±1.2V到±2.0V之间具体取决于PHY芯片的内部驱动设计。普通PHY的MDI引脚内部通常有偏置网络差分阻抗设计在100Ω左右。这里有一个容易让人误解的地方MDI引脚不是简单的数字输出它内部往往已经有了一定的直流工作点。有些PHY在TX引脚上输出时带有内部偏置有些则依赖外部变压器中心抽头提供直流回路。这也是为什么无变压器直连不能“拿根线怼上去”就完事——必须考虑直流工作点的兼容性。2.2 交流耦合与直流偏置一个都不能少既然变压器没有了PHY两侧的直流工作点就需要我们用分立元件重新构建。标准的做法是“交流耦合 直流偏置”双管齐下。交流耦合的作用是挡住直流分量。如果一端PHY的TX输出直流偏置是1.25V另一端PHY的RX输入直流偏置是1.0V直接连起来就会产生直流电流长时间运行可能造成PHY发热、信号失真。用串联电容隔直两边直流互不影响交流信号照样能通过。直流偏置的作用是给接收端PHY的RX引脚设置合适的工作点。PHY的RX差分输入往往需要一定的共模电压才能保证内部的比较器工作在最佳区间。变压器方案里这个偏置由变压器中心抽头配合PHY内部电路完成去掉变压器后需要用电阻分压网络来补位。一个可靠的通用连接拓扑长这样发送端PHY的TX、TX-各串联一个0.1µF到1µF的耦合电容电容另一端分别接到接收端PHY的RX、RX-接收端RX与RX-之间并联一个100Ω电阻用于阻抗匹配再用两颗10kΩ电阻从接收端供电电压分压把中点接到RX和RX-上提供约VCC/2的直流偏置。注意这个100Ω匹配电阻要靠近接收端PHY的引脚放。虽然短距离传输时即使不加这个电阻链路也可能能通但加上它能让信号完整性好得多尤其当传输距离超过10厘米后效果差距非常明显。2.3 阻抗匹配和信号幅度的估算很多人一开始不重视阻抗匹配觉得“就几厘米线有什么好匹配的”。但实际上PHY的MDI接口是模拟差分对如果阻抗不连续信号会在连接点产生反射。距离短的时候反射来回时间极短可能不影响链路建立但会让误码率升高表现为“能link但ping不通”这种诡异现象。耦合电容的取值也有讲究。以太网100BASE-TX的基波频率大致在31.25MHz附近高速以太网的有用信号能量集中在几MHz到125MHz之间。耦合电容太小低频分量会被衰减导致信号波形畸变太大又没必要而且大电容瞬态电流也大。工程经验值是0.1µF到1µF之间我用0.1µF的X7R电容实测效果最稳定ESR低、体积小频率特性也够。偏置电阻R的取值要兼顾两个方向电阻太大提供的偏置电流能力弱RX引脚的直流工作点容易受内部漏电流影响电阻太小对交流信号形成分流衰减信号幅度。用10kΩ是稳妥选择。如果接收端PHY的RX引脚本身就有内部偏置这个外部偏置电阻甚至可以省去但我建议第一步还是先加上调试再决定要不要去掉。至于信号幅度计算可以用一个粗略模型发送端MDI差分输出幅度约2V p-p经过0.1µF电容和接收端100Ω匹配电阻构成的网络后接收端能得到大约1V到1.5V p-p的差分信号。这个幅度对绝大多数PHY来说都够用——100BASE-TX接收灵敏度一般在几百毫伏级别有余量但不过冲恰好是合理的接收窗口。3. 方案一LAN8720A LAN8720A 板内背靠背直连3.1 场景与物料准备LAN8720A这颗PHY可能是国内玩嵌入式以太网用得最多的一颗芯片。它便宜、外围简单、支持RMII接口ESP32、STM32、各类Linux板卡上都能见到它的身影。方案一选它做背靠背主要原因是同型号芯片之间电气特性完全一致省掉了很多“偏置对不对得上”的麻烦。这个方案的典型场景有两种。第一种是把两颗LAN8720A放到同一块主板上分别由两个主控或两个网口使用中间不经过RJ45而是主板内部走线直接把两颗PHY的MDI连起来做板内数据交换。第二种是两块子板各带一颗LAN8720A通过短排线或杜邦线直连用于调试或小批量简化设计。物料上需要准备LAN8720A模块或裸芯片两颗确认供电均为3.3V0.1µF0603封装陶瓷电容四颗100Ω0603电阻两颗10kΩ0603电阻四颗示波器带宽100MHz以上最好200MHz网线测试仪、烙铁、飞线若干。先说明一下这个方案里两颗PHY都需要配置工作模式。LAN8720A支持RMII接口我们是通过外部主控的RMII寄存器来配置的如果只是想测PHY链路是否建立可以先把PHY的工作模式固定为100M全双工避免自动协商带来额外的不确定性。3.2 接线图详析这组背靠背直连的接线逻辑很清晰发送端接接收端注意信号方向必须交叉对应。接线对应关系如下LAN8720A芯片1连接方式LAN8720A芯片2TX第17脚串联0.1µF电容RX第19脚TX-第18脚串联0.1µF电容RX-第20脚RX第19脚串联0.1µF电容TX第17脚RX-第20脚串联0.1µF电容TX-第18脚GND短粗导线直连GNDVDD_IO3.3V并联去耦电容VDD_IO3.3V这个表格里的引脚编号对应LAN8720A的QFN封装实际使用如果买的是模块引脚标识可能不同但信号名不变。RX和RX-的方向容易搞混我的习惯是每次焊接前先用万用表蜂鸣档确认一遍模块上TX/RX丝印与原理图的对应关系避免焊完才发现对称接反。在每颗PHY的RX引脚侧需要放偏置网络。具体做法是在PHY1的RX与RX-之间并一颗100Ω电阻再从PHY1的3.3V电源通过两颗10kΩ电阻分压分压点分别接到RX和RX-提供约1.65V的直流偏置。PHY2的RX侧同样处理。这里有一个细节值得强调耦合电容要尽量靠近接收端放置。因为电容到接收引脚的这段走线是“非匹配区”这段线越短对信号完整性的影响越小。发送端到电容之间的走线则可以稍微长一些因为发送端驱动能力强对反射容忍度也高。3.3 调试要点与实测电平参考我实测时用示波器同时抓了发送端和接收端的波形这里把测量数据列出来供参考。发送端PHY1的TX相对GND在发送空闲码时波形是一个约±1.25V的MLT-3三电平信号差分幅度约2.5V p-p。经过0.1µF电容后在接收端PHY2的RX引脚上测到的差分信号幅度大约是1.4V p-p直流偏置在1.6V左右和理论估算值基本吻合。这个幅度值很关键。它小于标准线缆信号电平但对于板上几厘米的走线噪声底极低这个幅度带来的信噪比完全够用。如果测出来幅度低于0.8V p-p我建议检查100Ω匹配电阻是不是漏焊了或者偏置分压电阻取值是不是太大。链路是否建立一个直观的判断方法是看PHY的状态寄存器。LAN8720A的寄存器0x01基本状态寄存器的bit2是链路状态位读到1表示链路已建立。在Linux或裸机环境下直接读寄存器就能确认PHY层是否正常。我建议在调试时先在主控侧把LAN8720A配置为100M全双工、关闭自适应因为自适应过程中FLP脉冲在无变压器网络里的表现有时不稳定。4. 方案二DP83848 LAN8720A 跨板短距互联4.1 为什么敢让两颗不同厂家的PHY直连DP83848是TI的一颗百兆PHY工业级应用非常多主控侧接口支持MII/RMII。从功能上说LAN8720A和DP83848都是标准100BASE-TX PHYMDI接口的电气参数都遵循IEEE 802.3规范理论上应该有很好的兼容性。但实际做起来两颗芯片的内部偏置设计差别不小所以这个方案比方案一更能暴露问题。我用这个组合是为了模拟实际项目里最常见的情况主板上空间紧张一侧用了LAN8720A这种小封装低成本的PHY另一侧因为信号冗余或可靠性要求用了DP83848这种抗干扰强一点的工业级PHY。两块板之间通过20厘米左右的排线连接两边共用一个开关电源供电。需要注意DP83848的MDI引脚直流偏置特性和LAN8720A并不完全相同。LAN8720A的RX引脚对偏置电压要求相对宽松而DP83848的RX输入在数据手册里明确要求共模电压在1.3V到1.8V之间。如果直接照搬方案一的VCC/2偏置约1.65VDP83848正好落在允许范围内但还是建议用寄存器确认一下内部偏置状态留出设计余量。4.2 接线图与元件明细这个方案的连接方式和方案一大体一致因为PHY层信号结构是标准化的。具体来说DP83848引脚连接方式LAN8720A引脚TXTD串联0.1µF电容RX第19脚TX-TD-串联0.1µF电容RX-第20脚RXRD串联0.1µF电容TX第17脚RX-RD-串联0.1µF电容TX-第18脚GND排线中至少两根短地线GND元件选择上这一版我在DP83848的RX侧用了两颗49.9Ω电阻串联分压网络替代单颗100Ω好处是分压点正好可以作为偏置注入点从3.3V用两颗10kΩ电阻分压把1.65V偏置接到这个分压中点。这样交流阻抗匹配和直流偏置互不干扰结构上比方案一更规范一点。排线的地处理是这组方案的重头戏。两块板之间除了信号线至少需要两根平行的地线而且要走最短路径。如果地线太长或太细两板之间的地电位会随电流波动这个波动会直接叠加到差分信号上造成共模电压漂移。实测下来用杜邦线做地连接偶尔会出现丢包换成加粗的铜芯飞线并排走情况立刻稳定。4.3 供电与保护电路建议虽然是无变压器连接ESD防护仍然不能完全省略。两个PHY的MDI引脚在板上互联走线很短外部直接打进来的静电可能性不大但调试过程中人体触碰、烙铁静电、排线插拔时的手感放电依然可能损坏PHY。我在这组方案里给每个MDI引脚对地加了一颗低压TVS管型号是ESD9B3.3ST5G这一类封装极小的器件实测占不了多少空间保护效果很直接。另外如果两块板之间距离超过30厘米强烈建议在两端各加一颗共模电感。共模电感不替代变压器它只滤除共模噪声不影响差分信号。加了共模电感之后信号线上的共模干扰能有效被抑制避免误码率上升。提示无变压器连接时不要把两个隔离电源模块的输出地直接“期望为等电位”。共地必须用可靠导线或大铜皮连接不能只靠PHY芯片的地引脚。这个方案的实测结果比较理想。DP83848和LAN8720A在强制100M全双工模式下20厘米排线连接连续ping测试5000包无丢包抓包看CRC错误计数也为零。这说明不同厂家PHY之间只要直流偏置网络设计合理无变压器直连是完全可行的。5. 方案三RTL8201F RTL8201F 通过短双绞线与RJ45座直连5.1 场景保留RJ45但丢掉磁性元件第三个方案做的人不多但我认为它最值得写因为它能验证无变压器连接在“最接近真实以太网”的形态下能走到多远。这个形态就是两块独立小板上各有一颗PHY板子边缘有普通的RJ45插座只是插座里不装网络变压器或者装了一颗空壳不带磁性的RJ45两根RJ45座之间用一根30厘米的普通超五类网线连接。这个形态的驱动场景很现实。可能是手头有些PCB已经铺好了RJ45座的位置但采购环节网络变压器缺货想临时顶一下也可能是做内部封闭环境里的设备互联不愿意让网线信号经过变压器引入额外成本。无论哪种它的本质都是在最不利的条件下做无变压器连接。我必须先把丑话说在前面这个方案不建议用于任何需要对外连接、需要过认证、或者线缆长度超过1米的产品。它的意义更多是实验验证和应急调试是在“必须保留RJ45物理形态但确实没有磁性元件”时的最后手段。5.2 接线图与RJ45座处理RJ45座在标准以太网里只用1、2、3、6四根针。100BASE-TX下1和2是TX和TX-3和6是RX和RX-。去掉磁性元件后实际上就是把PHY的MDI引脚直接引到RJ45座对应的针脚上。PHY引脚RJ45针脚备注TX1经0.1µF电容直连TX-2经0.1µF电容直连RX3经0.1µF电容直连RX-6经0.1µF电容直连外壳地外壳接大地或悬空视整机结构这个接线图看起来简单但有几个隐蔽的坑。第一个坑RJ45座如果没有安装变压器它的针脚是直通的信号从PHY引脚直接走到了网线。网线的特性阻抗大约是100Ω而我们加了100Ω匹配电阻后理论上和网线阻抗是匹配的。但对于几厘米到几十厘米的短线这种匹配并不完美反射依然存在。实测30厘米网线、双绞线直连信号波形在眼图上能看到明显的振铃但幅度尚可接受。第二个坑RJ45座的脚位方向。很多RJ45座内部脚位是有PCB封装的不巧连了信号同名但总线顺序错位就会导致TX接到对方的TX。好在带auto-MDIX的PHY可以自动纠正但无变压器连接时自动纠正的可靠性会下降。我建议在软件里把auto-MDIX关掉强制指定MDI或MDI-X方向然后硬件上固定交叉连接。第三个坑双绞线的四对线中我们只用了橙对和绿对。网线上另一对线在标准连接里是不用的但在无变压器模式下这些空闲线对有可能变成天线把共模干扰耦合进信号对。好在这个场景里走线极短实测干扰不大但如果线缆长度拉到半米以上还是建议把空闲线对在两端接PHY的地降低天线效应。5.3 实测结论与不推荐的边界这块我很明确短网线直连能通但完全谈不上“好”。我反复测了几组30厘米网线、RTL8201F对RTL8201F、强制100M全双工ping测试基本能过千次延迟也正常但把示波器接到MDI引脚看眼图边缘的过冲和振铃明显比方案一条很多。链路刚建立的时候偶尔会出现一次协商成功但立刻断开的假象需要重启PHY复位才能稳定。后来分析原因很可能是FLP脉冲在无变压器网络里发送时脉冲波形因为阻抗失配发生了畸变导致对端识别不稳定。最终的缓解办法是放弃自动协商两端都固定到100M全双工之后链路就稳定了。所以我的结论是这个方案可以用在“调试应急”和“内部封闭设备短距离互联”这两个场景但不要把它带到量产设计里。只要线缆长度超过半米或者设备要过EMC测试或者存在任何跨电源域的可能就绝对不要尝试。6. 常见问题与排查技巧实录6.1 三个最常见的坑无变压器连接的调试过程里我踩过不少坑也帮朋友排查过类似问题最典型的有三个。第一个坑能link但ping不通。链路状态寄存器显示已连接但收发数据就是不通。这种情况大概率是TX/RX方向接反了。虽然很多PHY支持auto-MDIX自动翻转但无变压器模式下自协商可能不稳定翻转不一定生效。排查方法很简单把两端的TX/RX对换一下或者手动强制设置MDI/MDI-X模式。我的经验是先关掉auto-MDIX用寄存器强制指定确认连通后再恢复自适应。第二个坑ping偶尔通但不稳定丢包率在百分之几到几十几徘徊。这种情况优先怀疑偏置网络。——检查耦合电容有没有漏焊或虚焊再确认偏置电阻分压值对不对。之前在一次测试中接收端偏置电压只有0.8V明显低于PHY要求的1.3V以上导致接收灵敏度过低弱信号时频繁出错。把偏置分压电阻重新核对焊接后问题立刻消失。第三个坑PHY芯片发热。无变压器直连时如果直流工作点冲突PHY内部驱动电路会被迫输出额外直流电流长时间运行会发热甚至损坏。用手摸芯片有明显温度时先断电检查耦合电容是否放置正确再用万用表测量MDI引脚上的直流电压。正常应该在PHY数据手册规定的共模范围内如果偏高或偏低就调整偏置电阻网络。6.2 示波器与寄存器双重排查方法排查信号质量问题示波器是最好的工具。调试无变压器以太网时我建议至少抓三个观测点发送端MDI引脚、耦合电容之后的接收端引脚、以及接收端差分对两端之间的差分波形。发送端波形主要看幅度和形状正常是干净的MLT-3三电平。如果发送端波形有异常压降可能PHY驱动能力不够或该引脚另有负载。耦合电容之后的接收端波形除了看幅度还要看直流偏置电压是否在合理范围。差分波形则直接反映信号质量看上升沿和下降沿是否陡峭、有没有明显过冲。寄存器层面LAN8720A和DP83848都提供了丰富的状态位。基本状态寄存器地址0x01的bit2是链路状态bit5是自协商完成标志。如果再往深一层看PHY的接收错误计数寄存器可以帮你判断是否有CRC错误或符号错误累积。如果错误计数持续增长哪怕速率很慢都说明信号质量或者配置有问题不要忽略。6.3 排查思路速查表故障现象可能原因处理办法链路状态始终为0供电不正常、MDI接错、方向接反先测量PHY供电再检查TX/RX交叉关系能link但ping不通TX/RX接反且auto-MDIX未生效关闭auto-MDIX手动强制设置方向偶发丢包偏置电压不合适、匹配电阻缺失测量RX引脚直流电压核对100Ω匹配电阻PHY发热直流工作点冲突、耦合电容缺失检查耦合电容测量MDI引脚直流电压链路反复闪断自协商信号畸变强制固定100M全双工关闭自协商丢包率随触摸线缆升高缺少共模电感、屏蔽不足加共模电感缩短走线空闲线对接地这张表基本覆盖了我实际调试中遇到的绝大多数问题。如果你第一次做无变压器连接建议按“先供电、再方向、后信号质量”的顺序检查不要一上来就盯着软件配置猛调。硬件链路没建立好软件再怎么折腾都是空的。7. 一点总结与个人经验折腾完这三组方案我最大的体会是无变压器以太网是一把双刃剑用得好能省成本、省空间、省去一堆磁性元件采购的麻烦但用不好就是给自己埋雷。它只适合“同板、同域、短线”的场景只要飞出这个边界任何一根长线、任何一路跨电源域的设备都可能让PHY芯片瞬间报废。如果问我建议我会说研发调试阶段、板内验证阶段、双主控板内高速互联这些场景的可以放心上无变压器方案但凡产品需要出整机、接外部设备、过认证或常年运行老老实实装回网络变压器。你省下的那几块钱成本远远比不上一次现场故障带来的维护费用。最后再分享一个小技巧如果只是临时验证PHY到PHY的链路可以先用TI、Microchip等厂商的以太网PHY评估板把两块评估板通过短飞线直连。板子自带的跳线往往已经把电源和复位处理好了你只需要外接耦合电容和偏置电阻就能快速验证方案可行性。等确认可行了再把它画进自己的PCB里会少走非常多弯路。
返回列表