SuperAPI AI 工具集

emc

编程与开发

查看项目

更新于 10-15 16:34

技能介绍

用途

emc 是一个面向 KiCad PCB 设计的 EMC 预合规风险分析技能。它通过几何规则检查、解析式辐射公式以及可选的 SPICE 仿真,识别最常见的 EMC 测试失败原因,帮助在制造前定位潜在问题。官方明确说明这是一个风险分析器,而不是合规预测器:它可以在制造前发现约 70% 的常见 EMC 设计错误,但无法保证 FCC/CISPR 合规,只有经认可实验室的校准测量才能做到。官方称其可将首次流片失败率从约 50% 降低到约 20-30%,每避免一次重新流片可能节省 5K-50K 美元。

主要能力

工具包含 44 条规则 ID,分布在 18 个类别中,每条规则都有特定阈值、理由和来源引用(详见 references/pcb-emc-rules.md)。类别与检测内容如下:

  • 接地平面(GP-001 至 GP-005):信号跨越空洞、铺铜碎片化、缺少接地平面、填充率低、多个接地域。
  • 去耦(DC-001 至 DC-003):电容离 IC 过远、IC 无去耦电容、电容离过孔过远。
  • I/O 滤波(IO-001、IO-002):连接器无滤波、接地引脚不足。
  • 开关 EMC(SW-001 至 SW-003):谐波重叠、开关节点铜面积、输入电容回路面积。
  • 时钟布线(CK-001 至 CK-003):时钟走外层、走线过长、时钟靠近连接器。
  • 过孔缝合(VS-001):接地过孔间距超过最高频率下的 λ/20。
  • 叠层(SU-001 至 SU-003):相邻信号层、信号远离参考平面、层间电容过薄。
  • 差分对(DP-001 至 DP-004):对内偏斜超出协议限制、共模辐射、参考平面变化、外层布线。
  • 板边(BE-001 至 BE-003):信号靠近板边、接地铺铜环不完整、连接器区域缝合。
  • PDN 阻抗(PD-001 至 PD-004):反谐振峰、IC 负载点处的分布式电源阻抗、下游开关稳压器引起的跨电源耦合。
  • 返回路径(RP-001):层转换过孔附近无接地缝合过孔。
  • 串扰(XT-001):违反 3H 间距、干扰源-受害者对。
  • EMI 滤波器(EF-001、EF-002):滤波器截止频率过于接近开关频率(解析或 SPICE 插入损耗)。
  • ESD 路径(ES-001、ES-002):TVS 离连接器过远、TVS 附近接地过孔不足。
  • 热-EMC(TH-001、TH-002):MLCC 直流偏置降额(SRF 偏移)、铁氧体靠近热源。
  • 屏蔽(SH-001):连接器孔径槽谐振接近辐射源。
  • 辐射估算(EE-001、EE-002):板腔谐振、开关谐波包络。

此外还会输出建议性内容(非发现项):预合规测试计划(频段优先级、接口风险排序、近场探头点位)与法规覆盖(市场到标准映射、覆盖矩阵,说明工具检查内容与需要实验室测试的内容)。

使用方式

要求:Python 3.10+(仅标准库,无需 pip 依赖);原理图分析器 JSON(来自 analyze_schematic.py --output);PCB 分析器 JSON(来自 analyze_pcb.py --full --output,推荐加 --full);可选 SPICE 仿真器(ngspice、LTspice 或 Xyce,用于 SPICE 增强的 PDN/滤波器检查,会自动检测,没有时解析模型照常运行)。

步骤 1:运行分析器

python3 <kicad-skill-path>/scripts/analyze_schematic.py design.kicad_sch --analysis-dir analysis/ python3 <kicad-skill-path>/scripts/analyze_pcb.py design.kicad_pcb --full --analysis-dir analysis/

步骤 2:运行 EMC 分析

传入 --analysis-dir analysis/ 后,脚本会从清单的当前运行中自动解析 schematic.json 和 pcb.json,并将 emc.json 写入同一文件夹以便清单跟踪。

推荐:从当前运行自动解析输入

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/

等价写法 — 仍接受显式路径(若想指向非当前运行或覆盖某个输入则必需)

python3 <skill-path>/scripts/analyze_emc.py
--schematic analysis/<run_id>/schematic.json
--pcb analysis/<run_id>/pcb.json
--analysis-dir analysis/

一次性 JSON(绕过缓存)

python3 <skill-path>/scripts/analyze_emc.py --schematic schematic.json --pcb pcb.json --output emc.json

SPICE 增强(提升 PDN 和滤波器精度)

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/ --spice-enhanced

选择目标标准

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/ --standard cispr-class-b

选择目标市场(设置所有适用标准)

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/ --market eu

按严重级别过滤

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/ --severity high

人类可读文本输出

python3 <skill-path>/scripts/analyze_emc.py --analysis-dir analysis/ --text

步骤 3:解读结果

读取 JSON 报告并将发现纳入设计评审。每条发现都有严重级别、规则 ID、描述和可执行建议。

适用场景

适用于在 KiCad 中进行 PCB 设计、希望在制造前排查 EMC 风险的场景,尤其适合有线缆连接的产品、含开关电源与高速接口的板卡。工作流上建议先运行 kicad 技能的 analyze_schematic.py 和 analyze_pcb.py(PCB 分析器建议使用 --full 以启用逐走线坐标,用于接地平面跨越、边缘邻近和返回路径检查)。设计评审时,在原理图/PCB 分析器、SPICE 仿真和热分析之后运行 EMC 分析,再把 EMC 发现纳入报告。热分析(kicad thermal)中 MLCC 降额与铁氧体/电感过热会放大 EMC 去耦与滤波问题,当 EMC 标记 DC-001/DC-002 或 EF-001/EF-002 时值得交叉核对。

输出、评分与严重级别

输出 JSON 包含 summary(total_checks、critical/high/medium/low/info 数量、emc_risk_score)、target_standard、findings(category、severity、rule_id、title、description、components、nets、recommendation)、per_net_scores、test_plan(frequency_bands、interface_risks、probe_points)、regulatory_coverage(market、applicable_standards、coverage_matrix)。

严重级别:CRITICAL 表示几乎必然导致 EMC 失败,制造前必须修复;HIGH 表示很可能导致问题,强烈建议修复;MEDIUM 表示可能因具体情况导致问题,需评审评估;LOW 表示轻微风险、良好实践,方便时修复;INFO 为信息性内容(频率、估算),可用于实验室准备。

风险评分:每个规则 ID 最多向评分贡献 3 条发现(按最严重级别优先),以防止 GP-001 这类按网络规则在 2 层板上使评分饱和;所有发现仍会报告,仅评分被截断。penalty = 每条规则最差 3 条 × 严重级别权重的总和,score = max(0, 100 - penalty)。低于 50 分表示存在显著 EMC 风险。

支持的标准

  • FCC Part 15 Class B(fcc-class-b):美国住宅(默认)。
  • FCC Part 15 Class A(fcc-class-a):美国商业/工业。
  • CISPR 32 Class B(cispr-class-b):国际(欧盟 CE 标志)。
  • CISPR 32 Class A(cispr-class-a):国际商业。
  • CISPR 25 Class 5(cispr-25):汽车(最严格)。
  • MIL-STD-461G RE102(mil-std-461):军事/国防。

--market 标志将市场映射到所有适用标准:us、eu、automotive、medical、military。

局限性

官方列出的限制包括:无法以优于 ±10-20 dB 的精度预测绝对辐射电平;无法考虑外壳效应(屏蔽、孔径、接缝);在不知道外部线缆布线的情况下无法预测线缆辐射;无法替代复杂几何体的全波仿真;无法保证合规——只有经认可实验室的测量才能做到。此外,去耦类的基于距离的发现存在中等误报率,需结合频率背景判断优先级。