问题: [征文]设备开发——模电篇

设备开发——模电篇
早在大学就学过模电,真正需要用的时候,只留给我二极管,三极管,放大器这几个淡淡的印象,书到用时方恨少。
第一个涉及到模电的事是几年前要设计一个信号源,信号脉宽可由单片机或外接信号源控制,纯数字电路逻辑上并不复杂,不过脉冲幅度需要达到±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体系,仿真以及电路板设计,焊接,电容等元器件选型,极小批量购买等众多知识,最后才能做出一块实实在在的可用电路。
在这个数字化时代,模电相对应用少了,但可能是瓶颈,模电可简单实现高性能,数电可简单实现复杂逻辑,通吃便无敌了。

  • 设备开发——数电篇
    数字化时代,数字电路应用越来越广,手机,电脑,电视,汽车,无处不在。没有数电,就没有今日之世界,
    大学里面的数电比较基础,留给我最深的印象就是与门,非门,然后可以由集成电路设计一个红绿灯了。到了工作中,就不是那么简单了。现代数字电路大致分为MCU,DSP,FPGA这三大支,各有特色。
    MCU中最鼎鼎有名的就是8051单片机,最早接触时是看到有同事用它做一个编码器,当时感觉很高级,长见识了,就这样一个小小的芯片能够实现复杂功能,最令我高兴的是可以修改无数次。后来听说当时七楼的用的是16位的单片机,更感高级,觉得有必要学习,否则就落后于这个时代了。网上8051的资料多如牛毛,开始逢资料便下载,后来见了入门两个字便不再看,再后来就留那么一两本以便查阅。我是个懒惰的人,开始看汇编,后来发现除了汇编还可以用C写代码,于是就不再看汇编了。
    有段时间,喜欢在淘宝上逛,权当坐在家里逛街。买了个虚拟示波器,双通道,100k,还带红外检测,到手一看,居然只有P89LPC935+OP+CP2102三个芯片,赠送的VB程序很简单,单片机程序更简单,真是佩服啊。麻雀虽小,五脏俱全,现在的单片机把AD,DA都集成进去了,简单的设备完全可以SOP了。
    MCU中另外一大支便是ARM了,最新潮流,如果不使用OS,就是高速单片机,如果用好,据说WINDOWS 8就支持ARM,可惜没银子,没有接触过。
    DSP是TI一家独大,可以在一个指令周期内完成乘加运算,特别适合做算法,做浮点数运算也是其强项,总之就是适合数字信号处理。其芯片驱动负载的能力据说也较强。我感觉本质上MCU和DSP属于一类,虽然有哈佛,诺依曼等架构,但本质都是通过一条条指令,串行实现功能,比较符合人的思维。
    FPGA是另外一种类型,可编程逻辑芯片,可以自定义其内部逻辑关系,所有的运算都可以并行执行,可用VHDL或Verilog描述其结构,当然也可以嵌入一个微处理器,我熟悉的只有NIOS。在OPENCORE上,有不少免费的核可以使用,51,8086等都有。我见过有高手甚至在一块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空间,安装QUARTUS要8G空间,系统都重装过好几回,伤不起了,于是打消这个念头。
    换个方向实现就是CORDIC算法+AVALON总线 自定义sin专用协处理器,看了半天,感觉这个技术应该可以管很久了,值得花时间学习。这方面的资料不多,NIOS还有《NIOS II那些事》这样的入门资料,也有《NiosⅡ嵌入式软核SOPC设计原理及应用》、《NiosⅡ软件架构解析》这样的图书,AV总线,SOPC等基本只有ALtera的datasheet可以参考,高处不胜寒。
    数字电路种类繁多,但摆脱不了算法+语法,就如打架在于准狠。算法是王道,MCU,DSP,FPGA,PLC等等就如十八般兵器,不管倚天剑和屠龙刀,只要用的好,都可以制胜,实现算法,满足需求。但刀剑使用得好了,艺高人胆大,算法可以以各种方式实现,买东西还得货比三家,何况实现方式。精通一种数字电路技术,才能实现算法,精通多种数字电路,才能比质比价,多快好省。

  • 0
    •  Analog Employees 
    on Apr 29, 2019 10:32 AM
    This question has been closed by the EZ team and is assumed answered.