前阵子把一款用于配电柜/控制柜的以太网温湿度变送器送去做预认证测试,结果辐射发射在120MHz附近超了差不多15dB,传导发射在几十kHz频段也冒了三四个尖刺。回去把PCB和结构都动了一遍,折腾两周后才在第二次送测时全项通过。这个项目本身不复杂,难就难在它要装进柜体里——旁边就是变频器、接触器和开关电源,干扰源密度比普通室内环境高一个量级。这篇东西把这块PCB设计和EMC整改的完整过程记录下来,涉及传感器信号链、以太网PHY与RJ45布局走线、四层板层叠、TVS/磁珠/Y电容选型,以及几个从“照抄参考设计”到“真正理解原理”的关键认知转变,供做工业传感器、智能柜体监控、以太网IoT设备的朋友参考。
1. 项目背景与需求拆解
1.1 为什么“柜体强电磁环境”是个特殊赛道
先说清楚这个产品形态。以太网温湿度变送器,说穿了就是一路温湿度探头加一个网口,通过Modbus TCP或者MQTT把数据送进后台。市面上类似的模块很多,长得像个小盒子,导轨安装,供电一般是24V直流,传感器探头用线引出,装在柜内或者柜门内侧。
但“装在柜体里”这件事,直接把设计难度往上拉了一大截。配电柜、动力柜、控制柜内部是什么环境:变频器是标配,输出侧IGBT开关频率动辄十几kHz,走线长的话会把谐波辐射到整个柜内空间;接触器吸合释放的瞬间会产生很宽的暂态骚扰,属于典型的EFT脉冲群;开关电源的漏感尖峰、继电器线圈反向电动势,都会顺着供电线窜来窜去。一个只有几瓦功耗的温湿度变送器塞在这种环境里,它上面的每一条走线都是一根小天线,每一个地平面节点都在被动接收柜内的高频噪声。
而且这玩意儿还有个致命点:自带以太网口。网口线缆长度不定,短则几米,长则几十米,线缆本身既是骚扰发射天线,也是从外界引入骚扰的路径。民用路由器那边EMC压力小,因为环境相对干净、对认证要求也温和一些;但工业柜体里的以太网节点,必须把收发器和网络变压器那一整条链路都按工业级要求去设计,否则真到现场就是三天两头丢包、重启。
1.2 系统拆解:一个变送器到底包含哪些关键子系统
拆开看,这个产品可以分成四个独立的功能域:
- 传感器信号链:探头端的温湿度传感器(我们用的是I2C接口的数字传感器)、连接器、线缆、主板端的滤波和上拉电路。信号幅度小、频率低,但最容易受共模干扰影响。
- 主控与协议栈:MCU负责数据采集和以太网协议处理。我们选了STM32F407,内置MAC,通过RMII接口外接百兆PHY芯片。MCU本身不是EMC瓶颈,但它是敏感器件,电源和复位如果被扰动,表现就是死机、通信中断。
- 以太网物理层:PHY芯片、网络变压器、RJ45连接器、差分走线、共模扼流圈。这是整个板子的“射频中心”,也是辐射发射和ESD/EFT耦合的主要通道。
- 电源与防护:24V输入经过防护器件(TVS、保险丝、防反接)、滤波网络(π型滤波或磁珠加电容)变成3.3V内核电源和3.3V/P HY电源。电源端口是传导发射和浪涌的主要入口。
这四个域之间的耦合路径,才是EMC问题的根源。比如传感器探头线从主板上穿过,走线贴近PHY到变压器的那段差分信号区,探头线上的低频共模噪声就可能耦合到网口;反过来,网口进来的高频骚扰也可能通过地平面传导到传感器I2C线上。等画完第一版PCB,这些问题会以各种奇怪现象冒出来。
2. 传感器与信号链设计要点
2.1 传感器选型与I2C走线的抗干扰思路
温湿度传感器选型我踩过一个坑。一开始直接用开发板常用的SHT30模块,I2C接口,一切正常,精度温度±0.3℃、湿度±2%,完全够用。但样板做出来装机测试的时候发现,变频器一启动,湿度数据偶尔会跳变一个大的值,比如从45%瞬间跳到60%再跳回来。抓I2C波形发现是SDA线上的毛刺触发了错误的数据读取。
后来分析,问题出在两方面。一是传感器探头是独立小板的,通过四pin杜邦线/连接线连接到主板,线长大概200mm。柜体内变频器辐射的电场耦合到这根悬空的I2C线上,产生共模电流,进而转化成差模毛刺。二是I2C是开漏结构,上拉电阻驱动的抗干扰能力很弱,线上稍微有点串扰就容易误触发。
整改方案分三层:
- 传感器端加一个小型RC滤波,SCL和SDA各串33Ω电阻,然后对地各并一个100pF电容。100pF的值是在不影响400kHz I2C时序的前提下选的,实测200mm线长下上升沿只劣化了约20%,不影响通信。
- 上拉电阻从4.7kΩ改成2.2kΩ,把线拉得更快、更硬,一定程度上削弱外部噪声对电平的干扰。
- 物理上给I2C线做包地处理——探头连接器在PCB上两侧走地线铜箔,线缆本身选用屏蔽线,屏蔽层单端接地(在主板上接GND,探头端悬空)。
这三点做完,变频器启动时湿度数据基本稳定,偶发毛刺从几分钟一次变成半天一次,后来又加了软件滤波才算彻底压住。所以这里给做传感器变送器的朋友一个建议:数字传感器不是简单的“I2C读寄存器”,线缆长度超过100mm就要把信号完整性当成一个问题来对待。
2.2 24V供电防护与电源树设计
工业现场普遍用24V直流给这类设备供电,但这路24V一点都不干净。开关电源纹波、逆变器母线波动、雷击浪涌残压、电机启停造成的电压跌落,都会顺着供电线找上门来。变送器功率很小,功耗大概不到2W,电流不到100mA,反而给了我们使用低功耗高抑制比LDO的底气。
电源入口的防护顺序是固定的:保险丝 → 防反接 → TVS → π型滤波 → DCDC/LDO。
保险丝选的是自恢复保险丝PPTC,额定保持电流500mA,目的是防止板子内部短路或者网口异常时把柜内电源拖垮。防反接用一颗PMOS管做理想二极管方案,压降小,比串联肖特基更省电。TVS选了一颗单向的SMBJ24A,钳位电压在38.9V左右,主要扛浪涌瞬间的过压;注意TVS要放在保险丝之后、极性保护之前,且TVS的接地脚到主GND的过孔尽量短。
电源滤波这里有个细节值得展开。24V进来之后先过一个共模电感,型号通用的是几百μH到mH级别的贴片共模电感,额定电流1A左右。共模电感对差模电流没作用,但对供电线上的共模骚扰很有效——柜内变频器的骚扰往往是以共模形式在供电线上传播的。很多低成本小模块为了省成本省掉这颗电感,结果传导发射测试直接在电源口翻车。
共模电感之后接差模π型滤波:一个10μH功率电感,前后各两颗电容(22μF电解并0.1μF陶瓷),组成CLC结构。到这里,24V供电线上的高频成分已经压掉了大部分,再进LDO(选了一颗3.3V输出的低压差线性稳压器)做最后一级稳压。LDO的PSRR在高频段会衰减明显,所以前面那些滤波不是白做的,它们正是为补偿LDO高频抑制能力不足而存在。
整条电源链路我建议按“粗滤波+细滤波+线性稳压”的思路去搭,不要一上来就只上DCDC。变送器功耗低,用LDO换纹波非常划算。
3. 以太网物理层与PCB设计实战
3.1 PHY芯片、网络变压器与接口架构选择
以太网部分选了LAN8720A这颗百兆PHY,和ESP32以太网模块、很多开发板上常用的那款是同一颗。选它的原因很实在:便宜,封装小(QFN-24),RMII接口只需8根信号线,外围器件少,而且数据手册上的参考设计非常成熟,照着画基本不会有功能性问题。
RMII和MII的选择,我认为对小系统来说RMII几乎是唯一合理选项。MII需要24根信号线,一个MCU引脚本来就紧张,再被以太网占走一大片,PCB布局也会被逼到很难堪的地步。RMII只需要TXD0/1、RXD0/1、TX_EN、CLK、MDC/MDIO这八九根线,信号速率50MHz,配合F407自带的MAC,跑满百兆没问题。
这里要特别注意RMII的50MHz参考时钟怎么来。LAN8720A有两种模式:外部25MHz晶振内部PLL倍频到50MHz,或者直接外部输入50MHz时钟。我们选了外部25MHz晶振方案,PHY内部锁相环生成50MHz,再把50MHz的REF_CLK输出给MCU。这颗晶振要靠近PHY引脚放置,两侧负载电容按数据手册标称值贴,不要随手用15pF去替换——去年我就在另一块板上因为负载电容不匹配导致时钟信号幅度偏低,以太网偶尔起不来。
网络变压器选型同样不能敷衍。百兆以太网变压器,型号很多,比如HX1188NL、YD12系列、HC025等,关键是关注几点:匝数比1:1、隔离耐压至少要1500Vrms、共模扼流圈内置还是外置。我们直接用了一体化网络变压器带RJ45的连接器方案,省掉单独变压器布局的问题,但代价是RJ45高度较高,对结构设计有个小要求。如果机壳高度受限,也可以考虑分离式变压器加普通RJ45,但布局难度会大一点,后面细说。
3.2 四层板层叠与关键走线规则
PCB层叠直接定了四层板,理由比“四层看起来高级”要实在得多:以太网50MHz差分信号需要完整的参考平面,两层板根本给不了;24V电源进入后经过多级滤波,每一级滤波电容都需要就近回到参考地;柜体内强干扰环境下,内层走线还能天然屏蔽一部分外部电场耦合。
层叠顺序我们是这么排的:顶层(信号+器件)→ 第二层(完整GND)→ 第三层(电源分割)→ 底层(杂散信号+少量器件)。
关键点在于第二层必须是完整不分割的地平面。有人为了在第三层走线方便,在地层上打了很多分割槽,这在高频下是灾难——回流电流绕着分割槽走,回路面积变大,就像天线一样往外辐射。我们所有关键信号都参考第二层,第三层的电源分割靠焊盘区域自然划分,不依靠地平面的“开槽”来隔离。
以太网差分对的走线规则这里重点列一下:
- 阻抗控制100Ω±10%,四层板表层微带线,线宽约0.2mm、线距约0.15mm,具体数值以板厂阻抗计算为准。
- 差分对内等长控制在±5mil以内,整对差分线的长度尽量控制在25mm以内。短距离布线下不需要画蛇添足搞蛇形等长,走线越短越直,反而比凑出来的蛇形线更好。
- 差分信号必须全程参考第二层GND,同层两侧包地铜箔并且打满地过孔。包地间距不小于2倍线距,不然包地铜箔反而会改变差分阻抗。
- RMII的信号线虽然不算高速(50MHz),但也要短而直接,TXD/RXD和REF_CLK尽量同层走完,避免换层。REF_CLK要跟其他信号保持至少2倍线宽间距,串33Ω匹配电阻放在PHY侧靠近输出引脚。
还有一个非常容易被忽略的:网络变压器下方的地平面处理。很多参考设计会把变压器正下方的地层掏空,目的是切断初级侧和次级侧之间的耦合。但工业以太网节点我不赞成完全掏空,而是建议做成一个独立的“隔离地”(也叫PGND或 chassis GND),通过一颗1nF/2kV的高压电容和主GND相连。这个电容就是Y电容,它给网口上的共模干扰提供一个低阻抗泄放路径,同时阻断低频回路。掏空且不接任何地,会让网口共模电流没有去处,EMC测试时辐射项大概率过不去。
4. EMC整改全过程实录
4.1 第一次送测:失效项目与共模电流的路径分析
第一版PCB回来后,我们做了功能验证,通信正常、数据准确,感觉万事大吉。结果送去做预认证,辐射发射项目直接被判不合格:30MHz~1GHz频段,在120MHz和240MHz两个频点附近超了大约15dB;传导发射在电源口1MHz以内也有三个尖刺超标。这两个频点有点对称,一看就知道基频和二次谐波关系——120MHz是240MHz的二分之一,大概率不是时钟谐波(50MHz的二次是100MHz,三次是150MHz),更像是某段布线上1又1/2次振荡。
回去抓问题,拿频谱分析仪顶在板上看了半天,最后确定噪声源头在以太网PHY到变压器这一段。RMII的50MHz时钟是三倍频产生的150MHz分量,REF_CLK走线过孔较多、回流路径不连续,导致共模电流穿过整个板子,通过RJ45外壳、网口线缆往外辐射。另外变压器次级侧的直流偏置电阻(通常叫Bob Smith终端)那组RC应该接到隔离地,结果我们参考设计里直接接到了主GND,相当于把共模泄放路径短路了。
这里得讲清楚一个概念:共模电流到底回到哪里去了。在以太网链路中,PHY到变压器初级是正确的差模信号,变压器把初级和次级隔离开来,理想情况下次级只有差模,没有共模。但实际中,RJ45到变压器次级这一段线缆上的共模噪声,会通过变压器线圈间的寄生电容耦合到初级,再进入PHY和主GND;同时主板上的噪声也会反向耦合到次级,沿网线跑到对端设备去。共模电流必须形成完整回路才能流动——它的回路就是通过线缆/外壳/寄生电容,回到它的源头。如果我们在PCB上没有给它设计一个低阻抗路径,它就会自己“开路找路”,往往就顺着地平面乱窜,甚至窜到传感器线缆上去。所以EMC整改的核心根本不是堵,而是给共模电流铺一条可控的低阻抗回路。
4.2 第一次整改:TVS网络、隔离地与Y电容的取舍
整改动作分了三条线同时进行。
第一条线,重做网络变压器次级侧的端接。原设计把Bob Smith端接电阻(75Ω)和高压电容(1nF/2kV)接到主GND,这是不对的。标准做法是次级侧差模端接电阻直接跨在差分对上,共模端接电阻和电容接到隔离地。我们在RJ45连接器下方单独画了一个隔离地铜箔,把次级侧相关的电阻电容都归到这块铜箔上,再通过一颗1nF/2kV的Y电容桥接到主GND。这颗Y电容是有意为之的高频短路、低频开路,它让网口高频共模电流能以最小回路回流到主板地,而不是辐射出去。
第二条线,整改REF_CLK走线。把之前换了两次层的50MHz时钟线强制改到顶层,紧贴PHY引脚出来,串33Ω电阻后近可能直接连到MCU,全程参考第二层GND,两侧加地孔包边。同时PHY的电源去耦电容(0.1μF和1nF两颗并联)直接放在电源引脚正下方,连接焊盘到过孔的引线尽量短到1mm以内。
第三条线是关于“PCB地与金属壳体之间加一个大电容”的讨论——这是网上经常被问到的问题。直接给结论:大电容(uF级)不是万能的,甚至可能帮倒忙;1nF到10nF级别的高压Y电容才是在外壳与主板地之间最合理的接法。我们这次整改没有在主板地与金属外壳之间横跨一个uF级电容,因为那会让低频接地电流在壳体上形成环路,反而变成新的辐射源。实测验证时,把Y电容从1nF换成10nF,低频段的传导发射没有明显变化,但30MHz附近辐射反而有上升,这就是谐振点往低频移动了。所以不要迷信“大电容镇场”,选对容值和位置才关键。
做完这三条,再上频谱仪,120MHz频点降了8dB左右,240MHz降了6dB,但距离限值仍差3~5dB。说明还有一条更隐蔽的路径没堵住。
4.3 第二次整改:结构屏蔽、接地螺柱与网口外壳处理
第二次整改把矛头转向结构与外壳。
变送器用的金属壳体是压铸铝,表面做了喷粉绝缘处理。喷粉工艺好看,但致命问题是它导致壳体接地不良——外壳和PCB GND之间只有几颗螺丝连接,喷粉层的绝缘阻抗很大,高频下根本不算连接。这样一来,共模电流即使想通过外壳泄放,也被绝缘层挡住,只能趴在PCB地平面和连接器上。
方案是两个点:一是在壳体固定螺柱的位置局部刮掉喷粉,露出基底铝材,用带齿垫圈的接地螺丝把PCB的GND铜箔直接压接在螺柱上,建立真正的金属-金属连接;二是RJ45外壳脚就近连接到隔离地,而不是直接接主GND,避免隔离地噪声灌入主板。
还顺便给RJ45金属外壳做了个屏蔽罩延伸:用导电泡棉把RJ45座四周与壳体开口贴合,让网口区形成一个局部屏蔽腔。这样次级侧隔离地的共模电流就倾向于通过壳体回到源头,而不是从开口处往外漏辐射。
传感器探头线缆换成了双屏蔽层线缆,内屏蔽层单端接地到主板GND,外屏蔽层接到壳体螺柱。探头侧保持浮空不接地——两侧都接地会形成地环路,低频下反而引入更多干扰。
第二次送测结果:辐射发射全频段余量达到6dB以上,传导发射余量8dB,EFT和ESD也顺利通过。这里特别提一句EFT,接触器干扰测试时没有出现以太网丢包,证明变压器次级隔离和Y电容的整改确实把共模脉冲压住了。
4.4 关于ESD与浪涌防护的补充实测
EFT过了之后,ESD和浪涌也补测了一下。ESD点位主要是RJ45外壳、24V电源端子、传感器连接器。RJ45外壳直接打±8kV接触放电,整改后无复位、无丢包;传感器连接器因为没有金属外壳,打了±6kV后I2C数据偶发抖动,这暴露了传感器信号线防护的弱点。最后又在探头连接器旁边加了一颗超低电容TVS阵列(例如ESDA6V1-5T6,结电容约几pF,对I2C几乎无影响),才算完全压住。
浪涌测试根据IEC 61000-4-5做±500V对地浪涌,电源口的TVS加上前面提到的一整条电源防护链路毫无压力;网口浪涌由于有网络变压器隔离和隔离地Y电容的帮助,也顺利通过。整体来说,变送器这类小功率设备,ESD和EFT的威胁远大于浪涌,重点是传感器线缆接口和外壳接地点这两个薄弱环节。
5. 常见问题与排查方法实录
5.1 典型问题速查表
整理一下这次项目踩过以及同事那边常见的几个问题,直接给排查方向和解决办法。
| 现象 | 可能原因 | 排查方向与解决办法 |
|---|---|---|
| 变频器启动后温湿度读数跳变 | I2C线缆耦合共模噪声 | 传感器线缆改屏蔽线单端接地;串33Ω+100pF RC滤波;上拉电阻改2.2kΩ;软件滑动滤波兜底 |
| 以太网频繁丢包或Link灯不稳定 | RMII时钟走线过长/过孔多 | REF_CLK走顶层短直,串33Ω匹配电阻;PHY供电去耦电容就近放 |
| 辐射发射在某频点超标 | 以太网变压器次级接地错误 | 次级端接电阻电容接到隔离地,隔离地通过1nF/2kV Y电容桥接到主GND |
| 电源口传导发射低频超标 | 缺少共模电感或π滤波参数不匹配 | 24V入口加共模电感+CLC滤波,TVS位置靠近连接器 |
| 外壳接地不良导致辐射降不下来 | 喷粉层绝缘 | 螺柱刮掉涂层露铝,用带齿垫圈建立金属-金属接触 |
| ESD打RJ45导致复位 | 变压器次级无泄放路径,隔离地浮空 | 隔离地Y电容不要省;RJ45外壳脚接隔离地;导电泡棉屏蔽腔 |
| 传感器线打ESD死机 | 探头连接器无防护 | 并ESD防护阵列(低结电容TVS);线缆尽量远离电源与网口布线区 |
这张表在外场调试时非常实用。很多所谓“玄学问题”其实都能在这几个方向上找到对应原因,尤其是市面上大量小模块喜欢把地平面搞成一锅粥——哪些信号该参考哪个地、哪些节点该用Y电容桥接,全部搞混。
5.2 常用排查工具与测量方法
我自己的排查顺序是:近场探头+频谱仪看发射源 → 示波器测时域波形 → 电流探头确认共模电流流向。
近场探头是必备工具,几十块钱的H场探头配频谱分析仪,就能快速定位板上哪个区域是辐射热点。把我们板子测下来,热点集中在PHY、变压器初级和RJ45三个区域,这就直接锁定了范围。示波器主要看RMII的REF_CLK和电源纹波:REF_CLK的上升沿过冲过大,就加串阻;电源纹波在100MHz频段明显偏高,就增强去耦。
电流探头看共模电流是诊断“回流路径”的最直接手段。夹在网口线缆上,看频谱仪读数随整改动作的变化:Y电容从1nF换成10nF时,线缆上的共模电流有没有下降;短路隔离地与主GND时,电流反而上升还是下降。这些对比测试记录的性能变化,比任何仿真都更接近真实。
另一个细节是频谱仪的检波方式。预测试通常用峰值检波和准峰值检波,现场排查时直接用峰值检波即可,因为准峰值响应慢,扫起来很费时间。峰值检波看到的余量如果能有6dB以上,到认证机构用准峰值测基本也稳了。
5.3 排查走线细节时的几个独特心得
如果你用的是AD、嘉立创EDA或者Cadence这类工具,有几个特别好用的小技巧:
- 提取板框去做结构确认时,嘉立创EDA可以直接从板框层导出DXF,CAD里量好尺寸再比对壳体开孔位置,能省掉很多“打样回来装不上”的返工。
- AD里画任意形状板框,把机械层1设为当前层,用线条和圆弧拼出轮廓,然后选中边框线转换成板框,这一步是常规操作。不过更推荐直接在CAD里画好DXF再导入,因为圆弧衔接的锯齿问题少,拼板时也更整齐。
- DRC检查时如果遇到某个特定封装的焊盘间距误报,可以在规则里给那个器件单独建一个Room或Class,单独设置规则,而不要全局放宽间距——这一点一定要养成习惯,全局放宽会挡住真正的错误。
第一次画完这种四层板的时候,我最容易犯的毛病是“这里加个地孔,那里也加个地孔”,结果地孔多到像筛子。实际经验是,关键信号换层处的相邻地孔才有意义,其他地方的地孔只要满足板厂最小孔径要求、布局不冲突,就该克制。地孔太多会让第三层电源平面的完整性变差,反而得不偿失。
5.4 复测前的整机自检清单
拿去送认证或者现场投运之前,我会把下面几个项目过一遍,时间不长但特别管用:
- 检查24V电源端口的TVS是否反接——很多不良品返修都是TVS装反导致一上电直接短路,板子烧得一塌糊涂。
- 测量24V输入到LDO输出的纹波,特别是满载状态下,纹波不要超过LDO规范值的80%。
- 用网线直连对端设备跑ping包测试,连续ping 50000个包,丢包率应该为零;拔插网线100次,恢复时间不超过2秒。
- 用近场探头扫一遍整板,确认没有突兀的辐射热点;有热点就检查对应区域的地孔和滤波器件。
- 检查金属壳体接地点螺丝是否拧紧、导电泡棉是否压实——这一步看起来土,实际在EMC测试里起的作用比很多滤波电路都大。
这套流程走下来,再送测基本不会出现第一次那种“抱着希望去,拿着红字标书回来”的尴尬。
回到开头那次预测试,超标并不丢人——丢人的是不知道怎么改。这块板子的整改过程里,真正改变结果的是从“照抄参考设计”变成“理解每一个电容和地平面存在的意义”。就拿隔离地来说,参考设计里引脚旁边那个1nF电容,第一次画的时候我根本不知道它干嘛的,等到实测超标才明白它管的是共模电流的回流路径。后来再画以太网相关的板子,我习惯性地先把隔离地、Y电容、接地螺柱这几个位置在板上标出来,布线和结构设计从一开始就围绕它们展开,后面基本不用二次整改。这个习惯让后面的项目省了至少一周的调试时间,也是这次项目给我带来的最大收获。