2、干扰源分析:内部干扰源与外部干扰源

做嵌入式数据采集这些年,我最大的体会就是:抗干扰设计不是锦上添花,而是生死攸关。你想想看,一个传感器辛辛苦苦采回来的数据,结果被噪声污染了,那还不如不采。所以咱们得先搞清楚——敌人到底从哪来?

干扰源分两大类:内部干扰源外部干扰源。内部的是我们自己系统里产生的,外部的是环境强加给我们的。嗯,一个一个说。

2.1 内部干扰源

内部干扰源,说白了就是自己人打自己人。我刚开始做采集系统时,总觉得只要传感器选得好,数据就稳了。结果发现,电源一波动,ADC读数直接跳了十几个LSB。从那以后,我养成了一个习惯——先排查内部干扰,再怀疑外部环境。

2.1.1 电源噪声

电源噪声是嵌入式系统里最常见的干扰源。没有之一。

为什么会这样?因为数字电路在翻转时,会从电源上抽取瞬间大电流。这个电流在电源走线的寄生电感上,会产生一个电压降。用公式表示就是:

V_noise = L * (di/dt)

其中L是电源走线的寄生电感,di/dt是电流变化率。数字芯片翻转越快,di/dt越大,噪声就越猛。

我个人习惯把电源噪声分成两类:

  • 低频噪声:主要是电源纹波,频率在几十kHz到几MHz。来自开关电源的开关动作。
  • 高频噪声:频率在几十MHz到几百MHz。来自数字芯片的同步翻转,比如MCU的时钟边沿。

我在项目中遇到过最典型的情况:一个24位ADC采集温度,电源纹波只有10mV,但ADC的LSB是1μV级别。10mV的纹波,相当于10000个LSB的误差。你说这数据还能用吗?

关键点:电源噪声对高精度ADC的影响是毁灭性的。ADC的电源抑制比(PSRR)在高频段会急剧下降,所以光靠ADC自身是扛不住的。

我的经验:给模拟电路单独供电,用LDO而不是DC-DC。LDO的输出噪声通常比DC-DC低两个数量级。如果必须用DC-DC,那就加一级LC滤波再进模拟电路。

2.1.2 地弹

地弹(Ground Bounce)这个词,听起来挺玄乎。说白了就是地电位不干净了

你想想看,理想情况下,整个电路板上的地电位应该是0V。但实际中,地线是有阻抗的。当多个数字芯片同时输出低电平到高电平时,瞬间电流流过地线阻抗,就会在地线上产生一个电压降。这个电压降,就是地弹。

地弹的典型场景:

  • 多个IO口同时翻转,比如数据总线从0xFF变成0x00
  • 时钟边沿触发时,大量寄存器同时更新
  • 驱动大负载(比如LED阵列、继电器)时,电流突变

我曾经在一个项目中,把模拟地和数字地直接连在一起,结果ADC的读数一直在跳。排查了三天,最后发现是数字部分的地弹通过共地耦合到了模拟部分。从那以后,我再也不敢把模拟地和数字地混在一起了。

避坑指南:我曾经在多层板上把模拟地和数字地用同一个平面,结果高频噪声通过地平面直接串扰。正确的做法是:模拟地和数字地物理隔离,单点连接。连接点选在ADC或MCU的AGND引脚处。

2.1.3 串扰

串扰,就是一条信号线上的能量,通过寄生电容或互感,耦合到另一条信号线上

串扰有两种机制:

类型 耦合方式 典型场景
容性串扰 寄生电容 两条平行走线,间距太小
感性串扰 互感 高速信号线靠近敏感模拟线

我印象最深的一次:一个SPI时钟线(10MHz)和ADC的模拟输入线平行走了5cm,结果ADC采集到的信号上叠加了一个10MHz的干扰。用示波器一看,幅度有20mV。嗯,这就是典型的容性串扰。

串扰的严重程度取决于:

  • 信号频率:频率越高,串扰越严重
  • 走线间距:间距越大,串扰越小
  • 参考平面:有完整地平面时,串扰会大幅降低

我的习惯:高速信号线和敏感模拟线之间,至少保持3倍线宽的间距。如果空间允许,中间加一条地线隔离。这个做法虽然占地方,但效果立竿见影。

2.2 外部干扰源

外部干扰源,就是环境强加给我们的麻烦。你设计得再好,如果外部环境恶劣,照样白搭。

2.2.1 电磁辐射

电磁辐射(EMI)无处不在。手机信号、WiFi、蓝牙、电机、变频器……这些东西都在往外辐射电磁波。你的数据采集系统,就像一根天线,把这些电磁波接收进来,变成干扰信号。

电磁辐射的耦合路径:

  • 近场耦合:干扰源距离很近(小于波长/2π),通过电场或磁场耦合
  • 远场耦合:干扰源距离较远,通过电磁波辐射耦合

我在工厂里做过一个项目,现场有几十台变频器。变频器一启动,采集到的数据就全是毛刺。后来发现,变频器的PWM信号(几十kHz)通过辐射耦合到了传感器线上。解决办法很简单——传感器线换成屏蔽双绞线,屏蔽层单端接地。

关键点:屏蔽层接地方式很重要。低频干扰(<1MHz)建议单端接地,高频干扰(>1MHz)建议多点接地。我一般习惯在信号输入端单端接地,避免形成地环路。

2.2.2 静电放电

静电放电(ESD)是嵌入式系统的噩梦。你想想看,冬天手摸一下金属门把手,啪的一声,电压可能高达几千伏甚至上万伏。这个能量直接打到你的电路板上,轻则数据错误,重则芯片烧毁。

ESD的破坏机制:

  • 直接放电:静电直接打到芯片引脚上,瞬间电流可达几十安培
  • 间接放电:静电打到外壳或附近金属上,通过辐射耦合到内部电路

我曾经吃过一次大亏:一个手持设备,外壳是塑料的,没有做ESD防护。冬天用户从口袋里掏出来,手指碰到USB接口,啪的一声,MCU直接死机。从那以后,我设计的每一个产品,所有对外接口都必须加ESD保护器件

避坑指南:ESD保护器件不是随便加的。TVS管的响应时间要够快(<1ns),钳位电压要够低。我习惯在USB、RS232、CAN等接口上,每根信号线都加一个TVS管到地。别省这个钱,省了就是给自己挖坑。

2.2.3 射频干扰

射频干扰(RFI)来自各种无线设备。手机基站、对讲机、WiFi路由器、蓝牙设备……这些设备发射的射频信号,频率从几十MHz到几GHz不等。

射频干扰的典型表现:

  • ADC采集到的数据出现周期性波动
  • 通信接口(如UART、SPI)出现误码
  • 传感器输出异常,比如温度读数突然跳变

射频干扰的耦合方式主要是天线效应。你的PCB走线、连接线、甚至芯片引脚,都可能成为天线。当走线长度等于射频信号波长的1/4时,天线效应最强。

举个例子:900MHz的手机信号,波长约33cm。1/4波长就是8.25cm。如果你的传感器线刚好8cm左右,那它就是一个完美的天线,会把手机信号接收进来。

我的做法:在敏感信号线上加共模扼流圈(Common Mode Choke),可以有效抑制射频干扰。另外,PCB的接地设计也很重要——完整的地平面是最好的屏蔽

2.3 小结

干扰源分析是抗干扰设计的第一步。你得知道敌人是谁,才能对症下药。

内部干扰源(电源噪声、地弹、串扰)是设计问题,通过合理的PCB布局、电源设计、信号隔离可以解决。外部干扰源(电磁辐射、静电放电、射频干扰)是环境问题,通过屏蔽、滤波、保护器件来应对。

我个人的经验是:先解决内部干扰,再处理外部干扰。内部干扰搞不定,外部干扰来了你根本分不清是哪个。先把自家后院打扫干净,再考虑怎么防贼。

下一章,咱们聊聊抗干扰设计的具体方法——从PCB布局到滤波电路,从屏蔽到接地,一个一个拆解。嗯,到时候见。