)现已成为许多便携式系统的核心,但如何在拓宽功能范围的同时延长电池使用寿命,仍然是一个挑战。然而,慢慢的变多的MCU能在维持液晶显示屏(LCD)图像的同时,选择性地关闭处理器。
比如水表,它需要时刻将读数显示在内置的LCD上,但是,全天候为了随时查看而保持MCU系统活跃是很耗电的。水表这类产品的需求是使LCD可以在不直接受处理器核心控制的情况下工作,能选择性地关闭MCU的部分,同时保持LCD图像。
任何活跃的CMOS电子电路的功耗都能够最终靠CV²f公式计算得出。其中C代表周期内需要充放电的电路总电容,V为电源电压,f为运行频率。因此,一个降低功耗的因素是供电电压——电压与能耗之间的平方关系提供了显著的节能。
另一种节能来自降低操作频率,虽然这可能只影响功率而不是能量。如果算法执行所需的周期数量相同,但是分布在更长的时间内,总体能耗可能会增加,这与漏电流有关。
用于低能耗MCU的半导体工艺倾向于显示出低漏电流,但每个晶体管到硅基底的电子流仍会慢慢消耗电池的电量。漏电流通常是恒定的,尽管随着操作温度的升高由于晶体管内热载子的增加而稍有增加。减少漏电功率的唯一方法,除了仔细的工艺设计之外,是切断逻辑块的电力供应。
因此,MCU的省电设计需要在电路速度和电压之间进行精细的取舍。还有第三个因素——MCU在给定时间内需要多频繁地激活。大多数基于MCU的系统并不总是有工作要做。它们通常会周期性地完成一系列任务,然后停下来。为避免浪费电能,MCU不会简单地在空转循环中循环,而是会进入睡眠状态,关闭大部分功能单元。
理想情况下,在计量和监控应用中,通过维持低占空比,最大化电池使用寿命,系统内的处理器几乎全部时间都在睡眠状态。例如,一个公用事业表的MCU可能会在其生命周期中大部分时间都在睡眠状态。它可能仅在1%的时间内清醒,唤醒仅仅是为了从传感器输入收集数据。MCU完成工作后,会设定一个定时器来在一段时间后触发唤醒中断,或简单地等待外部刺激触发中断,然后关闭电力。由于设备在其生命周期的99%以上时间都是未使用状态,即便是微小的漏电功率也会消耗掉相当多的电池电量。
为这些低占空比环境设计的MCU提供了多种睡眠模式,对功耗进行细致控制。例如,“打盹”模式可能仅仅是禁用了一些外设,但核心仍在极低的时钟速率下运行在空转循环中。这比“深睡眠”状态消耗更多电力,在深睡眠中,处理器核心和几乎所有外设都已关闭,但通常能快速响应中断。
在电力方面,深睡眠与打盹模式之间的差异可能非常巨大。深睡眠状态下的MCU可能仅消耗大约几十纳安的电流——这些能量仅足以保持定时器和中断控制器运行——而较不强烈的睡眠模式可以绘制几十或数百微安,甚至更多。显然,睡眠模式的选择对电池使用寿命有着显著影响。
睡眠模式的选择对产品设计也有重大影响,特别是用户界面。如果LCD没有背光,它的能耗不多,因此不一定需要关闭电源。对于如计量器这样的应用,用户可能想要在不唤醒系统的情况下检查读数,因此持续显示读数非常重要。
很多传统MCU在设备进入深睡眠时会关闭LCD控制器,使显示屏空白。但是,如今已经有很多厂商已经认识到至少要保持静态显示的价值,并允许在几乎所有其他MCU部分被禁用的情况下,继续运行LCD。有些还可以在处理器核心睡眠时修改显示。
允许独立于处理器核心驱动LCD控制器。为了在睡眠模式下操作LCD,用户只需选择一个非主振荡器的振荡源——它在睡眠期间会被禁用——并清除一个控制位,以确定LCD是否应该关闭电源。根据MCU型号,LCD的时钟源可以是内部RC振荡器或计时器1的时钟,这通常连接到外部32 kHz晶体,通常用于控制处理器核心下一次唤醒的时刻。
由于许多LCD显示屏在3V以下无法工作,LCD驱动器具有集成的电压增压功能。当供电电压降到3V以下时,可以动态启用电压增压器,将LCD显示屏的输出提升到3V以上。这允许即便是电池接近放电周期末端,电压经常降到3V以下时,也能继续操作。
随着系统中降低能耗的压力增加,预计厂商会提供如LCD控制器之类的更多自主外设,无需调用处理器核心即可进行更新,只有在主要变化时才需要。这将有利于持续降低占空比和功耗。
睡眠模式对于基于电池供电的MCU电源寿命至关重要,并且即使在处理器核心关闭电源时,保持清晰的用户界面也同样重要。市面上也已有MCU产品可实现即使在深度睡眠模式下依旧驱动LCD显示。