目录
1、电路是什么?PCB/PCBA是什么?
2、为什么要有PCB
3、PCB的结构和组成
4、PCB/PCBA的生产流程
5、PCB/PCBA的设计流程
6、炫酷的PCB小技巧
正文
上次写了PCB和PCBA的生产流程,这次来讲一讲PCB和PCBA的设计流程。
利用PCB的EDA软件,可以较为轻松的在电脑上进行电路的设计和光绘文件生成,但由于PCB本身的结构复杂,实际的步骤还是比较繁琐的。
这篇文章,不会涉及什么功能应该用什么电路来实现,只是展示PCB的设计过程,包括:封装绘制、原理图绘制、PCB绘制、光绘文件导出等,既有大致的流程,也有细节的描述,以此帮助大家了解PCB的设计过程,并将设计过程中的每一步和实际生产的每一步对应起来。
第1步,选择合适的EDA工具。
我所知的使用人数较多的PCB的EDA工具有三款,Altium Designer、Mentor PADS和Cadence(包含OrCAD和Allegro),我还接触过EAGLE、Protel、立创EDA等。
对于初学者,推荐使用Altium Designer,对于可能成为专业人士的人,推荐使用Cadence。
学习PCB设计,入门的一大部分都在学习EDA软件的使用,等你熟悉了软件的使用,学习内容就变成了电路设计和电路生产工艺,再往后,学习内容就是协议、软件等内容,或者高速信号、EMC等,此时的EDA就只是工具了,不再是学习的目标。
第2步,确定电路原理图。
用之前文章中的内容来举例,一个手电筒的电路原理图,可以长成下面的样子。
2个纽扣电池座、一个开关、一个限流电阻、一个LED灯,这样就组成了一个非常简单的原理图。
如果是复杂一些的功能电路,比如之前举例中的SPI网口芯片KSZ8851SNL的demo板,如下图所示,就会需要几十种、几百个元器件和几百根连接线。
这样的原理图如何才能知道该画成什么样呢?
这个问题,真的不是一篇文章能说的明白的,这里只给大家科普一下PCB的设计流程。
第3步,绘制封装。
在上面的原理图绘制之前,会分别绘制各个元器件的封装,封装完成后,再将元器件一个一个放到原理图中。
之所以要进行封装绘制,而不是直接在原理图中进行元器件的绘制,是因为使用同一种元器件时,不会每个元器件都画一遍,而是直接摆放已经画好的元器件封装,这样极大的避免重复劳动。
如果能把所有元器件的封装都分享出来的话,大家就能省去绘制元器件的原理图封装这一步。
上面手电筒的原理图是抽象出来的4种元器件,每种元器件用不同的图标来绘制,根据需要连接的引线数量,加上对应数量的引脚,再给每个引脚写上名称,这样就完成了一个器件的封装的绘制。
在demo板的原理图中,电阻、电容的封装被重复的利用了几十次,这也是为什么EDA软件会把封装和原理图分成2步的直观原因。
对于电容、电阻、电感等常见的简单器件,大多EDA软件都会给出示例的图标,可以从官方的封装库中取出来,保存在自己的封装库中。
一个电容在库里的封装
对于一些不常见的器件,比如芯片、连接器等,大多时候则需要自己按照芯片的手册进行绘制。
比如下图,下图是安川公司的Mechatrolink的协议芯片,这个芯片只有安川生产,但他们只提供了芯片的手册,并没有针对市面上所有的EDA软件提供对应的封装,因此,我也只好将其100个引脚一个一个的按序列摆上、输入名字和序号。
再过分一些,比如ZYNQ的芯片,XC7Z010-1CLG400I,这是一片400个引脚的BGA封装的SOC芯片,它的实物引脚长成下图这样。
想象一下,你得自己画原理图封装,摆放400个引脚,再给它们输入序号和名称,想想这个工作量是不是很酸爽。
这种时候,最好不要自己画原理图封装,大厂的通用芯片,基本是一定会在官网上提供可以下载的芯片封装的,对于流行的EDA软件基本都有适配的格式。
下面的链接,就是Xilinx官方提供的ZYNQ芯片的原理图的封装引脚列表,可以利用EDA软件的工具导入引脚的信息,从而创建原理图封装,而不需要手动的输入400个引脚的信息。
对于很多常见一些的芯片,大多也可以通过网上下载的方式获取到封装,可以参考我下面的回答里提供的方法。
第4步,创建工程、创建页面、摆放器件
第5步,连接器件
第6步,导出/导入网表(netlist)
原理图表示了一个电路中所有器件引脚以及相互之间的连接关系,完成原理图设计后,即可开始相应的PCB绘制。
对于PADS和Cadence而言,原理图绘制和PCB绘制使用的是不同的软件,因此需要从原理图软件中导出所有元器件的引脚及其连接关系,再将其导入PCB软件,中间生成的文件,一般称其为网络表格(netlist),但对于Altium Designer而言,其原理图设计软件和PCB设计软件统一在同一个界面内了,因此只需要一个按键即可完成PCB的网表导入,并不需要先导出再导入。
原理图的设计和PCB的设计并不是必须使用同一套软件,netlist的表示方法和标准,也是很多软件共享的,可以实现很多不同原理图软件和PCB软件之间相互的导出导入。
Cadence所包含的OrCAD和Allegro以前其实是2家公司的2套软件,被同一家公司收购之后才合并为了Cadence。
第7步,绘制PCB封装
跟原理图封装一样,每个器件都需要一个PCB封装。
PCB封装是什么呢?PCB封装就是一个器件在PCB上的焊盘、丝印、占据空间等元素组成的合集,直观的说,就跟下面的图片一样。
芯片的实物外形长这样。
芯片的引脚定义和顺序长这样。
有了上面的两张图,就可以绘制芯片的电路原理图封装了。
芯片的实物虽然从照片中可以看出来,但绘制PCB封装的话,还需要下面这张图。
根据上图详细的尺寸,就可以知道对应的PCB封装应该如何绘制了,一般而言,焊盘要比引脚大一些,焊盘的阻焊层要再大一些,钢网层跟焊盘一样大,如果是直插引脚,还需要指定内层的连接层负片的图样,不过,对于Altium Designer而言,阻焊、钢网和负片层都是不需要设置的,只需要设置焊盘的外形和尺寸即可。
封装里的丝印一般要表示芯片的轮廓,但有伸出引脚的侧面一般不把丝印画在最外面,丝印也需要表示出芯片的方向和第一引脚的位置。
SO14的PCB封装在Altium里大概长这样。
但其实对于这种常见的封装,比如74HC08芯片的SO14封装,完全可以从已经绘制好的PCB封装中复制过来使用,因为芯片大多使用标准封装,很少会有芯片使用市面上罕见的PCB封装的。
关于封装的常见分类,大家可以看看下面的链接,里边有好多我都没见过的封装。
如果非常不幸,你需要使用不太常见的器件,比如连接器、电源模块、功能模块等,你就需要自己对照着datasheet中的封装图进行PCB封装绘制了。
第8步,设置PCB板的基础参数
完成了网表的导出和导入后,如果没有修改或错漏的弥补,原理图的流程即不再需要了,之后就开始在PCB设计软件中进行PCB的设计。
PCB板的基础参数设置包括板厚、层数和层间距,虽然这3项是最基础的设计,但除了层数,另外两项并不能自然的被表示在设计输出文档中,因此一般都是直接用文字告知PCB生产厂家。
除了层数,叠层设计也是很重要的,哪些层走线、哪些层铺平面、哪些层混合平面和走线。
单层板不需要这个设置,双层板一般双面走线,空余的地方敷铜并设置为GND或VCC,多层板的话则会有所要求的,4层板一般2和3层设置为GND和VCC,表层和底层走线,VCC层也可以适当走线,6层板的话,如果对地平面要求高一些,则将2/5层设为GND,3或4层设置为VCC,其它层都用来走线。8层板、10层板或更高层数,就比较灵活了,就不在这里阐述了。
第9步,绘制外框
第10步,放置器件
在PCB中防止器件的前提是所有器件的PCB封装都已经绘制好,并能被软件正常调用,如果有个别器件的PCB封装因为没拿到实物而不敢确定的话,也可以先把其他的器件放好,继续后续的设计工作,等那个器件确定之后,再修改封装,放入设计中。
第11步,设置过孔、线宽、线距等常用参数和规则
所有的PCB设计,都需要指定默认的线宽、线距以及过孔的大小,在布线时会默认使用此参数,如果需要布特殊的线或过孔再进行临时调整。
第12步,设置高级规则
如果涉及到高速信号,就需要根据需求设置相应的规则,从而便于布线时利用规则自动或辅助实现布线约束。
高级规则包括:差分线(线宽、线距、不耦合长度等)、等长线(等长误差等)、焊盘线预收缩(Neck)、间隙(线、孔、块、焊盘等各种元素之间的最小距离)。
举例来说,对于DDR3的信号,地址线、时钟线、命令线等需要保持相等的长度,数据线、DQS、DQM则需要保持相等的长度,如果等长保持的不好,很有可能使得某位数据或地址不满足时序要求,使得读写DDR的数据出现不稳定,不得不降低DDR的运行速率。
回到设置规则这一步,有一些规则是需要先完成布线,再进行规则设置,最后根据规则所产生的提示调整布线,从而满足规则。
第12步,布线和绘制块状网络(shape)
布线就是实现电路原理图中各个引脚的连接,通过设置好线宽和线距的铜线,在EDA软件中实现互联。
绘制PCB的大部分时间都花在布线上了,虽然各个软件都提供自动布线功能,但遇到多层板和交叉走线时,自动布线的结果大都难以接受,不过也有大牛能够设置好规则,非常好的利用自动布线的技巧。
对于有些电流需求较大的连接,一般要求非常粗的线,但也可以直接绘制一块区域的铜层,通过设置焊盘与区域铜层的连接,实现块状网络的连接。
PCB的布线有很多需要注意的事项,线宽、线距、角度、方向等等,这些注意事项就以后再写吧。
第13步,调整丝印
调整丝印的大小、位置、方向,使得丝印能够准确的表示各个器件的位号,便于焊接、测试和替换。
PCB的生产厂家一般会在空白处印上自家的logo,以及生产日期相关的信息,设计者也可以自己留下标明PCB设计信息相关的内容。
第14步,导出钻孔文件(drill)和光绘文件(gerber)
PCB完成了器件布局、布线和丝印调整之后,基本就完成了主要的工作,没有特殊要求的话,就可以导出生产相关的文件了。
如果使用Altium Designer的话,很多国内的厂家都接受发送工程文件作为生产文件,但对于PADS和Cadence,都必须要导出钻孔文件和光绘文件。
导出钻孔文件的时候还需要注意,如果有不是圆形的孔,还需要额外的铣刀路径相关的文件。
第15步,指定PCB的加工技术参数和工艺要求
通过PCB的生产文件,并不能了解所有相关的技术参数和工艺要求,这些无法在设计文件中表达的内容,都需要通过文本的方式传递给生产厂家。
大家可以去在线投板的PCB板厂官网看看,有很多需要指定的内容。
我知道的PCB板厂有:嘉立创、华强北PCB、捷配PCB、迅捷兴、兴森快捷、立创等。
下图是嘉立创的参数,其实还有一些下面看不到的参数在复杂一些的PCB中也需要指定,不过在线做的PCB一般都是打样的,所以很少会涉及。
第16步,给定阻抗要求,调整叠层设计
对于某些高速信号的PCB,需要指定其某些信号线的特性阻抗,在给PCB板厂加工时,需要先自己设计叠层,根据叠层计算出指定特性阻抗的线宽、线距等参数,使用自己计算出的参数进行布线,完成布线后,将指定的参数和设计文档一起给PCB厂商。
厂商会根据你给出的设计文档和阻抗要求,按照他们的能力和当前合适的板材,计算出你的叠层、线宽、线距是否合适,如何调整,然后将他们调整后的结果和预期的特性阻抗误差告诉你,这样一来一回,就能确认你的特性阻抗要求是否能满足了。
如果你没有提前自己计算好阻抗,随意的指定了叠层和线宽、线距,很有可能最后无法调整出合适的参数,实现要求的特性阻抗,或者实现了特性阻抗,但线宽、线距又不满足防止串扰的要求。
第17步,PCBA焊接
完整的PCB设计流程到交付钻孔和光绘文件就完成了,等PCB加工完成,就要开始PCBA的生产了,也就是PCBA的焊接。
对于批量生产的PCBA,必定是需要使用贴片焊接生产线进行自动化焊接的,但对于小批量的打样,除了BGA封装、地焊盘封装和特别小的0201封装,大部分贴片芯片都是可以使用手焊来完成的。
目前国内的手工焊接价格,如果是10片以内的小面积样板,相比于上贴片机的流水线,成本和时间上还是有优势的。
PCBA的焊接并不需要设计额外的东西,但需要将PCB设计中的一些东西导出发送给焊接商,包括:BOM(物料清单)、器件坐标和方向列表、钢网的光绘文件(由pastemask层生成)。将这些材料和所有的物料标记好名称或料号,即可等待PCBA焊接完成了。
结尾
以上的内容就是这一节的全部内容了。
PCB/PCBA的设计其实是非常复杂的,流程说起来只有这十几步,但每一步都需要学习和练习好几次才能慢慢的熟悉和掌握。
具体的学习过程,EDA软件的操作占了一大部分,等软件操作熟悉后,才开始真正学习电路设计,学习哪些电路能实现哪些功能。
针对PCB的EDA软件的学习,推荐1本书给大家,《Cadence高速电路板设计与仿真——原理图与PCB设计》。
我学习和使用过Altium Designer、PADS、Eagle和Cadence,只有Cadence是完整的阅读了一本书籍,这几年一直在持续的使用Cadence,感觉这本书还是很详尽的。
其实网上也能找到很多相关的资料和视频教程,大家也可以找来看看,我当年第一次学习Altium Designer,也是从“郭天祥”那份不太优质的视频开始的,不过Altium每年都推出新版本,如果愿意的话,从20版本开始也不错,推荐初学者看看。
终于写完了,欢迎大家吐槽~