低功耗嵌入式实现的方方面面
时间:04-30
来源:互联网
点击:
休眠模式
“休眠”待机模式是特别有意思的,因为它通过完全关闭处理器内核电源,实现了最大的能量节省 (与“待机综合”下的其他模式不同)。 当处理器内核的电源关闭后,不再维护处理器的内部状态,因此,任何保存在内部(存储器内容、寄存器内容等)的关键信息,在关电前都必须提前写入到非易失性存储器设备中。然而,即使关闭了处理器内核电源,休眠方式仍为使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/bitSRAM虽然不如SDRAM有效,但其尺寸大小通常比SDRAM小的多。
在低功耗应用中优化功率消耗
处理器唤醒
利用系统级技术节省功耗与元器件级节省同样重要,因为元器件经常以共生的形式一起使用。当将处理器置为低功耗模式,许多不同的系统元器件都可以配置为用于唤醒处理器,比如,通过以太网、USB、实时时钟或FLAG标志引脚上的触发信号等都可以产生唤醒事件。
一个较好的系统级唤醒实例是通过串行口连接到处理器的外部WiFi芯片。 当处理器没有活跃地运行时,可以将它置入低功耗状态,仅让WiFi芯片运转。在这种工作状态,WiFi芯片中的微控制器几乎不消耗电流,因为它仅仅查找与分配的MAC地址相关的数据包,一旦接收数据包,WiFi芯片就向处理器发送一个信号,唤醒处理器并开始再工作。
实时时钟
如果便携式系统还承担着维护日历时间的任务,此时可用实时时钟(RTC),从应用观点(例如,将实际日期和时刻传递给用户)和功耗的观点看,这都很重要。多数RTC都允许设置闹钟,在未来任何时间点提供唤醒功能。因此,系统在不活跃的周期可转入到待机模式,在监视、管理或者用户通知任务等周期性间隔即可唤醒系统。
作为低功率系统中RTC是如何用的一个具体实例,让我们假设对于GPS应用,需要每秒唤醒处理器获得卫星的位置,RTC(吸收20μA)设置为每秒唤醒处理器,处理器转入其低功耗模式(消耗50μA)。当RTC闹钟响起时,处理器被唤醒,执行算法,获取卫星座标,然后再回到睡眠状态。因此,在这种应用中,仅有很低的“在线”占空比,主要工作时间仅需消耗70μA的电流。
无论是作为处理器的一部分,或作为连接到处理器的一个独立芯片,RTC都需要一个独立的电源域,当系统其他部分的电源关闭后它仍可以保持工作。RTC通常采用硬币大小的微型电池供电工作,仅消耗微瓦级能量。由于扩展电池寿命十分重要,当系统连接使用了主电源,允许系统通过主电池(或线路电源)为RTC提供电源运行是明智的。当系统其他部分供电运行时,图1说明了可用于节省RTC电池吸收电流的电路实例。
“休眠”待机模式是特别有意思的,因为它通过完全关闭处理器内核电源,实现了最大的能量节省 (与“待机综合”下的其他模式不同)。 当处理器内核的电源关闭后,不再维护处理器的内部状态,因此,任何保存在内部(存储器内容、寄存器内容等)的关键信息,在关电前都必须提前写入到非易失性存储器设备中。然而,即使关闭了处理器内核电源,休眠方式仍为使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/bitSRAM虽然不如SDRAM有效,但其尺寸大小通常比SDRAM小的多。
在低功耗应用中优化功率消耗
处理器唤醒
利用系统级技术节省功耗与元器件级节省同样重要,因为元器件经常以共生的形式一起使用。当将处理器置为低功耗模式,许多不同的系统元器件都可以配置为用于唤醒处理器,比如,通过以太网、USB、实时时钟或FLAG标志引脚上的触发信号等都可以产生唤醒事件。
一个较好的系统级唤醒实例是通过串行口连接到处理器的外部WiFi芯片。 当处理器没有活跃地运行时,可以将它置入低功耗状态,仅让WiFi芯片运转。在这种工作状态,WiFi芯片中的微控制器几乎不消耗电流,因为它仅仅查找与分配的MAC地址相关的数据包,一旦接收数据包,WiFi芯片就向处理器发送一个信号,唤醒处理器并开始再工作。
实时时钟
如果便携式系统还承担着维护日历时间的任务,此时可用实时时钟(RTC),从应用观点(例如,将实际日期和时刻传递给用户)和功耗的观点看,这都很重要。多数RTC都允许设置闹钟,在未来任何时间点提供唤醒功能。因此,系统在不活跃的周期可转入到待机模式,在监视、管理或者用户通知任务等周期性间隔即可唤醒系统。
作为低功率系统中RTC是如何用的一个具体实例,让我们假设对于GPS应用,需要每秒唤醒处理器获得卫星的位置,RTC(吸收20μA)设置为每秒唤醒处理器,处理器转入其低功耗模式(消耗50μA)。当RTC闹钟响起时,处理器被唤醒,执行算法,获取卫星座标,然后再回到睡眠状态。因此,在这种应用中,仅有很低的“在线”占空比,主要工作时间仅需消耗70μA的电流。
无论是作为处理器的一部分,或作为连接到处理器的一个独立芯片,RTC都需要一个独立的电源域,当系统其他部分的电源关闭后它仍可以保持工作。RTC通常采用硬币大小的微型电池供电工作,仅消耗微瓦级能量。由于扩展电池寿命十分重要,当系统连接使用了主电源,允许系统通过主电池(或线路电源)为RTC提供电源运行是明智的。当系统其他部分供电运行时,图1说明了可用于节省RTC电池吸收电流的电路实例。
嵌入式 电子 电压 电流 GPS 传感器 USB 电路 振荡器 编码器 滤波器 放大器 总线 相关文章:
- 功率与控制的结合使LED照明方案灵活、简便(10-20)
- S3C2440A嵌入式手持终端电源管理系统设计(01-11)
- 几种实用的低电压冗余电源方案设计(01-26)
- 基于先验预知的动态电源管理技术(03-28)
- 基于CAN通信的电源监控系统的设计(04-06)
- 基于CAN总线的低压智能断路器的设计(04-06)