自主的外设操作
取决于可穿戴设备的功能特性,可能需要对片上外设进行频繁、甚至持续的交互或监视。在这种情况下,CPU在这些时间内要保持活动的需求将导致电池电量的消耗非常明显。确保片上拥有无需CPU参与的自主操作能够使系统运行在低能耗模式的同时,仍然能够执行非常高级的任务。这些外设可包括串行接口(例如,低能耗UART、免晶体USB)、I/O端口(例如,外部中断、GPIO)、定时器和触发器(例如,低能耗定时器、低能耗传感器接口)、模拟模块(例如,ADC、LCD控制器)和安全(例如AES加速器)。
自主外设之间的操作(外设反射系统)
也有一些情况,外设之间可能需要进行通信。在这些情况下,一个外设需要能够产生一个或者多个能够立刻被另一个片上外设所感应到的事件。例如,一个定时器能够被设定创建一个事件,然后触发一个ADC开始采样。在外设之间使能自主的操作,无需唤醒CPU,能够确保获得最低的系统功耗。这种能力是Silicon Labs EFM32 MCU架构的一个关键特性,被称为外设反射系统(Peripheral Reflex System)。
低能耗传感器接口(LESENSE)
最终当CPU需要被唤醒以执行特定任务时,大多数MCU被设置为在一系列特定时刻上唤醒,并监视它的接口,如果没有动作需要,它将返回到休眠模式。这些定期唤醒循环产生了不必要的电池能量消耗。EFM32 MCU采用的LESENSE架构允许对模拟传感器(电阻式、电容式和电感式)进行自主监测,仅仅在相关事件或者条件满足时才唤醒CPU,就跟其他事件处理一样。例如,LESENSE能够被设置去自主的监测一个温度传感器,仅仅超过可编程的99华氏度门限时才通过外设反射系统唤醒CPU采取动作。因此,使用LESENSE能够最小化CPU使能的时间,当不得不消耗最大功耗时,尽可能的缩短最大功耗时的运行时间。
丰富的高能效外设
开发一个在各种操作模式下都尽可能减少能耗的可穿戴设备需要仔细审查MCU的各个运行方面。虽然我们已经讨论了外设的自主操作,但我们还需要进一步讨论外设本身的低功耗需求。如果外设本身功耗极大或者如果时钟在非必要情况下使能,那么自主操作起到的作用也会非常小。
就外设本身而言,时钟管理单元对于MCU或者WMCU整体功耗起着重要作用。时钟管理单元可以对多种时钟和振荡器进行单独控制,并且基于操作所采用的功耗模式和使能的外设进行最优化时钟选择。使用低能耗振荡器结合灵活的时钟控制方案,能够尽可能的最小化应用中的功耗。高能效的时钟管理单元包括低电流振荡器、低启动时间、动态系统时钟分频、时钟门控、以及用于32kHz外设模块和时钟预分频器。
低能耗自治UART的有效性对于获得超低系统功耗也是同等重要的,尤其是在深度睡眠(EM2)模式,这时大多数其他外设与CPU都处于关闭状态。UART应该包括必要的硬件支持来最小化异步串行通信中的软件干预。通过使用32.768 kHz时钟源,低能耗的UART可支持高达9600 baud/s,并且当完成UART帧接收后,可以快速唤醒CPU。
当设备的大部分部件处于断电状态时,低能耗定时器能够被用于定时和输出,因此允许在执行简单任务的同时保持系统功耗绝对最小值。如果适当配置,这种定时器能够提供高达16kHz频率(32kHz振荡器频率的一半)的无差错波形。
对于MCU或者WMCU中的模拟资源,例如ADC、DAC、LCD控制器、模拟比较器和其他外设,应当仔细分析它们的功耗和灵活性。例如,12位1Msps ADC在全速时可消耗350μA,但是并非所有应用都需要运行在这种速率下。在仅需要6位、1ksps的应用中,这时ADC仅消耗0.5uA,功耗显著减少了。LCD控制器应当能够在没有任何CPU干预下运行定制动画,并且仅仅是更新数据时才唤醒CPU。
加密占用非常大的片上资源,且显著消耗电池电量。最低成本的8位MCU通常需要把安全逻辑作为运行时代码来执行,而32位MCU最可能包括一个AES加速器。当硬件AES加速器可用时,它应当有能力在无需CPU参与下自主运行,并且应当包括支持自治密码模式的DMA以最小化电池消耗。