ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PCB布局布线要点与多层板叠层设计:从原理到工程实践

PCB布局布线要点与多层板叠层设计:从原理到工程实践 做硬件的人都知道一句话原理图只是把电路“翻译”成了网表而PCB布局布线才是真正见功力的地方。同样一张图纸交给不同的人去布功能实现、EMI表现、发热情况和量产良率可能差出好几个等级。尤其是做到多层电路板之后“叠加原则”一旦选错后面想补都补不回来。我这些年做过高密度数字板、反激开关电源、ADC采集板踩过的坑比走对的路还多今天就把PCB布局布线要求里最实在的那些东西连同多层板叠加怎么选一块儿捋清楚。刚入行的PCB工程师、硬件工程师、学生只要你的板子还没到“随便放放也能跑”的程度这篇都值得看完。1. 布局的起点先给每个功能模块划定“势力范围”1.1 用“源-载-回流”拆解模块而不是只看原理图符号很多新手拿到原理图第一反应是按原理图上的位置把器件摆上去结果板子布完到处是信号交叉和环路飞线。这里要养成一个习惯布局之前不要急着看符号先把每个功能模块拆成“源、载、回流”三样东西。源产生能量或信号的器件比如DCDC的开关管、晶振、时钟缓冲器。载消耗或接收能量/信号的器件比如MCU、ADC、负载芯片。回流电流回到源端的路径在地平面或电源平面上走的那一段。举个例子一个DCDC降压模块源是输入电容和高边开关管载是电感和输出电容回流则要从输出电容的地脚回到输入电容的地脚。如果你能一眼看出这个电流环路在哪里布局就成功了一半。这也是为什么我布板第一步从来不是拖动元器件而是打开PDF原理图拿笔在每页上把这种环路画一遍。你不需要画出精确的电流流向只要大致知道哪个模块的电流是高频脉动的、哪个模块的电流是缓慢变化的就足够了。在实际操作中我习惯把一个模块的器件用不同颜色的框圈起来红色是高频开关环路黄色是模拟信号链路绿色是数字总线区域。等会摆放器件时红色框内部的器件必须紧凑摆放黄色框和绿色框之间要留出隔离空间。这个习惯看起来简单但能直接决定后续布线的顺畅程度。1.2 布局顺序固定件、核心器件、被动元件、回流孔确定好模块划分之后布局顺序也有讲究。我的顺序是先放位置完全固定的器件比如连接器、USB座、TF卡座、按键、LED、散热器和安装孔。这些器件的位置往往由结构、外壳、面板决定占了位置之后再去协调其他元件。再放每个模块的核心器件比如MCU、FPGA、电源IC、ADC。核心器件的朝向要根据信号流确定比如MCU的晶振引脚朝向晶振放置区USB差分引脚朝向连接器。然后围绕核心器件放置被动元件先近后远去耦电容紧贴电源引脚反馈电阻靠近反馈引脚限流电阻靠近驱动引脚。最后检查地孔和回流路径在关键区域补上地过孔确保回流不会绕很远。第三步里最容易犯的错是把去耦电容放得离引脚太远。不少新手觉得0.1uF的0402电容那么小放哪儿不行实则去耦电容的有效半径也就几个毫米超过这个距离它滤不掉高频噪声。我见过一块STM32板VCAP引脚的去耦电容放到了3mm之外结果芯片偶尔复位。后来把电容挪到引脚正下方过孔直接接入地平面问题就消失了。1.3 模拟、数字、功率分区分区不等于割地讲到分区很多资料会强调“模拟地、数字地、功率地要分割”这句话对了一半。对于低频和中等精度的板子盲目分割AGND和DGND反而容易出问题你在中间放一个0欧电阻或磁珠但只要有一根信号线跨过分割线回流就会被迫绕很远形成一个巨大的环路天线。正确的思路是布局上分区地平面尽量保持完整。怎么理解就是让模拟器件集中在板子的A区域数字器件集中在B区域功率器件集中在C区域大家在顶层和底层上物理隔开。而地平面层尽量不分割所有地都统一连接然后在MCU/ADC下方用一个小范围的局部分割加单点汇接或者直接用一整块地平面只是保证模拟回流不穿过数字区域。我实际用过的最省心的方案是地平面完整不分割模拟区域的敏感走线比如ADC的输入信号、基准电压采用包地处理周围打一圈地孔形成屏蔽。这样既避免了分割地平面造成的回流割裂又利用局部屏蔽隔离了噪声。对于绝大多数16位以下的ADC这个做法完全够用布板也简单得多。2. 叠层不是拍脑袋几种可靠的多层板叠加策略2.1 四层板怎么叠才不浪费四层板是大多数中等复杂度项目的起点常见叠层是层序功能说明L1顶层信号/器件走线尽量短适合关键信号L2完整地平面所有信号的首选参考平面不分割L3电源平面可以分割成多块但要考虑L4信号参考L4底层信号/器件次要信号参考L3或L2这个叠层的关键在于L2是完整地平面而且L2和L3之间的介质厚度尽可能薄。很多四层板厂家默认用“芯板两片PP”的压合结构L2和L3之间是芯板距离能控制在1.2mm以内如果换成L1-L2用芯板、L3-L4用PP的结构电源层和地层离得远平面间的耦合电容就很小电源噪声反而压不住。选择叠层的核心原则就一条信号层要紧挨参考平面电源层和地层要紧挨在一起。L1的信号参考L2的地L3的电源平面参考L2的地和L4的信号L4的信号参考L3的电源平面。这样每个信号层旁边都有一层平面不存在悬空参考的问题。还有就是总厚度尽量控制在1.6mm兼容大多数结构件和连接器板厂的常规制程也不会加价。2.2 六层板的两套主流思路六层板比四层板多出两个布线层但叠层方案选不好反而比四层板更难布。我总结两套最常用的方案A信号层多适合密集数字板层序功能L1信号/器件L2GNDL3信号L4信号L5POWERL6信号/器件这个方案有四个布线层L2和L5分别是地和电源平面。风险在于L3和L4相邻如果两条层间平行走线距离过长会引入串扰。我一般会让L3走水平方向L4走垂直方向把平行耦合长度降到最低。方案B信号质量优先适合高速板层序功能L1信号/器件L2GNDL3信号L4POWERL5GNDL6信号/器件这个方案里L1、L3、L6都有临近地平面或电源平面参考L4电源层被L3和L5夹在中间地电源耦合极好。代价是只有三个方便的布线层其中L3既要布信号又要保证不割裂L4的电源平面。如果项目里有DDR、USB3.0这类信号质量要求高的总线我倾向上方案B如果板子只是普通MCU加几个外设信号密度很大方案A更务实。六层板还有一个防翘曲的讲究叠层要尽量对称。上面方案B中L2和L5都是地平面厚度一致机械应力平衡板子不容易弯。如果设计成“地-信号-信号-电源-地-信号”中间不对称过回流焊时翘曲风险明显增加板厂也容易抱怨良率。2.3 介质、板厚与阻抗控制的关系叠层不光决定走线层数还决定阻抗。单端50欧、差分100欧这些常见阻抗实际线宽要靠介质厚度和介电常数算出来。这里分享一个经验认知介质厚度越薄同样的线宽阻抗越低介电常数越高线宽要求越细。以标准1.6mm四层板为例L1到L2的PP厚度通常在3.5mil到5mil之间此时50欧单端线宽大约在6到9mil之间100欧差分线宽和间距差不多是“6mil线宽/6mil间距”附近。这些数值会随厂家板材不同而变所以我在设计前会把叠层参数发给板厂让他们提供具体的阻抗线宽建议再用阻抗计算工具复核一遍。不少人以为只要设置好差分规则打样回来阻抗就一定正确。其实板厂压合时的PP层数、含胶量都会影响最终线宽。稳妥做法是在PCB文件里明确的叠层说明标注每一层的介质厚度和目标阻抗投板时附带一个Readme。板厂看到这些信息就知道你在意这个参数不会按他们的默认工艺自由发挥。3. 线宽、间距与差分布线阶段真正卡脖子的参数3.1 线宽与电流0.3mm到底能过多少别只凭感觉网上经常能看到“1mm线宽走1A电流”这种口诀它只是非常粗略的估算。实际上允许电流取决于铜厚、允许温升、线在表层还是内层。工程上更常用的是IPC-2221的印制板电流估算公式I k × ΔT^0.44 × A^0.725其中A是铜箔截面积单位是平方密耳ΔT是允许温升单位是摄氏度k是系数外层走线取0.048内层走线取0.024。为什么内层系数只有外层一半因为外层铜箔可以直接向空气散热内层被介质夹住散热条件差很多。我用这个公式替大家算了几个常用值以1oz35μm铜箔、允许温升10℃为基准线宽外层允许电流约内层允许电流约0.2mm0.7A0.35A0.3mm1.0A0.5A0.5mm1.5A0.75A1.0mm2.3A1.2A2.0mm4.0A2.0A回到那个常被问的问题0.3mm能过多少电流按理论值1oz铜厚表层走线可以到1A但我不建议卡着上限用。实际项目里我会按50%到70%降额也就是0.3mm按0.5A到0.7A设计。因为公式只考虑了温升没有考虑长距离走线的电压降。如果一条0.3mm的线走了50mm即使温升不超标几十毫欧的电阻也会产生明显的压降对低电压供电系统是致命的。这里还有个容易被忽略的点过孔是瓶颈。走线能过2A但如果两端各用一个0.3mm的过孔连接过孔内壁镀铜厚度通常在20μm左右实际载流能力反而低于走线。大电流路径上我习惯一个焊盘打多个过孔必要时用“过孔阵列”或直接在焊盘上开大孔灌锡。3.2 电气间隙与爬电距离高压PCB的生死线线宽之外间距是第二个硬指标。低压信号之间的最小间距通常取决于板厂工艺常规做到4mil/4mil就足够但这说的是“信号-信号”。一旦涉及高压比如220V输入的电源板问题就变成电气间隙和爬电距离。电气间隙是“两个导体之间通过空气的最短距离”爬电距离是“沿PCB绝缘表面的最短路径”。两者的区别可以理解成空气间隙是直线距离爬电距离要绕开表面杂质和脏污所以往往比电气间隔大得多。安规标准中爬电距离的决定因素包括工作电压、污染等级、材料组别和绝缘等级。工程上我直接按下面这套经验值处理220VAC输入的火线与零线之间电气间隙≥2.5mm爬电≥3.0mm常规按3mm以上画。原边高压区域与副边安全低压区域之间加强绝缘要求更高爬电距离通常要≥6.4mm实际画板我按8mm预留。保险丝、压敏电阻、X电容等一次侧器件之间距离参考器件手册和安规要求尽量把引脚开槽开远。如果板面积实在紧张还有一个合法手段在爬电路径上开槽。开槽后沿槽壁爬行的路径变长能有效增加爬电距离。注意槽要开在两个焊盘之间最短路径的中段而不是开在旁边否则无效。另外开槽位置不能太靠近板边防止机械强度被破坏。3.3 差分与阻抗等长等距只是表面功夫差分线是高速设计中绕不开的话题USB走90欧HDMI和千兆网走100欧。新手容易把差分线理解为“两根线尽量靠近、长度一样”这只是表面。差分的核心是耦合让共模噪声在接收端被抵消。操作层面的要求是同一对差分线尽量同一层走不要一根在L1、一根在L4那样阻抗和回流路径完全不同。线距要恒定不同位置的间距变化会带来阻抗突变反射会变成EMI。我规范里要求同组差分线间距误差不超过0.2mm。等长不是绝对相等而是等长误差控制在较小范围内比如USB2.0全速/高速差分对内误差可以做到5mil以内。过孔是阻抗不连续的源头一对差分线内尽量打相同数量的过孔出线方向也要尽量对称。串阻和端接电阻的位置也会影响差分质量。比如USB的串阻要靠近发送端HDMI的I2C上拉电阻可以靠近连接器这个需要在布局阶段就想好否则布线时没有地方放。我见到不少第2版改版就是因为端接电阻位置不对导致眼图上冲严重不得不在关键位置重新放置器件再走线。4. 晶振、时钟与ADC/DAC的布局布线“隔离艺术”4.1 晶振布局靠近芯片只是第一步晶振是单片机系统里最容易出问题的“小东西”。很多人知道晶振要靠近芯片但靠近了就万事大吉吗不一定。我见过一块板子晶振和MCU的OSC引脚确实挨得很近但晶振正下方是另一层的高速I2C线结果I2C每次通信时系统时钟被干扰出现偶发抖动。晶振布局布线建议按下面这几条执行晶振和两个负载电容放在同一侧电容紧贴晶振管脚走线尽量短。两个电容的接地端分别打孔到地平面不要共用一段细线再接地。晶振正下方所有层不要走任何信号线最好在晶振所在层和相邻地层铺铜形成隔离。晶振周围打一圈地孔间距3到5mm形成“地围栏”。如果空间允许可以把晶振区域用禁止布线层圈起来强制后续走线绕行。晶振走线不要打过孔尽量从顶层直接连接。如果必须跨层至少保证同侧信号切换后参考平面连续。还有一种情况是晶振离芯片太近导致坍陷焊接时方向反了比如无源晶振的两个脚装反。无源晶振本质是双向的一般装反不会导致完全不工作但匹配电容和引脚的对应关系会变差。我在校对封装时会在丝印层画上圆点标记防止生产贴反。4.2 ADC/DAC与时钟三个从实战里总结的布局要点ADC和DAC这类混合信号芯片对布局布线极其敏感尤其是高速ADC。市面上讨论最多的就是时钟抖动和电源噪声这两个问题在PCB层面的解法我总结成三点第一时钟信号路径要“短、粗、近”。时钟源尽量靠近ADC的时钟输入引脚走线不要绕圈不要跨过任何分割区域。如果时钟线很长末端加一个端接电阻吸收反射。走线旁边不要平行走数字数据线特别是SPI或并行总线它们翻转时会产生大量串扰。第二模拟输入走线和时钟线保持垂直。模拟输入信号和时钟信号是两个最关键的敏感网络如果不得不平行至少要隔开3倍线宽以上的距离。我布板时经常在ADC下方把模拟输入和时钟分成两个区域中间用一排地孔隔开。第三电源去耦链路要独立。ADC/DAC的AVDD和DVDD通常分开供电每个电源引脚附近放一个0.1uF高频去耦电容走线时先过电容再进入引脚。如果能用磁珠或LC滤波器把模拟电源域和数字电源域隔开效果更好。要注意的是磁珠本身并非完全隔离适宜位置是ADC的电源引脚前一小段距离而不是放在模块入口处。放太远中间长走线又变成天线。我处理过一块16位ADC采集板原来无论如何都有大约2个LSB的跳动。后来发现去耦电容的地脚和ADC的模拟地引脚之间隔了一个过孔高频回流要走很长的路径。把去耦电容地脚直接做到AGND焊盘旁边后噪声立刻降了一个数量级。这让我后来对“电容-引脚-地孔”的关系特别较真电源引脚、去耦电容、过孔这三者的几何距离必须尽量小形成一个小环路。4.3 DCDC与开关电源把热环路关进笼子里谈到开关电源布局的核心是那个高频开关环路。以Buck电路为例最需要注意的环路是“输入电容正极-高边MOSFET漏极-高边MOSFET源极-低边MOSFET漏极-低边MOSFET源极-输入电容负极”。这个环路里流过的是高di/dt电流它的面积直接决定电源的EMI水平。我布DCDC时会给这个环路设一条死规则输入电容必须紧贴开关IC的VIN和GND引脚环路面积越小越好。最好能做到输入电容和IC在同一层、靠近放置地回路用多个过孔直通内层地平面而不是让电流绕到很远再回来。第二个要关注的是SW开关节点。这个节点电压快速跳变dv/dt很高会产生电场耦合。我的做法是SW节点走线尽量短而宽敞但不要大范围铺铜尤其不要在SW节点下方铺一块孤岛铜皮那会变成寄生电容的耦合介质。这也是为什么有人问“AD20中PCB板铜皮挖空”怎么操作——多数情况下就是为了处理这类开关节点和其他敏感区域的耦合问题。操作不难在禁止布线层Keep-Out Layer或机械层画一个闭合区域然后重新铺铜该区域就会挖空。挖空后还有一个额外好处减少SW节点对相邻敏感走线的干扰。另外反馈采样线要从输出电容上直接引出走线远离电感和SW节点必要时包地。反馈分压电阻靠近反馈引脚放置。只要做到这几条绝大多数DCDC板子不会出现纹波超标或辐射过大的问题。4.4 反激电源与高低压隔离爬电、开槽与关键环路反激式开关电源在AC-DC领域非常常见它的布局难度在于高压和低压共存安全和电气性能都要兼顾。反激电源的高频环路比Buck更复杂原边侧有三个环路最敏感输入电容、变压器原边绕组、开关管之间形成的脉冲电流回路。RCD吸收电路与变压器原边绕组之间的回路。开关管漏极到地的寄生回路。这些环路的面积要尽量小否则振铃和尖峰会直接传导到输入线上。我习惯把开关管、变压器、输入电容、RCD电阻电容在布局阶段就摆成一条紧凑的直线让走线距离最短。副边侧整流二极管和输出电容之间的环路同样要收紧。这里不少人会忽略输出二极管的反向恢复电流会在该环路中引起高频振荡。降低该环路面积对中频段EMI改善非常明显。高低压隔离方面除了前面说的爬电距离和开槽还要注意光耦的位置。光耦本身跨越原副边它的引脚间距决定了爬电路径的一部分。我会选择引脚间距足够大的光耦型号比如DIP-4封装的光耦并在光耦下方开槽确保原副边之间没有一条完整的铜皮路径。还有原边地和副边地绝不能共用铜皮地平面要明确分开中间留出隔离带铺铜时设置禁止区域防止板厂自动连起来。5. 投板前检查与可制造性把DRC用好别让板厂打电话找你5.1 DRC规则设置线宽线距、过孔间距与板框距离布局布线做得再漂亮最后不跑DRC就投板等于裸奔。有些工程师觉得DRC是新手才用的工具老手布线时心里都有数。这个想法很危险人总有眼花的时候DRC的意义在于用规则引擎兜底。在Altium Designer 20这类工具里我会在规则里重点设置以下几项规则项我的常用设置说明Clearance最小线距5mil信号层兼顾工艺余量与布线密度Width走线宽度Min 5mil / Pref 8mil / Max 50mil电源地线单独设classVia Hole SizeMin 0.3mm低于0.3mm板厂工艺成本升高Minimum Solder Mask Sliver3mil防止阻焊桥断开Board Outline Clearance0.5mm防止线太贴板边被铣掉DRC规则不是设完就结束还要在布线过程中随时“Update DRC”。我通常会在完成一个模块后手动跑一次局部DRC查漏补缺而不是等所有线走完再一次性处理几百个错误。等错误堆到几百个时人会产生“豁免一切”的冲动这才是最危险的。5.2 拼板与工艺边V-cut和邮票孔怎么选小批量打样通常直接出单板但只要涉及SMT贴片或大批量生产拼板就不可避免。拼板方式的选择直接影响成本和生产良率。V-cut适合外形规则的矩形板板厂用V形刀切割板边为直线成本低。但V-cut对板厚度有要求太厚超过2.0mm或太小的板子不适合。邮票孔适合异形板比如圆形、带缺口的板子或者需要在板边保留半孔的地方。邮票孔的桥连接数量视板重而定一般4到6个桥孔间距和桥宽要跟板厂确认。不管哪种拼板都要预留工艺边。工艺边宽度建议不小于5mm用于SMT产线传送轨道夹持。如果板边有器件或走线延伸到板边工艺边还可以避免贴装时被轨道碰撞。拼板的连接处尽量避开高器件和容易受力的区域否则分板时可能撕裂焊盘。这里提醒一个细节如果你用的是AD拼板时不要直接在原PCB文件里复制粘贴因为会产生相同的位号导致BOM混乱。正确做法是导出一个独立的拼板文件在拼板文件里进行复制阵列。5.3 我每次投板前必看的“最后一屏”最后分享我自己投板前的检查清单每条都是从实际翻车经历里总结出来的把PCB切换到3D视图逐一查看器件高度是否干涉尤其是电解电容和变压器附近的结构件。打开所有内层电源/地平面检查信号走线有没有把平面切割成细长的孤岛。孤岛铜皮会造成回流路径剧增有时还有寄生电容问题。在CAM软件里查看每层Gerber和钻孔文件确认丝印没有压在焊盘上、开孔大小匹配器件引脚。核对板框尺寸和定位孔坐标与结构工程师版本一致。把DRC报告的每一项逐条过一遍宁可慢一点也不要放过任何一个“Un-Routed Net”。另外一个小技巧把最终的Gerber文件发送给板厂前自己先看一遍钻孔文件和阻焊层尤其是阻焊开窗尺寸。阻焊开窗太小会导致焊盘被绿油盖上贴片时立碑开窗太大又可能导致相邻焊盘连锡。我习惯在阻焊层上检查一遍所有细间距芯片的引脚确认阻焊桥存在。最后再提一个我觉得很值当的习惯在制板说明里写明表面处理工艺、铜厚、阻抗要求和叠层结构哪怕板厂会在系统里反复确认白纸黑字也能避免沟通偏差。PCB这行就是细节跟细节的博弈你把布局布线要求和叠加原则都做对了板子回来之后基本就是验证一遍原理的事剩下的时间都能留给自己去学点新东西。
返回列表