在现实世界中,Power(权力)就意味着金钱-越大越好;而对于 µC 外围器件来说则正好相反。随着消费市场的不断发展,终端应用产品的体积不断缩小,Power(功率)越小越好。便携性和低功耗成为最优先考虑的事情,并促成处理器内核电压降至1.8 v 的行业动向,也就不足为奇了。尽管与 3.3 v 和 5 v 型号相比,这些低功耗器件消耗的能量确实要低得多,但是低功耗处理器并非都一样。设计出色的低功耗应用需要同时考虑终端应用的需求和各种可用的 µC 特性。
设计人员可能会提出以下问题:是否能够重新充电?尺寸能够做到多小?典型的工作时间是多少?速度必须多快?要连接哪种类型的外围器件?这些答案将最终为确立设计标准和功率要求积累原始资料。
图 1:典型 µC 环境中的器件
处理功率
首先应该考虑 CPU 的处理功率,一般来说,CPU 是功耗最高的外围器件。处理器全速运行时,耗电量非常大,因此 CPU 处于待机或关闭状态的时间越多,电池寿命越长。例如,4 位处理器比 32 位处理器的功率消耗低;而处于休眠或停机状态的任何位数的处理器均比工作中的处理器的功耗要低。因此,如果 32 位处理器执行功能所耗的时间仅为 4 位处理器的1/10,那么,它在整个系统生命周期内要少消耗 9/10 的功率。因此,大多数制造商建议以较高的频率运行 CPU,迅速完成任务,并立即返回到功耗最低的休眠状态。总之,在选择处理器速度时,要考虑能够迅速处理预期工作量并尽可能长时间地处于休眠状态。
其次应考虑大多数便携式应用的中断服务例程 (ISR)。ISR 会定期唤醒处理器执行预排程序的或用户启动的任务,然后让处理器返回到休眠状态。进入和退出 ISR 所用的 CPU 时钟周期越少越好。事实上,许多 ISR(例如端口 I/O)有多个标志,这些标志可能会触发同一中断。采用程序计数器相对寻址方式的处理器会大大缩短识别和处理适当中断源所需的必要周期-尤其是在键盘扫描应用中。如果 ISR 编写得好,通过限制唤醒 CPU、执行任务和返回休眠状态所需的程序分支,可以确保处理时间最短。采用中断向量表的处理器中,程序计数器加载 ISR 地址,这种处理器有助于减少额外的程序分支,并降低功耗。自动上下文保存以及算术逻辑单元 (ALU) 标志和功率模式的恢复功能也可以促进节能。
此外,由于在低速或时钟停止的环境中,动态内核处理器不能保持数据的完整性,因而应尽可能使用静态内核处理器。
工作模式
休眠和“低功耗”模式也是必须考虑的重要问题。通过减慢唤醒时间实现低功耗状态(或关闭对唤醒器件非常重要的功能)会增加功耗,而不是降低功耗。
大多数低功耗器件的休眠或空闲模式会关闭处理器和时钟,通常流耗低于一微安。然后,需要 I/O 中断把处理器从休眠模式唤醒。使用 32kHz 时钟驱动定时器或实时时钟能以更灵活的方式唤醒处理器。基于32kHz 振荡器的功耗不像“深度睡眠”模式那样低,但它能以几微安的电流提供时钟功能。由于许多便携式应用需要实时时钟功能,这种改进可以让系统选用多种不同的外围器件。
需要注意的一点是,如果处理器必须使用 RESET 信号从停机状态唤醒,它必须运行所有硬件初始化程序。事实上,即使处理器SRAM 中的内容没有改变且仍然能够寻址中断,它也将不得不重新初始化处理器外围器件,这将消耗能量。
振荡器
在通过复位唤醒时,由于稳定振荡器晶体所花费的时间不同,内部振荡器能比外部振荡器多执行将近 1,000 条指令。例如,使用外部振荡器的100 MIP 机器启动、稳定和处理指令需要的时间为1 毫秒。与此相比,同一台机器仅需要1 微秒时间就可以使内部振荡器全速工作。让外部振荡器稳定的时间里,内部振荡器可以完成加电,执行 1000 条指令,然后恢复断电状态。这一时间通常已足够找到中断地址,并恢复断电状态。那么,为什么要考虑使用外部振荡器呢?外部振荡器通常在整个工作温度范围内更准确。事实上,在低功耗应用中,嵌入式程序装置经常习惯对照外部振荡器校准内部振荡器。这是因为驱动外部振荡器并使其达到速度所需的电路比内部振荡器消耗的功率更大。