硬件开发的基本准则-转

 

下我将以一个实际的硬件设计项目为例,和大家一同探讨硬件开发的基本准则和思想,同时欢迎大家积极提出自己的问题和观点。

        1    充分了解各方的设计需求,确定合适的解决方案

        启动一个硬件开发项目,原始的推动力会来自于很多方面,比如市场的需要,基于整个系统架构的需要,应用软件部门的功能实现需要,提高系统某方面能力的需要等等,所以作为一个硬件系统的设计者,要主动的去了解各个方面的需求,并且综合起来,提出最合适的硬件解决方案。比如A项目的原始推动力来自于公司内部的一个高层软件小组,他们在实际当中发现原有的处理器板IP转发能力不能满足要求,从而对于系统的配置和使用都会造成很大的不便,所以他们提出了对新硬件的需求。根据这个目标,硬件方案中就针对性的选用了两个高性能网络处理器,然后还需要深入的和软件设计者交流,以确定内存大小,内部结构,对外接口和调试接口的数量及类型等等细节,比如软件人员喜欢将控制信令通路和数据通路完全分开来,这样在确定内部数据走向的时候要慎重考虑。项目开始之初是需要召开很多的讨论会议的,应该尽量邀请所有相关部门来参与,好处有三个,第一可以充分了解大家的需要,以免在系统设计上遗漏重要的功能,第二是可以让各个部门了解这个项目的情况,提早做好时间和人员上协作的准备,第三是从感情方面讲,在设计之初各个部门就参与了进来,这个项目就变成了大家共同的一个心血结晶,会得到大家的呵护和良好合作,对完成工作是很有帮助的。

        2    原理图设计中要注意的问题

        原理图设计中要有“拿来主义”,现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。当主要的芯片选定以后,最关键的外围设计包括了电源,时钟和芯片间的互连。

        电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。比如A项目中的网络处理器需要1.25V作为核心电压,要求精度在+5%- -3%之间,电流需要12A左右,根据这些要求,设计中采用5V的电源输入,利用Linear的开关电源控制器和IR的MOSFET搭建了合适的电源供应电路,精度要求决定了输出电容的ESR选择,并且为防止电流过大造成的电压跌落,加入了远端反馈的功能。

        时钟电路的实现要考虑到目标电路的抖动等要求,A项目中用到了GE的PHY器件,刚开始的时候使用一个内部带锁相环的零延时时钟分配芯片提供100MHz时钟,结果GE链路上出现了丢包,后来换成简单的时钟Buffer器件就解决了丢包问题,分析起来就是内部的锁相环引入了抖动。

        芯片之间的互连要保证数据的无误传输,在这方面,高速的差分信号线具有速率高,好布线,信号完整性好等特点,A项目中的多芯片间互连均采用了高速差分信号线,在调试和测试中没有出现问题。

        3    PCB设计中要注意的问题

        PCB设计中要做到目的明确,对于重要的信号线要非常严格的要求布线的长度和处理地环路,而对于低速和不重要的信号线就可以放在稍低的布线优先级上。重要的部分包括:电源的分割;内存的时钟线,控制线和数据线的长度要求;高速差分线的布线等等。

        A项目中使用内存芯片实现了1G大小的DDR memory,针对这个部分的布线是非常关键的,要考虑到控制线和地址线的拓扑分布,数据线和时钟线的长度差别控制等方面,在实现的过程中,根据芯片的数据手册和实际的工作频率可以得出具体的布线规则要求,比如同一组内的数据线长度相差不能超过多少个mil,每个通路之间的长度相差不能超过多少个mil等等。当这些要求确定后就可以明确要求PCB设计人员来实现了,如果设计中所有的重要布线要求都明确了,可以转换成整体的布线约束,利用CAD中的自动布线工具软件来实现PCB设计,这也是在高速PCB设计中的一个发展趋势。

        4    检查和调试

        当准备调试一块板的时候,一定要先认真的做好目视检查,检查在焊接的过程中是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这个好习惯可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,要坚信“凡事都是有办法解决的”和“问题出现一定有它的原因”,这样最后一定能调试成功。

        5    一些总结的话

        现在从技术的角度来说,每个设计最终都可以做出来,但是一个项目的成功与否,不仅仅取决于技术上的实现,还与完成的时间,产品的质量,团队的配合密切相关,所以良好的团队协作,透明坦诚的项目沟通,精细周密的研发安排,充裕的物料和人员安排,这样才能保证一个项目的成功。

        一个好的硬件工程师实际上就是一个项目经理,他/她需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,他/她要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计。与此同时,还要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装。在调试的过程中他/她要组织好软件工程师来一起攻关调试,配合测试工程师一起解决测试中发现的问题,等到产品推出到现场,如果出现问题,还需要做到及时的支持。所以做一个硬件设计人员要锻炼出良好的沟通能力,面对压力的调节能力,同一时间处理多个事务的协调和决断能力和良好平和的心态等等。

        还有细心和认真,因为硬件设计上的一个小疏忽往往就会造成非常大的经济损失,比如以前碰到一块板在PCB设计完备出制造文件的时候误操作造成了电源层和地层连在了一起,PCB板制造完毕后又没有检查直接上生产线贴装,到测试的时候才发现短路问题,但是元器件已经都焊接到板上了,结果造成了几十万的损失。所以细心和认真的检查,负责任的测试,不懈的学习和积累,才能使得一个硬件设计人员持续不断的进步,而后术业有所小成。


        相关文章:

        如何设计一个合适的电源

        对于现在一个电子系统来说,电源部分的设计也越来越重要,我想通过和大家探讨一些自己关于电源设计的心得,来个抛砖引玉,让我们在电源设计方面能够都有所深入和长进。

        Q1:如何来评估一个系统的电源需求

        Answer:对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要仔细考虑总的功耗,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。功耗和效率是密切相关的,效率高了,在负载功耗相同的情况下总功耗就少,对于整个系统的功率预算就非常有利了,对比LDO和开关电源,开关电源的效率要高一些。同时,评估效率不仅仅是看在满负载的时候电源电路的效率,还要关注轻负载的时候效率水平。

        至于负载瞬态响应能力,对于一些高性能的CPU应用就会有严格的要求,因为当CPU突然开始运行繁重的任务时,需要的启动电流是很大的,如果电源电路响应速度不够,造成瞬间电压下降过多过低,造成CPU运行出错。

        一般来说,要求的电源实际值多为标称值的+-5%,所以可以据此计算出允许的电源纹波,当然要预留余量的。

        散热问题对于那些大电流电源和LDO来说比较重要,通过计算也是可以评估是否合适的。

        Q2:如何选择合适的电源实现电路

        Answer:根据分析系统需求得出的具体技术指标,可以来选择合适的电源实现电路了。一般对于弱电部分,包括了LDO(线性电源转换器),开关电源电容降压转换器和开关电源电感电容转换器。相比之下,LDO设计最易实现,输出纹波小,但缺点是效率有可能不高,发热量大,可提供的电流相较开关电源不大等等。而开关电源电路设计灵活,效率高,但纹波大,实现比较复杂,调试比较烦琐等等。

        Q3:如何为开关电源电路选择合适的元器件和参数

        Answer:很多的未使用过开关电源设计的工程师会对它产生一定的畏惧心理,比如担心开关电源的干扰问题,PCB layout问题,元器件的参数和类型选择问题等。其实只要了解了,使用一个开关电源设计还是非常方便的。

        一个开关电源一般包含有开关电源控制器和输出两部分,有些控制器会将MOSFET集成到芯片中去,这样使用就更简单了,也简化了PCB设计,但是设计的灵活性就减少了一些。

        开关控制器基本上就是一个闭环的反馈控制系统,所以一般都会有一个反馈输出电压的采样电路以及反馈环的控制电路。因此这部分的设计在于保证精确的采样电路,还有来控制反馈深度,因为如果反馈环响应过慢的话,对瞬态响应能力是会有很多影响的。

        而输出部分设计包含了输出电容,输出电感以及MOSFET等等,这些的选择基本上就是要满足一个性能和成本的平衡,比如高的开关频率就可以使用小的电感值(意味着小的封装和便宜的成本),但是高的开关频率会增加干扰和对MOSFET的开关损耗,从而效率降低。使用低的开关频率带来的结果则是相反的。

        对于输出电容的ESR和MOSFET的Rds_on参数选择也是非常关键的,小的ESR可以减小输出纹波,但是电容成本会增加,好的电容会贵嘛。开关电源控制器驱动能力也要注意,过多的MOSFET是不能被良好驱动的。

        一般来说,开关电源控制器的供应商会提供具体的计算公式和使用方案供工程师借鉴的。

        Q4:如何调试开关电源电路

        Answer:有一些经验可以共享给大家

        1: 电源电路的输出输出通过低阻值大功率电阻接到板内,这样在不焊电阻的情况下可以先做到电源电路的先调试,避开后面电路的影响。

        2: 一般来说开关控制器是闭环系统,如果输出恶化的情况超过了闭环可以控制的范围,开关电源就会工作不正常,所以这种情况就需要认真检查反馈和采样电路。特别是如果采用了大ESR值的输出电容,会产生很多的电源纹波,这也会影响开关电源的工作的。

        接地技术的讨论

        Q1:为什么要接地?

        Answer:接地技术的引入最初是为了防止电力或电子等设备遭雷击而采取的保护性措施,目的是把雷电产生的雷击电流通过避雷针引入到大地,从而起到保护建筑物的作用。同时,接地也是保护人身安全的一种有效手段,当某种原因引起的相线(如电线绝缘不良,线路老化等)和设备外壳碰触时,设备的外壳就会有危险电压产生,由此生成的故障电流就会流经PE线到大地,从而起到保护作用。随着电子通信和其它数字领域的发展,在接地系统中只考虑防雷和安全已远远不能满足要求了。比如在通信系统中,大量设备之间信号的互连要求各设备都要有一个基准‘地’作为信号的参考地。而且随着电子设备的复杂化,信号频率越来越高,因此,在接地设计中,信号之间的互扰等电磁兼容问题必须给予特别关注,否则,接地不当就会严重影响系统运行的可靠性和稳定性。最近,高速信号的信号回流技术中也引入了“地”的概念。

        Q2:接地的定义

        Answer: 在现代接地概念中、对于线路工程师来说,该术语的含义通常是‘线路电压的参考点’;对于系统设计师来说,它常常是机柜或机架;对电气工程师来说,它是绿色安全地线或接到大地的意思。一个比较通用的定义是“接地是电流返回其源的低阻抗通道”。注意要求是”低阻抗”和“通路”。

        Q3:常见的接地符号

        Answer: PE,PGND,FG-保护地或机壳;BGND或DC-RETURN-直流-48V(+24V)电源(电池)回流;GND-工作地;DGND-数字地;AGND-模拟地;LGND-防雷保护地

        Q4:合适的接地方式

        Answer: 接地有多种方式,有单点接地,多点接地以及混合类型的接地。而单点接地又分为串联单点接地和并联单点接地。一般来说,单点接地用于简单电路,不同功能模块之间接地区分,以及低频(f<1MHz)电子线路。当设计高频(f>10MHz)电路时就要采用多点接地了或者多层板(完整的地平面层)。

        Q5:信号回流和跨分割的介绍

        Answer:对于一个电子信号来说,它需要寻找一条最低阻抗的电流回流到地的途径,所以如何处理这个信号回流就变得非常的关键。

        第一,根据公式可以知道,辐射强度是和回路面积成正比的,就是说回流需要走的路径越长,形成的环越大,它对外辐射的干扰也越大,所以,PCB布板的时候要尽可能减小电源回路和信号回路面积。

        第二,对于一个高速信号来说,提供有好的信号回流可以保证它的信号质量,这是因为PCB上传输线的特性阻抗一般是以地层(或电源层)为参考来计算的,如果高速线附近有连续的地平面,这样这条线的阻抗就能保持连续,如果有段线附近没有了地参考,这样阻抗就会发生变化,不连续的阻抗从而会影响到信号的完整性。所以,布线的时候要把高速线分配到靠近地平面的层,或者高速线旁边并行走一两条地线,起到屏蔽和就近提供回流的功能。

        第三,为什么说布线的时候尽量不要跨电源分割,这也是因为信号跨越了不同电源层后,它的回流途径就会很长了,容易受到干扰。当然,不是严格要求不能跨越电源分割,对于低速的信号是可以的,因为产生的干扰相比信号可以不予关心。对于高速信号就要认真检查,尽量不要跨越,可以通过调整电源部分的走线。(这是针对多层板多个电源供应情况说的)

        Q6:为什么要将模拟地和数字地分开,如何分开?

        Answer:模拟信号和数字信号都要回流到地,因为数字信号变化速度快,从而在数字地上引起的噪声就会很大,而模拟信号是需要一个干净的地参考工作的。如果模拟地和数字地混在一起,噪声就会影响到模拟信号。

        一般来说,模拟地和数字地要分开处理,然后通过细的走线连在一起,或者单点接在一起。总的思想是尽量阻隔数字地上的噪声窜到模拟地上。当然这也不是非常严格的要求模拟地和数字地必须分开,如果模拟部分附近的数字地还是很干净的话可以合在一起。

        Q7:单板上的信号如何接地?

        Answer:对于一般器件来说,就近接地是最好的,采用了拥有完整地平面的多层板设计后,对于一般信号的接地就非常容易了,基本原则是保证走线的连续性,减少过孔数量;靠近地平面或者电源平面,等等。

        Q8:单板的接口器件如何接地?

        Answer:有些单板会有对外的输入输出接口,比如串口连接器,网口RJ45连接器等等,如果对它们的接地设计得不好也会影响到正常工作,例如网口互连有误码,丢包等,并且会成为对外的电磁干扰源,把板内的噪声向外发送。一般来说会单独分割出一块独立的接口地,与信号地的连接采用细的走线连接,可以串上0欧姆或者小阻值的电阻。细的走线可以用来阻隔信号地上噪音过到接口地上来。同样的,对接口地和接口电源的滤波也要认真考虑。

        Q9:带屏蔽层的电缆线的屏蔽层如何接地?

        Answer:屏蔽电缆的屏蔽层都要接到单板的接口地上而不是信号地上,这是因为信号地上有各种的噪声,如果屏蔽层接到了信号地上,噪声电压会驱动共模电流沿屏蔽层向外干扰,所以设计不好的电缆线一般都是电磁干扰的最大噪声输出源。当然前提是接口地也要非常的干净
 

你可能感兴趣的:(学习历程----嵌入式系统编程)