论文部分内容阅读
摘要:如何在新品设计、老产品更新换代中正确选择MCU和供应商将是开发者面临的一个重要题目。32位MCU正在受关注,MCU呈现单一功能和高集成度,功耗更低并注重能耗管理技术,开发工具更加融合。
关键词:MCU;低功耗;开发工具;Cortex-M3
32位大行其道
消费类电子、汽车电子和工业应用三大行业正在推动32位MCu的广泛采用,Gartner的数据显示,到了2012年,32位MCU(加上32位智能卡)的整个数量将非常接近8/16位MCU总合,但是销售额将超过8/16 MCU(见图1)。这也不难看出老牌的8/16位MCU厂商2008年纷纷进入32位市场,推出和其8/16位保持兼容的32位新品的真正原因了:谁也不想放弃32位MCU的这道大餐,况且盛筵还远没有开始呢。比如Microchip 2008年发表了PIC32就是希望在稳定其用户在向32位升级时的选择。
32位MCU能够带来更高的性能,而且并不很贵的价格。资料显示最新的STM32Coretex—M3是1.25DMIPS,PIC32有1.5DMIPS;32位MCU还拥有更大的片内闪存空间(不够还可以外扩),保证大容量的软件代码运行以适应应用软件的增加。在32位MCU市场上开放CPU体系得到充分的认可,比如ARM7/9、Cortec-M3和MIPS,在ARM7TDMI被世界上包括NXP、Atmel在内主要MCU厂商生产并大获成功后,ARM随后发表的Cortex-M3有希望成为MCU中的8051,除了高性能、大存储空间和丰富软件和工具支持外,Cortex-M3核只有0.19mW/MHz(8051是0.5mW/MHz)。以ST32F10X为例,它可以在2.0V~3.6V电压下工作,在待机模式(RTCon)只有3.5μA电流消耗,在闪存运行时也只有0.5mA/MHz消耗。继2006年初创公司Luminary推出了基于Cortex—M3的MCU后,ST(意法半导体)在2007年推出ST32MCU,到2008年9月ST共有46款产品。其他半导体公司也不甘落后,NXP、TI和Zilog相继宣布获得Cortex-M3授权,2008年Atmel也宣布获得Cortex-M3授权为下一代的AT91SAM的核心(Atmel基于ARM技术的MCU)。Atmel计划其AT91SAM3闪存MCU系列将组合ARM Cortex-M3处理器和系统部件,如多层次的内部总线,一个高速的DMA支持系统外设和分布式外设控制器,以达到更高速的数据传输能力。无疑Atmel的加入将奠定Coretex-M3在MCU市场的地位。笔者认为,新的设计如果不考虑到老产品的继承性问题,在选择ARM核MCU时,可以优先考虑使用Coretex-M3的MCU芯片。
32位MCU未来还会向多核方向发展。我们知道多核应用目前主要集中在数据中心服务器中,但是伴随密集计算需求的产生,比如汽车电子、图像处理和视频监控行业,将会出现多核MCU,比如今天我们看到的飞思卡尔MPC563xM系列包括32位汽车动力总成MCU,用以改善拥有一至四个气缸的小型引擎的效率和性能。MPC563xM器件的MCU核是基于多核Power Architecture和DSP引擎技术,另外一个例子是TI达芬奇TMS320DM644X数字媒体处理器是由双核MCU(ARM9+C64X DSP)组成。
32位MCU发展趋势上还有一个特点,即考虑在8/16/32位之间的无缝移植。大量的嵌入式应用过去和今后一段时间还将集中在8/16位上,但是考虑到市场竞争的加剧,推出高性能的升级产品已经是产品设计初期必须考虑的问题之一,便于实现轻松升级的灵活MCU架构将得到欢迎。比如Microchip最新推出的32位MCU PIC32的时候重点强调也是和PIC24/disPIC DSC的引脚、寄存器和外设兼容,新版本的MPLAB开放环境在原有8/16位MCU上增加了32位PIC32支持和16位通用外设API库,这样同样的开放环境在更换MCU的时候只是重新编译一下代码就可以运行了,同样思路的产品线是飞思卡尔的Flexis QE128,包括了8位S08和ColdfireVl的六款内核的升级方案。
单一功能和高集成度
单一化和集成化是MCU发展的一个趋势,特别是体现在8/16位MCU上。在无线通信领域我们已经看到了集成8051核的TI公司的ZigBee MCU CC2430和飞思卡尔的68HC08核ZigBee MCU MCl321X;在连接和存储方面,USB的作用在嵌入式系统中得到广泛认可,大量USB MCU应运而生,例如NEC的USB 2.0主机和外设的MCU,Microchip的PICl8F13K50和PICl8F14K50是8位USB MCU。为了满足最终产品对高级USB连接功能与日俱增的需求,Microchip PIC32 USB OTG是一款引入针对USB OTG功能的32位USB MCU。这些单一功能的MCU都具有单芯片的高集成度,配合一些外围功率和电源部件的电路板就可以组成一个完整的嵌入式系统,而且这些芯片一般都配备了优化好的支持ZigBee的协议和USB协议的软件库,让设计者可以很快完成项目,其他传统的单一功能MCU的应用还包括数字电源、电机控制、电表,比如瑞萨针对电表应用的R8C/Tiny系列的MCU。
传统的通用MCU还将会继续向增加外设和通信模块的方向发展,比如UART、ADC、PWM、SPT、I2C、GPIO、CAN和Ethernet;因为随之带来软件的复杂度增加和嵌入式操作系统等软件组件的使用,内置大容量的闪存/RAM等,这些也将是MCU未来的发展趋势,256k闪存已经是中级配置,512k闪存的MCU已经随处可见。
低功耗设计和能耗管理
随着包括移动终端、无线传感网络装置、新型智能玩具、手持医疗设备等市场规模的迅速增加,解决电源管理已经成为整个电子设计正在面临的重要课题。市场对绿色产品的需求促使制造商考虑采用低功耗的待机模式,作为嵌入式系统灵魂部件的MCU近年在低功耗设计和能耗管理方面的动作很大,各种新产品应运而生。
Silicon Laboratories公司是一家以提供8051核MCU为主的公司,2008年发表的单电池供电的80C51 MCU—8051F9XX,最低电压可到0.9V,其超低电压供电是业界少见的。该芯片内置了DC/DC电压转换器和LDO转换器,可以提供恒定的1.7V电压和电流,以适应外设的工作,也可以减少电路板的尺寸,更重要的是80C51F9XX有超低功 耗的休眠模式(电流只有50hA),大大提高了电池的效率和使用时间。图2显示了该芯片电流随频率的变化关系。
另外一款MCU是Atmel公司发布的超低功耗ARM7TDMI 闪存MCU—AT91SAM7L,它在关机模式只消耗100 nA电流,这得益于该系列产品嵌入了控制多个功率岛的功率开关,以及可编程的电压调节器,用于降低工作和待机模式下的功耗。AT91SAM7L系列产品针对工作和待机模式吸收了嵌入式CPU的动态电源管理技术,采用MCU领域里创新的降低功耗方式。在工作模式下,能通过编程设置工作电压和工作频率、外设时钟活动,采用DMA来替代CPU完成数据传输,可以优化功耗。SAM7L采用单电压1.8V模式工作,在闪存中执行代码时,典型的电流消耗为0.5mA/MHz。不同待机模式的功耗可通过多种方式来加以控制(包括功率开关和可调电压调节器)。
TI公司的MSP430543X 16位超低功耗MCU是在MSP430家族衍生出的一种强调低功耗的芯片,继承了高集成的外设支持、低电压工作模式、丰富连接方式(包括红外,多串口等),以适合便携测试装置设计外,特别值得一提的是DSC的使用使得快速唤醒时间提高到5μs以内,已经非常接近8位MCU8051F9XX的数量级。这对于工业测量装置满足实时性要求是非常重要的。一个优秀的快速唤醒技术可以让降低功耗和保持实时性达到统一。
开发工具的融合
伴随电子产品复杂度增加,MCU程序代码量日益增加,虽然C语言已经是MCU主要的开发语言,但是考虑到不同的MCU之间的差异(例如寄存器和外设接口)、不同厂家C语言的工程文件和宏定义等方面的问题,还有采用的RTOS的不同,代码的移植和移植后的测试还有一个相当大的工作量。一种方案是继续沿用老的MCU或者升级换代的兼容产品,这样工具就可以继续延用了,另外就是采用统一的开发工具支持不同厂家的MCU。
近一两年发生的两件事验证了统一工具的重要性:一是ARM在2007年收购Keil公司后重新整合了ARM开发工具,发表了新的针对MCU市场的ARM MDK,其中使用Keil uVision IDE和工程管理取代了以前的ARM RealView/SDT,让过去许多已经熟悉了Keil 51的用户,能够在工具方面没有障碍地转移到ARM结构MCU;二是飞思卡尔公司宣布它们的Coldfire支持IAR EW(embedded workbench)工具,因为IAREW可以支持各种8、16和32位MCU,而之前飞思卡尔一直是只支持自己的Codewarrier工具,这样的工具融合现象说明了MCU厂家已经意识到一致性工具对用户的重要性。
结语
面向无处不在的各种各样的嵌入式应用,MCU未来的发展一定是丰富多彩的,从历史发展的轨迹看,一种芯片、一家公司和一种体系结构无法满足变化万千的市场需求,正确把握MCU的发展趋势,选择适合你的产品和开发工具,是保证产品质量、生产成本和开发周期的关键。同时关注MCU的动态,选择具有特色的MCU能够帮助你的产品创新和差异化设计,收到与众不同的效果。
关键词:MCU;低功耗;开发工具;Cortex-M3
32位大行其道
消费类电子、汽车电子和工业应用三大行业正在推动32位MCu的广泛采用,Gartner的数据显示,到了2012年,32位MCU(加上32位智能卡)的整个数量将非常接近8/16位MCU总合,但是销售额将超过8/16 MCU(见图1)。这也不难看出老牌的8/16位MCU厂商2008年纷纷进入32位市场,推出和其8/16位保持兼容的32位新品的真正原因了:谁也不想放弃32位MCU的这道大餐,况且盛筵还远没有开始呢。比如Microchip 2008年发表了PIC32就是希望在稳定其用户在向32位升级时的选择。
32位MCU能够带来更高的性能,而且并不很贵的价格。资料显示最新的STM32Coretex—M3是1.25DMIPS,PIC32有1.5DMIPS;32位MCU还拥有更大的片内闪存空间(不够还可以外扩),保证大容量的软件代码运行以适应应用软件的增加。在32位MCU市场上开放CPU体系得到充分的认可,比如ARM7/9、Cortec-M3和MIPS,在ARM7TDMI被世界上包括NXP、Atmel在内主要MCU厂商生产并大获成功后,ARM随后发表的Cortex-M3有希望成为MCU中的8051,除了高性能、大存储空间和丰富软件和工具支持外,Cortex-M3核只有0.19mW/MHz(8051是0.5mW/MHz)。以ST32F10X为例,它可以在2.0V~3.6V电压下工作,在待机模式(RTCon)只有3.5μA电流消耗,在闪存运行时也只有0.5mA/MHz消耗。继2006年初创公司Luminary推出了基于Cortex—M3的MCU后,ST(意法半导体)在2007年推出ST32MCU,到2008年9月ST共有46款产品。其他半导体公司也不甘落后,NXP、TI和Zilog相继宣布获得Cortex-M3授权,2008年Atmel也宣布获得Cortex-M3授权为下一代的AT91SAM的核心(Atmel基于ARM技术的MCU)。Atmel计划其AT91SAM3闪存MCU系列将组合ARM Cortex-M3处理器和系统部件,如多层次的内部总线,一个高速的DMA支持系统外设和分布式外设控制器,以达到更高速的数据传输能力。无疑Atmel的加入将奠定Coretex-M3在MCU市场的地位。笔者认为,新的设计如果不考虑到老产品的继承性问题,在选择ARM核MCU时,可以优先考虑使用Coretex-M3的MCU芯片。
32位MCU未来还会向多核方向发展。我们知道多核应用目前主要集中在数据中心服务器中,但是伴随密集计算需求的产生,比如汽车电子、图像处理和视频监控行业,将会出现多核MCU,比如今天我们看到的飞思卡尔MPC563xM系列包括32位汽车动力总成MCU,用以改善拥有一至四个气缸的小型引擎的效率和性能。MPC563xM器件的MCU核是基于多核Power Architecture和DSP引擎技术,另外一个例子是TI达芬奇TMS320DM644X数字媒体处理器是由双核MCU(ARM9+C64X DSP)组成。
32位MCU发展趋势上还有一个特点,即考虑在8/16/32位之间的无缝移植。大量的嵌入式应用过去和今后一段时间还将集中在8/16位上,但是考虑到市场竞争的加剧,推出高性能的升级产品已经是产品设计初期必须考虑的问题之一,便于实现轻松升级的灵活MCU架构将得到欢迎。比如Microchip最新推出的32位MCU PIC32的时候重点强调也是和PIC24/disPIC DSC的引脚、寄存器和外设兼容,新版本的MPLAB开放环境在原有8/16位MCU上增加了32位PIC32支持和16位通用外设API库,这样同样的开放环境在更换MCU的时候只是重新编译一下代码就可以运行了,同样思路的产品线是飞思卡尔的Flexis QE128,包括了8位S08和ColdfireVl的六款内核的升级方案。
单一功能和高集成度
单一化和集成化是MCU发展的一个趋势,特别是体现在8/16位MCU上。在无线通信领域我们已经看到了集成8051核的TI公司的ZigBee MCU CC2430和飞思卡尔的68HC08核ZigBee MCU MCl321X;在连接和存储方面,USB的作用在嵌入式系统中得到广泛认可,大量USB MCU应运而生,例如NEC的USB 2.0主机和外设的MCU,Microchip的PICl8F13K50和PICl8F14K50是8位USB MCU。为了满足最终产品对高级USB连接功能与日俱增的需求,Microchip PIC32 USB OTG是一款引入针对USB OTG功能的32位USB MCU。这些单一功能的MCU都具有单芯片的高集成度,配合一些外围功率和电源部件的电路板就可以组成一个完整的嵌入式系统,而且这些芯片一般都配备了优化好的支持ZigBee的协议和USB协议的软件库,让设计者可以很快完成项目,其他传统的单一功能MCU的应用还包括数字电源、电机控制、电表,比如瑞萨针对电表应用的R8C/Tiny系列的MCU。
传统的通用MCU还将会继续向增加外设和通信模块的方向发展,比如UART、ADC、PWM、SPT、I2C、GPIO、CAN和Ethernet;因为随之带来软件的复杂度增加和嵌入式操作系统等软件组件的使用,内置大容量的闪存/RAM等,这些也将是MCU未来的发展趋势,256k闪存已经是中级配置,512k闪存的MCU已经随处可见。
低功耗设计和能耗管理
随着包括移动终端、无线传感网络装置、新型智能玩具、手持医疗设备等市场规模的迅速增加,解决电源管理已经成为整个电子设计正在面临的重要课题。市场对绿色产品的需求促使制造商考虑采用低功耗的待机模式,作为嵌入式系统灵魂部件的MCU近年在低功耗设计和能耗管理方面的动作很大,各种新产品应运而生。
Silicon Laboratories公司是一家以提供8051核MCU为主的公司,2008年发表的单电池供电的80C51 MCU—8051F9XX,最低电压可到0.9V,其超低电压供电是业界少见的。该芯片内置了DC/DC电压转换器和LDO转换器,可以提供恒定的1.7V电压和电流,以适应外设的工作,也可以减少电路板的尺寸,更重要的是80C51F9XX有超低功 耗的休眠模式(电流只有50hA),大大提高了电池的效率和使用时间。图2显示了该芯片电流随频率的变化关系。
另外一款MCU是Atmel公司发布的超低功耗ARM7TDMI 闪存MCU—AT91SAM7L,它在关机模式只消耗100 nA电流,这得益于该系列产品嵌入了控制多个功率岛的功率开关,以及可编程的电压调节器,用于降低工作和待机模式下的功耗。AT91SAM7L系列产品针对工作和待机模式吸收了嵌入式CPU的动态电源管理技术,采用MCU领域里创新的降低功耗方式。在工作模式下,能通过编程设置工作电压和工作频率、外设时钟活动,采用DMA来替代CPU完成数据传输,可以优化功耗。SAM7L采用单电压1.8V模式工作,在闪存中执行代码时,典型的电流消耗为0.5mA/MHz。不同待机模式的功耗可通过多种方式来加以控制(包括功率开关和可调电压调节器)。
TI公司的MSP430543X 16位超低功耗MCU是在MSP430家族衍生出的一种强调低功耗的芯片,继承了高集成的外设支持、低电压工作模式、丰富连接方式(包括红外,多串口等),以适合便携测试装置设计外,特别值得一提的是DSC的使用使得快速唤醒时间提高到5μs以内,已经非常接近8位MCU8051F9XX的数量级。这对于工业测量装置满足实时性要求是非常重要的。一个优秀的快速唤醒技术可以让降低功耗和保持实时性达到统一。
开发工具的融合
伴随电子产品复杂度增加,MCU程序代码量日益增加,虽然C语言已经是MCU主要的开发语言,但是考虑到不同的MCU之间的差异(例如寄存器和外设接口)、不同厂家C语言的工程文件和宏定义等方面的问题,还有采用的RTOS的不同,代码的移植和移植后的测试还有一个相当大的工作量。一种方案是继续沿用老的MCU或者升级换代的兼容产品,这样工具就可以继续延用了,另外就是采用统一的开发工具支持不同厂家的MCU。
近一两年发生的两件事验证了统一工具的重要性:一是ARM在2007年收购Keil公司后重新整合了ARM开发工具,发表了新的针对MCU市场的ARM MDK,其中使用Keil uVision IDE和工程管理取代了以前的ARM RealView/SDT,让过去许多已经熟悉了Keil 51的用户,能够在工具方面没有障碍地转移到ARM结构MCU;二是飞思卡尔公司宣布它们的Coldfire支持IAR EW(embedded workbench)工具,因为IAREW可以支持各种8、16和32位MCU,而之前飞思卡尔一直是只支持自己的Codewarrier工具,这样的工具融合现象说明了MCU厂家已经意识到一致性工具对用户的重要性。
结语
面向无处不在的各种各样的嵌入式应用,MCU未来的发展一定是丰富多彩的,从历史发展的轨迹看,一种芯片、一家公司和一种体系结构无法满足变化万千的市场需求,正确把握MCU的发展趋势,选择适合你的产品和开发工具,是保证产品质量、生产成本和开发周期的关键。同时关注MCU的动态,选择具有特色的MCU能够帮助你的产品创新和差异化设计,收到与众不同的效果。