| 以LPC1100系列产品进行低功耗设计(转) 本文介绍了基于ARM Cortex-M0内核技术的恩智浦半导体(NXPSemiconductors) LPC1100系列微控制器的低功耗特点,及其可最大程度减少耗电量的系统设计方法。 微控制器低功耗设计理念
 定义:
 要理解微控制器功耗的概念,首先要了解CMOS器件功耗的基本组成。器件的主要功耗包括两种:动态功耗和静态功耗。
 动态功耗CMOS器件的一阶动态功耗定义如下:
 
 
 
  1.jpg (4.72 KB) 2009-12-25 12:21
 
 
 
 
 图1给出了一个简单的CMOS倒相器结构图。倒相器状态改变时必定会对负载电容进行充放电,从而产生功耗。
 
  2.jpg (5.28 KB) 2009-12-25 12:21
 
 
 
 
 图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内核,
 |