1. 项目概述:从“知道”到“做到”的PCB设计进阶
干了这么多年硬件设计,画过的板子堆起来能当凳子坐。我发现一个挺有意思的现象:很多刚入行的朋友,学软件操作、背设计规则都很快,但一到自己独立画板子,尤其是从原理图往PCB里一导,看着满屏的飞线和密密麻麻的元件,立马就懵了,不知道从哪下手。这其实就是典型的“知识”和“技能”之间的断层。你知道了线宽和电流的关系,知道了3W规则,但怎么在具体的板子上,在有限的面积里,把这些规则和谐地应用起来,并且保证板子能顺利做出来、稳定工作,这才是真正的“设计”。
所以,这个“PCB设计小知识”系列,我不想再重复那些手册上能查到的公式和定义。我想聊的,是那些手册上不写、老工程师们靠经验积累下来的“软知识”,是连接理论与实战的那座桥。比如,为什么你的原理图明明编译没错误,更新到PCB后封装却对不上?为什么在嘉立创EDA里放个过孔,它会提示“不在DRC规则范围内”,这个提示到底在怕什么?还有,大家都说多层板好,但在KiCad里怎么把两层板设置成四层板,加了层之后原来的走线会不会乱?这些看似琐碎的问题,每一个背后都对应着一个可能让你板子报废或调试到头疼的设计陷阱。
这次,我们就聚焦在设计流程中几个关键的衔接点和容易忽略的工艺细节上。目标是让你不仅能画出“正确”的板子,更能画出“可靠”、“好生产”、“易调试”的板子。我们会从原理图与PCB的同步更新这个老大难问题开始,深入到DRC规则设置的深层逻辑,最后再探讨一下如何为你的板子选择合适的“骨架”——层叠结构。这些内容,都是你从“画图员”迈向“设计师”的必经之路。
2. 核心难题拆解:原理图与PCB的同步之殇
几乎所有主流EDA工具,无论是Altium Designer (AD)、KiCad还是嘉立创EDA,其核心工作流都是“原理图设计 -> 导入/更新到PCB -> PCB布局布线”。这个“更新”环节,是错误的高发区,也是很多新手挫败感的来源。问题通常不是出在操作本身,而是出在对“同步”这个概念的理解偏差上。
2.1 “更新”的本质:网络表与封装的握手
当你点击“Update PCB”或“导入更改”时,EDA工具到底在干什么?它并不是简单地把原理图上的符号“贴”到PCB里。实际上,它执行了两个核心操作:
- 对比网络表:工具会生成一个基于当前原理图的、新的网络表(Netlist),里面包含了所有元件(标识符)、所有网络连接(Net)以及每个元件对应的封装(Footprint)信息。然后,它会将这个新网络表与PCB文件中现有的网络表进行对比。
- 执行差异变更:根据对比结果,生成一个“工程变更订单”(ECO)。这个订单里会列出所有需要进行的操作:添加新元件(Add Components)、删除已移除的元件(Remove Components)、更新元件封装(Update Footprints)、以及更新网络连接(Update Nets)。
注意:这里有一个关键点,“更新”是以原理图为权威源的。PCB布局中你对元件位置、走线的所有修改,只要不涉及网络连接和元件的增删,都不会被回写到原理图。但原理图上任何电气连接的改变,都期望通过更新来覆盖PCB的现有状态。
2.2 典型故障场景与根因分析
理解了更新机制,我们就能诊断那些常见问题了:
场景一:AD中PCB焊盘删不掉这不是软件BUG。当你在PCB试图删除一个焊盘时,如果这个焊盘属于某个元件的封装,并且该封装是通过原理图更新过来的(即与原理图元件关联),那么直接删除会被禁止。因为工具要保证PCB封装与原理图符号的引脚映射一致性。你删了PCB上的焊盘,原理图对应的引脚怎么办?正确的做法是:回到原理图,确认这个引脚是否需要,如果不需要,在原理图中修改元件(如改用不同封装的器件)或断开连接,然后重新更新到PCB。如果需要保留原理图但PCB封装不合适,则应修改该元件的PCB封装库,然后更新封装。
场景二:封装对不上或丢失“原理图编译没错,更新到PCB封装不对或红叉”。这几乎100%是封装关联问题。检查以下几点:
- 封装名称是否完全匹配:原理图符号中指定的封装名(如
0805C)必须在你的可用封装库中存在一个同名的封装。大小写、空格、后缀都要一致。 - 引脚映射是否正确:原理图符号的引脚编号(1, 2, A, K)必须与PCB封装的焊盘编号(Designator)一一对应。一个二极管,原理图引脚是
A和K,PCB封装焊盘编号也必须是A和K,如果封装焊盘编号是1和2,就会映射失败。 - 库的路径与可用性:你是否在PCB设计环境中添加并安装了包含该封装的库?或者封装是否在当前项目库中?
场景三:KiCad 10.0原理图更新到PCB后,原有布局轻微错乱KiCad在更新时,对于PCB上已有的元件,会尝试保持其位置。但如果原理图中元件的标识符(Reference Designator, 如R1, C2)发生了改变,KiCad可能会将其视为一个新元件,从而放置到默认位置。因此,在原理图设计阶段,尽量早地执行“注释”(Annotate)操作,为所有元件分配稳定、唯一的标识符,并在后续修改中尽量避免全局重注释,可以显著减少此问题。
2.3 标准化操作流程建议
为了避免同步问题,我强烈建议建立并遵循以下操作流程:
- 先库后图:在绘制原理图之前,确保所有用到的元件,其原理图符号和PCB封装都已经在库中准备好,并且引脚映射已验证无误。自己建库,虽然慢,但一劳永逸。
- 编译与验证:原理图绘制完成后,务必使用工具的“编译”或“电气规则检查(ERC)”功能。这能发现诸如未连接的网络、单端网络、电源冲突等逻辑错误。ERC无误是更新的前提。
- 首次导入:在PCB文件为空或全新项目时,执行首次导入。导入后,不要急于摆放元件,先检查右下角或日志窗口,确认“所有变更已成功执行”,没有警告或错误。特别关注“未放置的元件”数量是否为0。
- 增量更新:在后续修改原理图后,更新PCB前,务必先保存PCB当前工作。然后执行更新,仔细查看ECO对话框中的变更列表,确认每一项变更都是你预期的。尤其是“删除元件”和“更改网络”操作,需格外谨慎。
- 更新后快速检查:更新完成后,快速浏览PCB,检查是否有元件被意外移动(通常集中在原点附近),是否有新导入的元件堆叠在一起。使用“交叉选择”功能(在原理图选中元件,PCB中对应元件高亮)可以帮助快速定位。
这个流程的核心思想是**“谨慎”和“可追溯”**。把每一次更新都当作一次重要的数据同步,而不是简单的点击按钮。
3. DRC规则:不只是错误检查,更是设计意图的守护者
设计规则检查(DRC)是PCB设计的“宪法”。很多人把它当成最后出Gerber前的一个“过关测试”,实际上,大错特错。DRC应该从你开始布局的那一刻起就全程启用。它不仅仅是在告诉你哪里画错了,更是在实时地、强制性地让你的设计符合你(或工艺厂)设定的安全与工艺标准。
3.1 规则体系的深度解析
一个完整的DRC规则体系通常包含以下几大类,每一类都对应着实际生产或电气性能的一个方面:
电气规则(Electrical):
- 安全间距(Clearance):这是最重要的规则之一。它定义了不同网络(Net)的导电图形(走线、焊盘、覆铜)之间的最小距离。这个值首先取决于你的板厂的加工能力(通常最小线宽/线距能力,如4/4mil)。其次,要考虑电气安全,比如高压部分需要更大的间距(根据安规标准)。最后,还要考虑信号完整性,高速信号之间可能需要增加间距以减少串扰(这就是常说的3W规则的体现)。
- 短路规则(Short-Circuit):通常不允许不同网络短路。但在某些特定设计,如单点接地、散热过孔群连接不同网络时,可能需要允许。
- 未连接引脚(Un-Routed Net):检查是否所有网络都已物理连接(布通)。这是保证电气功能完整的基础。
布线规则(Routing):
- 线宽(Width):这是另一个核心规则。线宽不是随便设的,它主要取决于两个因素:载流能力和阻抗控制。
- 载流能力:根据IPC-2152标准(更现代和准确),线宽、铜厚、温升和载流能力有复杂关系。一个简单的经验公式(外部层,温升10°C)是:
I = k * (ΔT)^0.44 * (A)^0.725,其中A是截面积。对于1oz(35μm)铜厚,更常用的快速估算是:线宽(mil)≈ 电流(A) / (0.024 × 温升系数)。例如,希望承载2A电流,温升控制在10°C以内,所需线宽约为2 / (0.024*1) ≈ 83 mil。内层布线由于散热差,需要更宽的线宽。 - 阻抗控制:对于高速数字信号(如USB、HDMI、DDR)或射频信号,线宽(连同介质厚度、介电常数)共同决定了传输线的特征阻抗(如50Ω, 90Ω差分)。这需要根据板厂的层压结构,使用阻抗计算工具(如Si9000)进行反推,得出精确的线宽要求。
- 载流能力:根据IPC-2152标准(更现代和准确),线宽、铜厚、温升和载流能力有复杂关系。一个简单的经验公式(外部层,温升10°C)是:
- 过孔(Via):规则包括过孔外径、内径(钻孔尺寸)。内径同样要考虑载流能力。一个0.3mm内径的过孔,其铜柱截面积远小于一条20mil的走线,可能是电流瓶颈。对于电源路径,经常需要多个过孔并联。
平面规则(Plane):
- 覆铜连接方式(Polygon Connect Style):定义焊盘与覆铜(通常是地平面或电源平面)的连接方式。直接连接(Direct Connect)电阻最小,但焊接时散热快,可能影响手工焊接。热焊盘连接(Relief Connect)通过几条细线连接,增加了热阻,便于焊接,但引入了少量电感。需要根据焊盘用途(电源、地、信号)来设置。
制造规则(Manufacturing):
- 最小环宽(Annular Ring):钻孔后,焊盘边缘到孔边缘的最小宽度。如果环宽太小,在钻孔偏差时可能导致破盘,影响可靠性。板厂能力通常要求环宽≥4mil。
- 丝印到焊盘间距(Silk to Solder Mask Clearance):丝印(文字、图形)不能盖住焊盘,否则影响焊接。一般需保持3-4mil以上距离。
3.2 实战案例:嘉立创EDA过孔DRC报警深度剖析
用户反馈“在嘉立创EDA里放置过孔时,提示‘不在DRC规则范围内’”。这是一个非常典型的、因规则理解不透彻导致的操作困惑。
第一步:理解报警信息这个提示不是说你的过孔尺寸非法,而是指你当前试图放置过孔的位置,违反了某个设计规则。最常见的原因是:你试图在“禁止布线区”(Keep-Out Layer)或者不属于任何网络的“机械层”图形内部放置过孔。
第二步:排查问题根源
- 检查层设置:确认你放置过孔时,当前激活的层是允许布线的电气层(如TopLayer, BottomLayer),而不是机械层或禁止布线层。
- 检查Keep-Out区域:你是否在板框内部或某些区域绘制了Keep-Out线条(通常是在Keep-Out Layer)?过孔不能放置在Keep-Out区域内部,这是为了防止过孔打到板框、螺丝孔或其它禁止布线的区域。
- 检查网络属性:如果你放置的过孔想连接到某个网络(比如GND),但放置的位置没有任何该网络的铜皮(走线或覆铜)可以连接,在某些严格的规则设置下,也可能产生警告。
第三步:解决方案与规则配置
- 如果确实需要在某区域打孔:调整你的Keep-Out区域范围,确保留出足够的空间。
- 如果是误报警:检查DRC规则中关于“允许在非电气层放置过孔”或“过孔与板框间距”的规则是否设置得过于严格。在嘉立创EDA的“设计规则”中,找到“间距”规则,检查“板边框”与其他对象的间距设置是否合理(通常建议≥10mil)。
- 最佳实践:在开始布线前,就规划好板框、禁布区、安装孔、散热区域等机械结构,并在PCB中清晰绘制出来(使用Keep-Out Layer或机械层)。这样在布线时就能主动避开这些区域,避免后续DRC报错和修改的麻烦。
这个案例告诉我们,DRC报警是一个机会,它迫使你去审视设计的每一个细节是否符合预设的约束。读懂报警信息,追溯规则源头,是提升设计能力的关键。
4. 层叠结构设计:为你的电路搭建稳固的“楼层”
当电路复杂度上升,双面板无法满足布线密度或信号完整性要求时,就需要使用多层板。在KiCad 10.0中如何将默认的双面板设置为四层板,这不仅仅是添加两个层那么简单,它涉及到层叠结构(Stack-up)的规划,这直接决定了板的成本、性能和可制造性。
4.1 层叠结构配置的核心参数
在KiCad的“板子设置” -> “层叠管理器”中,你可以添加和编辑层。对于标准的四层板,最常见的结构是:Top (信号) - Prepreg - GND02 (内电层) - Core - PWR03 (内电层) - Prepreg - Bottom (信号)。
这里有几个关键参数需要理解:
- 层类型:
- 信号层(Signal):用于走线。
- 内部电源层(Internal Plane):通常是整片铜皮,分配给某个电源网络(如3.3V)或地网络(GND)。它的好处是提供极低的阻抗电源路径和天然的屏蔽。
- 混合层(Mixed):既可以走线,也可以敷设铜皮区域。
- 材料与厚度:
- 核心板(Core):两面覆铜的刚性基板,是PCB的“骨架”。
- 半固化片(Prepreg):未完全固化的介质材料,用于粘合核心板,在压合时流动并填充空隙。
- 介质厚度:指两层铜箔之间的绝缘层厚度(如Core或Prepreg的厚度)。这个厚度,连同介电常数(Dk, 通常FR4约为4.2-4.5),是计算阻抗和层间电容的关键。
- 铜厚:通常用盎司(oz)表示,1oz表示每平方英尺覆铜重量为1盎司,约等于35μm厚度。内层铜厚常见0.5oz(17.5μm)或1oz,外层经过电镀后会更厚(如1oz基铜+电镀后可达1.5-2oz)。
4.2 四层板设置实操与原有走线处理
在KiCad 10.0中,进入层叠管理器,默认是两层。你可以通过“添加层”按钮,在“顶层”和“底层”之间插入新的层。建议添加两个“内部电源层”,并分别命名为GND和PWR。
一个至关重要的步骤是:在添加新层后,务必为这两个内电层分配网络!右键点击内电层,选择“分配网络”,通常将一层分配给“GND”,另一层分配给主要的电源网络(如“3.3V”)。如果不分配网络,这些层就是浮空的,毫无意义。
关于原有走线:当你从两层板切换到四层板时,KiCad不会自动移动或重布你已有的走线。原有的走线仍然会留在Top和Bottom层。这是一个优势!这意味着你的布局和主要布线成果得以保留。你现在获得的是两个全新的、完整的内电层,可以用来:
- 优化电源和地:将原来在Top/Bottom层上又长又细的电源/地线,改为通过过孔直接连接到内电层,获得极低的阻抗和优秀的去耦效果。
- 重新布线:你可以将一些关键的、受干扰的或干扰别人的信号线(如时钟、模拟信号),从拥挤的Top/Bottom层,通过过孔引到内层(如果内层是信号层)走线,以获得更好的屏蔽和布线空间。
- 增加覆铜:在Top和Bottom层,现在可以更自由地进行大面积覆铜(连接到地网络),因为电源路径已经由内电层承担,表层覆铜不会造成电源分割问题。
操作心得:切换层数的最佳时机,是在完成初步布局、意识到双面板布线非常困难或信号完整性预估不佳时。切换后,首先利用好内电层优化电源树,这通常会立即解决大部分的电源噪声和压降问题。然后,再考虑是否需要将部分信号换层布线。
4.3 层叠设计对信号完整性的影响
层叠结构是信号完整性设计的物理基础。一个好的层叠设计,可以低成本地解决很多EMC和信号质量问题。
- 提供完整的回流路径:对于高速信号,电流总是沿着阻抗最小的路径返回源端。如果信号线在Top层,其下方最近的内层如果是完整的地平面(GND),那么回流电流就会在这个地平面上紧贴着信号线下方流动,形成最小的环路面积,从而降低辐射和电感。这就是所谓的“镜像层”效应。在四层板中,通常将两个内层设为GND和PWR,就是为了让Top和Bottom的信号层都能紧邻一个完整的参考平面。
- 控制阻抗:如前所述,传输线阻抗(微带线在表层,带状线在内层)由线宽、介质厚度和介电常数决定。在层叠管理器中设定准确的介质厚度和材料属性,KiCad的阻抗计算工具才能给出正确的线宽建议。例如,如果你希望Top层的50Ω单端线,介质厚度(Top层到最近内层)是5mil,FR4介电常数4.5,那么计算出的线宽大约在8-9mil左右。
- 减少串扰:将敏感信号线布在两层实心平面之间(即带状线结构),比布在表层(微带线)受到的外界干扰和对外辐射都要小得多,层间平面也起到了屏蔽作用。
因此,设计层叠时,要遵循一个简单原则:每一个信号层,都应该与一个完整的电源或地层紧密相邻。对于四层板,信号-地-电源-信号的结构,要优于信号-信号-电源-地的结构,因为后者有两个信号层相邻,它们之间的串扰会很大,且都缺乏一个完整的近距离参考平面。
5. 从设计到生产:Gerber文件的终极检验
当你终于完成了所有布线,DRC和连接性检查全部通过,恭喜你,设计工作告一段落。但接下来的一步同样关键:输出生产文件,其中最重要的就是Gerber文件。这是把你的设计意图翻译给板厂工程师的“通用语言”,任何误解都可能导致做出来的板子无法使用。
5.1 Gerber文件详解:每一层的使命
Gerber文件是一套矢量光绘文件集合,每个文件对应PCB的一层图形。现代EDA工具都能一键生成,但你必须清楚每个文件是什么:
- 顶层/底层铜箔(.GTL, .GBL):就是你的走线、焊盘、覆铜图形。
- 顶层/底层阻焊(.GTS, .GBS):定义哪里“不开窗”(即保留阻焊油墨覆盖)。阻焊层是负片,你看到的图形,就是需要露出铜皮(焊盘)的地方。
- 顶层/底层丝印(.GTO, .GBO):元件边框、标识符、版本号等文字图案。
- 钻孔文件:通常有两个:钻孔图(.GD1)是给人看的,标注孔的位置和大小;钻孔数据(.TXT或.EXCELON格式)是给数控钻床用的,包含每个孔的坐标、孔径和刀具号,这是必须的。
- 板框层(.GML或.GKO):定义PCB的物理外形和槽孔。务必确保此层图形是闭合的、正确的。
- 内层文件(.G1, .G2...):对应内电层或内信号层。
常见坑点:阻焊层错误。如果你的插件元件的焊盘在阻焊层没有开窗,那么焊盘就会被油墨盖住,无法上锡。反之,如果你不希望露铜的地方(如密集走线之间)在阻焊层开了窗,则可能导致焊接短路或腐蚀。
5.2 反向工程:Gerber转回PCB的局限与用途
网络上有工具或方法可以将Gerber文件“反向”转换成PCB文件(如AD或KiCad可读的格式)。这个过程的正确叫法是Gerber逆向导入或恢复,但它有极大的局限性:
- 丢失所有网络信息:Gerber只有图形,没有电气网络属性。恢复后的文件,所有走线、焊盘都是孤立的图形,没有电气连接关系。你无法进行DRC电气检查,也无法再编辑原理图关联更新。
- 层对齐问题:不同层的Gerber文件在反向导入时,如果原点或对齐稍有偏差,就会导致层间对位错误,使文件完全不可用。
- 符号化丢失:元件会变成一堆离散的焊盘和丝印图形,不再是可编辑的封装。
那么,这个功能有什么用呢?主要场景是学习、参考或维修。比如你拿到一块板子,但没有原始设计文件,可以通过扫描或获取其Gerber文件,反向导入后查看大致的布局布线,学习别人的设计技巧,或者为维修测量提供参考。它绝不能用于生产或作为二次设计的可靠基础。
5.3 出厂前的最后一道自查清单
在发出Gerber文件给板厂前,请务必执行以下自查:
- 使用Gerber查看器:用免费的Gerber查看软件(如GC-Prevue, KiCad自带的Gerber查看器,或嘉立创的上传预览工具)打开生成的所有Gerber文件。逐层检查,特别是:
- 板框是否正确、闭合。
- 阻焊层是否覆盖了所有应该焊接的焊盘。
- 丝印是否清晰、没有压在焊盘上。
- 钻孔层是否与铜层对齐。
- 核对钻孔表:检查钻孔文件中的孔径种类和数量是否符合设计(特别是区分通孔、盲埋孔、螺丝孔)。
- 阅读板厂工艺要求:去你打算下单的板厂官网,仔细阅读他们的“工艺能力”和“生产稿制作规范”。确认你的最小线宽线距、最小孔径、铜厚、阻焊桥宽度等参数符合他们的能力。通常,为了稳妥,设计值应略大于板厂标称的最小值。
- 提供清晰的说明:在给板厂的压缩包中,最好附带一个简单的
readme.txt,说明:板厚、层数、表面工艺(有无铅喷锡、沉金等)、阻抗控制要求(如有)、特殊孔的处理(如非金属化孔)等。
这个过程看似繁琐,但每一次仔细检查,都是在为你省下可能的打样失败成本、项目延期时间和无尽的调试烦恼。把板子画对是本事,把文件出对是责任。