本节摘要:SOURCE 1.1:EMC 是设备在电磁环境中正常工作且不对其他设备产生无法忍受干扰的能力——本质是 E(发射)、S(抗扰)、Env(环境/耦合路径) 的稳态协商。
某医疗板通过 CISPR 32 Class B 辐射测试,却在 MRI 梯度场附近复位。SOURCE 案例:EMS 裕量仅 0.5 dB 时,「发射合格」不等于安全——EMI 与 EMS 是同一物理过程在不同激励方向的镜像。
这个案例有两个值得注意的细节。其一,该板在标准暗室中 RE 测试余量为 4.2 dB,属于「合格但无裕量」;而抗扰测试采用 IEC 61000-4-3 规定的 3 V/m 场强,实际应用环境(MRI 梯度线圈切换)却可能产生更强的瞬态场。其二,复位源最终定位到长 12 cm 的电源排线,它在 400 kHz 梯度切换噪声下充当了接收天线——这正是「发射合格不等于抗扰合格」的典型佐证。教训是:合规测试只能证明标准环境下的表现,系统级的 EMC 安全性必须结合真实使用环境评估。
IEC 61000-2-1 定义强调:兼容是 Emission、Susceptibility、Environment 三者的动态平衡。Env 对某频段强衰减时,E 与 S 均差也可能「偶然兼容」——这正是后期整改失败的根源。
三个角色必须同时成立才算兼容:
工程上通常把兼容边界量化为「裕量」:设计值应比测试限值高出 6 dB(电压比 2 倍)以上的余量。此余量覆盖批次差异、温度漂移、生产装配公差与测试不确定度。缺少裕量的设计,即使首测合格,量产时也会出现零星超标。
| 迷思 | 问题 | 正确视角 |
|---|---|---|
| EMI vs EMS 分家 | 同一段走线既是辐射源又是接收天线 | 统一在三元模型下评估 |
| 发射合格即安全 | 忽略使用环境 | 按应用环境留 EMS 裕量 |
| EMC = 滤波加屏蔽 | 忽略源头与路径 | 源头-路径-受体全链 |
| 裕量越大越好 | 成本与体积线性上升 | 按环境等级定目标裕量 |
| 标准过了就交付 | 未覆盖真实瞬态与频段 | 增加系统级实测与近场扫描 |

⚠️ 常见坑:把 EMC 降格为「发射管控」——PCB 上须同时压制源头与加固受体。
💡 关键直觉:兼容边界 = 设计者对「合理电磁行为」的价值判断,体现在参考平面连续性与回流拓扑上。
SOURCE 指出:PCB 上一切 EMI 终归于 di/dt 与 dv/dt 的时空分布。辐射功率 P_{rad} \propto (di/dt \cdot A \cdot h)^2 f^4,其中 A 为信号-回流回路面积。
从工程角度把因果链展开,就是「电流变化 → 场变化 → 耦合/辐射 → 超标」。下表给出 PCB 上最常见的源—路径—受体组合与各自的抑制抓手:
| 源 | 路径 | 受体 | 主要抑制抓手 |
|---|---|---|---|
| 时钟驱动 di/dt | 环路辐射 | 天线类接口 | 减小回路面积、加缓斜 |
| 开关电源 dv/dt | 近场容性 | 敏感走线 | 屏蔽、拉开间距、加缓冲 |
| 多 IO 同步翻转 | 封装/平面电感 | 逻辑/模拟 | 去耦、减电感、展频 |
| 电机换向电弧 | 线缆共模 | 控制器 | 续流、共模扼流圈 |
| 高速 SerDes | 串扰 | 相邻信号 | 3W、包地、隔离 |
一次完整的 EMC 达标,通常经历「预测试 → 整改 → 正式测试 → 量产抽检」四步。预测试阶段用近场探头与简易天线在自有环境完成 80% 的排雷,正式测试只做确认。整改阶段坚持「复现—定位—单变量修改」,避免同时改动多处导致无法归因。
测试等级应在 SRD 阶段确认并写入需求文档,而不是等样机完成后再补——否则叠层、布局、滤波拓扑都可能在测试后发现不达标,返工成本极高。
EMC 报告中的大量数字都以 dB 表示,工程师必须能把 dB 与倍率互转,否则「差 6 dB」这类结论会被误读为「差 6 倍」。电压类量的换算关系是 dB=20·lg(比值),功率类量是 dB=10·lg(比值);幅度限值(电场、电流)用 20·lg,功率限值用 10·lg。常用基准:dBμV/m(场强,1 μV/m 为 0 dB)、dBμV(电压)、dBμA(电流)。频率从 30 MHz 到 1 GHz 的限值曲线通常按「每十倍频程下降」的斜率分段给出,如 FCC 15.109 B 类 30–88 MHz 为 40 dBμV/m,88–216 MHz 为 43.5 dBμV/m。
import math def db_voltage(ratio: float) -> float: """电压比 → dB""" return 20 * math.log10(ratio) def voltage_ratio(db: float) -> float: """dB → 电压比""" return 10 ** (db / 20) # 裕量检查示例 measured = 48.5 # dBμV/m @ 300 MHz limit = 46.0 # CISPR 32 B 类 @ 300 MHz margin = limit - measured print(f"实测 {measured} dBμV/m,限值 {limit} dBμV/m,裕量 {margin:+.1f} dB") if margin < -6: # 超限且无裕量 print("判定: 超标,且缺整改方向——先定位再改") elif margin < 0: # 超限 print("判定: 超标,需整改") elif margin < 6: # 合格但裕量不足 print("判定: 合格但裕量不足,建议仍做近场定位,规避量产风险") else: print("判定: 合格且裕量充足") # 6 dB 对应电压比 2 倍,20 dB 对应 10 倍 print("6 dB =", round(voltage_ratio(6), 3), "倍(电压)") print("20 dB =", voltage_ratio(20), "倍(电压)")
这段脚本同时演示了「先算裕量再决定行动」的工程习惯:裕量是 EMC 管理的核心数字,整改优先级应直接由它驱动。把 dB 换算做成工具后,测试报告中的数据就可以直接转成设计动作。