tag 标签: 硬件设计

相关博文
  • 2017-3-1 15:28
    707 次阅读|
    0 个评论
    一个好的硬件工程师实际上就是一个项目经理,你需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,你需要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计。与此同时,要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装。” 基本知识   1) 基本设计规范   2) CPU基本知识、架构、性能及选型指导   3) MOTOROLA公司的PowerPC系列基本知识、性能详解及选型指导   4) 网络处理器的基本知识、架构、性能及选型   5) 常用总线的基本知识、性能详解   6) 各种存储器的详细性能介绍、设计要点及选型   7) Datacom、Telecom领域常用物理层接口芯片基本知识,性能、设计要点及选型   8) 常用器件选型要点与精华   9) FPGA、CPLD、EPLD的详细性能介绍、设计要点及选型指导   10) VHDL和Verilog HDL   11) 网络基础   12) 国内大型通信设备公司硬件研究开发流程   2、熟练掌握并使用业界最新、最流行的专业设计工具   1) ViewDraw,PowerPCB,Cam350   2) OrCad, Allegro;AD;PADS 3)各种电路仿真工具   4) 学习熟练使用VIEWDRAW、ORCAD、POWERPCB、SPECCTRA、ALLEGRO、CAM350、等工具;   5) FPGA设计工具,各个厂家的。 一、硬件总体设计 启动一个硬件开发项目,原始的推动力会来自于很多方面,比如市场的需要,基于整个系统架构的需要,应用软件部门的功能实现需要,提高系统某方面能力的需要等等,所以作为一个硬件系统的设计者,要主动的去了解各个方面的需求,并且综合起来,提出最合适的硬件解决方案。 比如A项目的原始推动力来自于公司内部的一个高层软件小组,他们在实际当中发现原有的处理器板IP转发能力不能满足要求,从而对于系统的配置和使用都会造成很大的不便,所以他们提出了对新硬件的需求。根据这个目标,硬件方案中就针对性的选用了两个高性能网络处理器,然后还需要深入的和软件设计者交流,以确定内存大小,内部结构,对外接口和调试接口的数量及类型等等细节,比如软件人员喜欢将控制信令通路和数据通路完全分开来,这样在确定内部数据走向的时候要慎重考虑。 项目开始之初是需要召开很多的讨论会议的,应该尽量邀请所有相关部门来参与,好处有三个,第一可以充分了解大家的需要,以免在系统设计上遗漏重要的功能,第二是可以让各个部门了解这个项目的情况,提早做好时间和人员上协作的准备,第三是从感情方面讲,在设计之初各个部门就参与了进来,这个项目就变成了大家共同的一个心血结晶,会得到大家的呵护和良好合作,对完成工作是很有帮助的。 掌握硬件总体设计所必须具备的硬件设计经验与设计思路   1) 产品需求分析   2) 开发可行性分析   3) 系统方案调研   4) 总体架构,CPU选型,总线类型   5) 数据通信与电信领域主流CPU:M68k系列,   PowerPC860,PowerPC8240,8260体系结构,性能及对比   6) 总体硬件结构设计及应注意的问题   7) 通信接口类型选择   8) 任务分解   9) 最小系统设计   10) PCI总线知识与规范   11) 如何在总体设计阶段避免出现致命性错误   12) 如何合理地进行任务分解以达到事半功倍的效果?   13) 项目案例:中、低端路由器等 二. 硬件原理图设计技术   目的:通过具体的项目案例,详细进行原理图设计全部经验,设计要点与精髓揭密。   1) 电信与数据通信领域主流CPU的原理设计经验与精华   2) Intel公司PC主板的原理图设计精髓   3) 网络处理器的原理设计经验与精华   4) 总线结构原理设计经验与精华   5) 内存系统原理设计经验与精华   6) 数据通信与电信领域通用物理层接口的原理设计经验与精华   7) 电信与数据通信设备常用的WATCHDOG的原理设计经验与精华   8) 电信与数据通信设备系统带电插拔原理设计经验与精华   9) 晶振与时钟系统原理设计经验与精华   10) PCI总线的原理图设计经验与精华   11) 项目案例:中、低端路由器等 原理图设计中要注意的问题: 原理图设计中要有“拿来主义”,现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。当主要的芯片选定以后,最关键的外围设计包括了电源,时钟和芯片间的互连。 电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。比如A项目中的网络处理器需要1.25V作为核心电压,要求精度在+5%- -3%之间,电流需要12A左右,根据这些要求,设计中采用5V的电源输入,利用Linear的开关电源控制器和IR的MOSFET搭建了合适的电源供应电路,精度要求决定了输出电容的ESR选择,并且为防止电流过大造成的电压跌落,加入了远端反馈的功能。 时钟电路的实现要考虑到目标电路的抖动等要求,A项目中用到了GE的PHY器件,刚开始的时候使用一个内部带锁相环的零延时时钟分配芯片提供100MHz 时钟,结果GE链路上出现了丢包,后来换成简单的时钟Buffer器件就解决了丢包问题,分析起来就是内部的锁相环引入了抖动。 芯片之间的互连要保证数据的无误传输,在这方面,高速的差分信号线具有速率高,好布线,信号完整性好等特点,A项目中的多芯片间互连均采用了高速差分信号线,在调试和测试中没有出现问题。 需要熟悉各种电平标准,保证电平匹配。 三.硬件PCB图设计   目的:通过具体的项目案例,进行PCB设计全部经验揭密,使你迅速成长为优秀的硬件工程师   1) 高速CPU板PCB设计经验与精华   2) 普通PCB的设计要点与精华   3) PowerPC、ARM、MIPS、单片机的PCB设计精华   4) Intel公司PC主板的PCB设计精华   5) PC主板、工控机主板、电信设备用主板的PCB设计经验精华   6) 国内著名通信公司PCB设计规范与工作流程   7) PCB设计中生产、加工工艺的相关要求   8) 高速PCB设计中的传输线问题   9) 电信与数据通信领域主流CPU(PowerPC系列)的PCB设计经验与精华   10) 电信与数据通信领域通用物理层接口(百兆、千兆以太网,ATM等)的PCB设计经验与精华   11) 网络处理器的PCB设计经验与精华   12) PCB步线的拓扑结构极其重要性   13) PCI步线的PCB设计经验与精华   14) SDRAM、DDR SDRAM(125/133MHz)的PCB设计经验与精华   15) 项目案例:中端路由器PCB设计   PCB设计中要注意的问题:   PCB设计中要做到目的明确,对于重要的信号线要非常严格的要求布线的长度和处理地环路,而对于低速和不重要的信号线就可以放在稍低的布线优先级上。重要的部分包括:电源的分割;内存的时钟线,控制线和数据线的长度要求;高速差分线的布线等等。  项目中使用内存芯片实现了1G大小的DDR memory,针对这个部分的布线是非常关键的,要考虑到控制线和地址线的拓扑分布,数据线和时钟线的长度差别控制等方面,在实现的过程中,根据芯片的数据手册和实际的工作频率可以得出具体的布线规则要求,比如同一组内的数据线长度相差不能超过多少个mil,每个通路之间的长度相差不能超过多少个mil等等。当这些要求确定后就可以明确要求PCB设计人员来实现了,如果设计中所有的重要布线要求都明确了,可以转换成整体的布线约束,利用CAD中的自动布线工具软件来实现PCB设计,这也是在高速PCB设计中的一个发展趋势。 四.硬件调试 目的:以具体的项目案例,传授硬件调试、测试经验与要点   1) 硬件调试等同于黑箱调试,如何快速分析、解决问题?   2) 大量调试经验的传授;   3) 如何加速硬件调试过程;   4) 如何迅速解决硬件调试问题;   5) DATACOM终端设备的CE测试要求。   当准备调试一块板的时候,一定要先认真的做好目视检查,检查在焊接的过程中是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这个好习惯可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,要坚信“凡事都是有办法解决的”和“问题出现一定有它的原因”,这样最后一定能调试成功。 五.软硬件联合调试   1) 如何判别是软件的错?   2) 如何与软件进行联合调试?   3) 大量的联合调试经验的传授。 总结: 现在从技术的角度来说,每个设计最终都可以做出来,但是一个项目的成功与否,不仅仅取决于技术上的实现,还与完成的时间,产品的质量,团队的配合密切相关,所以良好的团队协作,透明坦诚的项目沟通,精细周密的研发安排,充裕的物料和人员安排,这样才能保证一个项目的成功。 一个好的硬件工程师实际上就是一个项目经理,他/她需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,他/她要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计。与此同时,还要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装。在调试的过程中他/她要组织好软件工程师来一起攻关调试,配合测试工程师一起解决测试中发现的问题,等到产品推出到现场,如果出现问题,还需要做到及时的支持。所以做一个硬件设计人员要锻炼出良好的沟通能力,面对压力的调节能力,同一时间处理多个事务的协调和决断能力和良好平和的心态等等。 能力要求 还有细心和认真,因为硬件设计上的一个小疏忽往往就会造成非常大的经济损失,比如以前碰到一块板在PCB设计完备出制造文件的时候误操作造成了电源层和地层连在了一起,PCB板制造完毕后又没有检查直接上生产线贴装,到测试的时候才发现短路问题,但是元器件已经都焊接到板上了,结果造成了几十万的损失。所以细心和认真的检查,负责任的测试,不懈的学习和积累,才能使得一个硬件设计人员持续不断的进步,而后术业有所小成。 工程开发一个重要特点就是“踩在前人的足迹”,就是通过过去几十上百年的工程实践,对于各种情况有了很多经验数据和经验方法,比如对于PCB layout来说,基本上每个公司都有自己的design guidelines/check list,这就是公司在过去很多项目中总结出来的,每一条可以说都付出了“血”的代价,这是对于板级设计来说了;对于核心芯片和器件,就更是如此了,芯片 或器件公司几十数百人历时数年搞出来的一款芯片和器件,又岂是你通过几百页datasheet可以彻底理解的。 大多数情况下,知道主要接口,参数,功能和性能就足够了,尤其是芯片/器件公司提供的design guidelines或者application notes,里面一般都是芯片/器件工程师的肺腑之言,经验之谈,一般来说没有个十年二十年工作经验的工程师是写不了这些东西的。 看起来虽然很简单,看起来像是废话,但是细细分析,结合电路定理和电磁定律,略微分析,就会发现简直字字珠玑。刚毕业的好学生(一般来说学习好,喜欢 啃难题,学习能力强,求知欲强)初干硬件设计,就会发现涉及的知识点和技术要点太多了,如果这个知识点想要理解透彻,那个知识点也要理解透彻,会发现一天 24小时根本不够用,但是对不起,公司请你过来不是让你学习的,是要干硬件设计的,过一个月就要见原理图了,你还在这捧着OrCAD手册一个命令一个命令 学习OrCAD使用技巧,研究为啥要有串行电阻呢,研究这个电容是取0.1uF还是0.01uF.。 有求知欲是好事,但是那是在工作之余,项目之余,虚心向前辈学习,尽量利用各种design guidelines,尽快完成设计工作,记录自己的知识缺点,在业余时间努力学习,理解透彻,通过设计验证/测试,加深对于知识点的了解,这才是正确的工作方法。 我在刚毕业的时候欣喜的发现传输线理论太重要了,遂花了一个月把传输线理论努力了一把,并推导了大量公式进行验证,其实总结起来就是几句话,阻抗匹 配,如果接收端阻抗大于发送端,信号会怎么样;如果小于,信号会怎么样;如果开路,会怎么样;如果短路,会怎么样,这几条基本每本信号完整性的书上都会介 绍,也不会有很复杂的数学公式推导,知道就行了,然后就是如何平衡发射端的阻抗,串行电阻,PCB阻抗,匹配阻抗等等,都是简单的数学公式。 关于硬件设计的各种技术/标准/芯片/器件都要知道,需要的时候,能够信手拈来,功能性能,参数特性,优点缺点。 快速学习的能力: 一方面,通信技术,标准,芯片更新的太快了,快到你根本来不及系统的了解它,只能通过特定的项目,需求进行了解;另一方面对于公司来说,需要做的硬件 产品也是变化很快,客户需要T1, E1, PDH, SDH,Ethernet, VoIP, Switch, Router, 没有人是什么都懂的,都需要能够结合客户的需求,选择的芯片方案进行详细了解,尤其对于接口协议和电气特性。 通信协议和标准的理解: 通信设备,顾名思义,就是用来实现多种通信协议(比如T1, E1, V.35,PDH, SDH/SONET, ATM, USB, VoIP, WiFi, Ethernet, TCP/IP,RS232等等常用协议)实现通信的设备,各种电路,PCB板,电源都是为了通信协议服务的。 通信协议一般都是由芯片实现,要么是成熟的 ASIC,要么是自己开发的FPGA/CPLD,芯片工程师或者FPGA工程师比硬件工程师跟靠近通信协议,他们需要对于通信协议理解很透彻,实现各种逻 辑上的状态机以及满足协议规定的电气参数标准。按照OSI的七层模型,硬件工程师尤其需要专注于一层物理层和二层数据链路层的协议标准,以 Ethernet距离,物理层是由PHY/transceiver芯片完成,数据链路层是由MAC/switch 芯片完成,对于从事Ethernet相关开发的硬件工程师来说,需要对于PHY和Switch芯片理解透彻,从编码方式,电气参数,眼图标准,模板,信号 频率到帧格式,转发处理逻辑,VLAN等等。 对于传统PDH/SDH/SONET设备就更是如此,PDH/SDH/SONET是更硬件的设备,就是说主要协议都是通过ASIC实现的,软件的功能 主要是管理,配置,监视,告警,性能,对于硬件工程师来说,必须要熟悉使用的相关协议和接口标准,尤其对于电气规范,眼图模板,这样在设计验证的时候才能胸有成竹。 写文档的能力: 诚如软件设计一样,好的软件设计需要好的设计文档,明确需求,实现什么功能,达到什么验收标准,随着芯片集成度的增加,接口速率的提高,单板复杂度的 提高,硬件设计也越来越复杂以及对应热稳定性,可靠性,电磁兼容,环境保护的要求,已经不是通过小米加步木。仓的游击战可以解决了,每一个硬件项目都是一 场战争,都需要好好的规划,好好的分析,这就需要好好做文档。 对于硬件工程师来说,最重要的文档有两个:一个是硬件设计规范(HDS : hardware design specification)和硬件测试报告(一般叫EVT:Engineering Validation Test report或者DVT: Design Validation Test report),对于HDS的要求是内容详实,明确,主芯片的选择/硬件初始化,CPU的选择和初始化,接口芯片的选择/初始化/管理,各芯片之间连接关 系框图(Block Diagram),DRAM类型/大小/速度,FLASH类型/大小/速度,片选,中断,GPIO的定义,复位逻辑和拓扑图,时钟/晶振选择/拓 扑,RTC的使用,内存映射(Memory map)关系, I2C器件选择/拓扑,接口器件/线序定义,LED的大小/颜色/驱动,散热片,风扇,JTAG,电源拓扑/时序/电路等等。 对于DVT来说,要求很简单也很复杂:板卡上有什么接口,芯片,主要器件,电路,就要测试什么,尤其在板卡正常工作的情况下的电源/电压/纹波/时 序,业务接口的眼图/模板,内部数据总线的信号完整性和时序(如MII, RGMII, XAUI, PCIe,PCM bus, Telecom Bus, SERDES, UART等等),CPU子系统(如时钟,复位,SDRAM/DDR,FLASH接口)。 好的硬件工程师无论是做的文档还是报道都是令人一目了然,这个硬件系统需要用什么方案和电路,最后验证测试的结果如何。内容详实,不遗漏各种接口/电路;简单名了,不说废话;图文并茂,需要的时候一个时序图,一个示波器抓图就很能说明问题了。 仪表/软件的使用能力: 仪表包括电烙铁,万用表,示波器,逻辑分析仪,误码仪,传输分析仪,以太网测试仪Smartbits/IXIA,热量计,衰减器,光功率计,射频信号 强度计等等;软件包括Office(Outlook,Word, Excel, PowerPoint, Project, Visio),PDF,常用原理图软件Pads或者OrCAD,常用PCB软件Pads或者Allegro,Allegro Viewer,电路仿真软件PSPICE,信号仿真软件HyperLynx等等。 无论仪表还是软件,在政治经济学里说都是生产工具,都是促进生产力提高的,作为硬件工程师来说,这些仪表和软件就是手中的木。仓炮,硬件工程师很大一 部分能力的体现都在与仪表和软件的使用上,尤其对于原理图软件和示波器的使用,更是十分重要,原理图软件的使用是硬件设计的具体实现,通过一个个器件的摆 放,一个个NET的连接,构成了是十分复杂的硬件逻辑软件,是整个硬件设计的核心工作,任何一个原理图上的失误和错误造成的损失都是巨大的,真是“如履薄 冰,战战兢兢”。 另外,原理图软件的使用还体现在原理图的美观上,好的设计,简单明了,注释明确,无论是谁,顺着思路就能很快搞清楚设计意图,需要特别注意之处,不好 的设计,东一个器件,西一个器件,没有逻辑,命名怪异,难以理解,日后维护起来相当麻烦;示波器在所有测试仪表之中,对于硬件工程师是最重要的,无论原理 图还是PCB都是设计工作,但是任何设计都需要仔细的验证测试,尤其在信号方面,都需要大量的示波器工作,不会正确的使用示波器根本谈不上正确的验证,接 地有没有接好,测试点的选择,触发的选择,延时的选择,幅度、时间的选择,都决定着测试的结果。如果错误的使用示波器必然带来错误的测试结果,这种情况 下,有可能本来是错误的设计被误认为是正确的,带来巨大的隐患;本来是正确的设计被误认为是错误的,带来大量的时间精力浪费。 电路设计的能力: 随着芯片集成度的提高,硬件设计似乎变简单了。首先是逻辑连接,其次考虑信号完整性需要的串行电阻选择和并行电容选择,电源滤波,退耦。不过对于好的 硬件工程师来说,简单的逻辑连接(这个芯片的同样总线的输出接另一个芯片的输入,等等),只是硬件设计的最基本技能,电路是芯片功能,通信协议和各种软件 的载体,没有对电路的深入理解,根本谈不上对硬件设计的深入理解,尤其对于芯片后面列的电气性能参数或者离散器件各种参数的理解,胡乱乱接,可能在 3.3V的总线上可以工作,但是现在工作电压已经降到1V了,什么概念,信号线上的噪声都已经大到可以使采样出现误判了,随着信号速率的提高和工作电压的 降低,数字信号已经越来越模拟化了,这就需要对于PCB的阻抗,容抗,感抗,离散器件(电阻,电容,电感,二极管,三极管,MOSFET,变压器 等),ASIC的接口电气参数深入了解,这都需要对电路原理,模拟电路甚至电磁场理论深入学习,电路可以说是电磁场理论的子集,没有电磁场理论的理解,根 本谈不上对于电容,电感,串扰,电磁辐射的理解。 尤其对于电源电路设计上,现在芯片电压多样化,电压越来越低,电流越来越大,运营商对于通信设备功耗的严格要求,散热要求,对于电源设计的挑战越来越 大。可以说,对于一个硬件设计来说,40%的工作都是在于电源电路的原理图/PCB设计和后期测试验证,电源电路设计是硬件工程师电路能力的集中体现,各 种被动器件、半导体器件、保护器件、DC/DC转换典型拓扑,都有很多参数,公式需要考虑到,计算到。 6.沟通和全局控制的能力: 硬件工程师在一个硬件项目中,一般处于Team leader的作用,要对这个硬件项目全权负责,需要协调好PCB工程师,结构工程师,信号完整性工程师,电磁兼容工程师等各种资源,并与产品经理,项目 经理,软件工程师,生产工程师,采购工程师紧密配合,确保各个环节按部就班,需要对整个项目计划了然于胸,各个子任务的发布时间,对于可能出现的技术难题 和风险的估计,控制。
  • 2017-2-17 08:54
    378 次阅读|
    0 个评论
    6、false 路径 硬件设计中总是会存在一些不可能的逻辑电路路径,这一种路径需要设置成false path,目的是让工具不再对其进行优化和时序检查。比较常见的false path例如两个时钟域之间的逻辑,如果你不指定为falth path,那么工具费很大的力气也很难让时序满足,因为本身跨时钟域时序关系就是不确定的。关掉的目的就是不让工具检查,省时省力,而他们之间的正确性要靠cdc处理(可以参考我之前写的关于cdc的 处理方法)。另外还有scan逻辑和正常逻辑之间的逻辑也可以设置成false path。 7、half cycle path半周期路径 有一些外设的工作沿是双沿的,也就是一个边沿推出数据,另一个边沿采样数据,比较常见的外设有ddr,也有一些通信协议,例如xgmii用于以太网和光纤的通信协议。 如上图,下降沿launch数据,最靠近的上升沿capture数据,离capture边沿1T的是hold检验边沿。这样的话,可以看成hold多了半个周期的slack。 8、recovery和removal 这两个的时间检查用于异步逻辑的释放动作,例如异步的复位动作。Removal类似于hold的检查,recovery类似于setup的检查。
  • 热度 4
    2014-1-7 08:55
    4823 次阅读|
    4 个评论
    一:成本节约 现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧 点评:市场上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。 20%精度的电阻阻值只有1、1.5、2.2、3.3、4.7、6.8几个类别(含10的整数倍);类似地,20%精度的电容也只有以上几种值,如果选了 其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处。 现象二:面板上的指示灯选什么颜色呢?我觉得蓝色比较特别,就选它吧 点评:其它红绿黄橙等颜色的不管大小(5MM以下)封装如何,都已成熟了几十年,价格一般都在5毛钱以下,而蓝色却是近三四年才发明的东西,技术成熟度和供货稳定度都较差,价格却要贵四五倍。目前蓝色指示灯只用在不能用其它颜色替代的场合,如显示视频信号等。 现象三:这点逻辑用74XX的门电路搭也行,但太土,还是用CPLD吧,显得高档多了 点评:74XX的门电路只几毛钱,而CPLD至少也得几十块,(GAL/PAL虽然只几块钱,但公司不推荐使用)。成本提高了N倍不说,还给生产、文档等工作增添数倍的工作。 现象四:我们的系统要求这么高,包括MEM、CPU、FPGA等所有的芯片都要选最快的 点评:在一个高速系统中并不是每一部分都工作在高速状态,而器件速度每提高一个等级,价格差不多要翻倍,另外还给信号完整性问题带来极大的负面影响。 现象五:这板子的PCB设计要求不高,就用细一点的线,自动布吧 点评:自动布线必然要占用更大的PCB面积,同时产生比手动布线多好多倍的过孔,在批量很大的产品中,PCB厂家降价所考虑的因素除了商务因素外,就是线宽和过孔数量,它们分别影响到PCB的成品率和钻头的消耗数量,节约了供应商的成本,也就给降价找到了理由。 现象六:程序只要稳定就可以了,代码长一点,效率低一点不是关键 点评:CPU的速度和存储器的空间都是用钱买来的,如果写代码时多花几天时间提高一下程序效率,那么从降低CPU主频和减少存储器容量所节约的成本绝对是划算的。CPLD/FPGA设计也类似。 二:低功耗设计 现象一:我们这系统是220V供电,就不用在乎功耗问题了 点评:低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本、由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则相应延长(半导体器件的工作温度每提高10度,寿命则缩短一半) 现象二:这些总线信号都用电阻拉一下,感觉放心些 点评:信号需要上下拉的原因很多,但也不是个个都要拉。上下拉电阻拉一个单纯的输入信号,电流也就几十微安以下,但拉一个被驱动了的信号,其电流将达毫安 级,现在的系统常常是地址数据各32位,可能还有244/245隔离后的总线及其它信号,都上拉的话,几瓦的功耗就耗在这些电阻上了(不要用8毛钱一度电 的观念来对待这几瓦的功耗)。 现象三:CPU和FPGA的这些不用的I/O口怎么处理呢?先让它空着吧,以后再说 点评:不用的I/O口如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号了,而MOS器件的功耗基本取决于门电路的翻转次数。如果把它上拉的话,每个引脚也会有微安级的电流,所以最好的办法是设成输出(当然外面不能接其它有驱动的信号) 现象四:这款FPGA还剩这么多门用不完,可尽情发挥吧 点评:FGPA的功耗与被使用的触发器数量及其翻转次数成正比,所以同一型号的FPGA在不同电路不同时刻的功耗可能相差100倍。尽量减少高速翻转的触发器数量是降低FPGA功耗的根本方法。 现象五:这些小芯片的功耗都很低,不用考虑 点评:对于内部不太复杂的芯片功耗是很难确定的,它主要由引脚上的电流确定,一个ABT16244,没有负载的话耗电大概不到1毫安,但它的指标是每个脚 可驱动60毫安的负载(如匹配几十欧姆的电阻),即满负荷的功耗最大可达60*16=960mA,当然只是电源电流这么大,热量都落到负载身上了。 现象六:存储器有这么多控制信号,我这块板子只需要用OE和WE信号就可以了,片选就接地吧,这样读操作时数据出来得快多了。 点评:大部分存储器的功耗在片选有效时(不论OE和WE如何)将比片选无效时大100倍以上,所以应尽可能使用CS来控制芯片,并且在满足其它要求的情况下尽可能缩短片选脉冲的宽度。 现象七:这些信号怎么都有过冲啊?只要匹配得好,就可消除了 点评:除了少数特定信号外(如100BASE-T、CML),都是有过冲的,只要不是很大,并不一定都需要匹配,即使匹配也并非要匹配得最好。象TTL的 输出阻抗不到50欧姆,有的甚至20欧姆,如果也用这么大的匹配电阻的话,那电流就非常大了,功耗是无法接受的,另外信号幅度也将小得不能用,再说一般信 号在输出高电平和输出低电平时的输出阻抗并不相同,也没办法做到完全匹配。所以对TTL、LVDS、422等信号的匹配只要做到过冲可以接受即可。 现象八:降低功耗都是硬件人员的事,与软件没关系 点评:硬件只是搭个舞台,唱戏的却是软件,总线上几乎每一个芯片的访问、每一个信号的翻转差不多都由软件控制的,如果软件能减少外存的访问次数(多使用寄 存器变量、多使用内部CACHE等)、及时响应中断(中断往往是低电平有效并带有上拉电阻)及其它争对具体单板的特定措施都将对降低功耗作出很大的贡献。 三:系统效率 现象一:这主频100M的CPU只能处理70%,换200M主频的就没事了 点评:系统的处理能力牵涉到多种多样的因素,在通信业务中其瓶颈一般都在存储器上,CPU再快,外部访问快不起来也是徒劳。 现象二:CPU用大一点的CACHE,就应该快了 点评:CACHE的增大,并不一定就导致系统性能的提高,在某些情况下关闭CACHE反而比使用CACHE还快。原因是搬到CACHE中的数据必须得到多 次重复使用才会提高系统效率。所以在通信系统中一般只打开指令CACHE,数据CACHE即使打开也只局限在部分存储空间,如堆栈部分。同时也要求程序设 计要兼顾CACHE的容量及块大小,这涉及到关键代码循环体的长度及跳转范围,如果一个循环刚好比CACHE大那么一点点,又在反复循环的话,那就惨了。 现象三:这么多任务到底是用中断还是用查询呢?还是中断快些吧 点评:中断的实时性强,但不一定快。如果中断任务特别多的话,这个没退出来,后面又接踵而至,一会儿系统就将崩溃了。如果任务数量多但很频繁的话,CPU 的很大精力都用在进出中断的开销上,系统效率极为低下,如果改用查询方式反而可极大提高效率,但查询有时不能满足实时性要求,所以最好的办法是在中断中查 询,即进一次中断就把积累的所有任务都处理完再退出。 现象四:存储器接口的时序都是厂家默认的配置,不用修改的 点评:BSP对存储器接口设置的默认值都是按最保守的参数设置的,在实际应用中应结合总线工作频率和等待周期等参数进行合理调配。有时把频率降低反而可提 高效率,如RAM的存取周期是70ns,总线频率为40M时,设3个周期的存取时间,即75ns即可;若总线频率为50M时,必须设为4个周期,实际存取 时间却放慢到了80ns。 现象五:一个CPU处理不过来,就用两个分布处理,处理能力可提高一倍 点评:对于搬砖头来说,两个人应该比一个人的效率高一倍;对于作画来说,多一个人只能帮倒忙。使用几个CPU需对业务有较多的了解后才能确定,尽量减少两个CPU间协调的代价,使1+1尽可能接近2,千万别小于1。 现象六:这个CPU带有DMA模块,用它来搬数据肯定快 点评:真正的DMA是由硬件抢占总线后同时启动两端设备,在一个周期内这边读,那边写。但很多嵌入CPU内的DMA只是模拟而已,启动每一次DMA之前要 做不少准备工作(设起始地址和长度等),在传输时往往是先读到芯片内暂存,然后再写出去,即搬一次数据需两个时钟周期,比软件来搬要快一些(不需要取指 令,没有循环跳转等额外工作),但如果一次只搬几个字节,还要做一堆准备工作,一般还涉及函数调用,效率并不高。所以这种DMA只对大 数据块才适用。 四:信号完整性 现象一:这些信号都经过仿真了,绝对没问题 点评:仿真模型不可能与实物一模一样,连不同批次加工的实物都有差别,就更别说模型了。再说实际情况千差万别,仿真也不可能穷举所有可能,尤其是串扰。曾 经有一教训是某单板只有特定长度的包极易丢包,最后的原因是长度域的值是0xFF,当这个数据出现在总线上时,干扰了相邻的WE信号,导致写不进RAM。 其它数据也会对WE产生干扰,但干扰在可接受的范围内,可是当8位总线同时由0变1时,附近的信号就招架不住了。结论是仿真结果仅供参考,还应留有足够的 余量。 现象二:100M的数据总线应该算高频信号,至于这个时钟信号频率才8K,问题不大 点评:数据总线的值一般是由控制信号或时钟信号的某个边沿来采样的,只要争对这个边沿保持足够的建立时间和保持时间即可,此范围之外有干扰也罢过冲也罢都 不会有多大影响(当然过冲最好不要超过芯片所能承受的最大电压值),但时钟信号不管频率多低(其实频谱范围是很宽的),它的边沿才是关键的,必须保证其单 调性,并且跳变时间需在一定范围内。 现象三:既然是数字信号,边沿当然是越陡越好 点评:边沿越陡,其频谱范围就越宽,高频部分的能量就越大;频率越高的信号就越容易辐射(如微波电台可做成手机,而长波电台很多国家都做不出来),也就越容易干扰别的信号,而自身在导线上的传输质量却变得越差,因此能用低速芯片的尽量使用低速芯片。 现象四:为保证干净的电源,去偶电容是多多益善 点评:总的来说去偶电容越多电源当然会更平稳,但太多了也有不利因素:浪费成本、布线困难、上电冲击电流太大等。去偶电容的设计关键是要选对容量并且放对地方,一般的芯片手册都有争对去偶电容的设计参考,最好按手册去做。 现象五:信号匹配真麻烦,如何才能匹配好呢? 点评:总的原则是当信号在导线上的传输时间超过其跳变时间时,信号的反射问题才显得重要。信号产生反射的原因是线路阻抗的不均匀造成的,匹配的目的就是为 了使驱动端、负载端及传输线的阻抗变得接近,但能否匹配得好,与信号线在PCB上的拓扑结构也有很大关系,传输线上的一条分支、一个过孔、一个拐角、一个 接插件、不同位置与地线距离的改变等都将使阻抗产生变化,而且这些因素将使反射波形变得异常复杂,很难匹配,因此高速信号仅使用点到点的方式,尽可能地减 少过孔、拐角等问题。 五:可靠性设计 现象一:这块单板已小批量生产了,经过长时间测试没发现任何问题 点评:硬件设计和芯片应用必须符合相关规范,尤其是芯片手册中提到的所有参数(耐压、I/O电平范围、电流、时序、温度PCB布线、电源质量等),不能光 靠试验来验证。公司有不少产品都有过惨痛的教训,产品卖了一两年,IC厂家换了个生产线,咱们的板子就不转了,原因就是人家的芯片参数发生了点变化,但并 没有超出手册的范围。如果你以手册为准,那他怎么变化都不怕,如果参数变得超出手册范围了还可找他索赔(假如这时你的板子还能转,那你的可靠性就更牛 了)。 现象二:这部分电路只要要求软件这样设计就不会有问题 点评:硬件上很多电气特性直接受软件控制,但软件是经常发生意外的,程序跑飞了之后无法预料会有什么操作。设计者应确保不论软件做什么样的操作硬件都不应在短时间内发生永久性损坏。 现象三:用户操作错误发生问题就不能怪我了 点评:要求用户严格按手册操作是没错的,但用户是人,就有犯错的时候,不能说碰错一个键就死机,插错一个插头就烧板子。所以对用户可能犯的各种错误必须加以保护。 现象四:这板子坏的原因是对端的板子出问题了,也不是我的责任 点评:对于各种对外的硬件接口应有足够的兼容性,不能因为对方信号不正常,你就歇着了。它不正常只应影响到与其有关的那部分功能,而其它功能应能正常工作,不应彻底**,甚至永久损坏,而且一旦接口恢复,你也应立即恢复正常.  
  • 2012-7-26 22:11
    403 次阅读|
    0 个评论
    小张,大学毕业后就进了现在的公司上班,凭能力到一线城市肯定能找到一个更好的公司,待遇也肯定比现在的要好,但他放弃了其他的选择。 在学校里,小张是做硬件出身,或者说对硬件设计更感兴趣。在他的眼里,硬件就像是画家手中的图画,每一条线条就像是画中的那一笔,每一个元件就像是画中的实物,那么的栩栩如生,那么的生动形象,惟妙惟肖,每一次看到制作精致的板子就会像欣赏一件艺术珍品一样,细细地端详好一阵子,好似见到了挚爱的情人,久久不能释怀,又好似嗜酒的人闻到了陈年的酒香,如痴如醉。用他的话说,就是此身与硬件是紧紧地联系在了一起,或是为了硬件设计而生的,仿佛他天生就有一种做硬件设计的天赋。 在学校里,只要一有机会他就会把时间花在硬件设计相关的事情上,达到了痴迷的程度,能为了布置的项目任务设计一款板子,花上几天或一周甚至更长的时间来倒腾那些设计,有时睡觉快睡着了,突然来了灵感又马上起床来倒腾那些画好的板子。在他的眼里,那些板子上的元件就像是人一样,是有生命的活物。硬件设计就像是中药医生一样,是需要进行经验积累了,也就是说越老的设计者在设计相同的任务时可能采用的元件花费更少功能更优,这就好比中药医生一样,年老的中药医生在看病时用药更准确更低廉更常见。在他的生活中,他不能想象不进行这样思考后的生活,也没有想过不进行硬件设计后的生活,因为在他的眼中只有硬件生活,其他的生活是不会发生的。(未完待续)
  • 热度 5
    2012-2-20 21:17
    1704 次阅读|
    5 个评论
    一、电源是系统的血脉,要舍得成本,这对产品的稳定性和通过各种认证是非常有好处的。 1.尽量采用∏型滤波,增加10uH电感,每个芯片电源管脚要接104旁路电容; 2.采用压敏电阻或瞬态二极管,抑制浪涌; 3.模电和数电地分开,大电流和小电流地回路分开,采用磁珠或零欧电阻隔开; 4.设计要留有余量,避免电源芯片过热,攻耗达到额定值的50%要用散热片。 二、输入IO记得要上拉; 三、输出IO记得核算驱动能力; 四、高速IO,布线过长采用33殴电阻抑制反射; 五、各芯片之间电平匹配; 六、开关器件是否需要避免晶体管开关时的过冲特性; 七、单板有可测试电路,能独立完成功能测试; 八、要有重要信号测试点和接地点; 九、版本标识; 十、状态指示灯。 如果每次的原理图设计,都能仔细的核对上面十点,将会提高产品设计的成功率,减少更改次数,缩短设计周期。
相关资源
  • 所需E币: 0
    时间: 2019-8-2 10:49
    大小: 0B
    上传者: eeNick
    磁珠的等效电路相当于带阻限波器,只对某个频点的噪声有显著抑制作用,使用时需要预先估计噪点频率,以便选用适当型号.对于频率不确定或无法预知的情况,磁珠不合。 电容隔直通交,造成浮地。 电感体积大,杂散参数多,不稳定。 0欧电阻相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制.电阻在所有频带上都有衰减作用(0欧电阻也有阻抗),这点比磁珠强。
  • 所需E币: 0
    时间: 2019-7-25 15:53
    大小: 0B
    硬件设计中一些术语简称及其解释,适合小白
  • 所需E币: 3
    时间: 2019-6-12 20:10
    大小: 0B
    上传者: royalark_912907664
    螺丝是紧固件的通用说法,是日常生活中不可或缺的工业必需品,目前多数产品上的螺丝仍是操作工手动锁紧,如果需锁紧螺丝数量较多的话,容易漏打、错打。本文以STM8S903K3为主控芯片,设计了一款按照统一顺序锁紧螺丝的装置——序列打螺丝夹具,文章首先提出了设计方案,然后给出了序列打螺丝夹具的原理框图并针对芯片外围电路模块进行了重点设计说明,最后对运行状态指示、扩展及其他功能进行了说明。该设计具备可行性,实现了按统一顺序锁紧螺丝,解决了螺丝数量较多时螺丝的漏打、错打问题,具备很大的推广价值。
  • 所需E币: 3
    时间: 2019-6-13 23:13
    大小: 0B
    上传者: royalark_912907664
    周立功 ARM9嵌入式系统硬件设计指南
  • 所需E币: 3
    时间: 2019-6-13 23:14
    大小: 0B
    上传者: royalark_912907664
    EasyARM-iMX28X 硬件设计指导手册
  • 所需E币: 3
    时间: 2019-6-9 22:41
    大小: 0B
    上传者: royalark_912907664
    本文基于单片机设计了一款哈氏可磨性指数测定仪。主要对哈氏可磨性指数测定仪的测量原理进行了介绍,在此基础上,对整个硬件系统进行了完成的方案设计,硬件系统包括人机界面卡和控制板卡,并对其中的重要模块给出了设计原理图。产品完成设计后,进行了软硬件调试和样机装配,达到设计要求。
  • 所需E币: 3
    时间: 2019-6-3 20:54
    大小: 0B
    上传者: royalark_912907664
    针对市面LED护栏管产品采用单线串行传输通信方式及功能单一的不足,利用PC机具备强大数据处理能力的特点,结合FT232RL硬件电路的设计,控制软件程序的编写,开发一种新型LED护栏管解决方案,该方案无需外接任何控制器,具备功能强大、适用性广、安装简便、可靠性高等优点,可降低后期维护成本约,对促进LED景观亮化行业发展和我国节能减排目标实现,具备重大的意义和较好的市场前景。
  • 所需E币: 3
    时间: 2019-5-26 19:11
    大小: 0B
    上传者: royalark_912907664
    电梯是现代化建筑中的重要组成部分,在方便人们上下楼及货物运输方面发挥着重要作用。为了提高电梯运行的稳定性及安全性,就需要不断对电梯控制系统进行优化,提高控制系统运行性能。西门子S7—300PLC系统,是由德国西门子企业以可编程逻辑控制器为核心,所研发的一种数字化、智能化控制系统,具有使用方便、功能强大、可靠性高等优点,是当前电梯设备使用作为广泛的一种控制系统。为了解西门子S7—300PLC在电梯控制系统中的实践应用,对电梯控制系统的构建与实践进行了详细分析。
广告