
你们有没有遇到过这种情况一块PCB画了整整三天所有网络都检查通了发去工厂打样回来功能也一切正常可板子拿到手里怎么看怎么别扭——器件歪歪扭扭、丝印叠在一起、两边留白一大块、电容电阻散落得像随手撒的豆子。反过来看隔壁老工程师画的板子走线横平竖直、器件规规矩矩、正反面层次分明明明是一样的原理图人家画出来就是让人舒服。这里头没有玄学。PCB布局布线规则这个东西表面上是让板子变美本质上是在帮板子解决电气性能、可制造性、可维护性这一堆实际问题。一个看起来协调的布局信号走向通常是清晰的一条看起来整齐的走线它的回流路径往往也是合理的。这篇文章就从我一直沿用的布局思路开始再到布线优先级、回流路径、高低压隔离、DRC检查收尾把我这些年画板子的经验一条条捋清楚。无论你是刚开始用Altium Designer、Allegro还是习惯用嘉立创EDA画板里面说的规则基本都是通用的。先说明一点下面讲的所有规则都不是金科玉律真实项目中该打破的时候就得打破但前提是你知道规则为什么会存在打破它要付出什么代价。1. 布局阶段多想几步后面布线就顺畅很多1.1 先画功能框图再落器件别打开PCB就乱摆很多人拿到原理图的第一反应是打开PCB编辑器把元件全部拖出来然后凭感觉往板框里塞。这个习惯我劝你尽早改掉。正确做法是先看原理图的层次结构把这块板子拆成几个功能模块电源入口、主控最小系统、通信接口、模拟采样、功率输出、人机交互然后在纸上或心里把这些模块之间的信号流向标出来。这个信号流就是布局的骨架。比如一块以MCU为核心的板子通常晶振要贴近主控的时钟引脚去耦电容贴近电源引脚通信接口RS485、CAN、USB放在板边靠近连接器的地方功率部分和敏感模拟部分拉开距离。先把模块的相对位置摆对走线的时候就不会出现绕来绕去的情况。我自己习惯的做法是在PCB上画几个房间——用Keep-Out线或者板框层先把各个功能区域圈出来然后一个房间一个房间地填元件。这种方法在复杂一点的板子上尤其管用比如带DDR4的主板如果上来就一股脑放器件后面做等长布线的时候基本就是灾难。功能框图还有个好处方便评审。我见过不少团队原理图画完直接进Layout跳过布局评审。结果板子画到一半发现接口位置和结构对不上或者电源离发热源太近只能大改。花30分钟评审一下布局方案能省下后面两三天。1.2 核心布局顺序最小系统优先接口靠边去耦电容贴管脚如果非要给布局排一个优先级我的习惯是这样的第一梯队是主控和最小系统。MCU/CPU放在板子的核心位置晶振、复位电路、启动配置电阻这些尽量贴着主控放而且晶振下面尽量不要走其他信号线避免耦合干扰。第二梯队是各类接口器件接插件、排针、端子台放在板边缘方便插线和对外连接电源输入端子离电源电路近一点避免高压部分穿越整个板子。第三梯队才是辅助功能模块LED、按键、测试点这些哪里有空位就放哪里。去耦电容的放置被很多人忽视但它恰恰是布局里最重要的一环。电容的作用是给芯片提供瞬态电流它离芯片电源引脚越近回路寄生电感就越小高频去耦效果越好。以0.1uF的MLCC为例我一般放在离电源引脚不超过50mil约1.27mm的位置而且走线要先到电容再进芯片不要从电容旁边绕过去再回来。当年我做一块STM32控制板去耦电容放得远了半厘米EMC测试时辐射多了好几个dB后来把电容挪近问题立刻缓解。要多说一句电容不是越多越好也不是离得近就万事大吉。不同容值的电容对应不同频段的去耦大电解负责低频储能小MLCC负责高频两者配合才有效。如果你只摆了10uF却忘了100nF高频噪声照样压制不住。1.3 布局阶段就把后路留好测试点、安装孔、维修空间新手最容易忽略的是可测试性和可维修性。板子画完能跑不代表工厂好生产、调试好下手。我自己的教训是有一块变频器控制板当时为了追求紧凑把下载接口和调试串口全部放在了一个会被散热片挡住的位置结果样机调起来每次都要拆散热片来回拆了十几次螺丝孔都滑牙了。所以布局时我会主动做三件事第一测试点尽量统一放成一排用标准2.54mm间距的焊盘方便调试时夹探针或焊排针。电源、地、关键信号每个都留一个测试点表面上看占了一点点空间调试时能救命。第二所有需要调节的元件电位器、拨码开关、跳线帽周边至少留出一个手指头能伸进去的空间不要被电解电容、连接器挡住。第三安装孔周围3到5毫米内不要放元件特别是高的插件件否则螺丝刀下去会顶到器件结构上也会打架。板框和结构工程师给的限高图要对一遍这个是必须的不能省。2. 布线不是把线连通是安排电流怎么走、信号怎么回2.1 线宽电流怎么选抄作业级对照表和计算公式关于X安培电流用多宽线网上能查到一堆表但很多人不会用。首先得搞清楚几个前提铜厚是多少走线在表层还是内层允许温升多少同样1A电流在1oz铜厚、允许10℃温升的情况下表层和內层的线宽需求是完全不同的。常用的工程计算可以参考IPC-2221的公式I k × ΔT^0.44 × A^0.725其中I是电流AΔT是温升℃A是导线截面积mil²k值是系数——外层走线取0.048内层走线取0.024。这个公式算出来偏理论实际做板时我习惯留50%以上的余量毕竟板上还有过孔、焊盘这些瓶颈点。下面这张表是我自己整理的经验值适用于1oz铜厚、温升10℃的常规情况可以直接抄作业电流A外层线宽mil内层线宽mil备注0.51020信号/小电流12040普通电源走线24080电源主干道360120功率路径5100200需谨慎处理过孔要注意的是这只是线能扛住的宽度。如果走线很长还要考虑压降问题。比如一根50mm长、20mil宽的走线1A电流时压降大约在50mV级别对3.3V供电来说可能已经不能接受了这种情况要么加宽要么敷铜。表层的线散热条件好同样的载流能力可以比内层细所以关键电源线尽量走在表层并用大面积铺铜。2.2 关键信号布线优先级时钟、差分、高速总线怎么排布线不要从电源网络开始。常见的错误是先把GND和电源全部连完结果轮到DDR数据线时发现根本没地方走只能到处打过孔穿越最终等长绕线绕得乱七八糟。我一般按这个顺序来时钟信号/高速信号 → 差分对 → 总线DDR、并行Flash等 → 普通信号 → 电源和地。先难后易把最考验走线资源的部分优先安排好。差分信号的规则说起来简单对内等长、间距恒定、远离其他信号。USB、以太网、RS485、CAN这些差分对布线时两条线尽量紧耦合间距保持在一个参考值通常3到5倍线宽并且两条线的长度差控制在几个mil以内。以千兆以太网为例差分对内误差一般控制在±5mil对间误差根据标准不同可能是±5mil或更严格具体要查你所用的主控手册不要凭感觉。时钟线的处理要格外小心。晶振出来的时钟信号尽量走内层避免长距离平行于其他敏感信号穿层的地方旁边要放地孔。对于DDR这类高速并行总线重点不是单根线快慢而是组内等长——地址线之间、数据线之间、时钟和数据之间的长度差要控制在同一数量级。DDR4的设计中数据组内等长通常要求在±5mil以内DQS和CLK更是要仔细对齐每组数据线尽量在同一层走不要跨分割也不要反复换层。这些数字我从来不敢拍脑袋定全部以上一颗主控芯片的Layout Guide为准量产型产品更是如此。3W原则也是常被提的一个规则当两条信号线平行延伸时相邻走线中心距至少要达到3倍线宽以减少串扰。这个原则在低速板上不必强求但在高速信号旁边一定要执行。空间紧张时与其把所有线都压得很近不如分层走中间用地平面隔开效果往往更好。2.3 层叠结构决定布线自由度2层板和4层板的处理差异层叠设计在项目初期就要定下来因为它的影响贯穿整个布线过程。两层板最便宜但布线自由度也最低。常规做法是第一层走信号和第二层走完整地平面。这里有个关键点地平面要尽量完整不要为了走线把它切断。如果实在避不开分割分割缝隙不要横跨高速信号的回流路径。四层板的经典层叠方案有两种S-G-P-S信号-地-电源-信号和S-P-G-S信号-电源-地-信号区别在电源层和地层的相对位置。从信号完整性的角度我优先推荐S-G-P-S因为第二层做完整地平面顶层的高速信号有紧邻的地参考回流路径最短。而且电源层和地层紧耦合还能自然形成一层平板电容对电源质量有好处。那S-P-G-S什么时候用主要是当板子上有多个电源域、电源层需要分割时把电源层放在第三层然后底层信号可以同时参考电源平面和地平面。这种情况在混合信号板卡上更常见但底层的信号返回电流处理起来更讲究不建议新手一上来就用。层叠定了之后布线的时候要一直问自己一个问题这根信号线换层时它的参考平面还是不是完整的换到另一层以后旁边有没有一条连续的GND路径让它回去这就是第三部分要展开讲的内容。3. 好多人忽略的回流路径、过孔和地分割问题3.1 信号从来不是单线飞行回路面积小才是王道很多教程讲布线都在讲线好像信号就是沿着一条铜箔从起点流到终点。真实物理世界里所有信号电流都需要回路才能成立。高速信号的地返回电流实际上会紧贴在信号走线正下方的地平面上流动这是最小电感路径的必然结果。这一段看不见的地电流路径就叫回流路径。如果信号走线下方恰好有一块地平面被掏空了或者有一条长长的地分割槽地电流就只能从两侧绕一大圈回路面突然变大回路电感升高对外表现为EMI变强对内表现为串扰增加、信号质量恶化。有一个非常经典的案例一条跨越了参考地平面上长槽的数据线接收端信号眼图明显塌陷后来把走线改到没有跨越分割的地方或者绕一圈让地电流顺畅通过去信号立刻恢复正常。我的经验是布局时就要把参考平面的完整性当成一个重要约束。电源分割、地分割的边界要有意识地避开高速信号层的关键走线区域。如果实在要让一根线跨过分割那就同时在跨越处放一个缝合电容通常0.1uF或0.01uF给高频地电流提供一条近路这个操作比单纯加宽走线有用得多。3.2 过孔的寄生参数什么时候该换层换层时补地孔过孔在很多人眼里就是打个孔穿过去但在高速信号和电源路径上过孔的寄生电容和寄生电感是实实在在的隐患。一个常规过孔的寄生电感大约在1nH量级对低速信号无所谓但在几百兆以上的高速信号中每串一个过孔等效于加了一个小电感严重的会造成信号反射。过孔的焊盘和反焊盘带来的寄生电容也会对信号边沿产生影响所以高速信号线上并非过孔越少越好而是能少换层就少换层。那什么时候必须补地孔信号从顶层换到内层或底层时换层点旁边一定要有一个地过孔专门给回流电流提供路径。一个信号过孔配一个地过孔这是标准动作必要时配两个或更多。地孔离信号过孔越近回流路径越短。我见过有些板子高速信号换层的地方旁边一片空白什么孔都没打等于让回流电流绕了一个巨大的圈信号能好才怪。电源过孔也不能轻视。大电流路径上如果只有一个小过孔这里就是整个电源网络的瓶颈。以2A电流为例一个0.3mm孔径的过孔载流能力有限我会并排打多个过孔并且把相邻过孔之间用铺铜连起来。散热方面靠近大功率器件的地过孔还能起到导热作用可以多打几个又不影响制造成本。3.3 地平面分割的误区大量分割反而制造麻烦很多人在画板时会不自觉地把地平面切得七零八碎这块是模拟地、那块是数字地、电源地再来一块中间用0欧电阻或者磁珠连一下。这种做法在特定场景下是对的但如果不知道为什么就到处分割结果往往适得其反。地分割的核心目的只有一个让大电流或高噪声的回流不要污染敏感信号的回流路径。比如一个系统的模拟部分和数字部分如果彻底共用一块完整地平面数字开关噪声可能通过地平面耦合到模拟电路所以会在地平面上开一条沟把模拟地和数字地物理隔开再在信号交汇处通过单点连接。但如果你分割完之后发现有很多信号线从一块地跨越到另一块地那这个分割就变成了串扰放大器。经典的错误是模拟地一块、数字地一块结果数字信号线大量跨越分割区域所有回流都堵在狭窄的连接点上比不分割反而更差。做这种设计的正确顺序是先看需要跨分割的信号有多少再决定要不要分割分割之后跨分割的信号要尽量减少到只剩必要的几条而且跨越处要留有最短的汇合点。我更推荐的做法是大多数情况下保持整块地平面的完整性用分区布局来隔离噪声。模拟电路放在板子的一个角落数字电路放在另一侧两者之间的地平面自然形成一个隔离带配合外围一圈地孔效果往往比物理分割地平面更好布线也更好走。真正需要物理分割的往往是高低压这类安规要求明确的场合第四部分专门讲。4. 高低压混合PCB的安全间距和隔离要怎么留4.1 先分清电气间隙和爬电距离再谈留多大带开关电源、驱动器的板子经常出现高压区和低压区共存的情况比如220V整流部分和5V控制部分在同一个板子上。这种板子不是简单把线画粗点就完事安规距离是板上钉钉的要求。这里有两个概念必须先分清楚电气间隙和爬电距离。电气间隙是两个导体之间在空气中最短距离也就是直线距离爬电距离是沿绝缘体表面量出来的最短距离。高压电会击穿空气所以电气间隙不够会发生空间放电表面会因为污染、凝露形成导电通路所以爬电距离不够会发生沿面放电。两者哪个都不能省而且爬电距离往往比电气间隙更大。做220V交流侧的PCB我常用的经验参考如下不含强标场景部位电气间隙mm爬电距离mm火线与零线之间≥2.0≥2.5高压区与低压区之间功能绝缘≥3.0≥4.0高压区与可触及部分加强绝缘≥5.0≥6.0要注意的是这些数值只是一个通用参考实际产品要根据工作电压、污染等级、材料CTI值、海拔高度来确定最终以对应标准为依据。如果板子表面还要涂三防漆爬电距离的要求可以按照标准适当调整但我不建议一开始就指望三防漆来兜底按裸板留足距离才是靠谱的设计习惯。4.2 隔离槽和开槽保证爬电距离的实用手段高压和低压区域之间光靠间距往往不够因为爬电路径是沿PCB表面走的元件密集的时候会更难留出足够路径。这时候有一个很实用且成本很低的操作在高压区和低压区之间开一条物理隔离槽。槽切断了绝缘表面的爬电路径等效爬电距离按槽的两边和底部加总来计算实现同样安规等级所占用板面面积可以显著减小。开槽的具体做法很简单在Keep-Out层或机械层画一条窄槽线宽度一般1mm到2mm告诉板厂这里要铣穿。槽的两端要留足安全距离不要让爬电路径从槽口绕过去那样等于白开。我看到有人开到槽的口子距离高压走线只有0.5mm这就不对了槽口两端同样要遵守爬电距离的要求。除了开槽高压区域的高压走线之间、高压与低压之间还可以在表层铺开空隙也就是在规则里专门设一个高压安全间距网络类把初级侧的走线间距加到足够大。买来的电源模块PCB上经常能看到这种处理方式高压焊盘周围一圈很宽的空白绝无任何铜皮这就是在设计阶段特意留出的安全区域。在AD或嘉立创EDA里可以通过Net Class或Rule区域来单独约束这组网络的间距而不是全局把整板间距都放大那样会白白浪费布线空间。4.3 实际案例一块220V转5V电源板的布局分区做法我画过一块AC-DC电源板面积只有4cm×4cm要在这么小的地方把220V整流滤波、反激开关管、变压器、光耦反馈、5V输出和单片机控制部分全部放进去。这种板子布局布线的难度不在连通而在安全隔离和EMI控制。我做的是左右分区左边是220V输入、整流桥、大电解电容、开关管和变压器原边右边是变压器副边、整流二极管、输出电容和单片机。左边和右边之间留了一条2mm宽的隔离带隔离带正中间开槽把初级的爬电路径彻底断掉。光耦和Y电容是唯一允许跨越隔离带的元件——光耦负责传递反馈信号Y电容负责给开关噪声提供低阻抗回流路径这两者在安规上是被认可的跨越方式。开关管的散热焊盘底下没有大面积铺地而是单独一块热焊盘区用多个过孔连接到背面的芯片散热区避免开关噪声注入整块地平面。布局完成后布线的顺序是先走光耦反馈回路再走开关管驱动信号最后才是输出采样和单片机电路。这块板子做了三版第一版EMI偏高后来把开关管到变压器的环路面积缩小了三分之一辐射噪声立刻降下来了。5. 从能跑到美观耐看最后这几步检查一定要做5.1 一套能落地的DRC规则配置布线完成不代表战斗结束规则检查DRC才是把设计意图真正锁定的手段。很多人习惯了用默认规则跑一遍看到没有DRC错误就认为大功告成这是完全错误的。默认规则只代表没有短路断路不代表间距、线宽这些约束满足你的实际需求。我一般会在开始布局布线之前就把规则设置好而不是最后才补。下面这套参数可以作为一个通用起点不同项目再按需调整规则项常规值说明最小线宽6mil常规工艺极限之上留余量最小间距6mil电源/高压网络单独加大最小过孔孔径0.3mm低于此值制板成本明显上升过孔外径0.6mm保证可制造性丝印到焊盘间距≥0.25mm避免丝印上焊盘板边到走线/器件≥1mm避免被分板应力损伤快捷键的配置也很影响效率。Allegro里把常用的移动、复制、布线、换层、修线这些命令绑到顺手的键位上AD和嘉立创EDA也有各自的快捷键系统花20分钟设置好效率能提高一倍不止。我建议每个人都维护一套自己的快捷键模板不用每次新建项目都重新配。5.2 视觉层面的自查丝印、极性、器件对齐和3D预览都说最美PCB那美在哪儿除了电气性能好视觉上要整洁、清晰、有条理。丝印是其中最重要的因素。字号不能太大也不能太小一般高度在0.8mm到1.2mm之间太小的板厂印不清楚太大又显得笨重。元件位号R1、C1、U1这些的位置要尽量统一方向不要横七竖八。极性器件如电解电容、二极管、电源指示灯的极性标志一定要清晰最好在丝印层画上极性符号方便生产和维修人员一眼看出方向。器件对齐这个细节很多新手不重视但恰恰是最能体现板子气质的地方。同一排的电阻电容中心尽量对齐到一条直线上视觉上立刻整整齐齐。间距也要均匀至少保持0.5mm以上的器件间距既好焊接又好看。贴片元件周围不要太密留出贴片机吸嘴和回流焊散热的空间也能避免相邻器件在焊接时连锡。最后一定记得打开3D预览功能。AD、Allegro和嘉立创EDA都有3D视图导入结构件模型之后可以直观检查元件高度是否超出结构限制、插接件是否会被外壳挡住、散热片和电感之间有没有干涉。这个检查动作我每次发板前都做一遍看3D视图比盯2D图直观太多了很多问题就是在这种转一转看一看的过程中提前发现的。5.3 打样前的工艺检查板边器件、Mark点、拼板打样前还要过一遍工艺相关的检查项。首先靠近板边的器件和走线要特别注意一般要求距离板边1mm以上因为V-Cut分板的时候会产生应力离板边太近的走线容易被切断太近的电容可能会被切裂。如果拼板出货工艺边和Mark点的问题——特别是用SMT贴片时板子上至少要有一个Mark点通常放在对角线位置作为贴片机的定位基准。如果板上空间不够就在工艺边上放但工艺边本身不能太窄一般5mm宽比较稳妥。拼板的方式也要看器件类型全是贴片件V-Cut方便省成本如果含插件元件或者元件接近板边V-Cut很容易切坏元件这时候用邮票孔连接是更稳的方式。订单量小、只打样的话直接单片就好不用为拼板浪费精力。Gerber文件生成之后别急着压缩包发出去先拿Gerber预览工具打开看一眼。这一步能发现不少隐藏坑走线在AD里看着好好的转成Gerber后某层丢失、线条变粗、丝印叠到焊盘上都可能在预览时看出来。我从Gerber反向检查中学到的一个教训是某次我用了特殊线宽0.1016mm4mil板厂制程能力不够在Gerber预览时线看起来没有断裂但实际制板后局部开路。后来我的习惯是所有小于板厂最小线宽设计规则的线一律避免哪怕DRC通过了也不放心必须对照板厂的工艺能力表逐项过一遍。说到最后分享一个我的个人习惯板子画完之后不要当天就发出去保存工程关掉电脑第二天再打开来看一遍。这一遍我会专门看3D视图、检查丝印方向、再跑一次完整DRC。很多低级错误其实不是不会查而是当时画得头脑发热根本看不见。睡一觉再回头看往往一眼就能发现昨日的不合理之处。发板子这件事宁可慢一天也别让一块有瑕疵的板子浪费三五天的打样周期和几十块钱的事后返工成本。