首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

低功耗嵌入式实现的方方面面

低功耗嵌入式实现的方方面面

关键字:电池   嵌入式   传感器   医疗设备   WiFi  
  任何一个嵌入式设计都是在对电源供电结构进行详尽分析后才能完成的;同样,对于恒定电源供电的有线系统也是如此。处理器和其周边的硬件生态系统的消耗通常占电源的较大比例,因此,这就是所有的“重点”之所在。

  在深入讨论之前,我们先按次序讨论一下术语。“能量”与做功的总量有关,而“功率”是测量做功的速率(单位时间的能量)。电子学中,功耗= (系统元器件的电压)ⅹ(流经系统元器件的电流),能量=功率ⅹ时间。

  因此,系统设计员通常关心总的能量消耗和峰值功耗。换句话说,使用的能量是从电池吸收的,但电池也需要提供足够的瞬时能量以满足峰值功率的要求。习惯上将集中讨论功耗;然而,实际上也将论及系统中使用的能量和功率。

  什么是“低功耗”

  “低功耗”究竟指什么?从嵌入式观点看,经常将该术语同电池驱动移动设备联系起来,但该术语实质上也是相对的。从功率尺度的最低端应用看,我们可以只简单地讨论手表电池的例子。然而,在另一个极端,为了避免额外的设计负担和费用(如热同步、风扇、调整器等),又需要构想使功耗最小的“插入式”系统。

  毕竟现今的很多设计系统,诸如从汽车收音机到“插件箱”中的仪器板卡,都是根据交到OEM(原设备供应商)的规格构建的系统。为了确保销售商之间的一致,这些规格经常描述了严格的功率预算分配。关键点是,为了关注降低功耗,系统不一定非要用电池供电,或者非要“移动”。

  为了方便,可以将低功耗嵌入式系统分为三个不同类型:

  第一类是在不使用时就关闭电源的系统。对于这类应用,系统运行时的低电流消耗驾驭着电池的寿命。这样的应用实例包括便携式媒体播放器、GPS设备和数码相机,这些系统在工作状态呈现出低功耗的特性,同时待机电流是“无关紧要”的,这是由于设备关闭时是不吸收电流的(如果使用了实时时钟会有几微安的电流)。通常根据不同的应用,处理器在有效工作状态时的电流从几十到几百毫安。

  第二类中,将开机或完全关闭的系统改进为开机或“待机模式”的系统。在待机状态,系统处于最低电流消耗状态,同时仍维持存储区中的内容。对于这样的系统,有效电流和待机电流消耗都很重要,此时有效电流的消耗与第一种情况相同,而待机电流通常则从数百微安到几毫安。这种类型的典型产品如VoIP移动电话和声控设备。该类还包括这样的情况,系统的某部分仍处于“监控”状态,在转换到全速处理状态之前等待某事件的发生。

  第三类由始终处于加电状态的设备构成。这里,功率要求很可能在次毫安范围内,这就直接限制了可实现的处理性能。此类的应用实例包括手表和一些便携式或植入式医疗设备

  有很多方法可以调整系统的功耗指标,以满足应用要求,包括:


  • 动态改变频率和电压;
  • 了解处理器内分离的供电范围;
  • 分析代码从而针对降低功耗做优化;
  • 运用处理器的多种供电模式;
  • 从系统级关注功耗的产生。

  本文将集中讨论最后两种方法,参考文献部分列出了其他几个主题的详细说明。

  电源供电模式

  许多应用涉及相对于其处理的需求有明显差别的工作模式。考虑一个用电池供电并带有嵌入处理器的传感器。处理器的外设可能采集周围环境的参数。在该模式下,不要求有计算功率,处理器可能要求突发读入遥测数据的数据包。当处理器读取足够数据并开始处理时,则进入“全速”工作模式,整个处理器就被唤醒,以最高的性能运行。当不需要传感器数据也不需要处理时,可提供超低功耗模式。

  处理器要从各种各样的掉电模式中唤醒,需要接收某种类型的唤醒事件。外部事件可以是外部激励,如标志引脚翻转,或者内部处理器活动,如DMA传输完成或定时器满等。

  不同处理器上实现的确定电源供电模式有很大差别,但处理平台之间通常也有一些共性,例如“全速”工作模式;“睡眠”模式,为了使系统快速恢复,即使处理器未使用的部分为省电处于无效,片上存储器仍保持供电;以及“休眠”模式,此模式中,为了最大节省电源,片上存储器也可以不供电。本文中,“待机模式”表示综合的低功耗模式,这里的电流消耗和恢复到全速处理模式所需的时间需要进行折中[v1],也就是电流越低,恢复到全速工作的时间就越长。

  为什么需要让处理器定期进入或退出待机模式呢?其实很简单,就是为了减少能量消耗和延长电池寿命。在许多待机模式中,由于处理器仍然被供电,处理器可保留其所有的内部状态和存储器内容,但大大地减少了电流的吸收。此外,处理器唤醒需要占用几毫秒时间,但这也比传统的处理器从冷启动加载快得多。

  休眠模式

  “休眠”待机模式是特别有意思的,因为它通过完全关闭处理器内核电源,实现了最大的能量节省 (与“待机综合”下的其他模式不同)。 当处理器内核的电源关闭后,不再维护处理器的内部状态,因此,任何保存在内部(存储器内容、寄存器内容等)的关键信息,在关电前都必须提前写入到非易失性存储器设备中。然而,即使关闭了处理器内核电源,休眠方式仍为使SDRAM保持“活跃”状态提供了措施。在进入休眠模式前,设置SDRAM进入自刷新模式,并在唤醒后可以重新控制它,处理器允许将系统状态存储在易失性DRAM中,而不是非易失性Flash存储器中,这样,处理器在唤醒后就可以更快速自举,否则,处理器还需要从非易失性存储器重新载入程序代码。

  充分利用电源供电模式

  现在考虑另一个具有代表性的情况,此时有不同的处理器供电模式,在功耗方面也有很大的差别。考虑一台带有输入缓冲区的便携式MP3播放器,将音频数据解码到SDRAM中的输出缓冲区,然后将处理器置为待机模式,直到又需要新的数据为止。

  由于MP3解码处理要求低,在不需要处理的间隔,处理器可以进入休眠状态,比如,设备可能工作在“25%解码,75%休眠”的情形,也就是说,此时处理器在这个25%的时间时,其内核吸收电流是30mA,而在75%的时间时,处理器内核的吸收电流仅有15mA。在解码间隔,处理器尽可能快的在外部存储器中构建解码的样本,一旦达到了缓冲区期望的大小,处理器就进入睡眠状态,直到需要更新数据缓冲区。

  换句话说,如果通常进行连续流MP3解码,即75MHz,则可选择以300MHz对在待机模式过程中收集的缓冲区数进行解码。这样,处理器就在一个更高水平上运行,但其运行过程很短(在处理器又回到睡眠状态前)。通过使睡眠时间最大化,就可以节省能量。这种方法只是对于像便携式媒体播放器这样的系统是有道理的,因为有时也需要视频处理,否则,如果只是MP3解码,就可使用更低性能(和低功耗)的处理器。

  那如何管理处理器的唤醒速率呢?在本例中,音频缓冲可以是双缓冲,从DMA角度看,每个缓冲区就是一个音频“线”,每个输出线完成的中断就标志处理器是时候用新数据填充刚为空的缓冲区了。在输出缓冲区准备通过音频口进行播放之前,处理器很容易产生所需要的解码后的输出缓冲区数据,一旦处理器填满了该缓冲区,它又进入睡眠状态,然后不断重复这一过程。

  作为旁注,在上述例子,使用异步SRAM设备而不是SDRAM,更能节省成本和节省能量。当然,SRAM不能提供和SDRAM一样的性能水平,但对于16bit或32bit访问的音频数据, SRAM的性能就足够了,这是因为采用DMA控制器并行访问数据,即使数据以低速SRAM速率出现,也很容易保持持续给串行接口提供解码数据。

  由于有较大的程序代码,或者需要提高解码的性能,即使应用中需要SDRAM,在设计中同时使用SRAM和SDRAM也是有道理的。当然使用的材料成本费用将增加,在系统中巧妙地使用两者也可以最大化地节省功率。要求最高性能的部分应用可使用SDRAM,且每当处理器进入睡眠后,即将SDRAM置为自刷新模式。在活跃处理期间,吸收的电流主要由处理器和SDRAM控制,这是因为基于mW/bit SRAM虽然不如SDRAM有效,但其尺寸大小通常比SDRAM小的多。


返回列表