原创 【博客大赛】【原创】设备开发之数电模电

2012-3-2 09:50 2550 17 21 分类: FPGA/CPLD

这是我以前在该论坛发的一个帖子,当时只写了模电,可参考http://bbs.ednchina.com/FORUM_POST_33_175822_0.HTM 今天看到这个活动,开下博客,再发下,附加上数电。这几天天天加班,没时间了,以后有空补充上操作系统篇吧。

模电篇

早在大学就学过模电,真正需要用的时候,只留给我二极管,三极管,放大器这几个淡淡的印象,书到用时方恨少。
第一个涉及到模电的事是几年前要设计一个信号源,信号脉宽可由单片机或外接信号源控制,纯数字电路逻辑上并不复杂,不过脉冲幅度需要达到±80V。这归根到底难在±80V电压和数字信号的以小博大上。超过36V我就害怕了,于是想到了电路仿真,这也是我第一次真正使用Mutisim了。该软件是大名鼎鼎的EWB的升级版,用的人多,资料还算丰富,半天就可以入门了。后来听说这个软件被NI收购了,虽然D版的依然很容易找到,不过ADI、TI提供免费的同类软件,也足够使用了。此电路仿真也可分为电源和放大两个重点,各个击破,网上的资料还是蛮多的,鉴于类似线圈的变压器和电感没有现成的,我当时也不熟悉,只考虑二极管、三极管、电容、电阻。靠着多次抄袭、验证、调整,居然在半个巴掌大的面包板上搞定了。
一般要完成一件事情,可以分为资源,技巧,能力三个层次,上述的设计纯属技巧了,用软件仿真,不行就换电阻,电容,也是上天保佑,没有隔离,也没出事。后来设计某总线设备时,就想到了专用芯片了,随便百度下接口电压转换芯片,找便宜的,容易焊接的,容易更换的,挑中了CD40196B,只是没有自带短路保护功能,我当时也没想过自己做个,呵呵,亏得芯片便宜,在烧了一打芯片后,也搞定了。
真正深入涉及模电的应该是今年,要设计一个10入10出16位精度的设备,首先查到的便是ADI的AD2S99,AD2S1200等专用芯片,更方便的是有专门的模块,12,14位精度的有不少,不过这些芯片和模块还真不便宜啊,貌似预算还不够把这些模块买全,在考虑了很久后,决定依靠AD,DA,OP实现,这不是靠资源和技巧就能实现的,模拟电路,从此便要从能力这个层次去学习研究了。
抬头看路后才能埋头拉车。查阅了上百篇自整角信号相关的资料之后,去粗取精,在模电方面,居然没有几篇实用的,莫非模电已难入大雅之堂了。后来查找万用表、示波器方面的资料,才涉及多些,但所有的这些都是皮毛,没有太多详细到实用的。查阅ADI,TI公司网站的AN,零零碎碎,每篇都有点用,但不成体系,总有种只见树木不见森林的感觉。大学模电教材也不行,太过于笼统,实际问题还是不能解决。
模拟电路这方面有众多分类、厂家、产品,主要涉及AD,DA,OP,电源买现成的就够用了。ADI和TI都有大学计划,资料较多,他们的产品足够了用了,当时在当当,卓越上买了不少冤枉书。书分几种,从学术上讲,著书最好,编著次之,编再次之,模电是种成熟的技术,面广而相对算法不深,编的有不少好书。恕我不才,推荐几本书:
高天光主编的《ADI产品应用技术丛书》,一套好几本,能够了解ADI模电体系,进而了解整个模电体系,用以入门。此套丛书可以粗略查阅,值得收藏,不过貌似已经绝版了。
孙肖子主编的《模拟及数模混合器件的原理与应用》,分上下册,能够了解TI模电体系,特别是1.7节放大器稳定性讨论,让我知反馈电容的所以然。这套书刚出不久,很容易买。
科学出版社的实用电子技术丛书,特别是铃木雅臣写的《晶体管电路设计》,也是上下册,虽然是日本人写的,但绝对是好书,了解晶体管的工作,运放还不是小意思。此书值得细细研读,相对简单易懂,我连续看了半个月,觉得这才叫模电精髓。
电路的实现还需要依靠PCB和焊接。PCB是门艺术,绘制原理图时就要对PCB布局心中有个大概,要不然布线就难了。焊接是个基本功,现在高速高精度的芯片基本上都是贴片,有时0805的电阻电容都不太好布线,更不必说直插的元器件了,不过我还焊不了0402。
AD、DA是数模间的桥梁,其接口的实现要精通其时序关系。ADI和TI都推荐自己的DSP,有不少DEMO可以模仿,但目前我手上只有FPGA开发板,虽然对照DATASHEET以组合逻辑的思维写时序很麻烦,但嵌入一个NIOS,以指令式的思维写时序就容易点了。
数电发展太快了,即便是FPGA嵌入多个微处理器,都可以用逻辑关系来表达,很容易分成众多互不干扰的模块,各个击破,况且很多模块无需修改可直接应用现成的,不用考虑匹配耦合等,甚至只要懂得C语言就可以模仿做出一块可用电路了。
模电必须全盘考虑,每个部分性能不同,大到采集卡,小到三极管都要用它线线关系最好的那段,各模块之间影响太大,一着不慎,满盘皆输,但发展的时间更悠久,更成熟,有时可很简洁地实现数电方能实现的复杂功能。模电涉及的知识面太多,要懂得晶体管设计,放大器设计,AD/DA体系,仿真以及电路板设计,焊接,电容等元器件选型,极小批量购买等众多知识,最后才能做出一块实实在在的可用电路。
在这个数字化时代,模电相对应用少了,但可能是瓶颈,模电可简单实现高性能,数电可简单实现复杂逻辑,通吃便无敌了。 

 

数电篇

 

数字化时代,数字电路应用越来越广,手机电脑,电视,汽车,无处不在。没有数电,就没有今日之世界,
大学里面的数电比较基础,留给我最深的印象就是与门,非门,然后可以由集成电路设计一个红绿灯了。到了工作中,就不是那么简单了。现代数字电路大致分为MCUDSPFPGA这三大支,各有特色。
MCU中最鼎鼎有名的就是8051单片机,最早接触时是看到有同事用它做一个编码器,当时感觉很高级,长见识了,就这样一个小小的芯片能够实现复杂功能,最令我高兴的是可以修改无数次。后来听说当时七楼的用的是16位的单片机,更感高级,觉得有必要学习,否则就落后于这个时代了。网上8051资料多如牛毛,开始逢资料便下载,后来见了入门两个字便不再看,再后来就留那么一两本以便查阅。我是个懒惰的人,开始看汇编,后来发现除了汇编还可以用C写代码,于是就不再看汇编了。
有段时间,喜欢在淘宝上逛,权当坐在家里逛街。买了个虚拟示波器,双通道,100k,还带红外检测,到手一看,居然只有P89LPC935+OP+CP2102三个芯片,赠送的VB程序很简单,单片机程序更简单,真是佩服啊。麻雀虽小,五脏俱全,现在的单片机把AD,DA都集成进去了,简单的设备完全可以SOP了。
MCU中另外一大支便是ARM了,最新潮流,如果不使用OS,就是高速单片机,如果用好,据说WINDOWS 8就支持ARM,这几天在看TICortex M3,虽然跑不了linux,但一般的设备属于下里巴人,用不到文件系统网络,如果只是串口的话,跑个UCOS还是可用满足的,入门比FPGA容易,开发速度要快不少。
DSPTI一家独大,可以在一个指令周期内完成乘加运算,特别适合做算法,做浮点数运算也是其强项,总之就是适合数字信号处理。其芯片驱动负载的能力据说也较强。我感觉本质上MCUDSP属于一类,虽然有哈佛,诺依曼等架构,但本质都是通过一条条指令,串行实现功能,比较符合人的思维。
FPGA是另外一种类型,可编程逻辑芯片,可以自定义其内部逻辑关系,所有的运算都可以并行执行,可用VHDLVerilog描述其结构,当然也可以嵌入一个微处理器,我熟悉的只有NIOS。在OPENCORE上,有不少免费的核可以使用,518086等都有。我见过有高手甚至在一块FPGA开发板上跑WINDOWS 3.1。我认为除去易用性,价格等因素,只从逻辑功能上说,FPGA可以包含MCU,DSP所有逻辑功能,但是门槛高了点。
头一次接触FPGA是有人在我们这个调试一个设备,临走送我一块自己做的ACTEL的开发板。可能是电路板JTAG布线有问题,直接用并口烧录有问题,专用烧录器我不想买,直到现在,还闲置着。
入门的第一块板子是周立功公司EASY FPGA030,主要是看重只卖¥99,拿到手之后发现周立功的资料还是做得不错的,下载了一堆视频,入门宝典等等,终于会使用Libera这个软件了。编译,布线,仿真,烧录,一个个对话框,一个个进度条,20行的代码电脑恨不得要5分钟才处理完,只是当时才入门,并不觉软件效率低,而是觉得这个软件好高级啊。后来就拿这块板子做了个数字总线转换系统,芯片容量太小了,初始化变量的语句都不敢写,幸好默认就是0,片内资源几乎全部用光。
再后来我发现有同事有块红色飓风的FPGA开发板闲着,据说当时买了上千的钱,便借来学习了。ALTERA果然很强大,EP1C12的片内资源是A3P030的数十倍,Quartus的速度是Libera的好几倍。自从发现片上逻辑分析仪很好很强大,从此就很少使用ModelSim仿真了。Altera的资料也很多,不过对于简单应用,不涉及厂家自定义的部分,Verilog就足够了,于是我就全面从ACTEL转向Altera了。
在做一个设备时,需要用到sin这个函数,用Verilog实现C语言的sin函数对我而言是个难题,问了一圈人,有一个人说可以嵌入一个8051的核来实现,于是就花了不少时间研究SOPC了。挑资料多的做,Altera资料最多的便是NIOS这种核了,下了一堆资料,看了好久,终于可以实现"Hello World!"了。
不带浮点的NIOS要想处理sin这样的浮点函数还是比较费事的,虽然它内部怎么实现我不知道,但在100MHz下,每秒只能运算3K次,显然这样的速度远远满足不了我的要求,于是想到了DSPBuilder了。在下了一堆资料后,忽略了一个问题,现在我所使用的这种技术,已经变成了阳春白雪了。5.0的不支持中文,9.1的和Matlab始终匹配不好,10.0的我找不到和谐文件。安装一套MATLAB就要4G空间,安装QUARTUS8G空间,系统都重装过好几回,最后装9.0的总算可以了。
换个方向实现就是CORDIC算法+AVALON总线 自定义sin专用协处理器,看了半天,感觉这个技术应该可以管很久了,值得花时间学习。这方面的资料不多,NIOS还有《NIOS II那些事》这样的入门资料,也有《Nios嵌入式软核SOPC设计原理及应用》、《NiosⅡ软件架构解析》这样的图书,AV总线,SOPC等基本只有ALteradatasheet可以参考,高处不胜寒。
再换个方向就是换个开发环境,读到施国勇编著的《数字信号处理FPGA电路设计》中比较详细地写FPGA实现CORDIC,第六章和实验六专门写了CORDIC原理与实现,ISE中有专门的这个IP可用,看样子Xilinx算法还是做得好一些,就省得那么麻烦了。Altera的功能Xilinx都有,逻辑分析仪,matlab,嵌入式软核,都差不多,但protel 99se支持Xinlin就要明显多些,软件以及配套Xilinx应该更胜一筹。不过JTAG调试器就贵不少了。等谁有Xilinx开发板,我也借来玩玩。
再换个方向就是在模拟前端就处理好这些数据,到了数字部分的处理就容易很多了,不过这个就不属于这篇范围了。
这几种技术也在相互融合,取长补短,TI最新的ARM已经和DSP双合一了,甚至可用简单配置端口了,Altera的飓风三已经可用嵌入ARM了,ACTEL没有自己的软核,早就和ARM合作了,XilinxSYS GEN这些也将DSP融合一起了。以后的技术肯定还会发展,肯定会越来越方便。估计不久的将来,数字、模拟一体的可编程芯片也会商品化的。
数字电路种类繁多,但摆脱不了算法+语法,就如打架在于准狠。算法是王道,MCU,DSP,FPGA,PLC等等就如十八般兵器,不管倚天剑和屠龙刀,只要用的好,都可以制胜,实现算法,满足需求。但刀剑使用得好了,艺高人胆大,算法可以以各种方式实现,买东西还得货比三家,何况实现方式。精通一种数字电路技术,才能实现算法,精通多种数字电路,才能比质比价,多快好省。精通数字电路、模拟电路、数字信号处理、操作系统,加上行业积累,呵呵,电工的追求都是这样的吧。 

文章评论4条评论)

登录后参与讨论

用户1702231 2014-12-23 17:18

写的不错,推荐的教材和资料都不好找了

用户377235 2014-10-10 00:19

太好了写的

用户377235 2012-4-28 21:34

不错,收益匪浅

用户403664 2012-3-2 09:57

博客大赛的板凳!
相关推荐阅读
用户1575055 2012-10-30 23:48
用 Multisim 7 和 Visio 2003 绘制精美电路图
用 Multisim 7 和 Visio 2003 绘制精美电路图     下图是来自于一本书,算是比较美观的一幅电路图,标注的种类较多,信息全面,但如何绘制出这样的电路图呢?  ...
用户1575055 2012-09-26 08:36
【原创】想写本书
    这几天突然有个想法,要是能编写本书,日后也能留个痕迹了。不敢说阳春白雪,主要是水平有限,所以挑个简单的题目,就叫《电子电路图一看就懂》,目录暂时拟定如下: 第一篇 踏进电子电路 第1...
用户1575055 2012-06-30 17:21
【TI博客大赛】【原创】LM3S811之基于PWM的DAC
TI公司的LM3S811有3个PWM信号发生模块,每个模块可以产生2个独立的PWM信号,这样算来,单个LM3S811就可以产生6路PWM信号了。   对于有些应用,对成本有要求,用R,C替代专用DA...
用户1575055 2012-06-17 11:06
【TI博客大赛】【原创】LM3S811之测量交流有效值
    手上有块TI的LM3S811开发板,虽然不是专业的ADC,但其包含4通道的ADC,采样率500kbps,10位分辨率,可以量程在-1.5V~1.5V或0V~3V,还有一路模拟比较器,应...
用户1575055 2012-03-01 23:52
【博客大赛】【原创】我对ATE的理解
这是我以前在百思论坛上发的,参考http://www.baisi.net/viewthread.php?tid=217268,当时是一知半解,其实自动测试重在测试需求分析,解决“做什么?”这个问题...
我要评论
4
17
关闭 站长推荐上一条 /2 下一条