本文介绍了基于ARM Cortex-M0内核技术的恩智浦半导体(NXP Semiconductors) LPC1100系列微控制器的低功耗特点,及其可最大程度减少耗电量的系统设计方法。
微控制器低功耗设计理念
定义:
要理解微控制器功耗的概念,首先要了解CMOS器件功耗的基本组成。器件的主要功耗包括两种:动态功耗和静态功耗。
动态功耗
CMOS器件的一阶动态功耗定义如下:

图1给出了一个简单的CMOS倒相器结构图。倒相器状态改变时必定会对负载电容进行充放电,从而产生功耗。

图1:CMOS功耗
负载电容是倒相器驱动的所有器件的互连电容和栅电容之和。如果该器件无翻转操作,所有功耗即为该器件的漏电流功耗。
因此,对于特定工艺尺寸的器件,功耗与电压呈二次方变化,与频率呈线性变化。功耗与频率呈线性变化的特点为微控制器带来了一种常用的参数指标,即每MHz所消耗的电流量。低功率器件中该指标以uA/MHz表示,一般介于200uA/MHz到300uA/MHz之间。这些数字从某种程度上说具有误导性,原因在于没有标准的测量方法。测量的重点应当反映所消耗电流完成
的运算量,如果采用更全面的测量方法,则应反映特定运算所消耗的能量。由于这种测量方法并未广泛采用,因此本文仍使用uA/MHz指标进行研究。
数字CMOS架构中每MHz消耗的电流并不是器件消耗的唯一电流,支持数字域所需的模拟电路也会消耗电流。
功耗组件分为时钟组件、电源控制组件、内存和外围设备。时钟、电源控制和内存组件是构成微控制器平台的必要部分,模拟外围设备属于功能性部件,不同系列的微控制器可以有不同的外围设备。
表1列出了LPC1100中使用的时钟组件。表中组件按功耗大小由低到高排列。
和所有模拟设计一样,时钟组件存在精度和功耗取舍问题。LPC1100采用了灵活的时钟组件配置方案,可以根据具体应用需求在功耗和精度之间做出取舍。
表2列出了LPC1100电源控制组件。与时钟组件一样,电源控制组件也能针对不同的应用要求进行配置。
时钟组件 | 特性 |
低功耗内部振荡器 | 频率低,精度低,功耗低 |
内部RC振荡器 | 精度好于1% |
晶体振荡器 | 精度高,抖动低 |
数字锁相环 (DLL) | 启动快,抖动高,功耗低 |
锁相环 (PLL) | 启动慢,抖动低,功耗适中 |
表1:LPC1100时钟组件
电源控制组件 | 特性 |
电源管理单元(PMU) | 提供针对不同电源模式的功耗控制 |
上电复位(POR) | 低功耗,低精度 |
掉电检测(BOD) | 高精度,多级 |
表2:电源控制组件
微处理器内核功耗并非单纯的斜率关系,还涉及支持内核运行的模拟组件产生的固有电流。有时也称为零赫兹电流。由于LPC1100采用灵活的时钟架构,固有电流大小并不固定。随着频率降低,关闭无需产生工作频率的时钟组件可以减少补偿电流。例如,在低频时,可以采用0
- 1 MHz的低精度低功耗振荡器运行LPC1100,在有较高频率需求时,打开高精度内部RC振荡器以提供1-12MHz的频率。
漏电功耗
漏电功耗指数字逻辑电路未翻转时,CMOS结区消耗的电流。此电流很大程度上取决于工艺节点以及对节点中库单元的优化情况。LPC1100的库单元已经过优化以减少漏电。通过提供给用户不同的省电模式选项,可以进一步降低漏电。通过配置省电模式,不仅可以改善CMOS结区漏电,还能对各种模拟功能进行控制。
省电模式 | 说明 |
睡眠模式 | 内核时钟关闭,外围设备运行 |
掉电模式 | 时钟关闭,可选模拟功能关闭 |
深度掉电模式 | 电源关闭。常开域寄存器保持供电 |
表3:LPC1100省电模式
睡眠模式
睡眠模式关闭内核时钟,但是用户可以选择运行外围设备。此模式下的功耗包括漏电功耗和外围运行设备动态功耗两部分。睡眠模式仍可以接收数据,但是内核会保持原有状态,仅在需要时恢复运行。
掉电模式
所有数字逻辑电路时钟全部关闭,根据具体应用要求,模拟子系统可以设置灵活的唤醒时间。当所有模拟时钟组件全部关闭时芯片处于最小功耗模式。唤醒时间由所选唤醒时钟源决定。低功耗振荡器唤醒时间最短,晶体振荡器和锁相环(PLL)唤醒时间最长。
深度掉电模式
本模式将关闭除一个小的常开域以外的所有微控制器内部电源域。常开域设有一组寄存器,用于保存微控制器进入深度掉电模式前的有关信息。唤醒深度掉电模式需要触发唤醒引脚或上电复位。
高效代码
LPC1100采用了ARM新推出的Cortex-M0内核,无论是动态功耗还是漏电功耗都有很大的改善。单一指令集降低了动态功耗。M0通常采用Thumb指令,这些16位的Thumb指令可以由内核解释成32位指令。内核通过简化的总线接口减少了逻辑门数量,并最大程序减少时钟驱动。另外,内核架构还得益于时钟门控技术和简化的库单元。由于采取上述措施,内核每MHz电流可以小于70uA。正如前文所述,由于缺少该电流可完成运算量方面的信息,从某种程度上可以说这一数字并无意义。不过,M0内核的0.9
DMIPS/MHz的运行速度,是高于ARM7内核的。
M0内核的逻辑门数量相当于8位和16位内核,因此使用它可以进一步改善漏电功耗。这是由于漏电电流与逻辑门数量呈正比,因此内核逻辑门数量减少对降低漏电功耗有很大的影响。
低功耗系统的设计思考
如何配置微控制器功耗运行模式取决于具体的应用需求。如果电源始终打开,但电源驱动能力有限,微控制器可能会始终处于运行状态。LPC1100可以根据运行需求实时更改运行频率。30 MHz时的LPC1100的额定运行电流为6mA。如果采用低功耗内部振荡器以1
MHz运行,则可降到略大于200uA的水平。
不过,很多需要最大程度降低
功耗的应用场合都必须运用掉电模式和深度掉电模式。这些应用中的处理器大多数时间都处在等待处理数据的静止状态。这就要求处理器必须能够快速唤醒,处理完所需数据后再返回静止状态。由于多数情况下这些应用都采用电池供电,因此降低平均电流可以延长电池使用寿命。要降低平均电流,需要在尽可能短的时间内完成数据处理,以减少任务占空比例。M0属于32位处理器,运算速度要比低位宽处理器快很多。
下页图2显示了运算性能对平均电流的影响。图中假定各种处理器有相同的峰值功耗和掉电模式功耗。M0处理器的平均功耗是低位宽处理器的1/2-1/4。使用M0内核的LPC1100峰值电流仅为200uA/MHz。

图2:平均电流
降低平均电流对电池寿命有重要意义,这意味着需要低静止电流和小的任务占空比。LPC1100深度掉电模式耗电量小于300
nA,峰值耗电量为200uA/MHz。图3显示了任务占空比对电池寿命的影响。这些计算是以一枚230mAh钮扣型锂电池为例得出的。图中显示了静止电流对电池寿命的影响以及要使电池寿命超过三年所需的任务占空比。
图中的平均电流是以假定峰值电流为2mA得来的,即LPC1100以10MHz运行。另外,这里已经考虑了由于降低静态电流而延长了的启动时间。如果LPC1100采用深度掉电模式,每200ms的期间内仅运行1ms,则3年的电池使用寿命是可能达到的。
结语
采用M0内核的LPC1100可以达到当前低功耗微控制器的功耗水平,但是M0内核的运算能力远高于8位和16位处理器。通过降低平均电流,在电池供电的应用中延长了电池的使用寿命,而在其他应用场合中也降低了对电源供电的要求。基于M0内核的LPC1100将对低功耗应用的发展带来深远影响。

图3:任务周期与电池寿命关系图
电池电池寿命、平均电流与任务周期
任务周期
电池寿命(年)
平均电流(µA)
补偿电流 = 30uA
补偿电流 = 10uA
补偿电流 = 2uA
补偿电流 = 0.2uA
>>