1. 项目概述PCB布线收尾的“最后一公里”检查画完PCB看着密密麻麻的走线和铺铜心里总会有点不踏实线真的都连上了吗有没有哪根飞线被我不小心漏掉了这种焦虑相信每一位画过板的工程师都深有体会。尤其是在处理那些动辄几百上千个网络的中高密度板子时靠肉眼在复杂的布线中寻找那几根遗漏的“飞线”Un-Routed Net无异于大海捞针不仅效率低下而且极易出错。一个未连接的飞线轻则导致功能异常重则可能让整批板子报废带来的时间和金钱成本是巨大的。因此掌握一套高效、可靠的飞线检查方法是PCB设计流程中不可或缺的“最后一公里”质检环节。今天我们就以经典的Protel 99 SE / Altium Designer早期版本的操作环境为例深入聊聊在布线基本完成后如何系统性地检查并清理未连接的飞线。我们将超越简单的快捷键操作深入DRC设计规则检查的核心设置解读常见的错误报告并分享一些从实际项目踩坑中总结出来的高效排查技巧。无论你是正在学习PCB设计的学生还是偶尔需要检查一下外包设计文件的硬件工程师这篇文章都能为你提供一套即拿即用的检查清单和问题解决思路。2. 核心检查思路与工具选择在Protel及其后续的Altium Designer中检查未连接飞线核心是依靠软件的网络连接性和设计规则检查DRC功能。我们的目标不是用眼睛去找而是让软件自动报告问题。这里有两条主线思路它们相辅相成建议结合使用。2.1 视觉辅助法让飞线“无处遁形”首先是最直观的方法——关闭所有布线层让画面只剩下元件、焊盘和未连接的飞线。这是很多工程师的第一反应。操作路径在PCB编辑器界面按下快捷键L会弹出“板层和颜色”View Configurations对话框。在这里找到“信号层”Signal Layers分组将Top Layer、Bottom Layer以及你使用的任何中间信号层Mid Layer1,2...的“显示”Show复选框取消勾选。同时为了画面更干净也可以暂时关闭丝印层Silkscreen和机械层Mechanical。确认后画布上所有实际的走线Track和铺铜Polygon都会隐藏起来。此时屏幕上应该只剩下元件的封装轮廓和焊盘。以虚线段形式显示的、未完成的连接线这就是“飞线”Ratsnest通常表现为细的虚线。可能存在的、以细实线或另一种颜色高亮显示的、已完成的网络连接如果相关选项被开启。这个方法的优缺点非常明显优点极其直观一眼就能看到板子上哪里还有稀疏的飞线未处理对于检查少量、明显的遗漏非常快。缺点依赖人眼在复杂板卡中元件密集飞线可能很短混杂在焊盘之间容易看漏。无法发现“假连通”这是最致命的问题。如果两根线看似连接但实际上没有电气节点比如走线终点离焊盘还有0.1mm没接到或者走线只是从焊盘上“掠过”而未真正连接视觉上是看不出来的。效率低下不适合作为最终发布前的权威检查手段。注意单纯依赖此法风险很高。我曾在一个四层板项目中用此法“确认”没有飞线后发板结果回来发现一个LED的控制信号断路。原因是该飞线很短被两个大焊盘遮挡在关闭层显示时根本没注意到。从此我仅把它作为快速预览的辅助手段。2.2 规则检查法让DRC成为“铁面判官”这才是专业、可靠的方法。设计规则检查DRC不仅能检查间距、线宽其核心功能之一就是检查电气连接完整性。我们需要正确配置并运行它。核心设置位置Design-Rules... 打开规则设置对话框。我们需要关注的是Electrical电气规则 类别下的Un-Routed Net未布线网络规则和Un-Connected Pin未连接引脚规则后者在某些版本中可能归属于其他类别或名称略有不同。Un-Routed Net规则此规则检查整个板上是否存在网络Net没有被任何导线Track、过孔Via或铺铜Polygon完全连接。也就是说如果一个网络需要连接A、B、C三个点但布线只连接了A-B和A-C而B-C之间没有连接即使A-B和A-C的线已经布了只要这个网络在物理上未形成全连接就会被报错。Un-Connected Pin规则此规则更严格一些它检查每一个元件的引脚Pin是否都有物理导线与之连接。这对于发现那种“线画到焊盘边上了但没连上”的致命错误特别有效。如何启用检查通常这些规则在默认模板中已经存在并启用。你需要做的是确保在运行DRC时勾选了这些检查项。执行DRC的路径是Tools-Design Rule Check...。在弹出的DRC设置对话框中你需要确保在Rules To Check列表里找到Electrical下的Un-Routed Net和Un-Connected Pin或其他类似名称规则并确认其右侧的“在线”Online和/或“批量”Batch检查选项被勾选。执行与查看报告点击Run Design Rule Check。软件会遍历整个设计。检查完成后会生成一个.DRC的文本报告文件并自动在PCB界面上以高亮通常为绿色标记出所有违规Violation的位置。同时软件左下角的状态栏或独立的“Messages”面板会列出所有错误信息。你的主要工作界面将转移到这个错误列表和高亮显示上。3. 飞线检查的详细实操流程理解了核心思路后我们来看一个完整的、可复现的检查流程。假设你刚刚完成了一块STM32主控板的主要布线。3.1 检查前的准备工作在按下DRC按钮之前做好准备工作能让检查更顺畅结果更准确。保存并备份进行任何全局检查前先保存当前工作CtrlS。这是一个好习惯防止后续操作导致意外。整理显示按下L在视图配置中建议暂时关闭所有“机械层”Mechanical Layers和“其他层”Other Layers中不必要的项如“DRC错误标记层”DRC Error Markers如果之前有的话可以先关掉再打开以刷新。保持信号层、丝印层、焊盘层Multi-Layer的开启让画面干净。确认网络连接确保你的原理图SCH和PCBPCBDOC之间的网络表Netlist是最新且同步的。最保险的方法是在PCB界面使用Design-Update Schematics in [ProjectName]或Design-Import Changes From [ProjectName].PRJPCB取决于版本确保所有元件和网络变更已从原理图同步到PCB。没有这一步检查可能基于一个过时的网络连接状态。3.2 执行DRC检查并解读报告现在打开Tools-Design Rule Check...。配置检查选项在弹出的对话框中通常有两个主要标签页“Report”报告选项和“Rules To Check”待检查规则。在“Report”页我习惯勾选“创建报告文件”Create Report File和“在板上标记违规”Stop when violations found 可以不用勾我们希望看到全部错误。在“Rules To Check”页这是关键。滚动列表找到Electrical部分。确保Clearance间距、Short-Circuit短路、Un-Routed Net、Un-Connected Pin这几项的“批量”Batch列被勾选。其他如布线宽度、过孔尺寸等规则可根据需要勾选。运行检查点击“Run DRC”。软件会进入计算状态对于复杂板卡可能需要几秒到几十秒。完成后会自动打开一个文本报告.DRC文件并跳转到“Messages”面板。解读错误信息我们重点看Un-Routed Net和Broken-Net Constraint错误。典型的Un-Routed Net错误报告会列出所有未完全布通的网络名称。例如Violation - Net NetC12_2 is not completely routed.这直接告诉你“NetC12_2”这个网络有线没布完。典型的Broken-Net Constraint错误这是未布线网络错误的一种更详细的表现形式也是输入材料中用户遇到的核心问题。报告格式类似Processing Rule: Broken-Net Constraint ( (On the board ) ) Violation Net XTAL2 is broken into 3 sub-nets. Routed To 0.00% Subnet : Y1-1 Subnet : C25-1 Subnet : U1-49这条信息的解读至关重要它告诉我们一个名为XTAL2的网络在PCB上应该连接三个点子网晶振Y1的第1脚、电容C25的第1脚、芯片U1的第49脚。但是软件检测到这三个点之间没有通过任何导线、过孔或铺铜实现全部的电气连接。它们可能彼此孤立也可能只有部分连接比如Y1-1连到了C25-1但都没连到U1-49。Routed To 0.00%表示连通率为0%即完全没连上。有时可能是33.3%三节点中连了一对、50%四节点中连了两对等。3.3 定位与修复未连接网络拿到错误报告后下一步是精准定位并修复。高亮定位在“Messages”面板或DRC报告文件中双击任意一条Un-Routed Net或Broken-Net Constraint错误。PCB编辑窗口会自动缩放并高亮显示该错误所涉及的所有对象焊盘、可能存在的部分走线并以其他颜色如暗色淡化显示板上的其他对象。这是最快速的定位方式。分析可能的原因原因A完全遗漏布线。这是最简单的情况高亮后你能清楚地看到几个孤零零的焊盘中间没有任何走线。解决方法就是手动或自动布线将其连接。原因B“假连接”或“虚连”。这是高发区也是肉眼检查难以发现的。表现为走线未连接到焊盘中心走线Track的终点停在了焊盘Pad的边缘没有延伸到焊盘的中心孔即电气节点。在软件看来它们没有建立电气连接。修复使用M-Move或直接拖动走线端点使其与焊盘中心重合或者重新布线。走线从焊盘上“掠过”走线为了拐弯路径穿过了焊盘图形但没有在焊盘中心形成节点。修复同上确保走线在焊盘中心有节点通常表现为走线端点有一个小的“×”与焊盘中心重合。使用错误的层比如一个贴片焊盘在顶层而你画的线在底层且没有用过孔打下去连接。修复在焊盘处添加过孔并连接。原因C原理图与PCB封装引脚不匹配。正如输入材料中提到的原理图里二极管引脚是1, 2但PCB封装里对应引脚名是A, K。如果网络表基于原理图引脚编号1,2生成而PCB封装使用A, K软件就无法正确建立网络连接导致飞线“消失”或连接错误。修复统一原理图符号和PCB封装的引脚标识Designator。通常修改PCB封装将A, K改为1, 2并更新到PCB。修复后的复查修复一个错误后建议局部重新运行DRC或整体运行一次。因为有时连接一个网络可能会影响到其他网络的连通状态虽然不常见。更严谨的做法是全部修复后执行一次完整的DRC。4. 进阶技巧与深度排查指南掌握了基本流程下面这些从实际项目中总结的进阶技巧能帮你更快地定位那些“诡异”的未连接错误。4.1 利用“网络管理器”进行全局分析除了DRCProtel/Altium的“网络管理器”Design-Netlist-Edit Nets... 或在PCB面板中选择“Nets”视图是一个强大的辅助工具。查看网络状态在网络列表里你可以看到每个网络的“连接性”状态。已完全布通的网络通常有特殊标识如对勾而未布通的网络则没有。你可以直接在这里筛选出所有“未布线”的网络。高亮整个网络在列表中选择一个可疑网络点击“Zoom”或“Select”软件会高亮该网络的所有元素焊盘、已布线段。如果应该连接的几个焊盘没有被高亮在一起或者高亮后发现它们之间缺少走线问题就一目了然。检查网络成员确认该网络下应该包含的元件引脚是否齐全。有时原理图连线错误会导致某个引脚本应属于这个网络却没有加入PCB上自然永远布不通。4.2 处理“Broken-Net Constraint”的经典场景排查针对输入材料中用户遇到的Broken-Net Constraint问题我们可以系统性地排查场景一走线未真正连接。如之前所述双击错误高亮后仔细检查Y1-1、C25-1、U1-49这三个焊盘。使用CtrlH或E-Select-Connected Copper点选其中一段走线看是否能选中整个预期的连接路径。如果只能选中一部分说明连接断了。放大检查焊盘与走线的连接点确保没有微小的间隙。场景二使用了“禁止布线区”。如果在晶振或电容的焊盘和芯片引脚之间不小心放置了一个“禁止布线”Keep-Out区域或一块铺铜且该铺铜与此网络未连接走线可能无法穿过导致网络被物理分割。检查高亮区域是否有此类对象。场景三多层板的内层连接遗漏。如果XTAL2网络的一部分走线在顶层另一部分在底层而连接它们的过孔Via丢失或没有网络属性就会形成“子网”。确保过孔两端分别与顶层和底层的走线正确连接并且过孔自身的网络属性是正确的通常放置时自动继承。场景四元件封装问题。确认晶振Y1、电容C25的封装焊盘编号与原理图引脚编号一致。特别检查晶振有时四脚贴片晶振的封装其中两个脚是接地或悬空的但在原理图符号里可能被定义为1、2脚有用3、4脚无用。如果PCB封装把电气连接错误的对应到悬空脚上就会导致网络断裂。解决方法对比原理图符号和PCB封装的引脚映射Pin Map。4.3 使用“布线完成度”报告在较新版本的Altium Designer中有一个更直观的功能Reports-Board Information在弹出窗口中选择“Report”按钮在报告设置中勾选“Routing Information”。它会生成一个报告列出所有网络的布线完成状态包括已布通和未布通的数量和百分比以及未布通网络的详细列表。这比DRC报告更侧重于统计适合在项目后期做整体验收。5. 常见问题与疑难杂症排查实录即使按照上述流程操作有时还是会遇到一些令人困惑的情况。这里记录几个我亲身踩过的“坑”及其解决方案。5.1 问题DRC没有报告错误但板子做回来发现开路可能原因与排查检查规则是否真正启用回到DRC设置确认Un-Routed Net和Un-Connected Pin规则前面的复选框确实勾选了。有时软件升级或配置文件出错规则会被意外禁用。检查规则适用范围确保规则的应用范围Where the First object matches是All或Net Class包含了你的所有网络。如果错误地设置为某个特定网络类其他网络就不会被检查。“假阴性”连接这是最隐蔽的。例如两个焊盘通过一块没有正确分配网络的铺铜默认为No Net连接在了一起。视觉上它们被铜皮连着但电气上由于铺铜无网络所以是断开的。DRC检查的是网络连接它看到铺铜是No Net就不会认为它连接了两个焊盘。排查检查任何连接焊盘之间的铺铜右键点击铺铜选择“Properties”确认其“Net”属性是正确的网络名而不是“No Net”。盲埋孔或特殊焊盘对于使用盲埋孔Blind/Buried Via或焊盘有非标准形状如槽孔的设计软件在计算连接性时偶尔会有Bug。排查单独高亮该网络逐段检查连接特别是过孔和焊盘的连接处。必要时在问题点附近手动放置一个标准过孔和短线来“强行”连接。5.2 问题飞线时有时无或者自动布线器拒绝连接某个网络可能原因与排查布线规则冲突该网络所属的“布线宽度规则”Width或“布线优先级”Routing Priority设置可能与实际物理空间冲突。例如规则要求该网络线宽为0.5mm但两个焊盘之间的间隙只有0.4mm布线器就无法布线。排查检查该网络的布线规则或尝试手动用更细的线连接看是否成功。存在“板切割”或“禁止布线区”在两个焊盘之间可能存在一个你未注意到的板框切割线Board Cutout或禁止布线区Keep-Out Layer物理上阻断了布线路径。排查关闭所有层只打开机械层和禁止布线层检查高亮网络路径上是否有障碍物。元件或焊盘被锁定如果网络中的一个元件或焊盘被锁定Locked自动布线器可能会跳过它。排查双击元件或焊盘在属性框中查看“Locked”选项是否被勾选。5.3 问题如何高效处理大量未连接飞线当接手一个布线完成度很低的板子面对成百上千条飞线时可以这样做优先处理电源和地网络使用“网络管理器”或“PCB面板”筛选出GND和VCC等电源网络。对于这些网络优先考虑用铺铜Polygon Pour来连接效率远高于一根根走线。放置铺铜并正确分配网络后重新DRC这些网络的错误会大量减少。按功能模块分区处理利用Room如果原理图用多通道设计或手工框选将板子按功能模块如MCU核心、电源部分、传感器接口分开。一次只关注一个区域完成该区域内所有网络的布线然后再处理下一个区域。这能降低认知负担。善用自动布线器作为辅助不要指望自动布线器完成全部工作但它可以作为“连接器”。设置严格的规则线宽、间距然后对某个区域或某个特定网络类如数据线进行自动布线。完成后你再手动优化走线路径和美观度。这能快速解决大量简单的连接。实操心得在最终发板前我强制自己执行一个“终检三部曲”1) 运行全套电气DRC包括未连接网络、短路、间距确保零错误2) 单独运行一次“Un-Connected Pin”检查这是抓“虚连”的最后一道防线3) 生成并仔细阅读“布线完成度报告”确认100%连接。这三步完成后心里才真正有底。PCB设计细节决定成败而连接性检查是所有细节的基石。多花十分钟检查可能省下的是数周的板厂重做和项目延期时间。