在网上许多关于硬件电路的经验、知识让人目不暇接。像信号完整性,EMI,PS 设计准会把你搞晕。别急,一切要慢慢来。我想通过和大家探讨一些自己关于硬件电路设计方面的心得,来个“抛转引玉”,献给那些刚开始或即将开始设计硬件电路的人,让大家在“硬件电路设计”这条路上少走“弯路”。
 
01 总体思路
设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易。有些大框架也许自己的老板、老师已经想好,自己只是把思路具体实现;但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。
 
02 理解电路
如果你找到了的参考设计,那么恭喜你,你可以节约很多时间了(包括前期设计和后期调试)。马上就 copy?NO,还是先看懂理解了再说,一方面能提高我们的电路理解能力,而且能避免设计中的错误。
 
03 没有找到参考设计?
先确定大 IC 芯片,找 datasheet,看其关键参数是否符合自己的要求,哪些才是自己需要的关键参数,以及能否看懂这些关键参数,都是硬件工程师的能力的体现,这也需要长期地慢慢地积累。
 
这期间,要善于提问,因为自己不懂的东西,别人往往一句话就能点醒你,尤其是硬件设计。
 
04 硬件电路的三个主要设计部分
原理图、PCB、物料清单(BOM)表。
 
原理图设计就是将前面的思路转化为电路原理图。它很像我们教科书上的电路图。PCB 涉及到实际的电路板,它根据原理图转化而来的网表(网表是沟通原理图和 PCB 之间的桥梁),而将具体的元器件的封装放置(布局)在电路板上,然后根据飞线(也叫预拉线)连接其电信号(布线)。
 
完成了 PCB 布局布线后,要用到哪些元器件应该有所归纳,所以我们将用到 BOM 表。
 
05 用什么工具?
Prote,也就是 altimuml 容易上手,在国内也比较流行,应付一般的工作已经足够,适合初入门的设计者使用。
 
其实无论用简单的 protel 或者复杂的 cadence 工具,硬件设计大环节是一样的(protel 上的操作类似 windwos,是 post-command 型的;而 cadence 的产品 concept&allegro 是 pre-command 型的,用惯了 protel,突然转向 cadence 的工具,会不习惯就是这个原因)。
 
设计大环节都要有:
 
1)原理图设计;
 
2)PCB 设计;
 
3)制作 BOM 表。
 
下面简要谈一下设计流程(步骤)
 
(1)原理图库建立。要将一个新元件摆放在原理图上,我们必须得建立改元件的库。库中主要定义了该新元件的管脚定义及其属性,并且以具体的图形形式来代表(我们常常看到的是一个矩形(代表其 IC BODY),周围许多短线(代表 IC 管脚))。
 
protel 创建库及其简单,而且因为用的人多,许多元件都能找到现成的库,这一点对使用者极为方便。应搞清楚 icbody,icpins,inputpin,output pin,analog pin,digital pin,power pin 等区别。
 
(2)有了充足的库之后,就可以在原理图上画图了,按 datasheet 和系统设计的要求,通过 wire 把相关元件连接起来。在相关的地方添加 line 和 text 注释。
 
wire 和 line 的区别在于,前者有电气属性,后者没有。wire 适用于连接相同网络,line 适用于注释图形。这个时候,应搞清一些基本概念,如:wire,line,bus,part,footprint,等等。
 
(3)做完这一步,我们就可以生成 netlist 了,这个 netlist 是原理图与 pcb 之间的桥梁。原理图是我们能认知的形式,电脑要将其转化为 pcb,就必须将原理图转化它认识的形式 netlist,然后再处理、转化为 pcb。
 
(4)得到 netlist,马上画 pcb?别急,先做 ERC 先。ERC 是电气规则检查的缩写。它能对一些原理图基本的设计错误进行排查,如多个 output 接在一起等问题。
 
(但是一定要仔细检查自己的原理图,不能过分依赖工具,毕竟工具并不能明白你的系统,它只是纯粹地根据一些基本规则排查。)
 
(5)从 netlist 得到了 pcb,一堆密密麻麻的元件,和数不清的飞线是不是让你吓了一跳?呵呵,别急还得慢慢来。
 
(6)确定板框大小。在 keepout 区(或 mechanic 区)画个板框,这将限制了你布线的区域。需要根据需求好考虑板长,板宽(有时,还得考虑板厚)。当然了,叠层也得考虑好。
 
(叠层的意思就是,板层有几层,怎么应用,比如板总共 4 层,顶层走信号,中间第一层铺电源,中间第二层铺地,底层走信号)。
 
先解释一下(2)中的术语。post-command,例如我们要拷贝一个 object(元件),我们要先选中这个 object,然后按 ctrl+C,然后按 ctrl+V(copy 命令发生在选中 object 之后)。这种操作 windows 和 protel 都采用的这种方式。
 
但是 concept 就是另外一种方式,我们叫做 pre-command。同样我们要拷贝一个东西,先按 ctrl+C,然后再选中 object,再在外面单击(copy 命令发生在选中 object 之前)。
 
1)确定完板框之后,就该元件布局(摆放)了,布局这步极为关键。它往往决定了后期布线的难易。哪些元器件该摆正面,哪些元件该摆背面,都要有所考量。
 
但是这些都是一个仁者见仁,智者见智的问题;从不同角度考虑摆放位置都可以不一样。其实自己画了原理图,明白所有元件功能,自然对元件摆放有清楚的认识(如果让一个不是画原理图的人来摆放元件,其结果往往会让你大吃一惊^_^)。
 
对于初入门的,注意模拟元件,数字元件的隔离,以及机械位置的摆放,同时注意电源的拓扑就可以了。
 
2)接下来就是布线。这与布局往往是互动的。有经验的人往往在开始就能看出哪些地方能布线成功。如果有些地方难以布线还需要改动布局。
 
对于 fpga 设计来说往往还要改动原理图来使布线更加顺畅。布线和布局问题涉及的因素很多,对于高速数字部分,因为牵扯到信号完整性问题而变得复杂,但往往这些问题又是难以定量或即使定量也难以计算的。所以,在信号频率不是很高的情况下,应以布通为第一原则。
 
3)OK 了?别急,用 DRC 检查检查先。这是一定要检查的。DRC 对于布线完成覆盖率以及规则违反的地方都会有所标注,按照这个再一一的排查,修正。
 
4)有些 PCB 还要加上敷铜(可能会导致成本增加),将出线部分做成泪滴(工厂也许会帮你加)。最后的 PCB 文件转成 gerber 文件就可交付 PCB 生产了。(有些直接给 PCB 也成,工厂会帮你转 gerber)。
 
5)要装配 PCB,准备 bom 表吧,一般能直接从原理图中导出。但是需要注意的是,原理图中哪些部分元件该上,哪些部分元件不该上,要做到心理有数。
 
对于小批量或研究板而言,用 excel 自己管理倒也方便(大公司往往要专业软件来管理)。而对于新手而言,第一个版本,不建议直接交给装配工厂或焊接工厂将 bom 的料全部焊上,这样不便于排查问题。最好的方法就是,根据 bom 表自己准备好元件。等到板来了之后,一步步上元件、调试。