📁 新增 pcb/ 目录:硬件同事(唐磊)PCB 设计文档归档区
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
@@ -0,0 +1,87 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<ns0:svg xmlns:ns0="http://www.w3.org/2000/svg" viewBox="0 0 1240 560" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<ns0:defs>
|
||||||
|
<ns0:marker id="ar1" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
||||||
|
<ns0:path d="M0,0 L10,5 L0,10 z" fill="#64748b" style="fill: #64748b" />
|
||||||
|
</ns0:marker>
|
||||||
|
</ns0:defs>
|
||||||
|
<ns0:text x="20" y="34" style="font-size: 20px; font-weight: 650; fill: #172033">环路车检器 · 检测方法对比与选型推荐</ns0:text>
|
||||||
|
<ns0:text x="20" y="56" style="font-size: 12px; fill: #5b6475">选型核心:灵敏度(能否测摩托/自行车)× 抗干扰(变频器/电力谐波)× 成本。结论先行:主推 ①LC振荡+频率计数;复杂电磁环境上 ④;高灵敏需求上 ②。</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="24" y="80" width="288" height="440" rx="10" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:rect x="24" y="80" width="288" height="440" rx="10" fill="none" style="stroke: #16a34a; stroke-width: 2.5; fill: none" />
|
||||||
|
<ns0:rect x="24" y="80" width="288" height="36" rx="10" fill="#16a34a" style="fill: #16a34a" />
|
||||||
|
<ns0:text x="168" y="104" text-anchor="middle" fill="#fff" font-size="14" font-weight="700" style="fill: #fff">① LC振荡 + 频率计数 ★★★★★</ns0:text>
|
||||||
|
<ns0:text x="40" y="140" font-size="12.5" font-weight="600">原理</ns0:text>
|
||||||
|
<ns0:text x="40" y="158" style="font-size: 11px; fill: #5b6475">车辆进入 → 线圈等效电感↓ →</ns0:text>
|
||||||
|
<ns0:text x="40" y="174" style="font-size: 11px; fill: #5b6475">振荡频率↑ → MCU 定时器测频/测周期</ns0:text>
|
||||||
|
<ns0:text x="40" y="202" font-size="12.5" font-weight="600">灵敏度</ns0:text>
|
||||||
|
<ns0:text x="40" y="220" style="font-size: 11px; fill: #5b6475">★★★☆ 轿车/SUV 稳定;调阈值可测摩托</ns0:text>
|
||||||
|
<ns0:text x="40" y="248" font-size="12.5" font-weight="600">抗干扰</ns0:text>
|
||||||
|
<ns0:text x="40" y="266" style="font-size: 11px; fill: #5b6475">★★★ 配自适应阈值 + 频偏跟踪</ns0:text>
|
||||||
|
<ns0:text x="40" y="294" font-size="12.5" font-weight="600">成本</ns0:text>
|
||||||
|
<ns0:text x="40" y="312" style="font-size: 11px; fill: #5b6475">低(MCU + 三极管/比较器即可)</ns0:text>
|
||||||
|
<ns0:text x="40" y="340" font-size="12.5" font-weight="600">适用</ns0:text>
|
||||||
|
<ns0:text x="40" y="358" style="font-size: 11px; fill: #5b6475">主流道闸/停车场/流量计数,市场 90%</ns0:text>
|
||||||
|
<ns0:text x="40" y="396" font-size="12.5" font-weight="600">要点</ns0:text>
|
||||||
|
<ns0:text x="40" y="414" style="font-size: 11px; fill: #5b6475">周期法优于计数法:低速/停留不丢车</ns0:text>
|
||||||
|
<ns0:text x="40" y="430" style="font-size: 11px; fill: #5b6475">回差阈值防抖动;基准慢速自适应抗温漂</ns0:text>
|
||||||
|
<ns0:text x="40" y="470" fill="#16a34a" font-weight="700" style="font-size: 11px; fill: #16a34a">✅ 推荐主方案:成熟、稳定、成本最优</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="326" y="80" width="288" height="440" rx="10" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="470" y="104" text-anchor="middle" style="font-size: 14px; font-weight: 600; fill: #172033">② PLL 锁相 / 相位比较 ★★★★</ns0:text>
|
||||||
|
<ns0:text x="342" y="140" font-size="12.5" font-weight="600">原理</ns0:text>
|
||||||
|
<ns0:text x="342" y="158" style="font-size: 11px; fill: #5b6475">PLL 锁定振荡信号,车辆引起</ns0:text>
|
||||||
|
<ns0:text x="342" y="174" style="font-size: 11px; fill: #5b6475">相位/频率误差 → 输出误差电压</ns0:text>
|
||||||
|
<ns0:text x="342" y="202" font-size="12.5" font-weight="600">灵敏度</ns0:text>
|
||||||
|
<ns0:text x="342" y="220" style="font-size: 11px; fill: #5b6475">★★★★★ 可测自行车/电动车/行人拖车</ns0:text>
|
||||||
|
<ns0:text x="342" y="248" font-size="12.5" font-weight="600">抗干扰</ns0:text>
|
||||||
|
<ns0:text x="342" y="266" style="font-size: 11px; fill: #5b6475">★★★ 环路锁定本身有滤波作用</ns0:text>
|
||||||
|
<ns0:text x="342" y="294" font-size="12.5" font-weight="600">成本</ns0:text>
|
||||||
|
<ns0:text x="342" y="312" style="font-size: 11px; fill: #5b6475">中(PLL IC 或 MCU 内置 PLL 外设)</ns0:text>
|
||||||
|
<ns0:text x="342" y="340" font-size="12.5" font-weight="600">适用</ns0:text>
|
||||||
|
<ns0:text x="342" y="358" style="font-size: 11px; fill: #5b6475">混行车道、ETC 车道、摩托车检测</ns0:text>
|
||||||
|
<ns0:text x="342" y="396" font-size="12.5" font-weight="600">要点</ns0:text>
|
||||||
|
<ns0:text x="342" y="414" style="font-size: 11px; fill: #5b6475">环路带宽要窄:抗抖但响应慢,需折中</ns0:text>
|
||||||
|
<ns0:text x="342" y="430" style="font-size: 11px; fill: #5b6475">适合与 ① 组合做双通道校验</ns0:text>
|
||||||
|
<ns0:text x="342" y="470" fill="#0f766e" font-weight="700" style="font-size: 11px; fill: #0f766e">✅ 高灵敏场景备选</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="628" y="80" width="288" height="440" rx="10" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="772" y="104" text-anchor="middle" style="font-size: 14px; font-weight: 600; fill: #172033">③ 电桥阻抗检测 ★★</ns0:text>
|
||||||
|
<ns0:text x="644" y="140" font-size="12.5" font-weight="600">原理</ns0:text>
|
||||||
|
<ns0:text x="644" y="158" style="font-size: 11px; fill: #5b6475">环路与参考臂构成平衡电桥,</ns0:text>
|
||||||
|
<ns0:text x="644" y="174" style="font-size: 11px; fill: #5b6475">车辆使阻抗失衡 → 输出失调电压</ns0:text>
|
||||||
|
<ns0:text x="644" y="202" font-size="12.5" font-weight="600">灵敏度</ns0:text>
|
||||||
|
<ns0:text x="644" y="220" style="font-size: 11px; fill: #5b6475">★★ 中低,依赖桥臂匹配精度</ns0:text>
|
||||||
|
<ns0:text x="644" y="248" font-size="12.5" font-weight="600">抗干扰</ns0:text>
|
||||||
|
<ns0:text x="644" y="266" style="font-size: 11px; fill: #5b6475">★★ 温漂/老化使零位漂移严重</ns0:text>
|
||||||
|
<ns0:text x="644" y="294" font-size="12.5" font-weight="600">成本</ns0:text>
|
||||||
|
<ns0:text x="644" y="312" style="font-size: 11px; fill: #5b6475">低(纯模拟)</ns0:text>
|
||||||
|
<ns0:text x="644" y="340" font-size="12.5" font-weight="600">适用</ns0:text>
|
||||||
|
<ns0:text x="644" y="358" style="font-size: 11px; fill: #5b6475">早期产品 / 教学演示</ns0:text>
|
||||||
|
<ns0:text x="644" y="396" font-size="12.5" font-weight="600">要点</ns0:text>
|
||||||
|
<ns0:text x="644" y="414" style="font-size: 11px; fill: #5b6475">需定期人工调零,现场维护成本高</ns0:text>
|
||||||
|
<ns0:text x="644" y="470" fill="#991b1b" font-weight="700" style="font-size: 11px; fill: #991b1b">⚠️ 不推荐量产</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="930" y="80" width="288" height="440" rx="10" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="1074" y="104" text-anchor="middle" style="font-size: 14px; font-weight: 600; fill: #172033">④ 多频扫频 + 自适应调谐 ★★★★</ns0:text>
|
||||||
|
<ns0:text x="946" y="140" font-size="12.5" font-weight="600">原理</ns0:text>
|
||||||
|
<ns0:text x="946" y="158" style="font-size: 11px; fill: #5b6475">DDS/扫频实时搜索谐振点,</ns0:text>
|
||||||
|
<ns0:text x="946" y="174" style="font-size: 11px; fill: #5b6475">自动调谐避开干扰频段(变频器/谐波)</ns0:text>
|
||||||
|
<ns0:text x="946" y="202" font-size="12.5" font-weight="600">灵敏度</ns0:text>
|
||||||
|
<ns0:text x="946" y="220" style="font-size: 11px; fill: #5b6475">★★★★ 扫频带宽内全频段可调</ns0:text>
|
||||||
|
<ns0:text x="946" y="248" font-size="12.5" font-weight="600">抗干扰</ns0:text>
|
||||||
|
<ns0:text x="946" y="266" style="font-size: 11px; fill: #5b6475">★★★★★ 变频器干扰场景的终极解</ns0:text>
|
||||||
|
<ns0:text x="946" y="294" font-size="12.5" font-weight="600">成本</ns0:text>
|
||||||
|
<ns0:text x="946" y="312" style="font-size: 11px; fill: #5b6475">高(DDS/高精度 ADC + 算法)</ns0:text>
|
||||||
|
<ns0:text x="946" y="340" font-size="12.5" font-weight="600">适用</ns0:text>
|
||||||
|
<ns0:text x="946" y="358" style="font-size: 11px; fill: #5b6475">工业区/充电桩/变频器密集场所</ns0:text>
|
||||||
|
<ns0:text x="946" y="396" font-size="12.5" font-weight="600">要点</ns0:text>
|
||||||
|
<ns0:text x="946" y="414" style="font-size: 11px; fill: #5b6475">与 ① 兼容:频率计数做粗判,</ns0:text>
|
||||||
|
<ns0:text x="946" y="430" style="font-size: 11px; fill: #5b6475">扫频谱特征做细判与干扰识别</ns0:text>
|
||||||
|
<ns0:text x="946" y="470" fill="#0f766e" font-weight="700" style="font-size: 11px; fill: #0f766e">✅ 复杂电磁环境旗舰方案</ns0:text>
|
||||||
|
</ns0:svg>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 186 KiB |
@@ -0,0 +1,319 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<ns0:svg xmlns:ns0="http://www.w3.org/2000/svg" viewBox="0 0 1240 880" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<ns0:defs>
|
||||||
|
<ns0:marker id="ar2" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
||||||
|
<ns0:path d="M0,0 L10,5 L0,10 z" fill="#64748b" style="fill: #64748b" />
|
||||||
|
</ns0:marker>
|
||||||
|
</ns0:defs>
|
||||||
|
<ns0:text x="20" y="34" style="font-size: 20px; font-weight: 650; fill: #172033">环路车检器原理图 — LC 振荡 + 频率计数方案(推荐①)</ns0:text>
|
||||||
|
<ns0:text x="20" y="56" style="font-size: 12px; fill: #5b6475">信号链:环形线圈 → 浪涌保护 → 匹配变压器 → 谐振/考毕兹振荡 → 比较器整形 → MCU 测频判车 → 光耦隔离 → 继电器输出</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:path d="M20,240 H1220" stroke-dasharray="8 4" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="26" y="233" style="font-size: 11px; fill: #5b6475">VCC 5V</ns0:text>
|
||||||
|
<ns0:path d="M320,430 H1200" stroke-dasharray="8 4" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="326" y="423" style="font-size: 11px; fill: #5b6475">GND</ns0:text>
|
||||||
|
<ns0:path d="M20,650 H1220" stroke-dasharray="8 4" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="26" y="643" style="font-size: 11px; fill: #5b6475">GND(电源地)</ns0:text>
|
||||||
|
<ns0:path d="M700,430 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="24" y="262" width="172" height="196" rx="8" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="110" y="252" text-anchor="middle" style="font-size: 12px; fill: #5b6475">路面(切割槽)</ns0:text>
|
||||||
|
<ns0:rect x="58" y="300" width="104" height="118" rx="4" stroke-width="3" style="fill: none; stroke: #172033; stroke-width: 3" />
|
||||||
|
<ns0:rect x="74" y="316" width="72" height="86" rx="3" stroke-width="2.4" style="fill: none; stroke: #172033; stroke-width: 2.4" />
|
||||||
|
<ns0:rect x="90" y="332" width="40" height="54" rx="2" stroke-width="1.8" style="fill: none; stroke: #172033; stroke-width: 1.8" />
|
||||||
|
<ns0:text x="110" y="472" text-anchor="middle" style="font-size: 12px; fill: #5b6475">环形线圈 3~5 匝</ns0:text>
|
||||||
|
<ns0:text x="110" y="488" text-anchor="middle" style="font-size: 11px; fill: #5b6475">L≈50~200μH(待现场验证)</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M162,300 H210 V310" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:path d="M162,418 H210 V430" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:text x="180" y="286" style="font-size: 11px; fill: #5b6475">引线(双绞屏蔽 ≤20m)</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="215" y="295" width="26" height="26" rx="3" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="228" y="313" text-anchor="middle" style="font-size: 11px; fill: #5b6475">A</ns0:text>
|
||||||
|
<ns0:rect x="215" y="415" width="26" height="26" rx="3" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="228" y="433" text-anchor="middle" style="font-size: 11px; fill: #5b6475">B</ns0:text>
|
||||||
|
<ns0:rect x="250" y="262" width="96" height="200" rx="6" style="fill: none; stroke: #64748b; stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8" />
|
||||||
|
<ns0:text x="298" y="254" text-anchor="middle" style="font-size: 11px; fill: #5b6475">浪涌保护</ns0:text>
|
||||||
|
<ns0:path d="M241,308 H330" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M241,428 H330" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M288,308 V344" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M288,392 V428" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M288,344 L282,356 H294 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M288,392 L294,380 H282 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M288,356 V380" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="300" y="386" style="font-size: 11px; fill: #5b6475">TVS1</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M318,308 V350" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M318,386 V428" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="312" y="350" width="12" height="36" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="336" y="370" style="font-size: 11px; fill: #5b6475">RV1</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="340" y="262" width="140" height="200" rx="6" style="fill: none; stroke: #64748b; stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8" />
|
||||||
|
<ns0:text x="410" y="254" text-anchor="middle" style="font-size: 11px; fill: #5b6475">T1 匹配变压器 1:1~1:2</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M370,310 V328" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M370,328 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M370,398 V420" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M330,310 H370" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M330,430 H370" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:circle cx="370" cy="310" r="2.4" style="fill: #172033; stroke: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M392,300 V430" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:path d="M400,300 V430" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M424,320 V336" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M424,336 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M424,406 V420" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:circle cx="424" cy="320" r="2.4" style="fill: #172033; stroke: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M424,320 H452 V330" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M424,420 H452 V410" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M446,330 H458" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M446,410 H458" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M452,330 V410" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="478" y="368" style="font-size: 11px; fill: #5b6475">C1 谐振电容</ns0:text>
|
||||||
|
<ns0:text x="478" y="382" style="font-size: 11px; fill: #5b6475">100~470pF</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M424,320 H480 V336" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:text x="446" y="306" style="font-size: 11px; fill: #5b6475">Cc1 10pF</ns0:text>
|
||||||
|
<ns0:path d="M452,300 H464" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M452,312 H464" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M458,300 V312" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M424,420 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="462" y="248" width="180" height="196" rx="6" style="fill: none; stroke: #64748b; stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8" />
|
||||||
|
<ns0:text x="552" y="240" text-anchor="middle" style="font-size: 11px; fill: #5b6475">考毕兹振荡器(基极调谐)</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M480,240 V252" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="474" y="252" width="12" height="34" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M480,286 V300" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="440" y="272" style="font-size: 11px; fill: #5b6475">Rb1 100k</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M500,352 V356" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="494" y="356" width="12" height="34" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M500,390 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="520" y="376" style="font-size: 11px; fill: #5b6475">Rb2 47k</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M506,340 V352" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M500,352 H512" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M501,352 V364" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M506,352 V364" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M501,364 H506" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M501,392 H506" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M506,364 V392" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M506,392 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="522" y="416" style="font-size: 11px; fill: #5b6475">C3 100p</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M480,300 H500 V340" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:circle cx="500" cy="342" r="2.4" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:path d="M500,342 L516,314 V290" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M500,342 L514,370 V390" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M504,360 L514,354" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M508,364 L518,358" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="540" y="336" style="font-size: 11px; fill: #5b6475">Q1</ns0:text>
|
||||||
|
<ns0:text x="540" y="350" style="font-size: 11px; fill: #5b6475">S9018</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M516,240 V256" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="510" y="256" width="12" height="30" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M516,286 V290" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="540" y="272" style="font-size: 11px; fill: #5b6475">Rc 2.2k</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M516,290 H526 V270" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M526,270 V280" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M526,280 a6,6 0 0 0 0,12 a6,6 0 0 1 0,12 a6,6 0 0 0 0,12" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M526,316 V322" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M526,322 H500 V336" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="540" y="306" style="font-size: 11px; fill: #5b6475">Lx 谐振</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M526,270 H540 V300" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M540,300 V308" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M534,308 H546" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M534,356 H546" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M540,308 V356" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M540,356 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="560" y="336" style="font-size: 11px; fill: #5b6475">C2 100p</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M516,290 H600" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:path d="M548,284 H560" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M548,296 H560" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M554,284 V296" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="556" y="276" style="font-size: 11px; fill: #5b6475">Cc2</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="616" y="248" width="140" height="200" rx="6" style="fill: none; stroke: #64748b; stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8" />
|
||||||
|
<ns0:text x="686" y="240" text-anchor="middle" style="font-size: 11px; fill: #5b6475">U1 比较器(带回差)</ns0:text>
|
||||||
|
<ns0:path d="M600,290 H640" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:path d="M640,290 V310" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M686,300 L706,330 L686,360 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M706,330 H750" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:text x="712" y="322" style="font-size: 11px; fill: #5b6475">+</ns0:text>
|
||||||
|
<ns0:text x="712" y="352" style="font-size: 11px; fill: #5b6475">−</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M640,350 H668" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M668,240 V268" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="662" y="268" width="12" height="30" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M668,298 V320" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M668,350 H686" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M668,350 V380" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="662" y="380" width="12" height="26" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M668,406 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="610" y="392" style="font-size: 11px; fill: #5b6475">Vref 分压</ns0:text>
|
||||||
|
<ns0:text x="610" y="406" style="font-size: 11px; fill: #5b6475">(R3/R4)</ns0:text>
|
||||||
|
|
||||||
|
<ns0:text x="640" y="452" style="font-size: 11px; fill: #5b6475">方波输出 f≈f₀</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="800" y="240" width="200" height="220" rx="10" style="fill: #c7d2fe; stroke: #64748b; stroke-width: 1" />
|
||||||
|
<ns0:text x="900" y="262" text-anchor="middle" style="font-size: 14px; font-weight: 600; fill: #172033">MCU</ns0:text>
|
||||||
|
<ns0:text x="900" y="278" text-anchor="middle" style="font-size: 11px; fill: #5b6475">STM32/GD32F103</ns0:text>
|
||||||
|
<ns0:text x="816" y="302" style="font-size: 11px; fill: #5b6475">· 定时器输入捕获测周期</ns0:text>
|
||||||
|
<ns0:text x="816" y="322" style="font-size: 11px; fill: #5b6475">· f = Fclk / period → Δf</ns0:text>
|
||||||
|
<ns0:text x="816" y="342" style="font-size: 11px; fill: #5b6475">· 数字滤波 + 消抖</ns0:text>
|
||||||
|
<ns0:text x="816" y="362" style="font-size: 11px; fill: #5b6475">· 灵敏度阈值(多档)判断</ns0:text>
|
||||||
|
<ns0:text x="816" y="382" style="font-size: 11px; fill: #5b6475">· 存在/通过 状态机</ns0:text>
|
||||||
|
<ns0:text x="816" y="402" style="font-size: 11px; fill: #5b6475">· 基准频率慢速自适应(抗温漂)</ns0:text>
|
||||||
|
<ns0:text x="816" y="422" style="font-size: 11px; fill: #5b6475">· 继电器输出 + 自检/看门狗</ns0:text>
|
||||||
|
<ns0:path d="M750,310 H800" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:text x="756" y="300" style="font-size: 11px; fill: #5b6475">PA0 捕获</ns0:text>
|
||||||
|
<ns0:path d="M1000,330 H1030" marker-end="url(#ar2)" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:text x="1004" y="320" style="font-size: 11px; fill: #5b6475">PA1</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M900,460 V476" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M900,476 L894,488 H906 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M900,488 V494" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M894,494 H906" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M900,494 V506" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M894,506 H906" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M900,506 V520" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M900,520 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="918" y="492" style="font-size: 11px; fill: #5b6475">D2 状态LED</ns0:text>
|
||||||
|
<ns0:text x="918" y="506" style="font-size: 11px; fill: #5b6475">R6 限流</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M860,240 V230" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="846" y="224" style="font-size: 11px; fill: #5b6475">VDD 3.3V</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="1030" y="290" width="70" height="90" rx="4" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="1065" y="282" text-anchor="middle" style="font-size: 11px; fill: #5b6475">U2 光耦</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M1042,320 L1042,330 L1052,330 L1052,320 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M1052,320 V326" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
<ns0:circle cx="1062" cy="352" r="2" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:path d="M1062,352 L1072,344 V352" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1062,352 L1072,360 V352" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1052,326 H1046 V352 H1060" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1066,340 L1072,336" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M1066,344 L1072,340" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
|
||||||
|
<ns0:path d="M1030,330 H1016" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="1004" y="324" width="12" height="12" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="996" y="312" style="font-size: 11px; fill: #5b6475">R5</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M1065,360 V375" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1065,375 H1090" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="1080" y="368" width="22" height="14" rx="2" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M1102,375 H1108" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1080,368 V375" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1080,382 V375" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1080,368 H1074" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1080,382 H1074" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="1108" y="380" style="font-size: 11px; fill: #5b6475">Q2</ns0:text>
|
||||||
|
<ns0:text x="1108" y="394" style="font-size: 11px; fill: #5b6475">N-MOS</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M1080,368 V430" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="1090" y="362" style="font-size: 11px; fill: #5b6475">D</ns0:text>
|
||||||
|
<ns0:text x="1090" y="388" style="font-size: 11px; fill: #5b6475">S</ns0:text>
|
||||||
|
|
||||||
|
<ns0:rect x="1120" y="250" width="60" height="46" rx="4" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:path d="M1130,258 L1170,288" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="1150" y="282" text-anchor="middle" style="font-size: 11px; fill: #5b6475">K1</ns0:text>
|
||||||
|
<ns0:path d="M1108,375 H1120 V273" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1180,273 H1200" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M1200,273 V300" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1200,300 H1216" style="stroke: #64748b; stroke-width: 2; fill: none" />
|
||||||
|
<ns0:circle cx="1200" cy="300" r="2" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:path d="M1216,258 H1220" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M1216,342 H1220" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:circle cx="1216" cy="258" r="2" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:circle cx="1216" cy="342" r="2" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:text x="1222" y="254" style="font-size: 11px; fill: #5b6475">NO</ns0:text>
|
||||||
|
<ns0:text x="1222" y="346" style="font-size: 11px; fill: #5b6475">NC</ns0:text>
|
||||||
|
<ns0:text x="1222" y="304" style="font-size: 11px; fill: #5b6475">COM</ns0:text>
|
||||||
|
<ns0:text x="1124" y="318" style="font-size: 11px; fill: #5b6475">→ 道闸/PLC</ns0:text>
|
||||||
|
|
||||||
|
<ns0:path d="M1120,240 V250" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="1080" y="238" style="font-size: 11px; fill: #5b6475">K1 线圈接 VCC(或外供)</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="20" y="560" width="1200" height="120" rx="8" style="fill: none; stroke: #64748b; stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8" />
|
||||||
|
<ns0:text x="30" y="580" style="font-size: 11px; fill: #5b6475">电源与保护</ns0:text>
|
||||||
|
<ns0:rect x="40" y="596" width="86" height="30" rx="4" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="83" y="615" text-anchor="middle" style="font-size: 11px; fill: #5b6475">VIN 12~24V</ns0:text>
|
||||||
|
<ns0:path d="M126,611 H140" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M140,605 L148,611 L140,617 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M148,611 H158" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M158,596 V626" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M158,596 L164,584 H176 L170,596 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M158,626 L170,596 H176 L164,584 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="190" y="604" style="font-size: 11px; fill: #5b6475">D1 防反接</ns0:text>
|
||||||
|
<ns0:text x="190" y="618" style="font-size: 11px; fill: #5b6475">TVS2 吸收浪涌</ns0:text>
|
||||||
|
<ns0:path d="M158,611 H200" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="200" y="596" width="70" height="30" rx="4" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="235" y="615" text-anchor="middle" style="font-size: 11px; fill: #5b6475">U3 LDO 5V</ns0:text>
|
||||||
|
<ns0:path d="M270,611 H300" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:rect x="300" y="596" width="80" height="30" rx="4" style="stroke: #64748b; stroke-width: 1; fill: #e2e8f0" />
|
||||||
|
<ns0:text x="340" y="615" text-anchor="middle" style="font-size: 11px; fill: #5b6475">U4 LDO 3.3V</ns0:text>
|
||||||
|
<ns0:path d="M340,596 V540" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M340,540 H860 V230" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M340,626 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
|
||||||
|
<ns0:path d="M160,650 H120" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M120,640 H126" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M120,650 H126" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M123,640 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="96" y="668" style="font-size: 11px; fill: #5b6475">Cin</ns0:text>
|
||||||
|
<ns0:path d="M340,650 H300" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M300,640 H306" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M300,650 H306" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M303,640 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="276" y="668" style="font-size: 11px; fill: #5b6475">C5</ns0:text>
|
||||||
|
<ns0:path d="M400,650 H380" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M380,640 H386" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M380,650 H386" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M383,640 V650" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="392" y="668" style="font-size: 11px; fill: #5b6475">C6</ns0:text>
|
||||||
|
|
||||||
|
|
||||||
|
<ns0:rect x="20" y="700" width="1200" height="160" rx="8" style="fill: #e2e8f0; stroke: #64748b; stroke-width: 1" />
|
||||||
|
<ns0:text x="36" y="722" style="font-size: 14px; font-weight: 600; fill: #172033">元件图例</ns0:text>
|
||||||
|
<ns0:text x="36" y="746" style="font-size: 11px; fill: #5b6475">L 电感(线圈符号)</ns0:text>
|
||||||
|
<ns0:path d="M56,756 a6,6 0 0 1 0,12 a6,6 0 0 0 0,12 a6,6 0 0 1 0,12" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="140" y="746" style="font-size: 11px; fill: #5b6475">C 电容</ns0:text>
|
||||||
|
<ns0:path d="M160,756 H172" style="fill: none; stroke: #172033; stroke-width: 1.6" /><ns0:path d="M160,768 H172" style="fill: none; stroke: #172033; stroke-width: 1.6" /><ns0:path d="M166,756 V768" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="244" y="746" style="font-size: 11px; fill: #5b6475">R 电阻</ns0:text>
|
||||||
|
<ns0:rect x="264" y="752" width="12" height="16" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="340" y="746" style="font-size: 11px; fill: #5b6475">TVS 双向</ns0:text>
|
||||||
|
<ns0:path d="M360,756 L354,768 H366 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M360,768 L366,756 H354 Z" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="440" y="746" style="font-size: 11px; fill: #5b6475">NPN 三极管</ns0:text>
|
||||||
|
<ns0:path d="M456,764 H470" style="stroke: #64748b; stroke-width: 1.3; fill: none" /><ns0:circle cx="470" cy="764" r="2" style="fill: #172033; stroke: none" />
|
||||||
|
<ns0:path d="M470,764 L482,748 V764" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M470,764 L480,776 V784" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:path d="M474,774 L484,768" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="560" y="746" style="font-size: 11px; fill: #5b6475">MOS</ns0:text>
|
||||||
|
<ns0:rect x="580" y="756" width="20" height="12" rx="2" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:text x="660" y="746" style="font-size: 11px; fill: #5b6475">继电器</ns0:text>
|
||||||
|
<ns0:rect x="680" y="754" width="16" height="12" style="fill: none; stroke: #172033; stroke-width: 1.6" />
|
||||||
|
<ns0:path d="M684,756 L692,764" style="stroke: #64748b; stroke-width: 1.3; fill: none" />
|
||||||
|
<ns0:text x="36" y="806" style="font-size: 11px; fill: #5b6475">关键设计点:① 环路经匹配变压器隔离耦合,直连会受地环路干扰;② 谐振电容 C1 决定频段,频率 f₀≈1/(2π√(LC));③ 灵敏度=Δf 阈值,建议多档可调 + 回差;④ 基准频率上电自学习 + 慢速跟踪,抗温漂;⑤ 输出必须光耦隔离,防浪涌反灌烧 MCU;⑥ 软件加看门狗,继电器粘连检测。</ns0:text>
|
||||||
|
<ns0:text x="36" y="830" style="font-size: 11px; fill: #5b6475">⚠️ 数值为典型参考:线圈电感取决于尺寸/匝数/引线长度,谐振频率推荐 20~150kHz(越低抗干扰越差、灵敏度越高,需现场折中)。</ns0:text>
|
||||||
|
</ns0:svg>
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Extract SVGs from HTML, inline styles (light theme), output standalone .svg files."""
|
||||||
|
import re, sys, html
|
||||||
|
|
||||||
|
SRC = "/root/.openclaw/workspace/loop-detector/loop-detector-principle.html"
|
||||||
|
|
||||||
|
CSS = {
|
||||||
|
"title": {"font-size": "20px", "font-weight": "650", "fill": "#172033"},
|
||||||
|
"label": {"font-size": "14px", "font-weight": "600", "fill": "#172033"},
|
||||||
|
"small": {"font-size": "12px", "fill": "#5b6475"},
|
||||||
|
"tiny": {"font-size": "11px", "fill": "#5b6475"},
|
||||||
|
"node": {"stroke": "#64748b", "stroke-width": "1"},
|
||||||
|
"neutral": {"fill": "#e2e8f0"},
|
||||||
|
"input": {"fill": "#bfdbfe"},
|
||||||
|
"process": {"fill": "#c7d2fe"},
|
||||||
|
"storage": {"fill": "#99f6e4"},
|
||||||
|
"external":{"fill": "#fde68a"},
|
||||||
|
"risk": {"fill": "#fecaca"},
|
||||||
|
"edge": {"stroke": "#64748b", "stroke-width": "1.5", "fill": "none"},
|
||||||
|
"wire": {"stroke": "#64748b", "stroke-width": "1.3", "fill": "none"},
|
||||||
|
"wireb": {"stroke": "#64748b", "stroke-width": "2", "fill": "none"},
|
||||||
|
"zone": {"fill": "none", "stroke": "#64748b", "stroke-width": "1",
|
||||||
|
"stroke-dasharray": "6 5", "opacity": "0.8"},
|
||||||
|
"comp": {"fill": "none", "stroke": "#172033", "stroke-width": "1.6"},
|
||||||
|
"compf": {"fill": "#172033", "stroke": "none"},
|
||||||
|
"rec": {"fill": "#172033", "stroke": "none"},
|
||||||
|
"rec-o": {"fill": "none", "stroke": "#172033", "stroke-width": "1.4"},
|
||||||
|
"badge": {"fill": "#16a34a"},
|
||||||
|
"badge-t": {"fill": "#ffffff", "font-size": "11px", "font-weight": "700"},
|
||||||
|
"hl": {"stroke": "#16a34a", "stroke-width": "2.5"},
|
||||||
|
}
|
||||||
|
|
||||||
|
def inline(el):
|
||||||
|
classes = el.get("class", "").split()
|
||||||
|
merged = {}
|
||||||
|
for c in classes:
|
||||||
|
if c in CSS:
|
||||||
|
merged.update(CSS[c])
|
||||||
|
# element-level attributes override classes (fill attr etc.)
|
||||||
|
for attr in ("fill", "stroke", "stroke-width", "opacity"):
|
||||||
|
v = el.get(attr)
|
||||||
|
if v is not None:
|
||||||
|
merged[attr] = v
|
||||||
|
if merged:
|
||||||
|
style = "; ".join(f"{k}: {v}" for k, v in merged.items())
|
||||||
|
old = el.get("style", "")
|
||||||
|
el.set("style", (old + ";" + style).strip(";") if old else style)
|
||||||
|
el.attrib.pop("class", None)
|
||||||
|
for child in el:
|
||||||
|
inline(child)
|
||||||
|
|
||||||
|
def process(svg_text, out_path):
|
||||||
|
# drop <style> and <defs> references stay; remove style blocks
|
||||||
|
svg_text = re.sub(r"<style>.*?</style>", "", svg_text, flags=re.S)
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
root = ET.fromstring(svg_text)
|
||||||
|
# add width/height for predictable output
|
||||||
|
root.set("xmlns", "http://www.w3.org/2000/svg")
|
||||||
|
inline(root)
|
||||||
|
tree = ET.ElementTree(root)
|
||||||
|
tree.write(out_path, encoding="utf-8", xml_declaration=True)
|
||||||
|
print("wrote", out_path)
|
||||||
|
|
||||||
|
data = open(SRC, encoding="utf-8").read()
|
||||||
|
svgs = re.findall(r"<svg.*?</svg>", data, flags=re.S)
|
||||||
|
print("found", len(svgs), "svgs")
|
||||||
|
process(svgs[0], "/root/.openclaw/workspace/loop-detector/fig1-methods.svg")
|
||||||
|
process(svgs[1], "/root/.openclaw/workspace/loop-detector/fig2-schematic.svg")
|
||||||
@@ -0,0 +1,258 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Generate KiCad 7 schematic (.kicad_sch) for the loop vehicle detector."""
|
||||||
|
import re, uuid, os
|
||||||
|
|
||||||
|
BASE = "/root/.openclaw/workspace/loop-detector/loop-detector-kicad"
|
||||||
|
SYM = os.path.join(BASE, "loopdet.kicad_sym")
|
||||||
|
SCH = os.path.join(BASE, "loop-detector.kicad_sch")
|
||||||
|
|
||||||
|
def uid():
|
||||||
|
return str(uuid.uuid4())
|
||||||
|
|
||||||
|
# ---------- extract lib_symbols from .kicad_sym ----------
|
||||||
|
data = open(SYM, encoding="utf-8").read()
|
||||||
|
# only extract TOP-LEVEL (symbol "X" ...) blocks: track paren depth while scanning
|
||||||
|
sym_blocks = []
|
||||||
|
pat = re.compile(r'\(symbol "([^"]+)"')
|
||||||
|
# find all matches, then filter to depth-1 (inside kicad_symbol_lib only)
|
||||||
|
depth = 0
|
||||||
|
top_starts = []
|
||||||
|
for m in pat.finditer(data):
|
||||||
|
# compute depth at match start by counting parens before it
|
||||||
|
prefix = data[:m.start()]
|
||||||
|
d = prefix.count('(') - prefix.count(')')
|
||||||
|
if d == 1: # directly inside kicad_symbol_lib
|
||||||
|
top_starts.append(m.start())
|
||||||
|
for start in top_starts:
|
||||||
|
depth = 0
|
||||||
|
j = start
|
||||||
|
while j < len(data):
|
||||||
|
if data[j] == '(':
|
||||||
|
depth += 1
|
||||||
|
elif data[j] == ')':
|
||||||
|
depth -= 1
|
||||||
|
if depth == 0:
|
||||||
|
break
|
||||||
|
j += 1
|
||||||
|
sym_blocks.append(data[start:j+1])
|
||||||
|
|
||||||
|
# embedded symbol names must carry the library prefix (e.g. "loopdet:C") so that
|
||||||
|
# lib_id "loopdet:C" resolves to the embedded definition without hitting the table
|
||||||
|
import re as _re
|
||||||
|
def _prefix(sym_block):
|
||||||
|
return _re.sub(r'\(symbol "([^"]+)"', r'(symbol "loopdet:\1"', sym_block, count=1)
|
||||||
|
lib_symbols = "(lib_symbols\n" + "\n".join(" " + _prefix(b) for b in sym_blocks) + "\n)\n"
|
||||||
|
|
||||||
|
# ---------- components ----------
|
||||||
|
# (lib, ref, value, x, y, rot, ref_at, val_at)
|
||||||
|
COMPONENTS = [
|
||||||
|
("CONN2", "J1", "CONN_2P", 40, 130, 0, (40, 136), (40, 124)),
|
||||||
|
("TVS_BI", "TVS1", "TVS_BIDI", 62, 130, 0, (62, 136), (62, 124)),
|
||||||
|
("XFMR", "T1", "1:1", 90, 130, 0, (90, 138), (90, 120)),
|
||||||
|
("C", "C1", "100~470p", 107, 130, 90, (113, 136), (113, 124)),
|
||||||
|
("Q_NPN", "Q1", "S9018", 130, 130, 0, (126.5, 136),(126.5, 124)),
|
||||||
|
("R", "Rc", "2.2k", 138, 126.19,0, (134.5, 132),(134.5, 120)),
|
||||||
|
("R", "Rb1", "100k", 124.92,121.5,90, (131, 121.5),(131, 117)),
|
||||||
|
("R", "Rb2", "47k", 124.92,137.5,90, (131, 137.5),(131, 133)),
|
||||||
|
("R", "Re", "1k", 132.54,139.5,90, (138.5, 139.5),(138.5, 135)),
|
||||||
|
("C", "C2", "100p", 138, 135.5, 90, (144, 135.5),(144, 131)),
|
||||||
|
("C", "Cc2", "10p", 148, 126.19,0, (148, 132), (148, 120)),
|
||||||
|
("COMP", "U1", "LM393", 170, 130, 0, (170, 137), (170, 123)),
|
||||||
|
("R", "R3", "10k", 150, 124, 90, (156, 124), (156, 119.5)),
|
||||||
|
("R", "R4", "10k", 150, 138.5, 90, (156, 138.5),(156, 134)),
|
||||||
|
("MCU", "MCU1", "STM32F103C8", 215, 130, 0, (215, 143), (215, 117)),
|
||||||
|
("R", "R5", "1k", 245, 124.92,0, (245, 131), (245, 119)),
|
||||||
|
("OPTO", "U2", "PC817", 265, 124.92,0, (265, 131), (265, 119)),
|
||||||
|
("MOS_N", "Q2", "N-MOS", 300, 126.19,0, (296.5, 132),(296.5, 120)),
|
||||||
|
("RELAY_SPDT","K1", "SPDT 12V", 325, 122.38,0, (325, 130), (325, 116)),
|
||||||
|
("R", "R6", "1k", 245, 130, 0, (245, 136), (245, 124)),
|
||||||
|
("LED", "D2", "LED", 280, 130, 0, (280, 136), (280, 124)),
|
||||||
|
]
|
||||||
|
|
||||||
|
# ---------- wires ----------
|
||||||
|
WIRES = [
|
||||||
|
# A net: J1.p1 - TVS1.p1 - T1.p1
|
||||||
|
((37.46, 127.46), (82.38, 127.46)),
|
||||||
|
((59.46, 127.46), (59.46, 130)),
|
||||||
|
# B net: J1.p2 - TVS1.p2 - T1.p2
|
||||||
|
((37.46, 132.54), (82.38, 132.54)),
|
||||||
|
((64.54, 132.54), (64.54, 130)),
|
||||||
|
# T1 sec upper: p3 - C1.p1 - base input
|
||||||
|
((97.62, 127.46), (110, 127.46)),
|
||||||
|
((110, 127.46), (110, 130)),
|
||||||
|
((110, 130), (124.92, 130)),
|
||||||
|
# T1 sec lower: p4 - C1.p2 - GND
|
||||||
|
((97.62, 132.54), (107, 132.54)),
|
||||||
|
((107, 132.54), (107, 145)),
|
||||||
|
# VCC bus
|
||||||
|
((100, 115), (320, 115)),
|
||||||
|
((140.54, 126.19), (140.54, 115)),
|
||||||
|
((124.92, 118.96), (124.92, 115)),
|
||||||
|
((150, 121.46), (150, 115)),
|
||||||
|
((317.38, 119.84), (317.38, 115)),
|
||||||
|
# GND bus
|
||||||
|
((100, 145), (340, 145)),
|
||||||
|
((124.92, 140.04), (124.92, 145)),
|
||||||
|
((132.54, 142.04), (132.54, 145)),
|
||||||
|
((138, 138.04), (138, 145)),
|
||||||
|
((257.38, 127.46), (257.38, 145)),
|
||||||
|
((302.54, 130), (302.54, 145)),
|
||||||
|
((282.54, 130), (282.54, 145)),
|
||||||
|
# base net
|
||||||
|
((124.92, 124.04), (124.92, 134.96)),
|
||||||
|
# collector net
|
||||||
|
((132.54, 126.19), (145.46, 126.19)),
|
||||||
|
((138, 126.19), (138, 132.96)),
|
||||||
|
# emitter
|
||||||
|
((132.54, 133.81), (132.54, 136.96)),
|
||||||
|
# comp in+
|
||||||
|
((150.54, 126.19), (162.38, 126.19)),
|
||||||
|
((162.38, 126.19), (162.38, 127.46)),
|
||||||
|
# vref
|
||||||
|
((150, 126.54), (150, 135.96)),
|
||||||
|
((150, 132.54), (162.38, 132.54)),
|
||||||
|
# comp out -> PA0
|
||||||
|
((177.62, 130), (177.62, 124.92)),
|
||||||
|
((177.62, 124.92), (202.3, 124.92)),
|
||||||
|
# PA1 -> R5
|
||||||
|
((227.7, 124.92), (242.46, 124.92)),
|
||||||
|
# R5 -> OPTO.1
|
||||||
|
((247.54, 124.92), (257.38, 124.92)),
|
||||||
|
((257.38, 124.92), (257.38, 122.38)),
|
||||||
|
# OPTO.4 -> gate
|
||||||
|
((272.62, 122.38), (294.92, 122.38)),
|
||||||
|
((294.92, 122.38), (294.92, 126.19)),
|
||||||
|
# drain -> K1.A2
|
||||||
|
((302.54, 122.38), (317.38, 122.38)),
|
||||||
|
((317.38, 122.38), (317.38, 124.92)),
|
||||||
|
# PA2 -> R6
|
||||||
|
((227.7, 130), (242.46, 130)),
|
||||||
|
# R6 -> D2.A
|
||||||
|
((247.54, 130), (277.46, 130)),
|
||||||
|
]
|
||||||
|
|
||||||
|
# ---------- net labels ----------
|
||||||
|
LABELS = [
|
||||||
|
("VCC", (100, 115), 0),
|
||||||
|
("GND", (100, 145), 0),
|
||||||
|
("VCC", (227.7, 135.08), 0),
|
||||||
|
("GND", (202.3, 135.08), 0),
|
||||||
|
("COM", (332.62, 122.38), 0),
|
||||||
|
("NO", (332.62, 117.3), 0),
|
||||||
|
("NC", (332.62, 127.46), 0),
|
||||||
|
]
|
||||||
|
|
||||||
|
# ---------- texts ----------
|
||||||
|
TEXTS = [
|
||||||
|
("环路车检器原理图 — LC 振荡 + 频率计数方案(推荐①)", (20, 20), 3.5),
|
||||||
|
("信号链:环形线圈 → T1 匹配变压器 → 考毕兹振荡 → 比较器整形 → MCU 测频判车 → 光耦隔离 → 继电器输出", (20, 30), 1.5),
|
||||||
|
("接路面环形线圈(3~5匝,双绞屏蔽线 ≤20m)", (20, 108), 1.27),
|
||||||
|
("→ 道闸控制器 / PLC 输入", (340, 114), 1.27),
|
||||||
|
("【设计说明】", (20, 165), 1.5),
|
||||||
|
("1) 线圈经 T1 匹配变压器隔离耦合,抗地环路干扰;", (20, 173), 1.27),
|
||||||
|
("2) 谐振频率 f0 ≈ 1/(2π√(L·C1)),建议 20~150kHz(待现场验证);", (20, 181), 1.27),
|
||||||
|
("3) MCU 周期法测频(输入捕获),灵敏度阈值多档可调 + 回差防抖;", (20, 189), 1.27),
|
||||||
|
("4) 基准频率上电自学习 + 慢速跟踪,抗温漂(雨雪/昼夜温差);", (20, 197), 1.27),
|
||||||
|
("5) 输出经光耦 U2 隔离驱动继电器 K1,防浪涌反灌烧 MCU;", (20, 205), 1.27),
|
||||||
|
("6) 软件加看门狗;继电器粘连/掉线检测;", (20, 213), 1.27),
|
||||||
|
("7) 电源:VIN 12~24V → 防反接 + TVS → LDO 5V → LDO 3.3V(本页未画出);", (20, 221), 1.27),
|
||||||
|
("8) 相邻车道串扰:线圈间距 ≥1m,必要时交替频率;", (20, 229), 1.27),
|
||||||
|
("【关键参数(参考值,待现场验证)】", (240, 165), 1.5),
|
||||||
|
("C1: 100~470pF C2: 100pF", (240, 173), 1.27),
|
||||||
|
("Rb1: 100k Rb2: 47k", (240, 181), 1.27),
|
||||||
|
("Rc: 2.2k Re: 1k", (240, 189), 1.27),
|
||||||
|
("Q1: S9018/2N3904 Q2: N-MOS", (240, 197), 1.27),
|
||||||
|
("U1: LM393 比较器 U2: PC817 光耦", (240, 205), 1.27),
|
||||||
|
("K1: SPDT 12V/24V 继电器", (240, 213), 1.27),
|
||||||
|
("MCU: STM32F103/GD32F103", (240, 221), 1.27),
|
||||||
|
]
|
||||||
|
|
||||||
|
# ---------- build ----------
|
||||||
|
def fmt_xy(p):
|
||||||
|
return f"(xy {p[0]:g} {p[1]:g})"
|
||||||
|
|
||||||
|
parts = []
|
||||||
|
ROOT_UUID = uid()
|
||||||
|
parts.append("(kicad_sch")
|
||||||
|
parts.append(" (version 20230121)")
|
||||||
|
parts.append(' (generator eeschema)')
|
||||||
|
parts.append(f" (uuid {ROOT_UUID})")
|
||||||
|
parts.append(' (paper "A3")')
|
||||||
|
parts.append(" (title_block")
|
||||||
|
parts.append(' (title "Loop Vehicle Detector")')
|
||||||
|
parts.append(' (date "2026-08-21")')
|
||||||
|
parts.append(' (rev "1.0")')
|
||||||
|
parts.append(' (company "xde")')
|
||||||
|
parts.append(' (comment 1 "LC Oscillation + Frequency Counting")')
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append("")
|
||||||
|
# lib_symbols (indent 2)
|
||||||
|
parts.append(lib_symbols.rstrip("\n"))
|
||||||
|
parts.append("")
|
||||||
|
# components
|
||||||
|
for lib, ref, value, x, y, rot, ref_at, val_at in COMPONENTS:
|
||||||
|
parts.append(" (symbol")
|
||||||
|
parts.append(f" (lib_id \"loopdet:{lib}\")")
|
||||||
|
parts.append(f" (at {x:g} {y:g} {rot})")
|
||||||
|
parts.append(" (unit 1)")
|
||||||
|
parts.append(" (in_bom yes)")
|
||||||
|
parts.append(" (on_board yes)")
|
||||||
|
parts.append(" (dnp no)")
|
||||||
|
parts.append(f" (uuid {uid()})")
|
||||||
|
parts.append(f" (property \"Reference\" \"{ref}\" (at {ref_at[0]:g} {ref_at[1]:g} 0) (effects (font (size 1.27 1.27)) (justify left)))")
|
||||||
|
parts.append(f" (property \"Value\" \"{value}\" (at {val_at[0]:g} {val_at[1]:g} 0) (effects (font (size 1.27 1.27)) (justify left)))")
|
||||||
|
parts.append(f" (property \"Footprint\" \"\" (at {x:g} {y:g} 0) (effects (font (size 1.27 1.27)) hide))")
|
||||||
|
parts.append(f" (property \"Datasheet\" \"\" (at {x:g} {y:g} 0) (effects (font (size 1.27 1.27)) hide))")
|
||||||
|
# pin uuids (number of pins depends on lib)
|
||||||
|
PINMAP = {
|
||||||
|
"R": ["1", "2"], "C": ["1", "2"], "TVS_BI": ["1", "2"], "LED": ["A", "K"],
|
||||||
|
"Q_NPN": ["B", "C", "E"], "MOS_N": ["G", "D", "S"],
|
||||||
|
"XFMR": ["1", "2", "3", "4"], "OPTO": ["1", "2", "4", "3"],
|
||||||
|
"COMP": ["+", "-", "OUT"],
|
||||||
|
"MCU": ["PA0", "GND", "PA1", "PA2", "VDD"],
|
||||||
|
"RELAY_SPDT": ["A1", "A2", "COM", "NO", "NC"],
|
||||||
|
"CONN2": ["1", "2"],
|
||||||
|
}
|
||||||
|
for pn in PINMAP[lib]:
|
||||||
|
parts.append(f" (pin \"{pn}\" (uuid {uid()}))")
|
||||||
|
parts.append(" (instances")
|
||||||
|
parts.append(" (project \"loop-detector\"")
|
||||||
|
parts.append(f" (path \"/{ROOT_UUID}\"")
|
||||||
|
parts.append(f" (reference \"{ref}\") (unit 1)")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append("")
|
||||||
|
# wires
|
||||||
|
for p1, p2 in WIRES:
|
||||||
|
parts.append(" (wire")
|
||||||
|
parts.append(f" (pts {fmt_xy(p1)} {fmt_xy(p2)})")
|
||||||
|
parts.append(" (stroke (width 0) (type default))")
|
||||||
|
parts.append(f" (uuid {uid()})")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append("")
|
||||||
|
# net labels
|
||||||
|
for name, pos, ang in LABELS:
|
||||||
|
parts.append(" (label")
|
||||||
|
parts.append(f" \"{name}\" (at {pos[0]:g} {pos[1]:g} {ang})")
|
||||||
|
parts.append(" (effects (font (size 1.27 1.27)) (justify left bottom))")
|
||||||
|
parts.append(f" (uuid {uid()})")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append("")
|
||||||
|
# texts
|
||||||
|
for s, pos, size in TEXTS:
|
||||||
|
parts.append(" (text")
|
||||||
|
parts.append(f" \"{s}\" (at {pos[0]:g} {pos[1]:g} 0)")
|
||||||
|
parts.append(f" (effects (font (size {size:g} {size:g})))")
|
||||||
|
parts.append(f" (uuid {uid()})")
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append("")
|
||||||
|
parts.append(" (sheet_instances")
|
||||||
|
parts.append(' (path "/" (page "1"))')
|
||||||
|
parts.append(" )")
|
||||||
|
parts.append(")")
|
||||||
|
|
||||||
|
out = "\n".join(parts) + "\n"
|
||||||
|
open(SCH, "w", encoding="utf-8").write(out)
|
||||||
|
print("wrote", SCH, len(out), "bytes")
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"design_settings": {
|
||||||
|
"defaults": {
|
||||||
|
"apply_defaults_to_fp_fields": false,
|
||||||
|
"apply_defaults_to_new_footprints": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"boards": [],
|
||||||
|
"cvpcb": {
|
||||||
|
"equivalence_files": []
|
||||||
|
},
|
||||||
|
"erc": {
|
||||||
|
"erc_exclusions": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"pinned_footprint_libs": [],
|
||||||
|
"pinned_symbol_libs": []
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "loop-detector.kicad_pro",
|
||||||
|
"version": 1
|
||||||
|
},
|
||||||
|
"net_settings": {
|
||||||
|
"classes": [
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.2,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.3,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "Default",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"track_width": 0.25,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"net_colors": null,
|
||||||
|
"netclass_assignments": null,
|
||||||
|
"netclass_patterns": []
|
||||||
|
},
|
||||||
|
"pcbnew": {
|
||||||
|
"last_paths": {
|
||||||
|
"gencad": "",
|
||||||
|
"netlist": "",
|
||||||
|
"plot": "",
|
||||||
|
"pos": "",
|
||||||
|
"specctra_dsn": "",
|
||||||
|
"step": "",
|
||||||
|
"svg": "",
|
||||||
|
"vrml": ""
|
||||||
|
},
|
||||||
|
"page_layout_descr_file": ""
|
||||||
|
},
|
||||||
|
"schematic": {
|
||||||
|
"legacy_lib_dir": "",
|
||||||
|
"legacy_lib_list": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 1
|
||||||
|
},
|
||||||
|
"page_layout_descr_file": ""
|
||||||
|
},
|
||||||
|
"sheets": [
|
||||||
|
[
|
||||||
|
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
|
||||||
|
"Root"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"text_variables": {}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,392 @@
|
|||||||
|
(kicad_symbol_lib
|
||||||
|
(version 20220914)
|
||||||
|
(generator "xde")
|
||||||
|
(symbol "R"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "R" (at 0 2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "R" (at 0 -2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "R_0_1"
|
||||||
|
(rectangle (start -1.27 -1.27) (end 1.27 1.27)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "R_1_1"
|
||||||
|
(pin passive line (at -2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "C"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "C" (at 0 2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "C" (at 0 -2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "C_0_1"
|
||||||
|
(polyline (pts (xy -0.635 -1.905) (xy -0.635 1.905))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0.635 -1.905) (xy 0.635 1.905))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "C_1_1"
|
||||||
|
(pin passive line (at -2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "Q_NPN"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "Q" (at -5.08 6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "Q" (at -5.08 -6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "Q_NPN_0_1"
|
||||||
|
(circle (center 0 0) (radius 1.27)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -3.81 0) (xy -1.27 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0 0) (xy 1.27 -2.54) (xy 1.27 -3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0 0) (xy 1.27 2.54) (xy 1.27 3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.02 1.78) (xy 1.45 1.65) (xy 1.35 2.2))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "Q_NPN_1_1"
|
||||||
|
(pin passive line (at -5.08 0 0) (length 1.27)
|
||||||
|
(name "B" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "B" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 -3.81 90) (length 1.27)
|
||||||
|
(name "C" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "C" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 3.81 270) (length 1.27)
|
||||||
|
(name "E" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "E" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "MOS_N"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "Q" (at -5.08 6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "Q" (at -5.08 -6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "MOS_N_0_1"
|
||||||
|
(polyline (pts (xy -3.81 0) (xy -1.27 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -1.27 -3.81) (xy -1.27 3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0 -3.81) (xy 0 3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0 -3.81) (xy 2.54 -3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0 3.81) (xy 2.54 3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.27 1.2) (xy 0.45 0) (xy 1.27 -1.2))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "MOS_N_1_1"
|
||||||
|
(pin passive line (at -5.08 0 0) (length 1.27)
|
||||||
|
(name "G" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "G" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 -3.81 90) (length 1.27)
|
||||||
|
(name "D" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "D" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 3.81 270) (length 1.27)
|
||||||
|
(name "S" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "S" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "LED"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "D" (at 0 2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "D" (at 0 -2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "LED_0_1"
|
||||||
|
(polyline (pts (xy -1.27 -1.27) (xy -1.27 1.27) (xy 1.27 0) (xy -1.27 -1.27))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.27 -1.27) (xy 1.27 1.27))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.27 0) (xy 2.54 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -2.29 -1.02) (xy -1.52 -0.51))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -2.29 -1.4) (xy -1.52 -0.89))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "LED_1_1"
|
||||||
|
(pin passive line (at -2.54 0 0) (length 1.27)
|
||||||
|
(name "A" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "A" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 0 0) (length 1.27)
|
||||||
|
(name "K" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "K" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "TVS_BI"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "TVS" (at 0 2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "TVS" (at 0 -2.54 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "TVS_BI_0_1"
|
||||||
|
(polyline (pts (xy -1.27 -1.27) (xy -1.27 1.27) (xy 0 0) (xy -1.27 -1.27))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.27 -1.27) (xy 1.27 1.27) (xy 0 0) (xy 1.27 -1.27))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -3.81 0) (xy -1.27 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 1.27 0) (xy 3.81 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "TVS_BI_1_1"
|
||||||
|
(pin passive line (at -2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 2.54 0 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "XFMR"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "T" (at -7.62 5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "T" (at -7.62 -5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "XFMR_0_1"
|
||||||
|
(polyline (pts (xy -2.54 -2.54) (xy -1.27 -1.27) (xy -3.81 -1.27) (xy -1.27 1.27) (xy -3.81 1.27) (xy -2.54 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 -2.54) (xy 1.27 -1.27) (xy 3.81 -1.27) (xy 1.27 1.27) (xy 3.81 1.27) (xy 2.54 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -0.635 -2.54) (xy -0.635 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 0.635 -2.54) (xy 0.635 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(circle (center -2.54 -2.54) (radius 0.4)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type outline)))
|
||||||
|
(circle (center 2.54 -2.54) (radius 0.4)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type outline)))
|
||||||
|
(polyline (pts (xy -6.35 -2.54) (xy -2.54 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -6.35 2.54) (xy -2.54 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 -2.54) (xy 6.35 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 2.54) (xy 6.35 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "XFMR_1_1"
|
||||||
|
(pin passive line (at -7.62 -2.54 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -7.62 2.54 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 -2.54 180) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 2.54 180) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "OPTO"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "U" (at -7.62 5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "U" (at -7.62 -5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "OPTO_0_1"
|
||||||
|
(rectangle (start -5.08 -3.81) (end 5.08 3.81)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(text "OPTO" (at 0 0 0) (effects (font (size 1.27 1.27))))
|
||||||
|
(polyline (pts (xy -6.35 -2.54) (xy -4.32 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -4.32 -2.54) (xy -3.3 -2.54) (xy -3.81 -1.4) (xy -4.32 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -6.35 2.54) (xy -3.81 2.54) (xy -3.81 -1.4))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(circle (center 2.54 0) (radius 1.27)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 0) (xy 3.81 -1.27) (xy 3.81 -2.54) (xy 6.35 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 0) (xy 3.81 1.27) (xy 3.81 2.54) (xy 6.35 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -1.9 -0.9) (xy -0.6 0.3))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -1.9 -0.3) (xy -0.6 0.9))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "OPTO_1_1"
|
||||||
|
(pin passive line (at -7.62 -2.54 0) (length 1.27)
|
||||||
|
(name "A" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -7.62 2.54 0) (length 1.27)
|
||||||
|
(name "K" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 -2.54 180) (length 1.27)
|
||||||
|
(name "C" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 2.54 180) (length 1.27)
|
||||||
|
(name "E" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "COMP"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "U" (at -7.62 5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "U" (at -7.62 -5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "COMP_0_1"
|
||||||
|
(polyline (pts (xy -6.35 -2.54) (xy -6.35 2.54) (xy 6.35 0) (xy -6.35 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(text "+" (at -5.7 -2.29 0) (effects (font (size 1.27 1.27))))
|
||||||
|
(text "-" (at -5.7 1.4 0) (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(symbol "COMP_1_1"
|
||||||
|
(pin passive line (at -7.62 -2.54 0) (length 1.27)
|
||||||
|
(name "+" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "+" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -7.62 2.54 0) (length 1.27)
|
||||||
|
(name "-" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "-" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 0 180) (length 1.27)
|
||||||
|
(name "OUT" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "OUT" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "MCU"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "U" (at 0 12.7 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "U" (at 0 -12.7 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "MCU_0_1"
|
||||||
|
(rectangle (start -12.7 -10.16) (end 12.7 10.16)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(text "MCU" (at 0 -5.08 0) (effects (font (size 1.27 1.27))))
|
||||||
|
(text "STM32/GD32" (at 0 -2.54 0) (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(symbol "MCU_1_1"
|
||||||
|
(pin passive line (at -12.7 -5.08 0) (length 1.27)
|
||||||
|
(name "PA0" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "PA0" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -12.7 5.08 0) (length 1.27)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "GND" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 12.7 -5.08 180) (length 1.27)
|
||||||
|
(name "PA1" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "PA1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 12.7 0 180) (length 1.27)
|
||||||
|
(name "PA2" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "PA2" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 12.7 5.08 180) (length 1.27)
|
||||||
|
(name "VDD" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "VDD" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "RELAY_SPDT"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "K" (at -7.62 6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "K" (at -7.62 -6.35 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "RELAY_SPDT_0_1"
|
||||||
|
(rectangle (start -5.08 -2.54) (end 2.54 2.54)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -5.08 -1.9) (xy 2.54 1.9))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -6.35 -2.54) (xy -5.08 -2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy -6.35 2.54) (xy -5.08 2.54))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 2.54 0) (xy 5.08 0))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 5.08 0) (xy 5.08 5.08))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 5.08 5.08) (xy 6.35 5.08))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(polyline (pts (xy 5.08 -5.08) (xy 6.35 -5.08))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(circle (center 5.08 0) (radius 0.4)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type outline)))
|
||||||
|
(circle (center 5.08 -5.08) (radius 0.4)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type outline)))
|
||||||
|
(circle (center 5.08 5.08) (radius 0.4)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type outline)))
|
||||||
|
)
|
||||||
|
(symbol "RELAY_SPDT_1_1"
|
||||||
|
(pin passive line (at -7.62 -2.54 0) (length 1.27)
|
||||||
|
(name "A1" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "A1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -7.62 2.54 0) (length 1.27)
|
||||||
|
(name "A2" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "A2" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 0 180) (length 1.27)
|
||||||
|
(name "COM" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "COM" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 -5.08 180) (length 1.27)
|
||||||
|
(name "NO" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "NO" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at 7.62 5.08 180) (length 1.27)
|
||||||
|
(name "NC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "NC" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "CONN2"
|
||||||
|
(pin_numbers hide) (pin_names (offset 0))
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "J" (at -2.54 5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Value" "J" (at -2.54 -5.08 0) (effects (font (size 1.27 1.27)) (justify left)))
|
||||||
|
(property "Footprint" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(property "Datasheet" "" (at 0 0 0) (effects (font (size 1.27 1.27)) hide))
|
||||||
|
(symbol "CONN2_0_1"
|
||||||
|
(polyline (pts (xy -3.81 -3.81) (xy -3.81 3.81))
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(circle (center -2.54 -2.54) (radius 1.27)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
(circle (center -2.54 2.54) (radius 1.27)
|
||||||
|
(stroke (width 0.254) (type default)) (fill (type none)))
|
||||||
|
)
|
||||||
|
(symbol "CONN2_1_1"
|
||||||
|
(pin passive line (at -2.54 -2.54 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27)))))
|
||||||
|
(pin passive line (at -2.54 2.54 0) (length 1.27)
|
||||||
|
(name "~" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27)))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
(sym_lib_table
|
||||||
|
(version 7)
|
||||||
|
(lib (name "loopdet")(type "KiCad")(uri "${KIPRJMOD}/loopdet.kicad_sym")(options "")(descr "Loop detector custom symbols"))
|
||||||
|
)
|
||||||
@@ -0,0 +1,474 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>环路车检器:检测方法推荐 + 原理图</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
--bg: #f8fafc;
|
||||||
|
--fg: #172033;
|
||||||
|
--muted: #5b6475;
|
||||||
|
--line: #64748b;
|
||||||
|
--neutral: #e2e8f0;
|
||||||
|
--input: #bfdbfe;
|
||||||
|
--process: #c7d2fe;
|
||||||
|
--storage: #99f6e4;
|
||||||
|
--external: #fde68a;
|
||||||
|
--risk: #fecaca;
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--bg: #0f172a;
|
||||||
|
--fg: #e5e7eb;
|
||||||
|
--muted: #a3adbd;
|
||||||
|
--line: #94a3b8;
|
||||||
|
--neutral: #334155;
|
||||||
|
--input: #1d4ed8;
|
||||||
|
--process: #4338ca;
|
||||||
|
--storage: #0f766e;
|
||||||
|
--external: #92400e;
|
||||||
|
--risk: #991b1b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: var(--bg);
|
||||||
|
color: var(--fg);
|
||||||
|
font: 14px/1.4 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
}
|
||||||
|
main { max-width: 1280px; margin: 32px auto; padding: 0 20px; }
|
||||||
|
svg { width: 100%; height: auto; display: block; }
|
||||||
|
.title { font-size: 20px; font-weight: 650; fill: var(--fg); }
|
||||||
|
.label { font-size: 14px; font-weight: 600; fill: var(--fg); }
|
||||||
|
.small { font-size: 12px; fill: var(--muted); }
|
||||||
|
.tiny { font-size: 11px; fill: var(--muted); }
|
||||||
|
.node { stroke: var(--line); stroke-width: 1; }
|
||||||
|
.neutral { fill: var(--neutral); }
|
||||||
|
.input { fill: var(--input); }
|
||||||
|
.process { fill: var(--process); }
|
||||||
|
.storage { fill: var(--storage); }
|
||||||
|
.external { fill: var(--external); }
|
||||||
|
.risk { fill: var(--risk); }
|
||||||
|
.edge { stroke: var(--line); stroke-width: 1.5; fill: none; }
|
||||||
|
.wire { stroke: var(--line); stroke-width: 1.3; fill: none; }
|
||||||
|
.wireb { stroke: var(--line); stroke-width: 2; fill: none; }
|
||||||
|
.zone { fill: none; stroke: var(--line); stroke-width: 1; stroke-dasharray: 6 5; opacity: 0.8; }
|
||||||
|
.comp { fill: none; stroke: var(--fg); stroke-width: 1.6; }
|
||||||
|
.compf { fill: var(--fg); stroke: none; }
|
||||||
|
.rec { fill: var(--fg); stroke: none; }
|
||||||
|
.rec-o { fill: none; stroke: var(--fg); stroke-width: 1.4; }
|
||||||
|
.badge { fill: #16a34a; }
|
||||||
|
.badge-t { fill: #fff; font-size: 11px; font-weight: 700; }
|
||||||
|
.hl { stroke: #16a34a; stroke-width: 2.5; }
|
||||||
|
</style>
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<!-- ============ 图1:检测方法对比推荐 ============ -->
|
||||||
|
<svg viewBox="0 0 1240 560" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<marker id="ar1" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
||||||
|
<path d="M0,0 L10,5 L0,10 z" fill="#64748b"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<text x="20" y="34" class="title">环路车检器 · 检测方法对比与选型推荐</text>
|
||||||
|
<text x="20" y="56" class="small">选型核心:灵敏度(能否测摩托/自行车)× 抗干扰(变频器/电力谐波)× 成本。结论先行:主推 ①LC振荡+频率计数;复杂电磁环境上 ④;高灵敏需求上 ②。</text>
|
||||||
|
|
||||||
|
<!-- 卡片1 -->
|
||||||
|
<rect x="24" y="80" width="288" height="440" rx="10" class="node neutral"/>
|
||||||
|
<rect x="24" y="80" width="288" height="440" rx="10" class="hl" fill="none"/>
|
||||||
|
<rect x="24" y="80" width="288" height="36" rx="10" fill="#16a34a"/>
|
||||||
|
<text x="168" y="104" text-anchor="middle" fill="#fff" font-size="14" font-weight="700">① LC振荡 + 频率计数 ★★★★★</text>
|
||||||
|
<text x="40" y="140" font-size="12.5" font-weight="600">原理</text>
|
||||||
|
<text x="40" y="158" class="tiny">车辆进入 → 线圈等效电感↓ →</text>
|
||||||
|
<text x="40" y="174" class="tiny">振荡频率↑ → MCU 定时器测频/测周期</text>
|
||||||
|
<text x="40" y="202" font-size="12.5" font-weight="600">灵敏度</text>
|
||||||
|
<text x="40" y="220" class="tiny">★★★☆ 轿车/SUV 稳定;调阈值可测摩托</text>
|
||||||
|
<text x="40" y="248" font-size="12.5" font-weight="600">抗干扰</text>
|
||||||
|
<text x="40" y="266" class="tiny">★★★ 配自适应阈值 + 频偏跟踪</text>
|
||||||
|
<text x="40" y="294" font-size="12.5" font-weight="600">成本</text>
|
||||||
|
<text x="40" y="312" class="tiny">低(MCU + 三极管/比较器即可)</text>
|
||||||
|
<text x="40" y="340" font-size="12.5" font-weight="600">适用</text>
|
||||||
|
<text x="40" y="358" class="tiny">主流道闸/停车场/流量计数,市场 90%</text>
|
||||||
|
<text x="40" y="396" font-size="12.5" font-weight="600">要点</text>
|
||||||
|
<text x="40" y="414" class="tiny">周期法优于计数法:低速/停留不丢车</text>
|
||||||
|
<text x="40" y="430" class="tiny">回差阈值防抖动;基准慢速自适应抗温漂</text>
|
||||||
|
<text x="40" y="470" class="tiny" fill="#16a34a" font-weight="700">✅ 推荐主方案:成熟、稳定、成本最优</text>
|
||||||
|
|
||||||
|
<!-- 卡片2 -->
|
||||||
|
<rect x="326" y="80" width="288" height="440" rx="10" class="node neutral"/>
|
||||||
|
<text x="470" y="104" text-anchor="middle" class="label">② PLL 锁相 / 相位比较 ★★★★</text>
|
||||||
|
<text x="342" y="140" font-size="12.5" font-weight="600">原理</text>
|
||||||
|
<text x="342" y="158" class="tiny">PLL 锁定振荡信号,车辆引起</text>
|
||||||
|
<text x="342" y="174" class="tiny">相位/频率误差 → 输出误差电压</text>
|
||||||
|
<text x="342" y="202" font-size="12.5" font-weight="600">灵敏度</text>
|
||||||
|
<text x="342" y="220" class="tiny">★★★★★ 可测自行车/电动车/行人拖车</text>
|
||||||
|
<text x="342" y="248" font-size="12.5" font-weight="600">抗干扰</text>
|
||||||
|
<text x="342" y="266" class="tiny">★★★ 环路锁定本身有滤波作用</text>
|
||||||
|
<text x="342" y="294" font-size="12.5" font-weight="600">成本</text>
|
||||||
|
<text x="342" y="312" class="tiny">中(PLL IC 或 MCU 内置 PLL 外设)</text>
|
||||||
|
<text x="342" y="340" font-size="12.5" font-weight="600">适用</text>
|
||||||
|
<text x="342" y="358" class="tiny">混行车道、ETC 车道、摩托车检测</text>
|
||||||
|
<text x="342" y="396" font-size="12.5" font-weight="600">要点</text>
|
||||||
|
<text x="342" y="414" class="tiny">环路带宽要窄:抗抖但响应慢,需折中</text>
|
||||||
|
<text x="342" y="430" class="tiny">适合与 ① 组合做双通道校验</text>
|
||||||
|
<text x="342" y="470" class="tiny" fill="#0f766e" font-weight="700">✅ 高灵敏场景备选</text>
|
||||||
|
|
||||||
|
<!-- 卡片3 -->
|
||||||
|
<rect x="628" y="80" width="288" height="440" rx="10" class="node neutral"/>
|
||||||
|
<text x="772" y="104" text-anchor="middle" class="label">③ 电桥阻抗检测 ★★</text>
|
||||||
|
<text x="644" y="140" font-size="12.5" font-weight="600">原理</text>
|
||||||
|
<text x="644" y="158" class="tiny">环路与参考臂构成平衡电桥,</text>
|
||||||
|
<text x="644" y="174" class="tiny">车辆使阻抗失衡 → 输出失调电压</text>
|
||||||
|
<text x="644" y="202" font-size="12.5" font-weight="600">灵敏度</text>
|
||||||
|
<text x="644" y="220" class="tiny">★★ 中低,依赖桥臂匹配精度</text>
|
||||||
|
<text x="644" y="248" font-size="12.5" font-weight="600">抗干扰</text>
|
||||||
|
<text x="644" y="266" class="tiny">★★ 温漂/老化使零位漂移严重</text>
|
||||||
|
<text x="644" y="294" font-size="12.5" font-weight="600">成本</text>
|
||||||
|
<text x="644" y="312" class="tiny">低(纯模拟)</text>
|
||||||
|
<text x="644" y="340" font-size="12.5" font-weight="600">适用</text>
|
||||||
|
<text x="644" y="358" class="tiny">早期产品 / 教学演示</text>
|
||||||
|
<text x="644" y="396" font-size="12.5" font-weight="600">要点</text>
|
||||||
|
<text x="644" y="414" class="tiny">需定期人工调零,现场维护成本高</text>
|
||||||
|
<text x="644" y="470" class="tiny" fill="#991b1b" font-weight="700">⚠️ 不推荐量产</text>
|
||||||
|
|
||||||
|
<!-- 卡片4 -->
|
||||||
|
<rect x="930" y="80" width="288" height="440" rx="10" class="node neutral"/>
|
||||||
|
<text x="1074" y="104" text-anchor="middle" class="label">④ 多频扫频 + 自适应调谐 ★★★★</text>
|
||||||
|
<text x="946" y="140" font-size="12.5" font-weight="600">原理</text>
|
||||||
|
<text x="946" y="158" class="tiny">DDS/扫频实时搜索谐振点,</text>
|
||||||
|
<text x="946" y="174" class="tiny">自动调谐避开干扰频段(变频器/谐波)</text>
|
||||||
|
<text x="946" y="202" font-size="12.5" font-weight="600">灵敏度</text>
|
||||||
|
<text x="946" y="220" class="tiny">★★★★ 扫频带宽内全频段可调</text>
|
||||||
|
<text x="946" y="248" font-size="12.5" font-weight="600">抗干扰</text>
|
||||||
|
<text x="946" y="266" class="tiny">★★★★★ 变频器干扰场景的终极解</text>
|
||||||
|
<text x="946" y="294" font-size="12.5" font-weight="600">成本</text>
|
||||||
|
<text x="946" y="312" class="tiny">高(DDS/高精度 ADC + 算法)</text>
|
||||||
|
<text x="946" y="340" font-size="12.5" font-weight="600">适用</text>
|
||||||
|
<text x="946" y="358" class="tiny">工业区/充电桩/变频器密集场所</text>
|
||||||
|
<text x="946" y="396" font-size="12.5" font-weight="600">要点</text>
|
||||||
|
<text x="946" y="414" class="tiny">与 ① 兼容:频率计数做粗判,</text>
|
||||||
|
<text x="946" y="430" class="tiny">扫频谱特征做细判与干扰识别</text>
|
||||||
|
<text x="946" y="470" class="tiny" fill="#0f766e" font-weight="700">✅ 复杂电磁环境旗舰方案</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
<!-- ============ 图2:原理图 ============ -->
|
||||||
|
<svg viewBox="0 0 1240 880" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<marker id="ar2" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
||||||
|
<path d="M0,0 L10,5 L0,10 z" fill="#64748b"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<text x="20" y="34" class="title">环路车检器原理图 — LC 振荡 + 频率计数方案(推荐①)</text>
|
||||||
|
<text x="20" y="56" class="small">信号链:环形线圈 → 浪涌保护 → 匹配变压器 → 谐振/考毕兹振荡 → 比较器整形 → MCU 测频判车 → 光耦隔离 → 继电器输出</text>
|
||||||
|
|
||||||
|
<!-- ===== 总线:VCC 5V (y=240) 与 GND (y=430, y=650) ===== -->
|
||||||
|
<path d="M20,240 H1220" class="wire" stroke-dasharray="8 4"/>
|
||||||
|
<text x="26" y="233" class="tiny">VCC 5V</text>
|
||||||
|
<path d="M320,430 H1200" class="wire" stroke-dasharray="8 4"/>
|
||||||
|
<text x="326" y="423" class="tiny">GND</text>
|
||||||
|
<path d="M20,650 H1220" class="wire" stroke-dasharray="8 4"/>
|
||||||
|
<text x="26" y="643" class="tiny">GND(电源地)</text>
|
||||||
|
<path d="M700,430 V650" class="wire"/>
|
||||||
|
|
||||||
|
<!-- ===== A. 环形线圈 + 路面 ===== -->
|
||||||
|
<rect x="24" y="262" width="172" height="196" rx="8" class="node neutral"/>
|
||||||
|
<text x="110" y="252" text-anchor="middle" class="small">路面(切割槽)</text>
|
||||||
|
<rect x="58" y="300" width="104" height="118" rx="4" class="rec-o" stroke-width="3"/>
|
||||||
|
<rect x="74" y="316" width="72" height="86" rx="3" class="rec-o" stroke-width="2.4"/>
|
||||||
|
<rect x="90" y="332" width="40" height="54" rx="2" class="rec-o" stroke-width="1.8"/>
|
||||||
|
<text x="110" y="472" text-anchor="middle" class="small">环形线圈 3~5 匝</text>
|
||||||
|
<text x="110" y="488" text-anchor="middle" class="tiny">L≈50~200μH(待现场验证)</text>
|
||||||
|
<!-- 引线 -->
|
||||||
|
<path d="M162,300 H210 V310" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<path d="M162,418 H210 V430" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<text x="180" y="286" class="tiny">引线(双绞屏蔽 ≤20m)</text>
|
||||||
|
|
||||||
|
<!-- ===== B. 端子 + 浪涌保护 ===== -->
|
||||||
|
<rect x="215" y="295" width="26" height="26" rx="3" class="node neutral"/>
|
||||||
|
<text x="228" y="313" text-anchor="middle" class="tiny">A</text>
|
||||||
|
<rect x="215" y="415" width="26" height="26" rx="3" class="node neutral"/>
|
||||||
|
<text x="228" y="433" text-anchor="middle" class="tiny">B</text>
|
||||||
|
<rect x="250" y="262" width="96" height="200" rx="6" class="zone"/>
|
||||||
|
<text x="298" y="254" text-anchor="middle" class="tiny">浪涌保护</text>
|
||||||
|
<path d="M241,308 H330" class="wire"/>
|
||||||
|
<path d="M241,428 H330" class="wire"/>
|
||||||
|
<!-- 双向TVS -->
|
||||||
|
<path d="M288,308 V344" class="wire"/>
|
||||||
|
<path d="M288,392 V428" class="wire"/>
|
||||||
|
<path d="M288,344 L282,356 H294 Z" class="comp"/>
|
||||||
|
<path d="M288,392 L294,380 H282 Z" class="comp"/>
|
||||||
|
<path d="M288,356 V380" class="wire"/>
|
||||||
|
<text x="300" y="386" class="tiny">TVS1</text>
|
||||||
|
<!-- 压敏 -->
|
||||||
|
<path d="M318,308 V350" class="wire"/>
|
||||||
|
<path d="M318,386 V428" class="wire"/>
|
||||||
|
<rect x="312" y="350" width="12" height="36" class="comp"/>
|
||||||
|
<text x="336" y="370" class="tiny">RV1</text>
|
||||||
|
|
||||||
|
<!-- ===== C. 匹配变压器 T1 ===== -->
|
||||||
|
<rect x="340" y="262" width="140" height="200" rx="6" class="zone"/>
|
||||||
|
<text x="410" y="254" text-anchor="middle" class="tiny">T1 匹配变压器 1:1~1:2</text>
|
||||||
|
<!-- 初级 -->
|
||||||
|
<path d="M370,310 V328" class="wire"/>
|
||||||
|
<path d="M370,328 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14" class="comp"/>
|
||||||
|
<path d="M370,398 V420" class="wire"/>
|
||||||
|
<path d="M330,310 H370" class="wire" marker-end="url(#ar2)"/>
|
||||||
|
<path d="M330,430 H370" class="wire"/>
|
||||||
|
<circle cx="370" cy="310" r="2.4" class="compf"/>
|
||||||
|
<!-- 磁芯 -->
|
||||||
|
<path d="M392,300 V430" class="wireb"/>
|
||||||
|
<path d="M400,300 V430" class="wireb"/>
|
||||||
|
<!-- 次级 -->
|
||||||
|
<path d="M424,320 V336" class="wire"/>
|
||||||
|
<path d="M424,336 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14 a7,7 0 0 1 0,14 a7,7 0 0 0 0,14" class="comp"/>
|
||||||
|
<path d="M424,406 V420" class="wire"/>
|
||||||
|
<circle cx="424" cy="320" r="2.4" class="compf"/>
|
||||||
|
<!-- C1 谐振电容 与次级并联 -->
|
||||||
|
<path d="M424,320 H452 V330" class="wire"/>
|
||||||
|
<path d="M424,420 H452 V410" class="wire"/>
|
||||||
|
<path d="M446,330 H458" class="comp"/>
|
||||||
|
<path d="M446,410 H458" class="comp"/>
|
||||||
|
<path d="M452,330 V410" class="wire"/>
|
||||||
|
<text x="478" y="368" class="tiny">C1 谐振电容</text>
|
||||||
|
<text x="478" y="382" class="tiny">100~470pF</text>
|
||||||
|
<!-- 谐振上端 → 基极耦合 -->
|
||||||
|
<path d="M424,320 H480 V336" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<text x="446" y="306" class="tiny">Cc1 10pF</text>
|
||||||
|
<path d="M452,300 H464" class="comp"/>
|
||||||
|
<path d="M452,312 H464" class="comp"/>
|
||||||
|
<path d="M458,300 V312" class="wire"/>
|
||||||
|
<!-- 次级下端 → 地 -->
|
||||||
|
<path d="M424,420 V430" class="wire"/>
|
||||||
|
|
||||||
|
<!-- ===== D. 考毕兹振荡器 ===== -->
|
||||||
|
<rect x="462" y="248" width="180" height="196" rx="6" class="zone"/>
|
||||||
|
<text x="552" y="240" text-anchor="middle" class="tiny">考毕兹振荡器(基极调谐)</text>
|
||||||
|
<!-- Rb1: VCC→基极 -->
|
||||||
|
<path d="M480,240 V252" class="wire"/>
|
||||||
|
<rect x="474" y="252" width="12" height="34" class="comp"/>
|
||||||
|
<path d="M480,286 V300" class="wire"/>
|
||||||
|
<text x="440" y="272" class="tiny">Rb1 100k</text>
|
||||||
|
<!-- Rb2: 基极→地 -->
|
||||||
|
<path d="M500,352 V356" class="wire"/>
|
||||||
|
<rect x="494" y="356" width="12" height="34" class="comp"/>
|
||||||
|
<path d="M500,390 V430" class="wire"/>
|
||||||
|
<text x="520" y="376" class="tiny">Rb2 47k</text>
|
||||||
|
<!-- C3: 基极→地 -->
|
||||||
|
<path d="M506,340 V352" class="wire"/>
|
||||||
|
<path d="M500,352 H512" class="wire"/>
|
||||||
|
<path d="M501,352 V364" class="wire"/>
|
||||||
|
<path d="M506,352 V364" class="wire"/>
|
||||||
|
<path d="M501,364 H506" class="comp"/>
|
||||||
|
<path d="M501,392 H506" class="comp"/>
|
||||||
|
<path d="M506,364 V392" class="wire"/>
|
||||||
|
<path d="M506,392 V430" class="wire"/>
|
||||||
|
<text x="522" y="416" class="tiny">C3 100p</text>
|
||||||
|
<!-- Q1 NPN -->
|
||||||
|
<path d="M480,300 H500 V340" class="wire"/>
|
||||||
|
<circle cx="500" cy="342" r="2.4" class="compf"/>
|
||||||
|
<path d="M500,342 L516,314 V290" class="wire"/>
|
||||||
|
<path d="M500,342 L514,370 V390" class="wire"/>
|
||||||
|
<path d="M504,360 L514,354" class="comp"/>
|
||||||
|
<path d="M508,364 L518,358" class="comp"/>
|
||||||
|
<text x="540" y="336" class="tiny">Q1</text>
|
||||||
|
<text x="540" y="350" class="tiny">S9018</text>
|
||||||
|
<!-- Rc: VCC→集电极 -->
|
||||||
|
<path d="M516,240 V256" class="wire"/>
|
||||||
|
<rect x="510" y="256" width="12" height="30" class="comp"/>
|
||||||
|
<path d="M516,286 V290" class="wire"/>
|
||||||
|
<text x="540" y="272" class="tiny">Rc 2.2k</text>
|
||||||
|
<!-- Lx: 集电极→基极(谐振电感) -->
|
||||||
|
<path d="M516,290 H526 V270" class="wire"/>
|
||||||
|
<path d="M526,270 V280" class="wire"/>
|
||||||
|
<path d="M526,280 a6,6 0 0 0 0,12 a6,6 0 0 1 0,12 a6,6 0 0 0 0,12" class="comp"/>
|
||||||
|
<path d="M526,316 V322" class="wire"/>
|
||||||
|
<path d="M526,322 H500 V336" class="wire"/>
|
||||||
|
<text x="540" y="306" class="tiny">Lx 谐振</text>
|
||||||
|
<!-- C2: 集电极→地 -->
|
||||||
|
<path d="M526,270 H540 V300" class="wire"/>
|
||||||
|
<path d="M540,300 V308" class="wire"/>
|
||||||
|
<path d="M534,308 H546" class="comp"/>
|
||||||
|
<path d="M534,356 H546" class="comp"/>
|
||||||
|
<path d="M540,308 V356" class="wire"/>
|
||||||
|
<path d="M540,356 V430" class="wire"/>
|
||||||
|
<text x="560" y="336" class="tiny">C2 100p</text>
|
||||||
|
<!-- 输出耦合 Cc2 -->
|
||||||
|
<path d="M516,290 H600" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<path d="M548,284 H560" class="comp"/>
|
||||||
|
<path d="M548,296 H560" class="comp"/>
|
||||||
|
<path d="M554,284 V296" class="wire"/>
|
||||||
|
<text x="556" y="276" class="tiny">Cc2</text>
|
||||||
|
|
||||||
|
<!-- ===== E. 比较器整形 ===== -->
|
||||||
|
<rect x="616" y="248" width="140" height="200" rx="6" class="zone"/>
|
||||||
|
<text x="686" y="240" text-anchor="middle" class="tiny">U1 比较器(带回差)</text>
|
||||||
|
<path d="M600,290 H640" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<path d="M640,290 V310" class="wire"/>
|
||||||
|
<path d="M686,300 L706,330 L686,360 Z" class="comp"/>
|
||||||
|
<path d="M706,330 H750" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<text x="712" y="322" class="tiny">+</text>
|
||||||
|
<text x="712" y="352" class="tiny">−</text>
|
||||||
|
<!-- Vref 分压 -->
|
||||||
|
<path d="M640,350 H668" class="wire"/>
|
||||||
|
<path d="M668,240 V268" class="wire"/>
|
||||||
|
<rect x="662" y="268" width="12" height="30" class="comp"/>
|
||||||
|
<path d="M668,298 V320" class="wire"/>
|
||||||
|
<path d="M668,350 H686" class="wire"/>
|
||||||
|
<path d="M668,350 V380" class="wire"/>
|
||||||
|
<rect x="662" y="380" width="12" height="26" class="comp"/>
|
||||||
|
<path d="M668,406 V430" class="wire"/>
|
||||||
|
<text x="610" y="392" class="tiny">Vref 分压</text>
|
||||||
|
<text x="610" y="406" class="tiny">(R3/R4)</text>
|
||||||
|
<!-- 频率标注 -->
|
||||||
|
<text x="640" y="452" class="tiny">方波输出 f≈f₀</text>
|
||||||
|
|
||||||
|
<!-- ===== F. MCU ===== -->
|
||||||
|
<rect x="800" y="240" width="200" height="220" rx="10" class="process node"/>
|
||||||
|
<text x="900" y="262" text-anchor="middle" class="label">MCU</text>
|
||||||
|
<text x="900" y="278" text-anchor="middle" class="tiny">STM32/GD32F103</text>
|
||||||
|
<text x="816" y="302" class="tiny">· 定时器输入捕获测周期</text>
|
||||||
|
<text x="816" y="322" class="tiny">· f = Fclk / period → Δf</text>
|
||||||
|
<text x="816" y="342" class="tiny">· 数字滤波 + 消抖</text>
|
||||||
|
<text x="816" y="362" class="tiny">· 灵敏度阈值(多档)判断</text>
|
||||||
|
<text x="816" y="382" class="tiny">· 存在/通过 状态机</text>
|
||||||
|
<text x="816" y="402" class="tiny">· 基准频率慢速自适应(抗温漂)</text>
|
||||||
|
<text x="816" y="422" class="tiny">· 继电器输出 + 自检/看门狗</text>
|
||||||
|
<path d="M750,310 H800" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<text x="756" y="300" class="tiny">PA0 捕获</text>
|
||||||
|
<path d="M1000,330 H1030" class="wireb" marker-end="url(#ar2)"/>
|
||||||
|
<text x="1004" y="320" class="tiny">PA1</text>
|
||||||
|
<!-- 状态LED -->
|
||||||
|
<path d="M900,460 V476" class="wire"/>
|
||||||
|
<path d="M900,476 L894,488 H906 Z" class="comp"/>
|
||||||
|
<path d="M900,488 V494" class="wire"/>
|
||||||
|
<path d="M894,494 H906" class="comp"/>
|
||||||
|
<path d="M900,494 V506" class="wire"/>
|
||||||
|
<path d="M894,506 H906" class="comp"/>
|
||||||
|
<path d="M900,506 V520" class="wire"/>
|
||||||
|
<path d="M900,520 V650" class="wire"/>
|
||||||
|
<text x="918" y="492" class="tiny">D2 状态LED</text>
|
||||||
|
<text x="918" y="506" class="tiny">R6 限流</text>
|
||||||
|
<!-- VDD -->
|
||||||
|
<path d="M860,240 V230" class="wire"/>
|
||||||
|
<text x="846" y="224" class="tiny">VDD 3.3V</text>
|
||||||
|
|
||||||
|
<!-- ===== G. 光耦 + MOS + 继电器 ===== -->
|
||||||
|
<rect x="1030" y="290" width="70" height="90" rx="4" class="node neutral"/>
|
||||||
|
<text x="1065" y="282" text-anchor="middle" class="tiny">U2 光耦</text>
|
||||||
|
<!-- 光耦内 LED -->
|
||||||
|
<path d="M1042,320 L1042,330 L1052,330 L1052,320 Z" class="comp"/>
|
||||||
|
<path d="M1052,320 V326" class="wire"/>
|
||||||
|
<!-- 光耦内 光敏管 -->
|
||||||
|
<circle cx="1062" cy="352" r="2" class="compf"/>
|
||||||
|
<path d="M1062,352 L1072,344 V352" class="wire"/>
|
||||||
|
<path d="M1062,352 L1072,360 V352" class="wire"/>
|
||||||
|
<path d="M1052,326 H1046 V352 H1060" class="wire"/>
|
||||||
|
<path d="M1066,340 L1072,336" class="comp"/>
|
||||||
|
<path d="M1066,344 L1072,340" class="comp"/>
|
||||||
|
<!-- R5 限流 -->
|
||||||
|
<path d="M1030,330 H1016" class="wire"/>
|
||||||
|
<rect x="1004" y="324" width="12" height="12" class="comp"/>
|
||||||
|
<text x="996" y="312" class="tiny">R5</text>
|
||||||
|
<!-- Q2 MOS -->
|
||||||
|
<path d="M1065,360 V375" class="wire"/>
|
||||||
|
<path d="M1065,375 H1090" class="wire"/>
|
||||||
|
<rect x="1080" y="368" width="22" height="14" rx="2" class="comp"/>
|
||||||
|
<path d="M1102,375 H1108" class="wire"/>
|
||||||
|
<path d="M1080,368 V375" class="wire"/>
|
||||||
|
<path d="M1080,382 V375" class="wire"/>
|
||||||
|
<path d="M1080,368 H1074" class="wire"/>
|
||||||
|
<path d="M1080,382 H1074" class="wire"/>
|
||||||
|
<text x="1108" y="380" class="tiny">Q2</text>
|
||||||
|
<text x="1108" y="394" class="tiny">N-MOS</text>
|
||||||
|
<!-- Q2 drain 上 / source 下 -->
|
||||||
|
<path d="M1080,368 V430" class="wire"/>
|
||||||
|
<text x="1090" y="362" class="tiny">D</text>
|
||||||
|
<text x="1090" y="388" class="tiny">S</text>
|
||||||
|
<!-- 继电器 -->
|
||||||
|
<rect x="1120" y="250" width="60" height="46" rx="4" class="node neutral"/>
|
||||||
|
<path d="M1130,258 L1170,288" class="wire"/>
|
||||||
|
<text x="1150" y="282" text-anchor="middle" class="tiny">K1</text>
|
||||||
|
<path d="M1108,375 H1120 V273" class="wire"/>
|
||||||
|
<path d="M1180,273 H1200" class="wire"/>
|
||||||
|
<!-- 触点 -->
|
||||||
|
<path d="M1200,273 V300" class="wire"/>
|
||||||
|
<path d="M1200,300 H1216" class="wireb"/>
|
||||||
|
<circle cx="1200" cy="300" r="2" class="compf"/>
|
||||||
|
<path d="M1216,258 H1220" class="wire"/>
|
||||||
|
<path d="M1216,342 H1220" class="wire"/>
|
||||||
|
<circle cx="1216" cy="258" r="2" class="compf"/>
|
||||||
|
<circle cx="1216" cy="342" r="2" class="compf"/>
|
||||||
|
<text x="1222" y="254" class="tiny">NO</text>
|
||||||
|
<text x="1222" y="346" class="tiny">NC</text>
|
||||||
|
<text x="1222" y="304" class="tiny">COM</text>
|
||||||
|
<text x="1124" y="318" class="tiny">→ 道闸/PLC</text>
|
||||||
|
<!-- K1 线圈电源 -->
|
||||||
|
<path d="M1120,240 V250" class="wire"/>
|
||||||
|
<text x="1080" y="238" class="tiny">K1 线圈接 VCC(或外供)</text>
|
||||||
|
|
||||||
|
<!-- ===== H. 电源 ===== -->
|
||||||
|
<rect x="20" y="560" width="1200" height="120" rx="8" class="zone"/>
|
||||||
|
<text x="30" y="580" class="tiny">电源与保护</text>
|
||||||
|
<rect x="40" y="596" width="86" height="30" rx="4" class="node neutral"/>
|
||||||
|
<text x="83" y="615" text-anchor="middle" class="tiny">VIN 12~24V</text>
|
||||||
|
<path d="M126,611 H140" class="wire"/>
|
||||||
|
<path d="M140,605 L148,611 L140,617 Z" class="comp"/>
|
||||||
|
<path d="M148,611 H158" class="wire"/>
|
||||||
|
<path d="M158,596 V626" class="wire"/>
|
||||||
|
<path d="M158,596 L164,584 H176 L170,596 Z" class="comp"/>
|
||||||
|
<path d="M158,626 L170,596 H176 L164,584 Z" class="comp"/>
|
||||||
|
<text x="190" y="604" class="tiny">D1 防反接</text>
|
||||||
|
<text x="190" y="618" class="tiny">TVS2 吸收浪涌</text>
|
||||||
|
<path d="M158,611 H200" class="wire"/>
|
||||||
|
<rect x="200" y="596" width="70" height="30" rx="4" class="node neutral"/>
|
||||||
|
<text x="235" y="615" text-anchor="middle" class="tiny">U3 LDO 5V</text>
|
||||||
|
<path d="M270,611 H300" class="wire"/>
|
||||||
|
<rect x="300" y="596" width="80" height="30" rx="4" class="node neutral"/>
|
||||||
|
<text x="340" y="615" text-anchor="middle" class="tiny">U4 LDO 3.3V</text>
|
||||||
|
<path d="M340,596 V540" class="wire"/>
|
||||||
|
<path d="M340,540 H860 V230" class="wire"/>
|
||||||
|
<path d="M340,626 V650" class="wire"/>
|
||||||
|
<!-- 滤波电容 -->
|
||||||
|
<path d="M160,650 H120" class="wire"/>
|
||||||
|
<path d="M120,640 H126" class="comp"/>
|
||||||
|
<path d="M120,650 H126" class="comp"/>
|
||||||
|
<path d="M123,640 V650" class="wire"/>
|
||||||
|
<text x="96" y="668" class="tiny">Cin</text>
|
||||||
|
<path d="M340,650 H300" class="wire"/>
|
||||||
|
<path d="M300,640 H306" class="comp"/>
|
||||||
|
<path d="M300,650 H306" class="comp"/>
|
||||||
|
<path d="M303,640 V650" class="wire"/>
|
||||||
|
<text x="276" y="668" class="tiny">C5</text>
|
||||||
|
<path d="M400,650 H380" class="wire"/>
|
||||||
|
<path d="M380,640 H386" class="comp"/>
|
||||||
|
<path d="M380,650 H386" class="comp"/>
|
||||||
|
<path d="M383,640 V650" class="wire"/>
|
||||||
|
<text x="392" y="668" class="tiny">C6</text>
|
||||||
|
|
||||||
|
<!-- ===== 图例 ===== -->
|
||||||
|
<rect x="20" y="700" width="1200" height="160" rx="8" class="neutral node"/>
|
||||||
|
<text x="36" y="722" class="label">元件图例</text>
|
||||||
|
<text x="36" y="746" class="tiny">L 电感(线圈符号)</text>
|
||||||
|
<path d="M56,756 a6,6 0 0 1 0,12 a6,6 0 0 0 0,12 a6,6 0 0 1 0,12" class="comp"/>
|
||||||
|
<text x="140" y="746" class="tiny">C 电容</text>
|
||||||
|
<path d="M160,756 H172" class="comp"/><path d="M160,768 H172" class="comp"/><path d="M166,756 V768" class="wire"/>
|
||||||
|
<text x="244" y="746" class="tiny">R 电阻</text>
|
||||||
|
<rect x="264" y="752" width="12" height="16" class="comp"/>
|
||||||
|
<text x="340" y="746" class="tiny">TVS 双向</text>
|
||||||
|
<path d="M360,756 L354,768 H366 Z" class="comp"/>
|
||||||
|
<path d="M360,768 L366,756 H354 Z" class="comp"/>
|
||||||
|
<text x="440" y="746" class="tiny">NPN 三极管</text>
|
||||||
|
<path d="M456,764 H470" class="wire"/><circle cx="470" cy="764" r="2" class="compf"/>
|
||||||
|
<path d="M470,764 L482,748 V764" class="wire"/>
|
||||||
|
<path d="M470,764 L480,776 V784" class="wire"/>
|
||||||
|
<path d="M474,774 L484,768" class="comp"/>
|
||||||
|
<text x="560" y="746" class="tiny">MOS</text>
|
||||||
|
<rect x="580" y="756" width="20" height="12" rx="2" class="comp"/>
|
||||||
|
<text x="660" y="746" class="tiny">继电器</text>
|
||||||
|
<rect x="680" y="754" width="16" height="12" class="comp"/>
|
||||||
|
<path d="M684,756 L692,764" class="wire"/>
|
||||||
|
<text x="36" y="806" class="tiny">关键设计点:① 环路经匹配变压器隔离耦合,直连会受地环路干扰;② 谐振电容 C1 决定频段,频率 f₀≈1/(2π√(LC));③ 灵敏度=Δf 阈值,建议多档可调 + 回差;④ 基准频率上电自学习 + 慢速跟踪,抗温漂;⑤ 输出必须光耦隔离,防浪涌反灌烧 MCU;⑥ 软件加看门狗,继电器粘连检测。</text>
|
||||||
|
<text x="36" y="830" class="tiny">⚠️ 数值为典型参考:线圈电感取决于尺寸/匝数/引线长度,谐振频率推荐 20~150kHz(越低抗干扰越差、灵敏度越高,需现场折中)。</text>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
</main>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# 2026-08-21 工作日志
|
||||||
|
|
||||||
|
## 环路车检器方案 + 原理图
|
||||||
|
|
||||||
|
- 老大咨询环路车检器检测方法选型与原理图绘制
|
||||||
|
- 输出:检测方法对比(LC振荡+频率计数 主推 / PLL 高灵敏 / 电桥 不推荐 / 多频扫频 抗变频器干扰旗舰)+ LC振荡频率计数方案完整原理图
|
||||||
|
- 文件:`/root/.openclaw/workspace/loop-detector/`
|
||||||
|
- `loop-detector-principle.html`(源文件,含图1方法对比 + 图2原理图)
|
||||||
|
- `fig1-methods.svg/.png`、`fig2-schematic.svg/.png`
|
||||||
|
- `inline_svg.py`(SVG 样式内联转换脚本,librsvg 不支持 CSS 变量)
|
||||||
|
- 关键设计点:匹配变压器隔离耦合、谐振 20~150kHz、周期法测频、基准频率自适应抗温漂、光耦隔离输出、回差阈值
|
||||||
|
|
||||||
|
## 服务器安装 KiCad
|
||||||
|
|
||||||
|
- **KiCad 7.0.11** 安装完成(apt 官方源,35 个包,库占 363MB)
|
||||||
|
- 组件:kicad / kicad-cli / eeschema / pcbnew,符号库+封装库完整
|
||||||
|
- 无 GPU:3D 查看器软渲染慢,原理图/PCB 编辑不受影响
|
||||||
|
- 图形界面走向日葵远程桌面使用
|
||||||
|
|
||||||
|
## KiCad 环路车检器原理图工程(已交付)
|
||||||
|
|
||||||
|
- 目录:`/root/.openclaw/workspace/loop-detector/loop-detector-kicad/`
|
||||||
|
- `loopdet.kicad_sym` — 自定义符号库(R/C/Q_NPN/MOS_N/LED/TVS_BI/XFMR/OPTO/COMP/MCU/RELAY_SPDT/CONN2)
|
||||||
|
- `loop-detector.kicad_sch` — 原理图(A3,LC振荡+频率计数完整信号链)
|
||||||
|
- `loop-detector.kicad_pro` — 工程文件
|
||||||
|
- `loop-detector.pdf` — 导出的 PDF
|
||||||
|
- `loop-detector-preview.png` — 预览图
|
||||||
|
- `gen_sch.py` — 程序化生成脚本(改参数后重跑即可)
|
||||||
|
- `sym-lib-table` — 工程级符号库表;全局表在 `~/.config/kicad/7.0/sym-lib-table`
|
||||||
|
- **KiCad 7 文件格式踩坑记录(重要!)**:
|
||||||
|
1. 文件头 `(kicad_sch (version 20230121) (generator eeschema)`,uuid/generator 都不带引号
|
||||||
|
2. 内嵌 lib_symbols 符号名必须带库前缀(`"loopdet:C"`),与 lib_id 一致才能解析
|
||||||
|
3. pin 必须带电气/图形类型:`(pin passive line (at ...) (length ...) (name "~" ...) (number "1" ...))`
|
||||||
|
4. symbol 实例必须有 `(instances (project ... (path ... (reference ...) (unit 1))))` 块
|
||||||
|
5. 网络标签是 `(label "VCC" (at ...) (effects ...) (uuid ...))`,不是 net_label
|
||||||
|
6. 顶层文本是 `(text "内容" (at ...) ...)`,字符串前置,不是 (string ...) 子块
|
||||||
|
- 调试方法:kicad-cli sch export pdf 验证;用 top_children 拆分文件做二分测试定位解析错误
|
||||||
|
- 经验:kicad-cli 查库表加载缺失库会段错误(t11 测试),尽量内嵌符号
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# pcb/ — PCB 设计文档目录
|
||||||
|
|
||||||
|
> 本目录存放 PCB 设计相关文档(原理图、布局、Gerber、评审记录等)。
|
||||||
|
> 由硬件同事**唐磊**提交的文档统一归档于此,随 xdeSpace 每日自动同步(每天 02:30)。
|
||||||
|
|
||||||
|
## 归档约定
|
||||||
|
|
||||||
|
- 原理图 / 布局文件:KiCad 工程(`.kicad_sch` / `.kicad_pcb`)或嘉立创EDA 导出文件
|
||||||
|
- 评审记录:Markdown,命名建议 `YYYY-MM-DD-主题.md`
|
||||||
|
- 生产文件:Gerber / BOM / 坐标文件,按项目子目录存放
|
||||||
|
|
||||||
|
## 当前项目
|
||||||
|
|
||||||
|
(待补充——环路检测板 / 道闸控制板方案落地后按项目建子目录)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_维护:小德(自动归档)_
|
||||||
Reference in New Issue
Block a user