这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 基于微处理器的超低功耗设计

共1条 1/1 1 跳转至

基于微处理器的超低功耗设计

助工
2015-04-13 21:15:04     打赏

今天,工程师的任务之一是开发基于MCU的超低功耗嵌入式应用,此类应用通常要求用一块电池维持数年的工作。在这类应用中,设计人员必须仔细考虑每一微安电流,并了解功率消耗在哪里。


在典型的基于MCU的超低功耗应用中,工作与空闲的时间比极小。系统绝大多数时间处于待机模式,只保留实时时钟功能。此类例子包括数秒钟才测量一次温度的电子恒温器,以及一天只启动几次且每次工作不超过一分钟的血糖监测仪。 

但是一旦有需求,这类系统必须及时进行处理。基于MCU的超低功耗应用必须足够灵敏,以便迅速切换工作模式。 

电池影响着系统的工作寿命。最为常见的方法是使用一对标准1.5V AAA碱性电池。另一种降低成本且避免更换电池的方法是永久性安装单个纽扣锂电池。永久性电池让制造商可以取消客户服务呼叫中心,并且避免了由用户更换电池不当引起的相关责任。 

假定有一个最小供电电压为2.7V的电池供电设备,它的待机模式决定了平均电流,其值大概在2微安以内。如果用一对AAA碱性电池供电,则需要一个20微安以内的调节器对线性放电进行补偿。因而,系统的总电流消耗为22微安。串联的碱性电池放电至2.7V电压时,只有40%的电池容量能被利用,产生大概400毫安时的电量。如果除以22微安的平均电流消耗,则可以得出:利用碱性电池供电,系统大约可以工作两年。 

与之相反,锂电池具有平坦的放电特性,使得其电池容量几乎可以得到完全利用,而无需进行漏电流调节。例如一粒普通的220毫安时纽扣锂电池CR2032,其放电量可以达到总容量的90%,输出电压几乎恒定为2.8v。总的系统电流消耗仅为2微安(即只有MCU的电流消耗)。采用这种方案,一粒电池就可以使系统工作10年以上。 

双振荡器方法常被用于超低功耗应用。一个总是保持开启状态的32 kHz手表晶振被用作低频辅助时钟(ACLK),通常只为定时器和实时中断提供时钟源。一个能够快速启动的高频主时钟(MCLK)振荡器仅在CPU和系统需要时才激活,而且其唤醒时间通常小于10微秒。了解哪些时钟需要快速启动,哪些时钟不需要快速启动是很重要的。 

常见的陷阱是一个两级的系统时钟唤醒,它最初仅向CPU和系统提供ACLK,而MCLK则保持稳定(一毫秒即可激活)。有时候当为系统提供快速启动的MCLK(但它是不稳定的)时,其不稳性将带来负面影响。假设要求使用常见的19200波特UART协议下载数据,这要求每52微秒准确接收1比特数据。但是ACLK的频率不足以为UART提供足够的波特率调制。如果将两级启动的高速MCLK用于UART,结果将造成无法预测的波特率,并会丢失字符。在这种情况下,MCU必须等MCLK稳定后才能运行系统。 

在设计基于MCU的超低功耗应用时,还必须考虑外围电路的功耗。大多数MCU都具备启用单独外围元件及时钟源的能力,以节省功耗。仅启用所需的外围元件及时钟是减少功耗的基础。 

为此,设计人员需要仔细检查两个相关领域:低电压保护与端口引脚漏电流。大多数MCU集成有低电压保护,当供电电源降低到安全门限以下时会重启系统。MCU通常还能禁用低电压保护以节省功耗,但是由于低电压是无法预知的,所以低电压保护功能必须始终处于开启状态。 

端口引脚漏电流有时会被忽略。很多老式MCU的限定输入引脚漏电流为1微安。对一个有20个输入端口的器件而言,这样会消耗高达20微安的电流。但专为低功耗设计的MCU则只允许最大不超过50nA的漏电流。 

在项目开始以前,我们通常会执行专用的测试基准,以分析给定架构在代码密度和周期数方面的效率。通过这个步骤,设计人员应该检查关键的重入代码路径,以深入了解架构对特定应用的影响。这方面的例子包括处理集成A/D外设的中断服务程序。 

花些时间来了解各种MCU的架构特性,可以使设计满足甚至是最苛刻的功耗预算要求。 



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]