☰
AD22二层板PCB设计:Net Class与Design Rules配置指南
2026/10/7 9:49:38 网站建设 项目流程

画2层板的人多半都遇到过这种场景:同样的走线习惯,换一块板子就冒出一堆间距报错,电源网和信号网挤在同一条线宽里,想改个参数又得在菜单里翻半天。这类问题大多数不是手艺不到家,而是开工之前没把Class和规则框架理顺。AD22(Altium Designer 22)的PCB规则体系其实相当成熟,只要在动手走线前花二十分钟把网络类(Net Class)和设计规则(Design Rules)搭好,整块2层板从布局到出Gerber都会顺很多。这篇就结合我这些年用AD22做2层板的经验,聊清楚Class怎么分、规则怎么设、Query语法怎么写,以及我踩过、也见过别人踩的那些坑。

1. 2层板为什么值得先做Class和规则框架

1.1 2层板和多层板在规则上的本质差别

很多人从4层板切到2层板,第一反应是"层少了好画",但真正做下来会发现,2层板对规则的前期规划要求反而更高。原因很直接:4层板通常有完整的地平面和电源平面,回流路径、阻抗、串扰这些大半由叠层结构兜底,规则的容错空间比较大。而2层板只有顶层和底层两面铜,地平面往往只有一个不完整的铺铜区域,信号回流路径被迫和走线挤在同一平面上。

这就带出三个连锁反应。第一,间距规则必须收得更紧,因为顶层走线和底层走线是空间上正对的两面,任何一面出现间距违规,DRC都会直接报出来。第二,线宽规则要分得比多层板更细,2层板没有内电层帮你分流,电源网络的载流全部压在表层铜皮上,线宽算错就是发热、压降甚至烧板。第三,铺铜和过孔规则必须提前定好,否则你画到一半改一次过孔尺寸,几百个孔要逐个替换,那种返工体验我不想再体验第二次。

换句话说,多层板可以依赖叠层"兜底",2层板必须靠规则"守住"。这就是为什么我说2层板的规则框架比多层板更值得先做——它不是锦上添花,而是设计能不能一次成功的底线。

1.2 先立规矩再走线的工作流

我现在的固定流程是这样的:原理图完成后,先在原理图里把网络按功能打上Net Class参数,同步到PCB;然后在PCB里打开Design » Classes确认Class划分,再进Design » Rules把间距、线宽、过孔、铺铜这几大类规则一次性配齐;最后才开始布局、布线。整个前期准备大概二十分钟,但它省下的返工时间通常是几倍甚至十几倍。

这套顺序背后的逻辑是"规则驱动设计"。AD22的在线DRC是实时跑的,你在走线时它就按当前规则检查。如果规则是错的、或者根本没设,你等于在一条没有标线的路上开车,撞了才知道。反过来,把规则先配好,走线过程中违规会立刻飘红,你能马上修正,而不是等布线做完再回头大面积返工。

还有一点常被忽略:规则框架同时也是团队沟通的载体。一块板的规则文件导出后就是一份可执行的"设计规范",比口头交代"电源线走粗点、间距留大点"精确得多。后面我会讲怎么把这套规则导出复用。

2. Net Class怎么分才顺手

2.1 按电气属性划分的通用思路

Class划分没有唯一标准,但有一条通用原则:按"电气属性相同或相近"来分组,而不是按"功能模块"来分组。这两者的区别很关键。按功能模块分(比如"电源模块""MCU模块"),会导致同一个Class里既有大电流的电源线又有微弱信号,线宽、间距根本没法统一设。而按电气属性分,同一个Class里的网络对线宽、间距的诉求是一致的,规则才能真正落地。

结合2层板的常见设计,我一般会分这么几类:

  • Power类:所有电源正极网络,比如VCC、3V3、5V、VBAT。这类网络需要更大的线宽。
  • GND类:地网络。铺铜连接方式、过孔密度都和其他网络不同,单独成类。
  • HighSpeed类:有速率要求的信号,比如SPI时钟、USB差分、时钟线。这类对间距和长度敏感。
  • Signal类:普通低速信号,GPIO、控制线之类。规则最宽松。
  • Analog类:模拟信号,比如运放输入、ADC参考。这类对噪声敏感,间距通常要留大。

分完之后你会发现,绝大多数2层板用这五类就够了。Class不是分得越多越好,分得太细反而增加维护成本。我见过有人把每个网络单独建一个Class,最后规则列表几十条,改一个参数牵一发动全身,纯属给自己找麻烦。

2.2 从原理图一键同步Class

手动在PCB里逐个添加网络到Class是最笨的办法,网络多的时候极易漏。更高效的做法是在原理图阶段就用Parameter Set把Class信息带上。

具体操作:在原理图中选中要归类的网络(或网络上的连线),执行Place » Directives » Parameter Set,把参数集放到该网络上,然后在参数集的属性里添加一个参数,Name填"NetClass",Value填你想要的目标类名,比如"Power"。多个网络要归到同一个Class,就重复放置参数集,Value保持一致即可。

做完之后,从原理图Update到PCB(Design » Update PCB Document),AD22在同步过程中会自动按照NetClass参数生成对应的类。这个机制的好处是双向可持续——以后原理图改了,重新同步,PCB里的Class成员会自动跟着更新,不会出现原理图和PCB网络分类对不上的情况。

注意:Parameter Set这个方式在AD22里默认会被编译检查。如果你的工程编译报"未使用的参数集"之类的警告,可以在Project Options里把对应的检查项关掉,或者干脆把它当作设计说明留着,不影响功能。

2.3 Class之间的交叉与优先级

这里有个新手容易掉进去的坑:一个网络可以同时属于多个Class,而Class之间没有继承关系。比如你把GND放进GND类,同时又误操作把它加进了Power类,那GND网络会同时匹配两条规则。这时候到底哪条生效?

答案是看规则优先级,而不是Class本身的顺序。这一点和某些其他EDA工具不同,AD22的规则匹配是"列表从上往下,第一条匹配的生效"。所以Class划分时就要有意识避免交叉,尤其是电源类和地类之间不要重叠,否则规则行为会变得难以预测。

如果你确实需要某个网络有特殊待遇(比如某根电源线比同类更粗),不要靠Class交叉来实现,正确做法是单独为这个网络写一条优先级更高的规则,Query用InNet('具体网络名')。后面第4节会详细讲Query怎么写。

3. 2层板核心设计规则逐条拆解

3.1 Electrical类:Clearance间距规则

Clearance(间距)是所有规则里最基础也最重要的一条,它定义了不同网络铜箔之间的最小距离。AD22里这条规则是"双对象"规则,也就是你要分别指定"第一个对象匹配什么"和"第二个对象匹配什么"。

2层板的间距我一般这么设:普通信号对普通信号,最小间距6mil(约0.15mm),这是多数普通工艺厂能做到的常规值;信号对电源、电源对电源,可以适当收紧到6mil;如果有高压或者对噪声特别敏感的部分,单独拉一条规则放到10mil以上。

关键是作用域的写法。默认那条"All to All"的规则我通常保留为最宽泛的兜底,比如设6mil,然后把特殊规则加在它上面。比如:

  • 规则1:InNetClass('GND') to All,间距6mil
  • 规则2:InNetClass('Power') to All,间距8mil
  • 规则3:All to All,间距6mil(兜底)

由于列表从上往下匹配,Power类网络会命中规则2,其余网络命中规则3。这里GND和Power如果间距诉求不同,就要注意谁在上面——优先级高的先匹配。

有个实测经验:2层板铺铜之后,GND铜皮会大面积覆盖,这时候GND到其他网络的间距规则会频繁触发。如果你把GND间距设得太小,铺铜会自动贴着信号线,视觉上很乱;设太大又浪费板面。我的经验值是普通2层板GND到信号走线留8mil,视觉和电气性能都比较平衡。

3.2 Routing类:Width线宽与载流计算

线宽规则是2层板的第二道生命线。AD22的Width规则同样支持按Class分别设置,每条规则可以设Minimum、Preferred、Maximum三个值。其中Preferred是走线默认采用的宽度,Min和Max是允许范围。

我通常的配置是:普通信号线Min 6mil、Preferred 8mil、Max 50mil;电源线根据电流单独算;地线可以跟信号线一致,因为在2层板里地主要靠铺铜,走线只是辅助连接。

电源线宽必须靠计算,不能拍脑袋。业内通用的估算依据是IPC-2221的载流公式,简化形式是:I = k × ΔT^0.44 × A^0.725,其中I是电流(安培),ΔT是允许温升(摄氏度,一般取10℃到20℃),A是导线横截面积(单位mil²),k是外层取0.048、内层取0.024。因为2层板的铜都在外层,取k=0.048。

按这个公式,1oz铜厚(35μm)下外层走线的载流能力大致如下表:

线宽截面积载流(ΔT=10℃)载流(ΔT=20℃)
0.2mm10.85 mil²0.74 A1.01 A
0.3mm16.27 mil²1.00 A1.35 A
0.5mm27.13 mil²1.45 A1.96 A
1.0mm54.25 mil²2.39 A3.25 A
2.0mm108.5 mil²3.95 A5.36 A

用法很直接:比如你的3V3电源要给整板供1.5A,选ΔT=10℃这一档,对照表格,0.5mm(约20mil)就能覆盖,但我一般会留一倍余量,直接走1.0mm(约40mil),压降小、温升低,2层板板面也够铺得下。别小看这点余量,2层板没有内层分流,一旦某个器件实际电流超出预估,粗线的容错空间就是救命的。

注意:上表是单根导线的理想载流,实际还要考虑走线周围铺铜的散热作用。如果电源线两边都有大面积铺铜,载流会更好;如果是悬空的孤线,温升会比表格值高,这时要再放大线宽。

3.3 Routing Via:过孔尺寸与孔环

2层板的过孔规则直接影响板子的可制造性和可靠性。Via Style这条规则控制过孔直径和孔径,通常我会定义两套:一套常规孔,孔径0.3mm、外径0.6mm;一套电源孔,孔径0.4mm、外径0.8mm,用来承载大电流。

为什么孔径和外径要成对定义?因为外径减去孔径的一半就是孔环(Annular Ring)。孔环太薄,钻孔偏位时容易破环,导致开路。多数板厂的工艺能力要求孔环单边不小于0.15mm,所以0.3mm孔径配0.6mm外径,孔环正好是0.15mm,属于安全底线。如果你有空间,0.3/0.7或0.3/0.8更保险。

过孔规则的Query写法上,电源过孔我会单独指定:InNetClass('Power'),然后绑定大的过孔样式;普通信号走默认过孔。另外过孔数量也值得规划,尤其是GND,2层板里地层回流依赖过孔把顶层地连到底层铺铜,过孔太稀会导致回流路径变长、地阻抗升高。我的经验是信号换层处旁边尽量就近放一个地过孔,关键位置做到"一换层一地孔"。

提示:过孔规则改起来很简单,但改完已经布好的线不会自动更新。所以务必在布线前定好过孔样式,避免布完线再调整。如果非要中途改,可以用Tools » Via Stitching或者批量选中过孔统一替换。

3.4 Plane和Polygon:铺铜相关规则

2层板很大程度靠铺铜实现地平面和电源平面,所以Polygon相关规则必须配好。这里最关键是Polygon Connect Style(铺铜连接样式),它决定铺铜和焊盘/过孔是怎么连接的。

默认情况下AD22用的是Relief Connect(花焊盘连接),焊盘通过四条细连接臂连到铜皮上。这么做的好处是焊接时散热慢、好焊,缺点是连接阻抗比直连高。对于GND,我通常对普通焊盘保留花焊盘连接,对过孔和测试点用Direct Connect(直连),因为过孔不需要焊接,直连能让地的连通性更好。对于电源铺铜,如果电流大,我会改成直连,减少连接处的压降。

另一条重要规则是Copper to Board Edge(铜到板边距离)。很多新手没设这条,结果铺铜直接铺到板边,切割时铜箔被划伤甚至短路。2层板的常规做法是铜到板边留0.5mm(约20mil),如果板子要做V-CUT拼板,距离还要再留大一点。

Polygon Repour(重新铺铜)也不是一次性动作。每改一次布局、挪一个器件,铺铜都要重新灌。我习惯在Design » Rules里把Polygon的清除间距和铺铜间距设置成一致,避免铺铜边缘出现"锯齿"或"孤岛"。发现孤岛铜(Island)要用Tools » Polygon Pours » Remove Islands处理掉,它们悬空没连接,是天线也是干扰源。

3.5 Mask与Silk:阻焊丝印规则

阻焊和丝印规则不影响电气,但影响焊接和装配,很多板子出问题恰恰出在这。阻焊关键参数是Solder Mask Expansion(阻焊开窗补偿),它决定阻焊层比焊盘大多少。设太小,阻焊会盖到焊盘上,导致上锡不良;设太大,相邻焊盘之间的阻焊桥(Solder Mask Bridge)会断,焊接时容易连锡。

我常用的值是:一般焊盘阻焊开窗单边扩4mil(约0.1mm)。对于引脚间距0.5mm以下的密脚器件,开窗要收到2mil甚至更小,保证阻焊桥能留住。这个值要看板厂工艺,有些板厂阻焊对位精度高,可以放宽,有些则要求更保守,提前问一下不吃亏。

丝印规则里,Silk to Solder Mask(丝印到阻焊)和Silk to Silk(丝印到丝印)是两条必设项。丝印压在焊盘上会被后续焊接工艺磨掉或者造成误判,所以丝印到阻焊我一般设4mil以上。丝印到丝印不能重叠,否则字符糊成一团,最小间距设4mil。另外注意丝印别压到过孔和测试点上。

4. Query语法与规则优先级实战

4.1 常用Query表达式速查

AD22的规则作用域是靠Query表达式描述的,掌握几个常用写法就能覆盖绝大多数场景。下面这张表是我平时最常用的:

Query表达式含义
All所有对象
InNet('VCC')指定单个网络
InNetClass('Power')指定某个网络类
InComponent('U1')指定某个器件
IsVia所有过孔
IsPad所有焊盘
IsTrack所有走线
HasFootprint('0805')指定封装的所有对象
(InNetClass('Power') or InNetClass('GND'))或逻辑组合

写Query时注意几点:网络名和类名要加引号;比较运算符、逻辑运算符(and、or、not)要小写或按AD的语法写;括号用来明确运算顺序,别省。我见过有人写InNet(VCC)没加引号,规则直接不匹配,排查半天才发现是语法问题。

Clearance这种双对象规则,两个位置的Query要分别填。比如"电源类网络与其余所有网络的间距",第一个对象填InNetClass('Power'),第二个对象填All。如果你想让电源与信号间距8mil、信号与信号间距6mil,就要写两条规则,一条Power to All,一条All to All,靠优先级区分。

4.2 优先级排序的隐藏逻辑

前面反复提到优先级,这里把它讲透。AD22的规则编辑器里,同一类规则(比如所有Clearance规则)是并列的一个列表,AD按从上到下的顺序逐条匹配Query,第一个匹配成功的规则生效,后面的不再检查。所以"特殊规则放上面,通用规则放下面"是铁律。

调整优先级的方法有两种:一是在规则编辑器里选中规则,点上下箭头按钮移动;二是拖动规则。界面里还有个Priority列显示数值,数值越小优先级越高,但实际匹配看的是列表顺序,移动规则时数值会自动重排。

这里最容易踩的坑是:在默认的All to All规则下面加了特殊规则。结果特殊规则永远匹配不到,你会觉得"我明明设了8mil,怎么还是按6mil报错"。每次加完规则,养成习惯看一眼它在列表里的位置,特殊规则一定在兜底规则之上。

还有一个隐藏逻辑:规则是按类型分组的,不同大类的规则互不干扰(比如Clearance和Width是两套列表),所以优先级只在同类规则内部生效。不用担心线宽规则会影响间距规则的匹配。

5. 一套可直接复用的2层板通用规则模板

5.1 规则清单表格

把上面讲的整合成一张可直接照抄的清单,你新建2层板工程时可以逐条对照设置:

规则类型作用域(Query)关键参数
ClearanceInNetClass('Power') to All8mil
ClearanceAll to All6mil
WidthAllMin 6, Pref 8, Max 50mil
WidthInNetClass('Power')Min 20, Pref 40, Max 120mil
Via StyleInNetClass('Power')孔径0.4, 外径0.8mm
Via StyleAll孔径0.3, 外径0.6mm
Hole SizeAllMin 0.2, Max 6.3mm
Hole to HoleAll8mil
Copper to Board EdgeAll20mil
Silk to Solder MaskAll4mil
Silk to SilkAll4mil
Solder Mask ExpansionAll4mil
Polygon ConnectInNetClass('GND')焊盘花焊盘,过孔直连

这套参数适配绝大多数普通2层板。不是每个值都绝对,但作为起点非常稳,你可以根据具体板子的工艺能力和电流需求微调。

5.2 规则的导出、导入与团队复用

规则设好之后,强烈建议导出备份。方法是打开Design » Rules,右键选Export Rules,存成.RUL文件。下次新项目直接用Import Rules导进去,二十秒搞定,不用重配。

这套机制在团队里价值更大。你可以把验证过、量产过的规则文件作为团队标准规范下发,所有人新项目先导入这套规则,大家的间距、线宽、过孔标准就统一了。我见过太多团队因为规则不统一,A画的板间距6mil、B画的板间距10mil,PCB打样回来工艺一致性差,沟通成本居高不下。

注意:导出的RUL文件是基于Query的,只要新工程里Class命名和网络命名规范一致,导入后规则就能直接生效。所以团队里最好约定一套Class命名规范(比如统一的Power、GND、HighSpeed),这是规则复用的前提。

另外,AD22的规则可以配合工程模板一起用。把常用规则、层叠、图纸参数都放进一个模板工程(.PrjPcb),新建项目直接基于模板创建,规则框架一步到位。这是我目前觉得最省事的做法。

6. 常见报错与排查实录

6.1 典型DRC报错速查表

规则设了不等于不出问题,理解报错含义才能快速定位。下面是我最常遇到的几类:

报错信息可能原因处理方法
Clearance Constraint Violation两网络间距小于规则值确认是哪条规则触发,挪线或调规则
Width Constraint Violation走线宽度超出Min/Max检查是否有插件或批量修改漏网
Short-Circuit铜箔直接接触多为铺铜间距过小或焊盘连锡
Un-Routed Net网络未完全连通检查是否漏了飞线、过孔未连
Hole Size Violation过孔孔径超范围统一替换过孔样式
Silk to Solder Mask丝印压焊盘挪丝印或缩小字体
Modified Polygon铺铜未更新Tools » Polygon Pours重铺
Room Definition Violation器件超出Room范围调整Room或关闭该检查

排查时的核心思路是"先看是哪条规则触发的"。AD22在DRC报告里会标注规则名,直接去规则编辑器找到那条规则,确认作用域写的对不对,八成能定位问题。

6.2 几个容易忽略的细节

最后分享几个我踩过的坑,都是文档里不会写的。

第一个坑:在原理图改了网络名,PCB里Class成员不会自动更新。因为Class成员在PCB端是实例化的,网络名对应不上时它会保留旧成员。解决办法是同步后进Design » Classes手动核对一遍,或者删掉旧Class重新从原理图同步。这个坑不常见但一旦踩上很难查。

第二个坑:铺铜和DRC是"先后顺序"关系。你刚铺完铜,DRC不一定立刻按新铜皮重跑。稳妥做法是铺铜后手动执行Tools » Design Rule Check,让它完整跑一遍,别依赖实时检查。尤其是板子大、网络多的时候,实时DRC为了性能会有取舍。

第三个坑:过孔塞油和开窗。VIA有Tented(盖油)和Exposed(开窗)两种状态,这个在Solder Mask规则里控制。如果地过孔要散热,就要开窗;如果只是普通连接,盖油更干净。很多人忘了设,导致板子回来后一堆没盖油的黑孔,既不美观又容易氧化。

第四个坑:规则的Min/Max和Preferred要配合。有人只设Preferred不设Min/Max,结果AD允许你走任意宽度的线,DRC不报。正确做法是三个值都设,Min和Max就是你允许的边界,Preferred是默认值。规则只有带上下界才真正有约束力。

第五个坑,也是我吃过亏的:规则修改之后,以已经布好的线不会自动按新规则重画。比如你原来用6mil走线,后来把Power类Preferred改成40mil,那些已经布好的6mil电源线不会自动变粗,DRC也不会因为"它现在是Preferred不是Min"就报错。所以规则一定要在布线前定稿,中途大改规则等于返工。

我个人在实际项目里的体会是,2层板能不能一次成功,七成取决于开工前的规则准备。二十分钟的Class划分和规则配置,换来的是后面布线时心不慌、DRC时少返工、出板后少飞线。这套流程用顺了之后,你会发现AD22真正的效率不在画图有多快,而在于规则体系帮你把设计约束"固化"下来,让每一次走线都踩在安全线以内。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询