要在极低功耗条件下操作,就必须用全新的方法来看待这些极低功耗应用。传统上,这些复杂应用都以一种较方便的观点来分析其用电量,针对使用范例的应用和电源来提出假设,以便产生“典型”的功耗。
然而,举例来说,要实现可连续操作20年的单电池供电应用,应用必须汲取比该电池自放电率更低的功率,这使得每nA的功率在整体功率预算中更加关键。
业界标准的CR2032钮扣式电池自放电电流可少于250nA。CR2032是一种常见的锂/二氧化锰电池,标称(无负载)电压为3.0V。在实际应用中,要达到最长的电池寿命,就必须使用一个高集成度的微控制器(MCU)。在睡眠模式下,该MCU必须能在低于在1μA范围内良好运作,同时提供正确的混合处理能力,并整合外围和芯片上内存。
图1:MCU睡眠电流与电池寿命之间的关系。
当每nA的功耗都至关重要时,仅仅对性能或功耗做假设的方法已不再是绝对可行的。为了评估对设计最佳的选择,有必要审视更多参数,尽管在一些对能源较不敏感的应用中,这些参数看来并不十分关键。例如,目前针对进阶睡眠模式的超低功耗微控制器已经非常普遍了,然而,为全系列微控制器定相同睡眠模式功耗的做法也许不甚正确。知名的微控制器产品系列能够展现出高于1,700%的变化。因此,针对超低功耗设计,重点在所选择的微控制器系列能够在不牺牲低功耗性能的条件下升级内存,且接脚必须兼容。
另一个重点是必须评估随着时间推移,设备电池电量的变化。所有的工程师都明白,一次电池随时间变化的电压在很大程度上是取决于电池的架构和负载。以CR2032为例,一对AA/AAA碱性电池便具有不同的放电模式,因此,一个设计良好的应用,必须能在不同的电池条件下都可以相同效能运作(图2) 。
图2:不同电池的使用寿命。
先不考虑电池特性,对一个工程团队而言,要在一个对功耗敏感的应用中采用同一系列微控制器产品,而且还要保证产品能以单一电池供电维持多年的正常运作,是相当不容易的。设计团队的考虑重点包括在低电压下的功耗特性,以及操作性能。此时,微控制器应用可操作在2V或更低电压,以汲取更多的电池功率。另外,在低电压条件下,微控制器也必须维持高频作业,以确保发挥最大应用性能。
随着对极低功耗设计的需求稳定成长,有效指令集架构(ISA)的重要性与日俱增。对能源敏感的应用很可能有99%的时间都处在睡眠模式下,不可避免地,这些装置都必须定期、或采用预定义的时间间隔、或是因外部刺激而被唤醒。在这方面,为了达成任务,设计的考虑关键便在于能源的总使用量。设计团队必须选择可实现ISA的微控制器,这些组件具备更大比例的单周期指令来执行特定任务,因而能以较短执行时间和更低的功耗完成任务。
图3:单周期指令对电力消耗的影响。(PIC24 vs MSP430)
举例来说,若采用通用C函数memcpy()从一个内存地址将32字节的数据拷贝到另一个位置,并针对PIC24F和MSP430编译,那么,由此产生的程序代码需要比MSP430更多出790%的工作周期(316 vs. 40)。在3V和4MHz条件下,这个例子所消耗的能源比MSP430高出了230%。由此可见ISA的重要性。
在建构未来应用时,嵌入式电子产业已经达到了一个分水岭,目前整合组件的设计、评估和实践方法都将面临转变。这种转变的意义非凡,未来几年内,更多应用都将在其设计中融入极低功耗技术。