在采购微控制器(MCU)之前,对备选MCU的技术标准进行比较和权衡只是非常主观的作法,事实上,在为指定的工作选择一个“最佳”MCU时候,要为采购人员提供一个很准确和快速的“硬性标准”几乎是不可能的。几乎在所有的情况下,我们的出发点都应该明确放在实际应用及其特殊需求上。本文的目的并非其列出的数千种不同微控制器,而是总结出一个选择参考,帮助大家减少所使用的微控制器的数量,以便管理。
速度
我们通常所指的微处理器速度并不仅仅取决于最大CPU时钟和时钟发生器(石英晶体),也要考虑微处理器执行一个指令所花费的时钟周期的数值,象以及所使用的可编程语言(汇编语言可能比某一较高级语言快很多倍)。根据时钟频率的不同,通用控制器适用高达MHz范围(视频处理)的应用。
程式内存
由微处理器执行的程式存储在非易失性存储器里。一个内部OTP EPROM只能加载一次,因此,在程序开发阶段还需要配置更昂贵的FLASH版本控制器。FLASH内存能够在数秒内完成加载,并且擦写简单。该操作可由编程人员或在线机构(ISP)完成。近来,FLASH版本的通常内部程式内存已达0到1024KB,也许更多。
有EPROM小窗口的微控制器可以用紫外光照射进行擦写,现在已经成为“土老帽”。有外部窗口的EPROM目前只用于很大程式的环境FLASH RAMS有日益代替EPROMS的趋势。
EEPROM
即使微控制器完全关闭,程序变量依然被在EEPROM(电可擦除可编程只读存储器)外部或者内部,被等待来取。与我们通常的认识相反,EEPROM的写操作驻留不是无限次数的。
一般来说,外部EEPROM通过“两线(two-wire)总线”连接到微控制器。它们一般应用在特定的专用数据(如校准值)开始被程序读取的时候。
RAM
RAM(随机存取存储器)用于在程式执行期间存储变量,微控制器中的RAM容量局限于4KB以内,实际需要用到的容量低得多。外部RAM也可能如此。
数字I/O
数字I/0线的数量在目标应用中很容易看出,可是,假如内部资源耗尽,I/O也可以用于连接外围电路。对于简单的应用,可供选择的支持小型I/O传输线的控制器范围很大,例如ATMEL公司的“Tiny”型器件就只有8个管脚。在一些情况下,整个端口要工作在并行模式,这时的多管脚焊接困难将是不可避免的。
计时器/计数器
假如某一个程式主要用以测量周期或者计量一个事件,那么该控制器中就带有板上计时器和/或计数器。幸运的是,当前的大多数控制器都包含有3个每一个8bit或者16bit计时器/计数器,其中的每一个计时器/计数器均由内部寄存器控制。这些计时器/计数器是必须的,以产生独立于时钟的控制信号,如PWM和UART信号。
看门狗计时器是一个特殊的情况,它由运行的程式设置了一个间隔,需要不停地复位。
外部中断
不仅计时/计次产生中断。当一个外部事件即将中断主程序的执行,以及强制某一个子程序运行的时候,大多数微处理器都提供有一个或两个用于该用途的外部中断输入。
接口
对普通LCD来说,微处理器带有片上工业标准接口是非常有用的,如I2C、I2S、SPI、CAN、USB、LIN,或者其中之一。的确,这些接口可以通过软件进行模仿,但是你将发现那是很费时间并且要对汇编语言很熟悉。
模拟硬件
微控制器常常集成有模拟接口,这些接口包括模/数转换器(具有不同分辨率,并前置有模拟复用器)、模拟比较器甚至运算放大器(采用一个管脚输出)。
运行模式
如果我们观察一下工作在电池供电电路下的微控制器,那是十分有趣的。控制器中的许多子电路都可以切换到“睡眠”模式,以减小功耗。
可编程序性
当控制器有一个ISP(系统内可编程)接口时,它能在主电路上编程。如果没有,就需要一个复杂化或多或少的程程序。如果不花费大量的工作,就不能对已焊在电路中的无ISP接口(ISP-less)控制器的程序进行修改。
特殊性能
有一些微控制器仅适用于特殊应用,如马达控制、DSP和具有射频输入部分的控制器。如果正在设计一些有关的应用,那些特殊的器件值得考虑。
价格、实用性、包装
如果你在做一个一次性方案或一系列琐碎事情,那么微控制器的价格不是太重要。可是,当你最终发现了理想型号,并发觉该芯片最小订单为10000颗,并且是直接从韩国发货的,那几乎是不满意的。你所“期望”的微控制器的包装也是一个很重要的考虑因素,毕竟,有谁能够以亚毫米的距离,以手工方式将带有256个管脚的“纯平”外壳焊接到PCB上?
开发系统和公司的可发展性
这一点是半专业开发人员很感兴趣的。如果用汇编语言编程,你每使用一种新控制器系列,就需要学习一种新的语言。如果你不喜欢这样,你可以选择高级语言如C语言、PASCAL或者BASIC对同一类控制器编程。这些语言适合多种控制器,但同汇编语言相比,往往容易产生更大的代码。
开发系统也应该纳入成本之中。对某些控制器系列来说,集成开发环境(IDE)是是免费提供的,而其它则是需要花费很大代价的。特别是,对于某些与复杂的“pods”(控制器插座)一起提供的商业程序来说,其价格是相当昂贵的。
附:常用微处理器及厂商联络资料
Altera
http://www.altera.com
典型产品:
32-bits: EPXAxxx(ARM V4T),Nios(Nios)
Analog Device
http://www.analog.com
典型产品:8-bits: ADuC8xx(8051)
AMD
http://www.amd.com
典型产品:32-bits: Au1x00(MIPS)
Atmel
http://www.atmel.com
典型产品:
4-bits: T48C510,ATAxxx(MARC-4)
8-bits: AVR(AVR),AT89xxxx(8051)
Mega AVR(AVR)
16-bits: C251(8051),AT91xxxx(ARM)
ARC International
http://www.arc.com
典型产品:
32bits: ARC501(ARCcompact),ARC7xx,ARC6xx,ARCtangent(RISC)
ARM
http://www.arm.com
典型产品:
32-bits: ARM10xx,ARM11xx,ARM7xx,ARM9xx,SCxxx,MPCore(ARM)
Cirrus Logic
http://www.cirrus.com
典型产品:
32-bits: CS89712,EP73xx,EP93xx,PS7500xx(ARM)
Cybernetic mirco systems
http://www.controlchips.com
典型产品:8-bits: P-51(8051)
Cygnal Integrated Product
http://www.cygnal.com
典型产品:8-bits:C8051Fxxx(8051)
Cypress mircosystems
http://www.cypressmirco.com
典型产品:8-bits: CY8C2xxxx(M8C)
Dallas Semiconductor(Maxim Integrated Products)
http://www.maxim-ic.com
典型产品:
8-bits: DS2xxx,DSS5xxx,DS80Cxxx,DS87Cxxx,DS89Cxxx,MAX765x(8051)
Fujitsu Microeletronics
http://www.fujitsu.com
典型产品:
8-bits: MB89xxx(F2MC-8L)
16-bits: MB90xxx(F2MC-16)
32-bits: MB91xxx(FR)
IDT
http://www.idt.com
典型产品:32-bits: RC32xxx(MIPS)
Infineon Technologies
http://www.infineon.com
典型产品:
8-bits: C5xx,C868(8051)
16-bits: C16xxx(C166v1),XC16xxx(C166v2)
32-bits: TC11IB,TC19xx(TriCoreV1.3),TC17xx(TriCoreV1.2)
Intel
http://www.intel.com
典型产品:
8-bits: 8XC251x,8XC51xx(MCS51)
16-bits: 80C18x,8xCx96xx(=MCS-x96xxx)
32-bits: 80960(i960),IXC1100,IXP4(StrongARMv5TE)
Microchip Technology
http://www.microchip.com
典型产品:
8-bits: PIC12xxx,PIC14xxx,PIC16xxx,PIC17xxx,PIC18xxx,rfpIC(PIC micro)
16-bits: dsPICxxxx(Modified Harvard RISC)
MIPS Technologies
http://www.mips.com
典型产品:
32-bits: 4Kxx,M4K,24KxMIPS)
64-bits: 20k,10Kx,5Kx(MIPS)
Motorola Semiconductor
http://www.freescale.com
典型产品:
8-bits: MC68HCxxx(HC0x)
16-bits: HCS12x,M68HCxx(HCS12)
32-bits: 68300(68k),MCF5xxx(ColdFire0,Mcorexxx(RISC),MAC7xxx(ARM),MPC5xxx(PowerPC)
National Semiconductor
http://www.national.com
典型产品:
8-bits: COP8xxxx(Modified Harvard RISC)
16-bits: CR16xxx (Compact RISC)
NEC Electronics
http://www.necel.com
典型产品:
8-bits: 78K0S/Kx1,78K0/Kx1(NEC K)
16-bits: v850ES/Kx1(v800)
32-bits: VR41xx,VR5xxx(MIPS)
Oki Semiconductor
http://www.okisemi.com
典型产品:
4-bits: MSM6318xx,MSM6415xx(Nx)
32-bits: ML67xxxx(ARM7TDM)
NXP Semiconductor
http://www.nxp.com
典型产品:
8-bits:P8Xc5x,P89LPC9xx,P8xLPC76x(8051)
16-bits:PXAxxx(XA)
32-bits:LPC2x0x(ARM7)
Rabbit Semiconduct
http://www.Rabbitsemiconduct.com
典型产品:8-bits: Rabbit2000,Rabbit3000(Z80/180)
Renesas Technology
http://www.renesas.com
典型产品:
4-bits: M45xxx(720),H4xxx(HMCS400)
8-bits: M38xx,M78xx,M3754x,H8/380xx(H8)
16-bits: m77xx,M79xx(740),H8/30xxx(H8),H8S2xxx(H8S),M16C/xx,M32C/xx(M16c),H8/36xx,H8SX/1xx(RISC)
32-bits: sh-xxxx(SuperH),M321xx(RISC)
Silicon storage Technology
http://www.sst.com
典型产品:8-bits: SST89xxxx(Flshflex51)
Sharp microeletronics
http://wwwsharpsma.com
典型产品:
16-bits: LH754xx(ARM)
32-bits: LH7952,LH7A4xx(ARM)
STMicroelectronics
http://www.stm.com
典型产品:
8-bits: ST62xx(ST6),ST72xxx,ST7Flite(ST7),uPSD3xxxx(8032)
16-bits: ST10xxxx(80C166),ST92Fxxx(ST9),STR7xxx,(ARM)
32-bits: ST40RA(SH4)
SuperH
http://www.superh.com
典型产品:
32-bits: SH-4xxx(SuperH)
64-bits: SH-5xxx(SuperH)
Tensilica
http://www.tensilica.com
典型产品:32-bits: Xtensa V,Xtensa LX(Xtensa)
Texas Instruments
http://www.ti.com
典型产品:16-bits: MSP430xxxx(MSP),TMS470(ARM)
Toshiba America Electronic Components
http://chips.Toshiba.com
典型产品:
8-bits: TMPx8xxxx(TLCS)
16-bits: TMP96xxxx,TMP91xxxx,TMP95xxxx,TMP93xxxx(TLCS)
32-bits: TMP92xxxx,TMP94xxxx,(TLCS),TMPR19xxx,TMPR39xxx(MIPS)
64-bits: TMPR49xx, TMPR99xx(MIPS)
Triscend
http://www.triscend.com
典型产品:8-bits: E5(8051)
Ubicom
http://www.ubicom.com
典型产品:8-bits: SXxxxx,IP2012/2022(MASI),32-bits:IP3023(MASI V2)
Xemics
http://www.xemics.com
典型产品:8-bits: E88LC0x(RISC)
Xilinx
http://www.xemics.com
典型产品:32-bits: PowerPC405(PowerPC)
Zilog
http://www.zilog.com
典型产品:8-bits: Ez80xxx,Z8xxxx,Z8Fxxx,Z8 Encorel(Z80/180)
原文刊登于《无线电技术》。更多元器件采购信息,请访问http://www.wxdjs.com。