MCU的选型体验

楼主
MCU的选型体验
摘自:电子工程专辑
作者:李澎

MCU的选型是一个非常复杂的课题,本人的能力也无法给出一个全面的答案,这里给出的是多年来的一些体会,更多的是遗憾和无奈,写出来请大家指正。

    我是1982开始 接触微处理器的,我的第一个CPU是上海半导体五厂的仿intel8080,一个CPU要三个芯片才能实现。不久我们可以拿到价格可以接受的Intel 8080和8085,用了很长时间。虽然85年初我们就有了8088和8086,正式采用16位做设计还是87年以后的事情。这个阶段做的产品设计都是一万元以上的产品,应该说CPU选型在价格方面制约力度很小。但是流行在大陆的8位CPU是三家,另外两家是Mot的68xx和Zilog的Z80。应该说Z80是主流,出来的晚,功能自然多,而且大学里面基本上都教这颗CPU。影响选型的因素主要是下面两个技术以外的因素。

    这里说一点题外的话,不过这个话题影响了职业生涯的很多东西,当然也包括MCU选型的原则,这就是我的出身问题。我是学电机工程的,到电力系念电力系统自动化的硕士,毕业在同一所学校的计算机系教书。从念书到教书我在这个三流大学呆了17年,当然我的领导和绝大多数同仁对自己的母校评价要高很多,尽管前几年这所学校被另外一所学校兼并。我有两个师兄,一个跟我一样是学电机工程,另外一个是学物理的,先生(导师)是学电力系统的。我不知道我的先生和师兄是否感叹过自己的出身,可是我总觉得自己混在计算机这个领域总有一种自卑感。在产品应用领域,当时的国家队级别的研究团队是北京电力科学院和南京自动化研究所(现在叫南自院,上市公司南瑞的后台)。而我所在的团队只是算业余选手,我们要教书,而且研发经费是自筹,不像国家队那样有国家的大笔拨款,所以我们买不起开发系统,我们只能在那个阶段用手工机器码编程。主要的因素可能还是无知吧,无知者无畏,我对计算机的认识很长时间内比较粗浅,总是把它当作一个可编程的芯片而已,所以即便是有经费,也不知道去买个开发系统。这里再离题一些,当时一个开发系统似乎要7-8万元这个的价位,折合到现在的购买力,应该值70-80万元吧。

    懒惰也是我长期使用8085的原因。长时间的手工编程,我能背下全部8085的70几条指令的指令码、状态影响条件和指令周期、硬件时序等,重新选择其他的CPU肯定会严重影响效率,而提高效率的前提需要大笔的银子做后盾的。

    后来设计的产品就没有这么大了,价格因素开始变的突出了。这时候用过89C51,89C2051还用过MSP430, Cypress的PSOC系列,RDC的x86兼容CPU,有一个设计在众多的候选者里面选择了HOLTEK的一款CPU。也用过国产的方舟和EPSON等公司的32位MCU。

    现在,我的工作性质是设计服务,有很多单子是半导体厂家或者代理商给的,这时,我是没有权利选择的,而且我会选择尽量多采用委托方其它器件的策略来让我的客户多赚一点钱。如果遇到我有机会选择MCU的单子,本着对客户负责的态度会每个项目选择一次MCU。说句实话,每次的选择都不是一件轻松的事情,要看很多文档,要打很多电话讯价,但是别人肯花钱让你做事,这些都是必须要做好的事情。

    如何去选择呢?我认为下面的几个原则是比较重要的:

功能和性能。这是首先要做的事情,很多公司的MCU很贵也很专业,但是贵有贵的道理,一些场合只能用他们的这种芯片,否则性能就实现不了。话又说回来了,我们做的设计是系统设计,特别是价格约束也存在的时候,用几个性能差点CPU或者再加上CPLD/FPGA也是能够做到的。功耗选择对于电池供电的产品也是一个门槛级的指标。我注意到了有几家公司还在提供四位处理器,而很多这类芯片瞄准的是电池供电产品,原因很简单,晶体管少了,在工艺相同的情况下,自然功耗就少。
价格。应该用系统的价格观念去考虑这个问题。举个例子,我给一家公司做一个温度采集和控制的产品,最初是用MSP430做的,效果也不错。但是后来又有一家公司做类似的设计,我们听从了Cypress的建议,采用了PSOC芯片。原因是PSOC上有模拟可编程单元,原来需要外接的一个运算放大器集成到了片内,在总成本不到100元的空间内,成本下降了10-20元,这样对于厂家是相当有利的。值得注意的是,芯片价格是变化的,总的趋势是下降的。所以,如果有余地的情况下,选用一个容易开发但稍贵一点的芯片也是可以考虑的。
研发成本。尽量在原有熟悉的芯片内,这样可以降低研发成本和降低研发技术风险。在批量不是特别大的情况下,研发成本摊入到单一产品的比例会比较明显,应该值得选型时注意。另外,换一个不熟悉的芯片,对于研发周期比较苛刻的项目而言,技术风险会很高。
能高则高。如果前面三个约束比较松,建议还是采用性能高一点的芯片。新的东西一般比老的生命周期要长一些,也会有利于你多产品的升级。
采购与生产工艺等。有些产品你的批量不大,但是你选的芯片却很冷门,你只能去买整包装,这样最好换主流芯片;有些产品量特别大,生产时灌程序的成本可能会突出,是不是可以选择那些可以为客户直接掩模的厂家?如果你的量足够大,是不是开始阶段就瞄准买IP的思路去定做一个芯片?
    作者有幸聆听了北航何立民教授的演讲《迎接32位微处理器的春天》,何先生的观点我非常赞同:8位和32位各自有一些优势领域,因此8位永不过时;在一些应用领域,8位和32位之间是相互渗透的,而不应该理解为谁取代谁的问题。

    在足够量的前提下,价格主要取决于芯片中硅的面积。一般意义上,8位CPU要比32位CPU要占用更少的面积。但是,在SOC时代大量功能集成在一个芯片内,CPU本身占用的面积在总面积的比例逐步降低,很难说8位芯片就一定比32位芯片便宜。可是,代码密度也是与芯片面积相关的,这是因为SOC中会有FLASH。从运算角度看,8位CPU要做一个32位加法比32位机要多几倍甚至十几倍的代码。但是,一个系统不是靠几条代码来完成的。统计意义上讲,32位机的代码效率会低一些,因此要用到更多的程序空间。ARM中16位指令设置绝对不是噱头,而是建立在大量理论研究和统计数据的基础上的。几个正反的因素并列出来似乎无所适从,其实很简单,你能买到的芯片最现实。对于一个新的设计项目,如果用8位可以很轻松的实现,你还是用8位的,如果用8位的比较勉强,你最好考虑16位或者32位的。相继有6-7家公司推出单片ARM,价格落到了40以下。这对很多的工程师有吸引力,我想这就足够了。

电脑版 Page created in 0.1562 seconds width 3 queries.