ESD/浪涌防护实战:一次雷雨季的成批返修,逼我把 TVS、放电管和接地路径从头补了一遍课

2026年9月26日 0 By admin

本文是嵌入式硬件系列第 20 篇。上期聊 ITM/SWO 调试打印时预告了 ESD/浪涌防护,这期兑现。

事情是这样开始的

去年夏天雷雨季,某批户外安装的计量采集终端开始陆续返修。症状高度一致:

  • 一部分是 RS485 收发器击穿——A/B 线对地短路或开路,总线上挂着它整个网段都瘫痪;
  • 一部分是 MCU 复位引脚损伤——设备上电后复位时好时坏,示波器上看复位波形毛刺很大;
  • 还有一小部分更惨:电源口整流桥后面直接炸开,板子带焦痕。

返修板加起来二十多台,集中在同一个安装区域——多雷暴、土壤电阻率高、配电网没有良好等电位连接。这批板子当年打样时,我在接口电路里画了 TVS,自我感觉防护做全了。结果一查原理图才发现:TVS 型号选错了、接地路径形同虚设、前级连个泄放器件都没有。等于只穿了件布衫就站到了雷雨里。

这一篇把我从这次返修里学到的 ESD 与浪涌防护体系完整捋一遍:先分清两个概念的能量量级,再讲器件选型、两级防护架构、接地路径,最后是布局要点和测试验证方法。

先分清:ESD 和浪涌是两码事

很多人(包括当年的我)把”防静电”和”防浪涌”混为一谈,选个 TVS 一劳永逸。但这两个测试的能量差着数量级:

项目 ESD(IEC 61000-4-2) 浪涌(IEC 61000-4-5)
典型波形 1.2 ns 上升 / 60 ns 半宽 1.2/50 μs 开路电压 / 8/20 μs 短路电流
典型等级 接触 ±4~±8 kV,空气 ±8~±15 kV 差模 1 kV,共模 2 kV(常见等级)
单次电流峰值 约 16~30 A(接触 ±8 kV) 数百安培到上千安培
单次能量 约零点几毫焦到几毫焦 数十毫焦到焦耳级
时间尺度 纳秒级,考验器件响应速度 微秒级,考验器件能量吞吐能力
来源 人手触摸、装配摩擦 雷电感应、电网开关操作、负载投切

记住一句话:ESD 考的是”快”,浪涌考的是”扛”。ESD 电流上升沿 1.2 ns,响应慢的器件还没来得及动作,尖峰已经灌进芯片了;浪涌电流几百安培,小封装 TVS 瞬间就被过载打穿。

我们那批返修板的问题恰好两头都占:RS485 口贴了个 SOD-323 封装、结电容偏高的 ESD 专用 TVS,浪涌一来直接过载开路;复位引脚干脆裸奔,ESD 测试时都过不去。

防护器件四件套:各管一段

动手改板前先把常用的四类器件特性捋清楚:

器件 响应速度 通流能力 残压 寄生电容 典型用途
TVS 二极管 皮秒级 小(几十 A 级,看封装) 低、可精确钳位 大(信号型可做到 <1 pF) 后级精细钳位、ESD 防护
气体放电管 GDT 微秒级(需弧光建立) 极大(kA 级) 高(弧压约 10~30 V) 极小(<1 pF) 前级大能量泄放
压敏电阻 MOV 纳秒~数十 ns 大(kA 级) 中等、随电流上升明显 数百 pF~nF 级 电源口前级泄放
聚合物 PESD 亚纳秒 小 中等 极低(<0.3 pF) 高速信号口 ESD

几个选型要点,都是我交过学费的:

  • TVS 的 VRWM(反向截止电压)必须高于线路正常工作电压的上限。RS485 总线共模范围是 −7~+12 V,考虑 fail-safe 偏置和故障工况,我最后选的是 VRWM = 24 V 的型号——选 12 V 的型号看着”更贴身”,但总线共模一旦漂移,TVS 长期微导通发热漏电,几个月就劣化了。返修里还真找到一颗这么烧糊的。
  • 结电容是高速信号口的隐形杀手。485 跑到 115200bps 还好,如果是以太网、USB、CAN FD 这类口,TVS 结电容必须控制在几个 pF 以内,必要时用聚合物 PESD。
  • 看 IPP 而不是只看功率。同样标 400 W 的 TVS,10/1000 μs 波形下 IPP 可能是 17 A,8/20 μs 下可能是 40 A—— datasheet 里标的是哪个波形,一定要看清楚。浪涌场合按 8/20 μs 的 IPP 核算。
  • GDT 的直流击穿电压要高于线路最高工作电压,否则会在线路正常时”误点火”,反复点火又会老化。

两级防护架构:让每级只干自己擅长的事

单靠一级器件,要么扛不住能量(TVS),要么钳位太差(GDT/MOV 残压高)。工程上的标准答案是两级配合:

  线缆 ──┬──[ GDT/MOV 前级 ]──[ 退耦电阻/电感 ]──[ TVS 后级 ]── 芯片
         │                        │
        泄放大能量          隔离前级,保证 TVS 先动作
  • 前级 GDT/MOV:负责把 kA 级大电流泄放进大地,缺点是残压高、动作慢。
  • 后级 TVS:负责把残压进一步钳到芯片能忍受的水平,动作快但扛不了大能量。
  • 中间的退耦元件(电阻、PTC 或电感):这是最容易被漏画的一笔。没有它,前级还没动作,浪涌全压怼在后级 TVS 上,TVS 一样死。有了退耦,TVS 先动作把电压钳住,前级两端电压差拉开后才击穿泄放——级间配合的本质是”让快的小器件先顶,让慢的大器件来接盘”。

我们终端的 RS485 口最终配置:GDT(2 极,90 V)在前级对地泄放,串联 10 Ω/2 W 退耦电阻,后级双路 TVS(VRWM 24 V、结电容 3 pF)到线间和对地。整改后送浪涌测试,差模 1 kV、共模 2 kV 各正负各 5 次全部通过,判据 B(浪涌期间通信短暂中断,浪涌后自动恢复)。

接地路径:泄放电流走的那条路,才是防护设计的正文

这是这次返修给我最深刻的一课。防护器件再对,泄放路径不对,等于没防护。

浪涌电流泄放时是几十到上千安培的脉冲。算一笔账:一条 10 cm 长、1 mm 宽的 PCB 走线,电感约 100 nH,di/dt 按 1 kA/8 μs 估算,感性压降 L·di/dt ≈ 100 nH × 125 A/μs = 12.5 V。也就是说,泄放电流经过这么一段”地线”时,那颗芯片的地会被瞬间抬高十几伏——对 3.3V 供电的 MCU 来说,这已经远超引脚能承受的范围;防护器件确实导通了,但电流没地方去,抬升的地电位还是把芯片打穿。

接地路径的设计要点:

  • TVS 的接地端必须就近接到泄放地(机壳地/屏蔽地),走线短粗,理想情况下几毫米内打过孔到大铜皮,绝不能绕着板子走细线到芯片旁边的”数字地”。
  • 泄放地与信号地在板内单点连接。泄放时泄放地电位剧烈抬升,如果和信号地大面积共线,这个抬升会直接耦合进所有信号——这比不打防护还危险。
  • 接口连接器到防护器件、防护器件到泄放地的路径,面积越小越好,构成”小泄放环路”。
  • 金属外壳设备:连接器外壳、屏蔽层先接机壳,机壳是第一道泄放通道,PCB 上的泄放地通过低阻抗连接机壳。

返修板上看得很直观:TVS 就贴在连接器旁边没错,但它的接地端是一根 8 cm 的细走线绕到芯片附近的 GND 平面——泄放电流全从这里过,等于 TVS 白装。改板时把接口区域整块挖出独立的泄放铜皮,单点桥接主地,雷雨季后的返修率降了一个数量级。

信号口的结电容与眼图:防护不能以牺牲信号质量为代价

防护改完第一版,浪涌测试过了,通信联调却出了新问题:115200 bps 的 485 总线通信误码率明显上升。拿示波器看波形,边沿明显变缓。

原因就是 TVS 的结电容。两口 TVS 加起来约 10 pF,挂在 1 kΩ 上拉网络和 120 Ω 终端电阻的总线上,配合长线分布电容,等效负载电容显著增大,边沿被 RC 滤掉了。处理办法:

  • 换成结电容 3 pF 的低容 TVS(双路合一封装);
  • 退耦电阻从 10 Ω 适度回调(它也参与边沿变缓,最终取 6.8 Ω,浪涌测试仍通过);
  • 重新做浪涌测试 + 误码率测试,两者同时达标才算改板完成。

经验:每一个防护改动,都要回到信号完整性上复核一遍。防护和信号质量是一对永远的矛盾,工程师的活儿就是找到那个两边都站得住的工作点。CAN 口、以太网口同理——CAN FD 5 Mbps 以上时,TVS 结电容甚至要控制在 1~2 pF。

MCU 裸奔引脚:复位、按键和调试口

返修统计里有个容易被忽略的类别:复位引脚损伤。户外设备的人机交互按键、复位按键、编程口(SWD)都是直通外界的,人手一摸就是 ESD。

这批板子的复位线是从面板按键拉过来的,约 15 cm 走线,中途无任何防护。人手接触 ±8 kV ESD 时,耦合到复位线上的尖峰足够损伤 MCU 的复位输入级。整改方案:

  • 复位/按键线:串 1 kΩ 电阻 + 就近贴 ESD 保护二极管(低结电容的 5 V 单向 TVS);
  • 复位 RC(10 kΩ 上拉 + 100 nF)本身就有一定吸收作用,但不要指望 RC 代替 TVS——ESD 上升沿 1.2 ns,100 nF 在这个时间尺度上就是开路;
  • SWD 调试口:批量设备建议在量产版上直接不引出测试点,或者用堵头/导热胶盖住,物理防护比电子防护更可靠;
  • 所有外露金属件(螺钉、天线座、USB 金属壳)就近接机壳地,不要接到信号地。

系统级配合:硬件防护之后,软件得会”爬起来”

硬件防护能做到判据 B——浪涌期间通信中断、浪涌后恢复。但”恢复”这半个字要靠软件兑现。这套代码我们在 CAN 那篇里写过一半,485 侧的思路类似:

/* RS485 通信看门狗 + 故障统计(节选) */
#define RS485_TIMEOUT_MS  5000   /* 无有效帧超时 */
#define RS485_FAIL_LIMIT  8      /* 连续错误帧阈值 */

static uint32_t last_good_frame_ms;
static uint32_t err_frame_cnt;

void RS485_Poll(uint32_t now_ms)
{
    if (now_ms - last_good_frame_ms > RS485_TIMEOUT_MS) {
        /* 总线疑似被打瘫(收发器锁死/总线卡死):重新初始化外设 */
        RS485_Reinit();
        last_good_frame_ms = now_ms;
    }
}

void RS485_OnFrameError(void)
{
    if (++err_frame_cnt >= RS485_FAIL_LIMIT) {
        RS485_Reinit();          /* 错误帧连续超限也重新初始化 */
        err_frame_cnt = 0;
    }
}

配合上电力行业常见的通信规约里的”故障计数 + 分级恢复”思路:单帧 CRC 错只计数;连续错误先重初始化 485 外设;重初始化无效则复位收发器电源(有条件的话用高边开关断电重启收发器)。这些手段平时用不上,但雷雨天它们决定了设备是”闪断一分钟”还是”彻底掉线等人工到场”。

另外注意:浪涌事件本身要留痕迹。我们在设备里加了一个 GDT 后级电压检测(分压到 ADC),检测到异常尖峰事件就计数上报。运行两年后拿这个计数和气象数据对过,相关性非常好——它能告诉你哪条线路的防护已经接近极限,比等设备坏了再返修主动得多。

测试验证:别拿自己当第一个实验品

改板后的验证必须上仪器,两条线都要做:

  • ESD 测试(IEC 61000-4-2):接触放电 ±4/±8 kV,空气放电 ±8/±15 kV。放电点选:所有外露金属件、缝隙、按键、连接器外壳;每点正负各 10 次。判据 B:ESD 时设备可能失常,放电后自动恢复,不允许死机或损坏。
  • 浪涌测试(IEC 61000-4-5):电源口和信号口分开做。电源口差模 1 kV/共模 2 kV(户内)到差模 2 kV/共模 4 kV(户外严苛等级),信号口按差模 1 kV/共模 2 kV。耦合网络注意 CD(容性耦合)与去耦网络的配置,信号线要走耦合夹。

实测里几个容易踩的坑:

  • 空气放电结果离散性大(受湿度、Approach 速度影响),以接触放电为准设计,空气放电作为补充;
  • ESD 测试要求设备处于正常工作状态下打,比如通信中打 ESD,观察通信是否恢复——只上电不打通信,等于没测;
  • 浪涌的正负极性和相位角(AC 电源口 0°/90°/180°/270° 相位注入)都要覆盖,很多问题只在特定相位暴露;
  • 实验室过了不代表现场没问题——现场雷击感应能量远大于实验室标准波形,测试是底线不是天花板。

防护设计自查清单

最后照例留一份可以照着打勾的清单:

  • ☐ 每个对外接口都列了防护对象:ESD、浪涌(EFT 顺带确认),没有”裸奔”引脚
  • ☐ TVS 的 VRWM 高于线路最大工作电压(485 口 ≥ 24 V 留余量)
  • ☐ 高速信号口 TVS 结电容核算过(485/CAN ≤ 5 pF,更高速口用低容/聚合物器件)
  • ☐ 大能量口(电源、长距离信号线)是两级防护:前级 GDT/MOV + 退耦元件 + 后级 TVS
  • ☐ 退耦电阻/PTC 的功率和浪涌耐受核算过(不是随便 0402 一颗)
  • ☐ 防护器件接地端到泄放地的走线短粗,感性压降估算过
  • ☐ 泄放地与信号地单点连接,泄放环路面积最小
  • ☐ 屏蔽层、连接器金属壳、外露金属件接机壳地的路径确认
  • ☐ 改板后重做了信号完整性复核(眼图/边沿/误码率)
  • ☐ 固件有通信看门狗、错误帧计数和分级恢复逻辑
  • ☐ 浪涌/ESD 异常事件有计数上报,可追溯现场工况
  • ☐ ESD 与浪涌测试覆盖正负极性、全部放电点和电源相位角,判据明确

写在最后

防护设计是最典型的”看不见的功夫”:做好了没人知道,做坏了雷雨天见。这批返修教会我的核心就一句话——防护是一个电流路径设计问题,不是器件堆砌问题。TVS 选型只占三成,剩下七成在泄放路径、级间配合和布局。

下一篇预告:MQTT over TLS 与设备端证书管理——聊聊嵌入式设备怎么把 TLS 握手时间、内存占用和证书有效期管理这三座山搬掉,也是设备接云绕不开的一课。感兴趣的可以关注下。