当电池需要在几年甚至几十年中为某个产品供电时,不断改进MCU集成产品和轻微修改基本处理器结构都不能满足人们急剧增加的节能需要。针对很多能源敏感产品,如:计量器、楼宇自动化产品、安全产品和便携式医疗设备,如果节能需求和处理功率之间发生了冲突,就必须要大规模发展MCU设计。
EnergyMICro采用了一种‘bluesky’的方法来设计它的低功率EFM32Gecko微处理器,也开发了支持这个产品的软件和硬件工具(图1)。EnergyMicro现已生产了一种装置,仅够消耗现有8位、16位和32位MCU所耗能量的四分之一,使现有电池的寿命大大延长了。换句话说,有了这样的节能MCU,产品设计人员能够大大削减电池的成本、缩小它的尺寸了。而对某些产品,如能源计量器和安全设备,有了频率、成本和碳足迹的维护标注,电池的更换次数就更少了。
要在MCU上获得如此低功率的资格不是件容易的事,需要进行多年的开发,实现真正的创新。到EnergyMicro的网站上去查一查最高峰值,您就会发现有关技术的描述都取了很大的标题,让32位EFM32成为世界上最节能的微控制器的10大原因,实际上肯定还有更多的原因。
我们先把“超低能量”的specmanship(技术指标差距)放在一边吧。当电池充电量有限时,MCU如何能超时使用能源就变得很重要。在产品的休眠期内减少其能耗和时间与在活跃期时要做的工作一样重要。EFM32MCU以ARMCortex-M3处理核为基础,在设计上大大减少了活跃模式的电源消耗。在基准测试中,32MHz的EFM32实际需要3V的供电,以180μA/MHz的能量运行正确的Flash代码。
这很好,但MCU需要多长时间来处理任务也会对节能产生重要影响。因此,使用32位Cortex-M3比8位和16位器件的处理效率高,执行任务的时钟周期也短得多,这样就会大大缩短产品活跃期。通过保持尽可能短的活跃周期,32位MCU更多的时候都处于深度睡眠模式。人们都忘记了过去32位处理器是不能传送sub-?A待机模式的,采用了正确的低功耗设计技术,现在可以做到这点了。EFM32可以提供所有基线功能,如:实时计数器、RAM和CPU保持、掉电检测和深度睡眠模式中的开机重设,全部只使用0.9μA的能量。
通常,在我们提到的目标应用中,MCU的工作周期可以非常短,MCU在深睡眠状态可停留高达99%的时间。因此,这里的消耗对整体节能真的很重要。
如果MCU从深度睡眠中唤醒产品并重新进入活跃模式所花的时间很长,其优势就会丧失。为什么呢?因为当MCU从深度睡眠状态进入活跃状态,总会有一个唤醒周期,在次期间处理器必须等待振荡器和电源系统稳定下来才能开始执行代码。由于在此期间无法进行任何处理,唤醒所耗费的能量就被浪费了,因此缩短唤醒时间对降低整体能耗很重要。
不止这些,MCU应用还会影响实时要求,这通常指的是唤醒时间必须保持最短才能使MCU能够在一段时间内回应一个事件。由于许多应用要求的延迟比许多现有MCU的唤醒时间还长,设备通常不能完全进入深度睡眠——这对节能应用来说不是很好的解决方案。
为了解决这个问题,EFM32采用了各种设计技术将深度睡眠的唤醒时间减少到了仅需2μs,确保CPU开始处理任务时所用的能量最少。
如果要完全控制和真正优化节能,系统设计人员需要灵活选择一些结构良好的能源模式。如表1所示,EFM32提供了几个模式,可让设计人员及时在任何地点使用资源,最大限度地提高能源效率。
即使在一些观察家看来这些能源模式可能有点粗糙,但启用或禁用不同外围设备可更精细地调整每个模式下的资源。无论采用哪种方式,EFM32的能源模式都有助于杜绝任何能源的浪费。
当然,低功耗MCU提供的外围设备功能块需要被刻意设计来用于低功耗操作,而EFM32也不例外。例如MCUsport的8通道12位ADC在全分辨率时使用350?A和1Msamples/1秒的转换率;一个4×4节的LCD控制器只用550nA的sporting集成电压增强、对比度、动画和闪烁功能;而特殊的低能量UART和有32kHz时钟的完整UART,数据传输速度达9600波特时仅消耗150nA。
要实现更好的节能效果,创建一个MCU架构是个重要的创新,它使CPU可以自动保留外围设备功能。因此,EFM32的外围设备在设计上要能顾及自己,要么让CPU处理其它高水平任务,要么干脆入睡,这两种方式都可以节能。