1. 为什么网络管理器值得你花十分钟掌握
画PCB这件事,画到后面你会发现,真正耗时间的往往不是布线本身,而是那些重复性的属性调整。尤其是电源网络——GND、VCC、VDD、3V3、5V这些,一块板子上动辄几百个节点,每个节点的线宽、过孔尺寸、铺铜连接方式、甚至网络颜色,如果一个个手动去改,那真是画到怀疑人生。
Altium Designer里有一个被很多人忽略的功能模块,叫网络管理器(Net Manager),藏在菜单栏的Panels里,或者你可以直接在右下角面板区域找到它。这个工具的核心价值就一句话:把整块板子上所有网络的属性集中到一个表格里,批量查看、批量修改、批量应用。你不用再去PCB编辑器里一个个点选网络、右键改属性,也不用写脚本,直接在表格里像操作Excel一样改完,一键同步到整个工程。
我拿一个真实的案例来说。前段时间做一块四层板,电源部分有GND、+5V、+3.3V、+12V、VREF、AGND等七八个电源网络,信号网络大概六十多个。客户中途要求把所有电源网络的走线宽度从原来的0.3mm统一改成0.5mm,过孔从0.3/0.6改成0.4/0.8,同时GND网络的铺铜连接方式要从热焊盘改成全连接。如果手动改,光是找齐所有电源网络的走线就得花半小时,改完还得逐个检查有没有漏。用网络管理器,整个过程不到三分钟。
这篇文章适合谁看?如果你已经会用Altium Designer画简单的双层板,知道什么是网络、什么是走线宽度、什么是过孔,但还没用过网络管理器,那这篇就是写给你的。如果你已经是老手,也可以看看我在批量修改过程中踩过的坑和总结的参数对照表,说不定能帮你省下几次返工的时间。
注意:网络管理器修改的是网络级别的属性,不是单个走线段的属性。也就是说,你改的是“这个网络默认应该用什么线宽、什么过孔”,而不是“这一根线现在是什么宽度”。理解这一点很关键,后面会详细展开。
2. 网络管理器的核心机制与适用边界
2.1 它到底改的是什么
很多人第一次打开网络管理器,看到里面有一堆列:Name、Color、Visible、Width、Via、Layer、Topology、Priority……会有点懵。我刚开始也以为这里改的线宽会直接作用到已经画好的走线上,结果发现不是。
网络管理器里的属性,本质上是网络类(Net Class)的默认规则和网络级别的显示/连接属性。具体来说,它主要影响三类东西:
第一类是网络类规则。Altium Designer里有一个“Net Class”的概念,你可以把若干个网络归到一个类里,比如“Power”类包含所有电源网络,“DiffPair”类包含所有差分对。网络管理器可以让你直接在这里创建类、分配网络、修改类的默认线宽和过孔尺寸。这些修改会同步到Design Rules里的对应规则。
第二类是网络显示属性。比如网络颜色、是否可见、在PCB上的高亮颜色等。这个在调试阶段特别有用,你可以把GND设成灰色、VCC设成红色、信号线设成绿色,一眼就能看出哪根线属于哪个网络。
第三类是网络拓扑和优先级。比如设置某个网络走线的拓扑结构(最短路径、菊花链等),或者设置网络的优先级(在多网络交互时哪个优先)。
提示:网络管理器里改的线宽和过孔,不会自动应用到已经布好的走线上。你需要配合“Design » Rules”里的规则,或者使用“Tools » Update From PCB Libraries”之类的操作来同步。这一点后面会专门讲。
2.2 什么时候该用它,什么时候不该用
网络管理器最适合的场景是批量、统一、规则性的修改。比如:
- 所有电源网络统一线宽和过孔
- 所有信号网络统一颜色以便区分
- 把某个网络从一个类移到另一个类
- 批量修改网络的铺铜连接方式(热焊盘 vs 全连接)
- 批量设置网络的差分对属性
不适合的场景也很明确:
- 修改单个走线的宽度(应该用PCB编辑器里的属性面板)
- 修改某个焊盘的连接方式(应该用Pad属性)
- 修改某个过孔的尺寸(应该用Via属性)
我见过有人试图用网络管理器去改一个已经布好的差分对的线宽,结果发现改完没反应,就是因为差分对的线宽是由差分对规则控制的,不是网络管理器直接控制的。这个坑后面会详细说。
2.3 打开网络管理器的几种方式
在Altium Designer里,打开网络管理器有几种方式,我习惯用第一种:
- 菜单栏Panels » Net Manager(不同版本可能叫法略有差异,有的版本在View » Panels » Net Manager)
- 在PCB编辑器的右下角面板区域,点击Panels按钮,勾选Net Manager
- 快捷键方式:部分版本支持自定义快捷键,我一般设成Ctrl+Shift+N
打开之后,你会看到一个表格,左侧是网络列表,右侧是各种属性列。表格上方有几个选项卡:Nets、Classes、Differential Pairs、Rooms等。我们主要用的是Nets和Classes这两个。
注意:网络管理器里的修改是实时生效的,但只对之后的操作生效。已经布好的走线不会自动更新。所以正确的流程是:先改网络管理器,再布线;或者改完之后用规则同步工具批量更新。
3. GND/VCC批量优化的完整实操流程
3.1 第一步:梳理网络清单,确定哪些要改
在动手之前,先做一件事:把板子上所有网络列出来,分类。我一般会分成三类:电源网络、地网络、信号网络。
电源网络:+5V、+3.3V、+12V、VCC、VDD、VBAT等 地网络:GND、AGND、DGND、PGND等 信号网络:其余所有
为什么要分类?因为不同类别的网络,线宽、过孔、铺铜连接方式的要求完全不同。电源网络要粗线宽、大过孔、全连接;地网络要更粗的线宽、更多过孔、全连接;信号网络要细线宽、小过孔、热焊盘。
我拿一个实际案例的参数来举例。这是一块四层板,电源部分的最大电流是2A,铜厚是1oz(约35μm)。根据PCB线宽电流对照表的经验公式,1oz铜厚下,1mm线宽大约能承载1A电流(温升10℃以内)。所以2A电流至少需要2mm线宽,但实际布线时考虑到散热和余量,我一般会留50%的余量,也就是3mm左右。不过3mm太宽了,会影响布线密度,所以实际用的是2mm线宽,配合多个过孔来分流。
过孔方面,0.4mm内径、0.8mm外径的过孔,单个载流能力大约在1A左右(取决于铜厚和孔壁镀铜质量)。所以2A电流至少需要2-3个过孔并联。我一般会放4个,留足余量。
这些参数不是拍脑袋定的,而是根据电流大小、铜厚、温升要求算出来的。下面这张表是我常用的参考:
| 铜厚 | 线宽 | 载流能力(温升10℃) | 过孔内径 | 过孔外径 | 单个过孔载流 |
|---|---|---|---|---|---|
| 1oz | 0.5mm | 约0.5A | 0.3mm | 0.6mm | 约0.5A |
| 1oz | 1.0mm | 约1.0A | 0.4mm | 0.8mm | 约1.0A |
| 1oz | 2.0mm | 约2.0A | 0.5mm | 1.0mm | 约1.5A |
| 2oz | 0.5mm | 约1.0A | 0.3mm | 0.6mm | 约1.0A |
| 2oz | 1.0mm | 约2.0A | 0.4mm | 0.8mm | 约2.0A |
提示:这张表是经验值,实际载流能力还受环境温度、散热条件、走线长度等因素影响。关键电源路径建议留足余量,或者用PCB热仿真工具验证。
3.2 第二步:在网络管理器里创建网络类
打开网络管理器,切换到Classes选项卡。你会看到默认已经有一些类,比如All Nets、Power、Signal等。如果没有,可以右键空白处选择Add Class。
我一般会创建三个类:
- Power:包含所有电源网络
- GND:包含所有地网络
- Signal:包含其余信号网络
创建类的操作很简单:右键 » Add Class,输入类名,然后在左侧网络列表里把对应的网络拖进去,或者右键网络选择Add to Class。
这里有一个细节:网络类是可以嵌套的。比如你可以创建一个All Power类,里面包含Power和GND两个子类。这样在设置规则时,可以针对All Power统一设置,也可以针对子类单独设置。我一般不用嵌套,因为容易搞混,直接分三个平级的类更清晰。
创建完类之后,切换到Nets选项卡,你会看到每个网络后面多了一列Class,显示它属于哪个类。确认一下分类是否正确,特别是GND和AGND这种容易混淆的网络。
3.3 第三步:批量修改线宽和过孔
这是核心步骤。在网络管理器的Nets选项卡里,你可以直接编辑每个网络的Width和Via列。但更高效的方式是:先选中多个网络,然后批量修改。
操作方法是:按住Ctrl键,在左侧网络列表里点选多个网络;或者按住Shift键,点选一个范围。选中之后,在右侧的Width或Via列上右键,选择Edit,输入新的值,回车。所有选中的网络会同时更新。
但这里有一个坑:网络管理器里改的线宽和过孔,只是改了网络的默认属性,不会自动应用到Design Rules里。你需要手动去Design » Rules里确认对应的规则是否更新了。
具体来说,Altium Designer里的线宽规则是这样的:Design » Rules » Routing » Width。里面会有一条规则叫Width,作用范围是All,默认线宽是0.25mm。如果你在网络管理器里把Power类的线宽改成2mm,你需要去Rules里新建一条规则,作用范围选Net Class » Power,线宽设成2mm。或者直接修改现有规则的作用范围。
我一般的做法是:先在网络管理器里把类分好,然后去Rules里针对每个类建一条线宽规则。这样规则清晰,后续维护也方便。
过孔规则类似:Design » Rules » Routing » Via Style。针对Power类建一条规则,过孔尺寸设成0.4/0.8;针对Signal类建一条规则,过孔尺寸设成0.3/0.6。
注意:如果你在Rules里已经有一条All的规则,又新建了一条Power的规则,Altium Designer会优先应用更具体的规则。也就是说,Power类的网络会用Power规则,其余网络用All规则。这个优先级机制要搞清楚,否则会出现“改了没反应”的情况。
3.4 第四步:设置铺铜连接方式
GND网络的铺铜连接方式是一个重点。默认情况下,Altium Designer的铺铜对GND焊盘用的是热焊盘连接(Thermal Relief),也就是焊盘周围有一圈隔热间隙,通过四根细线连接到铺铜。这种方式的好处是焊接时散热慢,手工焊接容易;坏处是载流能力弱,高频性能差。
对于大电流的GND网络,我一般会改成全连接(Direct Connect),也就是焊盘直接和铺铜连成一片。这样载流能力强,但焊接时需要更大的热风枪功率或者烙铁温度。
设置方法:在网络管理器里选中GND网络,在Plane列(或者Polygon Connect Style列,不同版本叫法不同)里选择Direct Connect。然后去Design » Rules » Plane » Polygon Connect Style里确认规则是否更新。
这里有一个细节:不同封装的焊盘可能需要不同的连接方式。比如QFN封装的GND焊盘,全连接会导致焊接困难,因为热量散得太快。我一般会对QFN的GND焊盘保留热焊盘连接,但对电源模块的大焊盘用全连接。这个需要在Rules里针对不同的封装或者不同的焊盘尺寸建多条规则。
3.5 第五步:同步到PCB并验证
网络管理器和Rules改完之后,回到PCB编辑器,你需要做一次规则同步。具体操作是:Tools » Design Rule Check,或者直接按T+D快捷键。DRC会检查所有走线是否符合新的规则,如果有不符合的,会在Messages面板里列出来。
但DRC不会自动修改已经布好的走线。你需要手动或者用工具批量更新。Altium Designer有一个功能叫Tools » Update From PCB Libraries,但那个主要是更新封装。批量更新走线宽度,我一般用两种方式:
第一种是手动重布。对于关键电源路径,我宁愿手动重布,确保走线质量。反正电源网络数量不多,重布也就几分钟的事。
第二种是用脚本批量修改。Altium Designer支持Delphi Script和VBScript,你可以写一个简单的脚本,遍历所有走线,如果网络属于Power类,就把线宽改成2mm。这个脚本网上有很多现成的,改改就能用。
我一般用第一种,因为电源路径的走线质量直接影响板子的稳定性,手动重布更放心。信号网络如果只是改颜色,那不需要重布,直接改显示属性就行。
提示:改完网络管理器和Rules之后,建议先做一次DRC,看看有没有规则冲突。然后再手动重布关键路径。最后再做一次DRC,确认所有走线都符合规则。
4. 常见问题与排查技巧实录
4.1 改了网络管理器,PCB上没反应
这是最常见的问题。原因通常有三个:
原因一:只改了网络管理器,没改Rules。网络管理器里的Width和Via列,改的是网络的默认属性,但实际布线时用的是Rules里的规则。如果Rules里没有对应的规则,或者规则的作用范围不对,改了也没用。
原因二:Rules的优先级不对。如果你有一条All的规则和一条Power的规则,Altium Designer会优先应用更具体的规则。但如果All规则的优先级被手动调高了,那Power规则就不生效了。检查方法是:在Rules面板里,看每条规则前面的优先级数字,数字越小优先级越高。
原因三:走线已经布好了,规则不会自动应用。这是最容易被忽略的。Rules改完之后,只对之后布的线生效。已经布好的线需要手动重布或者用脚本更新。
排查步骤:先确认Rules里有没有对应的规则,再看优先级对不对,最后确认走线是否需要重布。
4.2 差分对线宽改不了
差分对的线宽是由Design » Rules » Routing » Differential Pairs Routing里的规则控制的,不是网络管理器直接控制的。你需要在网络管理器里把差分对网络标记为差分对(在Differential Pairs选项卡里),然后去Rules里设置差分对的线宽和间距。
我踩过的坑是:在网络管理器里改了差分对网络的Width,结果没反应。后来才发现差分对有自己的规则,优先级比普通线宽规则高。所以改差分对线宽,要去差分对规则里改。
4.3 GND铺铜连接方式改了但没生效
GND铺铜连接方式受Design » Rules » Plane » Polygon Connect Style控制。如果你在网络管理器里改了,但Rules里没更新,那铺铜还是用原来的连接方式。
另外,铺铜本身有一个属性叫Connect Style,可以在铺铜的属性面板里单独设置。如果铺铜的属性面板里手动指定了连接方式,那它会覆盖Rules里的设置。所以检查的时候,既要看Rules,也要看铺铜本身的属性。
4.4 网络管理器里找不到某个网络
有时候你会发现某个网络在网络管理器里找不到。原因通常是:这个网络在原理图里没有对应的网络标签,或者网络标签拼写错误。比如你在原理图里写的是VCC_3V3,但在PCB里看到的是VCC3V3,那网络管理器里可能只显示其中一个。
解决办法:回到原理图,用Project » Compile PCB Project重新编译,然后Design » Update PCB Document更新到PCB。这样网络列表会同步。
4.5 批量修改后DRC报错一堆
批量修改线宽和过孔后,DRC报错是正常的,因为已经布好的走线不符合新规则。这时候不要慌,先看报错类型:
- 如果是Width Constraint报错,说明走线宽度不符合规则,需要重布或者用脚本更新。
- 如果是Via Style报错,说明过孔尺寸不符合规则,需要替换过孔。
- 如果是Clearance报错,说明改线宽后走线间距不够了,需要调整布局。
我一般的处理顺序是:先处理Clearance报错(因为间距不够会导致短路风险),再处理Width和Via报错。处理完之后再做一次DRC,直到没有报错。
4.6 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 改了网络管理器没反应 | Rules没更新或优先级不对 | 检查Rules面板 | 新建或修改对应规则 |
| 差分对线宽改不了 | 差分对有独立规则 | 检查Differential Pairs规则 | 在差分对规则里修改 |
| GND铺铜连接方式没变 | 铺铜属性覆盖了Rules | 检查铺铜属性面板 | 清除铺铜的手动设置 |
| 找不到某个网络 | 原理图未编译或标签错误 | 重新编译工程 | 修正标签后更新PCB |
| DRC报错一堆 | 已布走线不符合新规则 | 查看Messages面板 | 重布或脚本更新走线 |
| 过孔改不了 | Via Style规则未更新 | 检查Via Style规则 | 新建或修改过孔规则 |
5. 几个让我省下大量时间的实操心得
5.1 先分类,再动手
我刚开始用网络管理器的时候,一上来就急着改线宽,结果改到一半发现有些网络分错了类,又得回头重新分。后来我养成了一个习惯:先花五分钟把网络分类分好,确认无误后再动手改属性。这五分钟的投入,能省下后面半小时的返工时间。
分类的时候,我一般会在原理图里就用网络类标签(Net Class Directive)把网络分好。这样编译之后,PCB里的网络类会自动同步,不需要在网络管理器里手动分。具体操作是:在原理图里放置Net Class Directive(快捷键P+C),然后双击设置类名。这样效率更高,也不容易出错。
5.2 用颜色区分网络,调试效率翻倍
网络管理器里的Color列,很多人忽略,但我觉得这是最实用的功能之一。我一般会把电源网络设成红色、地网络设成灰色、关键信号设成蓝色、普通信号设成绿色。这样在PCB编辑器里,一眼就能看出哪根线属于哪个网络。
特别是在调试阶段,如果某个电源网络有问题,你可以直接把它的颜色改成亮黄色,然后在PCB上高亮显示,快速定位所有相关的走线和焊盘。这个技巧我在排查电源短路的时候用过很多次,比一个个点选网络快多了。
5.3 过孔不要只放一个
这是电源布线的一个基本原则:大电流路径上的过孔,至少放两个,最好放四个。原因很简单:单个过孔的载流能力有限,而且如果过孔加工质量不好(比如孔壁镀铜不均匀),载流能力会大打折扣。放多个过孔并联,既能分流,又能降低单个过孔失效的风险。
我一般会在电源焊盘旁边放四个过孔,呈正方形排列,间距1mm左右。这样既美观,又实用。过孔尺寸用0.4/0.8,配合2mm线宽,2A电流绰绰有余。
5.4 改完记得做DRC,但不要迷信DRC
DRC能查出大部分规则冲突,但查不出所有问题。比如走线的载流能力、散热性能、高频信号完整性,这些DRC都查不出来。所以改完网络管理器和Rules之后,除了做DRC,还要手动检查关键电源路径。
我一般会重点检查三个地方:电源输入端的走线宽度、电源模块周围的过孔数量、GND铺铜的完整性。这三个地方如果没问题,板子的电源部分基本就稳了。
5.5 保存一份规则模板
如果你经常画类似类型的板子,建议把调好的Rules保存成模板。Altium Designer支持导出和导入规则:在Rules面板里右键 »Export Rules,保存成.RUL文件。下次画新板子的时候,直接Import Rules,省去重新设置的时间。
我一般会按板子类型保存不同的规则模板:双层板、四层板、六层板、电源板、高速板。这样下次画同类板子的时候,直接导入模板,改改参数就能用,效率提升非常明显。
提示:规则模板导入后,记得检查一下作用范围(Net Class、Layer等)是否和当前板子匹配。有时候模板里的类名和当前板子的类名不一致,会导致规则不生效。
5.6 网络管理器配合过滤器使用
网络管理器里的网络列表支持过滤器。你可以在列表上方的搜索框里输入关键词,比如GND,列表就只显示包含GND的网络。这个功能在板子网络很多的时候特别有用,不用一个个翻。
我一般会先用过滤器筛选出电源网络,批量改完线宽和过孔,再筛选出信号网络,批量改颜色。这样操作起来更有条理,也不容易漏掉某个网络。
5.7 注意版本差异
Altium Designer的版本更新比较频繁,不同版本里网络管理器的位置和叫法可能略有差异。比如有些版本叫Net Manager,有些版本叫PCB » Nets。功能基本一致,但界面布局可能不同。
我用的比较多的版本是AD20和AD21,这两个版本里网络管理器的功能已经比较完善了。如果你用的是更早的版本(比如AD10、AD13),可能有些功能不支持,比如批量修改过孔尺寸。这种情况下,建议升级到较新的版本,或者用脚本替代。
5.8 脚本是终极武器
如果你经常需要做复杂的批量修改,比如“把所有属于Power类且线宽小于1mm的走线改成2mm”,那网络管理器可能不够用,需要写脚本。Altium Designer支持Delphi Script和VBScript,你可以写一个简单的脚本,遍历所有走线,根据条件修改属性。
我写过一个脚本,功能是:遍历所有走线,如果网络属于Power类,就把线宽改成2mm;如果网络属于GND类,就把线宽改成3mm。脚本不长,大概几十行,但省下了大量手动修改的时间。如果你有兴趣,可以在Altium Designer的DXP » Run Script里运行脚本,或者把脚本绑定到快捷键上。
脚本的写法这里不展开,网上有很多现成的例子。关键是要理解Altium Designer的API结构:PCBServer是入口,Board是当前板子,Iterator用来遍历对象。掌握这几个概念,就能写出实用的脚本。
6. 从GND/VCC优化延伸出去的几个思路
网络管理器的价值不仅限于GND和VCC的批量修改。我在实际项目中还用它做过这些事情:
批量修改网络颜色用于调试。在调试阶段,把不同功能的网络设成不同颜色,比如时钟信号设成紫色、复位信号设成橙色、中断信号设成红色。这样在示波器或者逻辑分析仪上抓波形的时候,可以快速对应到PCB上的走线。
批量设置差分对。在Differential Pairs选项卡里,可以批量创建差分对、设置差分对的线宽和间距。对于USB、HDMI、LVDS这类差分信号,这个功能非常实用。
批量修改网络的铺铜连接方式。除了GND,其他电源网络也可以设置铺铜连接方式。比如+5V的铺铜,我一般也用全连接,确保载流能力。
批量设置网络的拓扑结构。对于DDR内存这类需要特定拓扑的网络,可以在网络管理器里设置拓扑结构(比如Fly-By、T型等)。这个功能在高速数字设计里很有用。
批量修改网络的优先级。在多网络交互的场景下,比如电源网络和信号网络交叉的地方,可以设置网络的优先级,确保关键网络优先布线。
这些功能我并不是每个项目都用,但知道它们存在,在需要的时候能快速找到解决方案。这也是我觉得网络管理器值得花时间掌握的原因:它不一定每天用,但用的时候能省下大量时间。
注意:网络管理器里的修改是全局性的,改之前建议先备份工程。特别是批量修改线宽和过孔的时候,如果改错了,恢复起来比较麻烦。我一般会在修改前用File » Save As保存一个副本,或者用版本控制工具(比如Git)管理工程文件。
最后再分享一个小技巧:如果你不确定某个修改会不会影响其他网络,可以先在一个小范围里测试。比如先选中一个电源网络,改完线宽和过孔,布几根线看看效果。确认没问题后,再批量应用到所有电源网络。这样风险可控,也不容易出错。