概要:2008-03-04 | 硬件学习方法总结我认为学习硬件最重要的是抓住4个关键点:引脚、时序、寄存器和协议。硬件的参考资料就是数据手册(datasheet),虽然大部分由英文写成,但是科技英语并不象想象中那么难,而且数据...
2008-03-04 | 硬件学习方法总结
我认为学习硬件最重要的是抓住4个关键点:引脚、时序、寄存器和协议。硬件的参考资料就是数据手册(datasheet),虽然大部分由英文写成,但是科技英语并不象想象中那么难,而且数据手册的内容编排有规律可寻。一般,先介绍总体特点概述(卖点),顺便做一下公司广告(什么leadership一类的),然后是结构/功能框图、引脚说明、时序分析、寄存器说明、硬件所实现的具体协议(USB、PCI、E1等)、应用范例demo、直流/交流特性、封装、订购信息、联系方法等,手册里往往还会总结一些图、表、关键字目录索引,方便读者阅读。
------
|引脚|
------
引脚是对硬件工程师最重要的信息之一,务必将其背记下来。背下来的好处多多,基本上扫一眼图纸就能猜出芯片是干什么用的;对一些不常用的设计技巧能马上发现,进而学习之;能立即指出明显的低级错误;能轻易区分不同型号相同种类的芯片;有利于不断积累硬件经验,熟能生巧。总之,背下引脚能大大提高工作效率,不必频繁查书,不必中断思路,让精力集中在应用设计上。
面对几百个引脚的芯片,看似无法记住,实则简单Easy。譬如:地址线32根、数据线32根,电源5根、地线 20根,一会儿就记住了89根引脚线,然后按功能记I2C、SPI、ST-BUS、USB、JTAG等固定用法的引脚线,不管用在哪个芯片上,这些引脚种类和功能都相同,有时,只要记住功能就能把相关引脚一一背出,或者只须记住差异点即可。一旦背下一个芯片,那么与之类似的一系列芯片就都不在话下了。
万事开头难,一旦习惯了,随时记住几百个引脚的芯片也不是难事,这是专业硬件工程师的基本功。
------
|时序|
------
时序是硬件工程师获得的另一个重要信息,务必反复咀嚼回味。时序图可以清楚全面地展示硬件的工作过程,从中我们可以得到想要的细节。硬件设计的一大任务是抑制干扰噪声,通过分析时序可以找到最佳的处理方法。比如:在数据的中点采样,可以获得前后各50%的抖动裕量;通过满足建立/保持时间,使得数据采样正确。
一般来说,时序图展示的是理想情况下的位置关系,实际电路中还要受到生产工艺和现场情况的影响。比如:温度、湿度会影响介电常数,进而影响阻抗匹配。实际波形有上冲、下冲、振铃等幅度变化;相位有超前、滞后变化;时钟有不同步问题等等。这些问题限制了时序图的适用范围,使用中切记满足前提条件。例如:PCI的突发访问字节数在时序图上可以做得很大,这样传输效率高,但是因为生产工艺达不到要求,不能保证时钟低抖动,阻抗也不能完全匹配,如果突发访问字节数过大,会造成误差累积,导致采样错误,因此实际中一般限制在4字节以下。我们只可以把时序图当作理论参考,切记不能过份相信,要看时序只能通过示波器和逻辑分析仪。
本来直流和交流特性不是时序内容,但因为对时序影响较大,所以就应该配合时序一起看。
一般芯片厂商会提供DEMO板供设计参考,但DEMO就是DEMO,不能用于量产,切记,切记!
真实波形的边沿不能象时序图里画的那么陡峭。因为越是陡峭的边沿,频谱范围越大,旁瓣越多,而我们需要的往往只是某个频点。如果波形接近于正弦波,那么信号就比较“干净”。
分析时序最好有例子,我推荐PCI和DDR(I、II)时序图。这些图够复杂,够先进,代表目前的趋势。PCI支持软件配置,有局部总线、接口总线、DMA、突发、总线仲裁等等,比较全面。DDR现在又降价了,迟早要取代SDRAM,估计也就1年左右时间。
找到芯片数据手册就可以得到时序图。
--------
|寄存器|
--------
寄存器大致可以分为控制、数据、状态三种。其实就是硬件里的D触发器外接三态总线。硬件上关心的就是地址偏移,方向(只读、只写、读写),工作原理。这样就可以分配地址空间,对应GPIO连接,实现硬件时序。其实,寄存器更重要的意义是提供硬件和软件的接口。软件通过寄存器操作硬件,硬件通过寄存器给软件提供信息。一般地,一组寄存器对应一个协议,可以通过协议了解寄存器功能,通过寄存器了解协议细节,互相对照,学习效率高。
------
|协议|
------
目前协议非常多,PCI、USB、I2C、ST-BUS、E1、802.3等等,了解每一种协议都要花费大量时间,我建议每次了解一点,积少成多。
通常协议代表了行业标准,设计时应尽量向标准靠拢。这样在套片选型时会拥有很大的成本优势。
总之,协议是硬件的抽象,硬件是协议的具体实现。
------
|现状|
------
以前,人们常说做硬件要动手能力强,现在看来似乎已经不正确了。原来焊接DIP器件,手工操作就可以了,现在的BGA,谁还能用手焊,即使可以,谁能保证质量,尤其在量产的时候。原来的板子要求3版成功,一版原型,一版修改,一版定型。现在要求一版成功,纸上作业,在制板前解决所有问题。想想也是,一块16层2.5G背板,如何飞线?如何割线?如何手工焊接?飞线肯定不行,频率那么高,而且走线在内部,根本没有办法。即使可以飞,高频特性也会变化,无法给以后的修改提供依据。割线也不成,找不到合适位置钻孔。手工焊接达不到质量要求。综上,一旦发现错误,最好就地销毁,眼不见心不烦。
目前的现状是:原理图、PCB图均在计算机上完成,FPGA用HDL语言,仿真用软件,焊接用贴片机编程实现。几乎没有什么可以动手的地方了。另外CPU正朝多核方向发展,RISC比CISC更有前途(CISC的发热量大的问题在没有技术突破前无法解决,光看频率没用,过热时CPU会偷偷降频。)。