
画2层板的人多半都遇到过这种场景同样的走线习惯换一块板子就冒出一堆间距报错电源网和信号网挤在同一条线宽里想改个参数又得在菜单里翻半天。这类问题大多数不是手艺不到家而是开工之前没把Class和规则框架理顺。AD22Altium 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填NetClassValue填你想要的目标类名比如Power。多个网络要归到同一个Class就重复放置参数集Value保持一致即可。做完之后从原理图Update到PCBDesign » Update PCB DocumentAD22在同步过程中会自动按照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然后把特殊规则加在它上面。比如规则1InNetClass(GND) to All间距6mil规则2InNetClass(Power) to All间距8mil规则3All 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层板的铜都在外层取k0.048。按这个公式1oz铜厚35μm下外层走线的载流能力大致如下表线宽截面积载流(ΔT10℃)载流(ΔT20℃)0.2mm10.85 mil²0.74 A1.01 A0.3mm16.27 mil²1.00 A1.35 A0.5mm27.13 mil²1.45 A1.96 A1.0mm54.25 mil²2.39 A3.25 A2.0mm108.5 mil²3.95 A5.36 A用法很直接比如你的3V3电源要给整板供1.5A选ΔT10℃这一档对照表格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)然后绑定大的过孔样式普通信号走默认过孔。另外过孔数量也值得规划尤其是GND2层板里地层回流依赖过孔把顶层地连到底层铺铜过孔太稀会导致回流路径变长、地阻抗升高。我的经验是信号换层处旁边尽量就近放一个地过孔关键位置做到一换层一地孔。提示过孔规则改起来很简单但改完已经布好的线不会自动更新。所以务必在布线前定好过孔样式避免布完线再调整。如果非要中途改可以用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 All8milClearanceAll to All6milWidthAllMin 6, Pref 8, Max 50milWidthInNetClass(Power)Min 20, Pref 40, Max 120milVia StyleInNetClass(Power)孔径0.4, 外径0.8mmVia StyleAll孔径0.3, 外径0.6mmHole SizeAllMin 0.2, Max 6.3mmHole to HoleAll8milCopper to Board EdgeAll20milSilk to Solder MaskAll4milSilk to SilkAll4milSolder Mask ExpansionAll4milPolygon ConnectInNetClass(GND)焊盘花焊盘过孔直连这套参数适配绝大多数普通2层板。不是每个值都绝对但作为起点非常稳你可以根据具体板子的工艺能力和电流需求微调。5.2 规则的导出、导入与团队复用规则设好之后强烈建议导出备份。方法是打开Design » Rules右键选Export Rules存成.RUL文件。下次新项目直接用Import Rules导进去二十秒搞定不用重配。这套机制在团队里价值更大。你可以把验证过、量产过的规则文件作为团队标准规范下发所有人新项目先导入这套规则大家的间距、线宽、过孔标准就统一了。我见过太多团队因为规则不统一A画的板间距6mil、B画的板间距10milPCB打样回来工艺一致性差沟通成本居高不下。注意导出的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真正的效率不在画图有多快而在于规则体系帮你把设计约束固化下来让每一次走线都踩在安全线以内。