ARM Cortex-M0内核使LPC1100的功耗数据与当前的低功耗微控制器保持一致,但这种内核的处理效率远远高于目前的8位和16位处理器。这可以降低电池供电应用的平均电流,延长电池寿命,也可减少其他应用的功率要求。基于M0的LPC1100将对低功耗应用的功能造成重要影响。本文旨在讨论Cortex-M0 LPC1100微控制器系列的低功耗特性,以及有利于降低电源能耗的系统设计技术。这里从七个方面揭示NXP1100低功耗设计的秘密。
一、微控制器低功耗设计考虑因素
定义:为了理解微控制器的功耗,必须首先了解CMOS器件功耗的基本构成。功耗主要有两类:动态功耗和静态功耗。
动态功耗:
图1所示为一种简单的CMOS反相器。当反相器切换时,必须加载或释放负载电容,结果会消耗功率。负载电容是互联电容及其驱动的所有器件的栅电容的结合体。在反相器不切换状态下,消耗功率的是器件的泄露电流。因此,在既定工艺几何结构下,功耗随电压的平方而变化,随频率呈线性变化。功耗随频率呈线性变化这一特性导致了一个经常被引用的微控制器指标,即每MHz的电流消耗值。
图1 一种简单的CMOS反相器
对于低功耗器件,该值表示为uA/MH z,范围在200uA/MHz至300uA/MHz以上。 此类数值具有一定误导性,因为其测量没有一个统一的标准。关键在于既定电流消耗下完成了多少工作,另一个更全面的指标是既定计算消耗了多少能量。由于这类指标尚未被广泛采用,因此,本文将使用uA/MHz指标。
数字CMOS结构每MHz消耗的电流并不是器件所耗电流的全部,还有支持数字域必不可少的模拟电路。
这些可分为计时组件、电源控制组件、存储器和外设。计时组件、电源控制组件和存储器组件都是微控制器平台的组成部分,是必要组件,而模拟外设则是功能套件的一部分,因微控制器系列而异。
表1 LPC1100中采用的计时组件
表1所示为LPC1100中采用的计时组件。表中功耗由低到高排列。就如所有模拟设计一样,精确度和所耗电流之间始终存在折衷。对于这些组件,LPC1100有一个灵活的控制方案,可以在功耗与精确度之间取得平衡,以适应具体应用。
表2 LPC1100中的电源控制组件
表2描述的是LPC1100中的电源控制组件。与计时组件一样,这些组件也可根据应用要求进行定制。
内核的电流消耗不只关乎频率,还涉及到必要内核支持模拟组件的失调电流。这种电流有时也称为零赫兹电流。由于LPC1100拥有灵活的时钟结构,这种电流并不固定。随着频率的降低,关闭产生所需工作频率不必要的时钟组件可能会降低失调电流。
举例来说,在0至1MHz频率范围内,LPC1100可工作于精确度稍低的低功耗振荡器之上,然后启动精确度更高的内部R C振荡器,以提供1到12 MHz的频率。
二、漏电功耗
漏电功耗指CMOS接口在数字逻辑未切换时加载的电流。该电流高度依赖于工艺节点以及节点库的优化方式。对于L P C1100,节点库针对低漏电而优化。为用户提供不同的断电选择可以进一步优化漏电。除CMOS接口处的漏电功耗以外,还可对这些模式中的多种模拟功能进行控制。
表3:LPC1100的电源模式
三、休眠模式
休眠模式下,内核时钟关闭,但用户可以选择继续开启外设。这种模式下的功耗不但包括漏电功耗,还包括处于开启状态的外设带来的动态功耗。该模式下仍可接收数据,但内核会保留其状态,并在需要时继续运行。
四、电模式
数字逻辑的所有时钟均关闭,可以控制模拟子系统,设置灵活的唤醒时间,具体视应用要求而定。当所有模拟时钟元件均被关闭时,则为最低功耗模式。唤醒时间取决于唤醒时钟源的选择。选择低功耗振荡器时,时间最快,选择晶体振荡器和PLL时,时间最慢。
五、深度断电模式
该模式下,除一个始终开启的小型域之外,微控制器内部的电源均被关闭。这个始终开启的域有一组寄存器,可以存储微控制器进入深度断电模式之前的状态信息。从该模式唤醒既可使用唤醒引脚,也可使用复位。
六、代码效率
LPC1100采用了ARM出品的新型Cortex-M0内核,对动态电流和漏电流均有较大影响。以简单的指令集为主可降低动态电流。M0多使用Thum b指令。此类指令位宽16,内核将其解释为32位指令。内核还采用了一种经简化的总线接口,可减少门数和时钟。另外,内核所用架构有利于利用时钟门控和经简化的库元素。在满足上述所有要求的情况下,内核的额定功耗不到70u A/MHz。如前所述,这个数值意义不大,因为它不能说明用这部分电流可以完成多少工作。然而,M0内核的额定性能为0.9 DMIPS/MHz,高于ARM7内核。使用这种内核可进一步改善漏电流,因为门数与8位和16位内核相等。
由于漏电流与门数成正比,因此内核逻辑中的任何节省均可产生重大影响。
七、低功耗系统考虑因素
微控制器电源模式的使用方式取决于具体应用。如果始终有电源,只是容量有限,则可以始终使微控制器处于计时状态。LPC1100可以快速更改频率,具体视处理需求而定。LPC1100在30MHz时的额定电流消耗为6m A。当以1MHz运行于低功耗内部振荡器时,该数值还可降至略高于200uA的水平。
然而,需要降低功耗的许多应用都必须依赖断电和深度断电模式。这些应用在大部分时间都处于静止状态,等待处理数据。处理器必须能快速唤醒,处理所需数据,然后返回静止状态。许多此类应用均采用电池供电,这种情况下,低平均电流对于延长电池寿命至关重要。为了降低平均电流,必须尽快处理数据,以减少工作周期。由于M0是一种32位处理器,其计算执行速度比小宽度处理器更快。
下页的图2展示了处理性能是如何影响平均电流的。数据假定,峰值电流和断电电流在各类处理器上都是相同的。M0内核的功耗可以达到低位宽处理器平均电流的一半到四分之一。借助M0,LPC1100可实现200uA/MHz的峰值电流。
低平均电流对延长电池寿命至关重要。这就意味着低静态电流和小工作周期。LPC1100在深度断电模式下的电流不到300n A,峰值电流仅为200uA/MHz。图4所示即为工作周期对电池寿命的影响。用于此类计算的电池是一枚230mAh的锂离子钮扣电池。该坐标图显示了静态电流对电池寿命的影响,以及要使
电池寿命超过3年所需要的工作周期。平均电流假定峰值电流为2mA,即LPC1100的工作频率为10MHz。图中还包括启动时间的影响,因为降低静态电流会延长启动时间。如果使用LPC1100深度断电模式,在200毫秒的周期中,当处理时间为1毫秒时,实现3年的电池寿命是可能的。
结论
M0内核使LPC1100的功耗数据与当前的低功耗微控制器保持一致,但这种内核的处理效率远远高于目前的8位和16位处理器。这可以降低电池供电应用的平均电流,延长电池寿命,也可减少其他应用的功率要求。基于M0的LPC1100将对低功耗应用的功能造成重要影响。
图3:平均电流
图4:工作周期对电池寿命的影响