专家支招:实现能量收集型传感器节点可行方案
在越来越多的应用中,能量收集为传感器节点供电正在成为切实可行的解决方案,本地化处理采集的数据,然后回传到一个集中器。那么这个能量收集型传感器节点实现方案具体是怎样的?请看下文。
虽然能量收集并不是一个全新概念,但是RF和微控制器(MCU)器件在性能与能耗方面取得的最新进展,意味着构建一个采用能量收集型应用,例如传感器节点,现在变得更加容易。此外,对于同样的能量收集而言,新构建的应用能够比之前应用提供更强的能力。因此,在越来越多的应用中,能量收集为传感器节点供电正在成为切实可行的解决方案,本地化处理采集的数据,然后回传到一个集中器。
能量收集型系统构成
我们来考虑一个嵌入式能量收集型系统,如图1所示。其中某些组成部分,例如能量收集器,在任何能量收集型设计中都是必要的。
图1:能量收集型传感器节点。从哪里可以获取传感器供电所需能量呢?从光、热、振动还是RF?表1中汇总了可收集潜在能量的常见能量来源。本例中,假设我们正在使用太阳能收集器。除了能量收集源之外,应用中也需要某种形式的能量存储设备,最常见是电容组,或者小型可充电电池。(储能设备是必须的,因为收集器要持续连续不断的收集能量,而应用本身可能仅会在极短的时间内处于活动模式,而在大部分时间中处于休眠模式。)
表1:能量收集源。除了这些应用组成部分之外,开发人员还要选择元器件进行相关设计,能利用这些收集到的能源并达成预期结果。这里有一些关键因素要考虑。所选择的元器件必须待机电流极低;在工作模式时功耗极低;且能够在活动模式和待机模式之间快速切换(因为器件从待机模式转换到工作模式所需的时间越长,浪费的能量越多)。
添加RF连接
RF元器件选型时,关键因素是要选择一个合适的通信协议,协议要能够提供足够带宽以传输所需数据,同时能耗要尽可能低。ZigBee和蓝牙都是低能耗和电池供电型应用的良好选择,但是更轻量级的无线连接技术或许才是能量收集的最佳选择。简单、专用的sub-GHz解决方案非常适合能量收集型应用的需求。我们假设该设计中由于进行了本地信号处理,而仅仅需要进行少量数据传输(在后面的例子中我们将会讨论大量数据传输时的情况),那么RF元器件在大部分时间里将处于待机模式,仅在需要传输少量预处理数据时才被唤醒。因此,要考虑的两个重要参数是待机模式能耗和传输模式能耗。基于以上这些原因,高能效的sub-GHz收发器,例如Silicon Labs 公司的Si4464,会是更好的选择。Si4464的待机模式电流仅50nA,在非收发模式下能够最大限度的减少能量消耗,而且从待机模式切换到运行模式时,唤醒时间仅需要450?s。这种等级的无线能效使得开发人员能够在获取和管理数据的应用中,实现 RF元器件的能耗最小化。
选择合适的MCU
接下来讨论MCU,传感器节点将提供本地化数据处理,降低整体RF网络的数据传输流量。对于这种实现的一个理想候选者是内建ARM Cortex-M4内核的MCU,它拥有大量专用的DSP功能,与没有DSP能力的MCU相比,能够在更少的时钟周期内完成信号处理。图2显示了基于Cortex-M3内核的MCU和基于Cortex-M4内核的MCU在执行相同例程实现512点快速傅里叶变换(FFT)时所消耗的时间(在两种情况下,CPU时钟速率是相同的)。如图所示,Cortex-M4内核的处理时间远低于Cortex-M3内核的处理时间。因此,当使用基于DSP的Cortex-M4内核时,能效更高。
图2:在Cortex-M3内核和Cortex-M4内核上实现512点FFT。为了体验带有DSP功能的内核所提供的益处,可以考虑在能量收集型应用中使用Silicon Labs公司的EFM32 Wonder Gecko MCU。然而,内核并不是获取最佳能效的唯一因素。还需要考虑其他方面,例如信号采集所需的能耗(以及所使用的技术)、MCU外设之间的交互,使得MCU能够在更长的时间内保持在低能耗模式。
高能效的信号采集
考虑到信号采集任务,最佳化能效可以通过多种方式实现。假设要获取的是模拟信号,就可以采用模数转换器(ADC)或者专用接口实现信号采集。我们先从ADC开始,有几种方法可用于数据采集。图3中图形化显示了这些过程。首先最常用的做法是,利用计时器触发ADC采样,并将所获取的采样数据传输到DMA,在1Ksps采样速率下,能耗为165?A。尽管这很好地利用了外设的互动性,但没有使用MCU的任何特殊功能。
图3:EFM32 MCU上的低功耗ADC工作原理。第二种方法在同样采样速率下改善了能耗。其方法是在待机状态时让MCU进入能耗模式2(EM2),一直到被中断唤醒为止(中断可来自多种触发源,包括EM2下的可用定时器)。EM2的待机能耗为900nA,但是MCU只需要2?s就能恢复全速运行状态。因此,超低能耗模式带来的时间成本,EM2切换回全速运行状态所带来的能耗,两者间达到了很好的平衡。这种情况下,同样实现1Ksps采样速率时,能耗降低到60?A,与第一种方法相比能耗有了显著下降。此方法可能是最合适的方法,因为许多嵌入式应用都是靠中断驱动的。然而,根据应用对特殊情况的要求,还可以利用其他方法进一步降低能耗。第三种方法(可视此方法为一个“优化循环”方案)仍然采用EM2,但本次并非等待中断,而是使用等待事件(Wait for Event ,WFE)指令,该指令是Cortex-M指令集的一部分。WFE指令使MCU能够对外部或者内部事件进行响应,类似于中断触发。然而,在这种情景下,不再是从主循环中进入中断,而是MCU直接从EM2中唤醒并开始执行下一条指令,消除了中断延迟时间。虽然这种方法并不适合所有应用,但采用此方法可以降低能耗,同样1Ksps采样速率时,能耗不到20?A。
为了判断采用哪种方法更适合你的应用,做一个详细的分析是非常必要的。为了达到所需的最小能耗,你需要评估采样率的大小,以及MCU在各种模式下的能耗。图4对比了分别采用上述三种方法时能耗和采样率的对比情况。图中的交叉点表明,为了实现最佳功效,可以从一种方法转向另一种方法。
图4:能耗与采样率对比图。除了利用ADC进行信号采集之外,特别选择的MCU还可以使用额外的专用外设。以EFM32 Wonder Gecko MCU为例,可以选择使用低能耗传感器接口(LESENSE)采集信号,并且仅在需要MCU进行处理时才唤醒MCU。图5说明了LESENSE的工作原理,此例中以模拟信号输入为例。
图5:LESENSE的运行原理。处理这种信号的一个标准方法是轮询输入,并且不断的检查是否通过了预设的门限值。但是,这种方法效率极低。采用类似LESENSE的自治传感器接口,MCU能够保持在低能耗模式(例如ADC技术示例中用到的EM2),仅仅当跨越门限值时才唤醒MCU。或者,更有用的是能够记录跨越门限值的次数,例如5次之后才唤醒MCU。这种方法是一种更加节能的解决方案。例如,MCU被LESENSE外设唤醒时,它能知道下一步具体要做什么,可以直接管理应用的对应部分。图6显示了如何使用诸如LESENSE这样的 MCU外设为能量收集型应用带来显著差异。图6显示了一个采用能量存储器为MCU提供电源时的电量测量情况。在两种应用示例中,都是以5Hz的频率通过LESENSE外设采集信号。在第一个例子中,每次信号采集后都会唤醒MCU,可以看出,能量存储器的能量在很短暂的时间内就被耗尽了,然后MCU进入到复位状态。在第二个例子中,LESENSE外设配置成为每五次信号采集后才唤醒MCU。在这两个示例中,采集和传输到MCU的数据量都是相同的,但第二个例子中的MCU并没有进入复位状态,应用依旧维持正常运行状态。因此,通过智能的使用MCU资源,可以获得更加节能的解决方案。
图6:使用LESENSE实现节能。虽然我们从现有的能量源中为嵌入式应用收集到的能量没有显著的增加,但近些年来,关键系统元器件(例如MCU和RF IC)对能量的需求已经显著下降。IC元器件正在向着更加节能的方向发展,这使得可以在更多的智能和实用嵌入式系统中采用能量收集供电。随着物联网市场的快速成长,设计出能够自我维持运行的传感器节点已成为必然。虽然当今市场上的RF和MCU解决方案有无限选择,但是在由能量收集供电的嵌入式设计中极度需求MCU和RF器件、而时间又是个很重要因素时,很明显没有哪一种元器件能够满足所有需求。然而,在建立节能型系统方面,某些元器件的确比其他元器件更具有显着优势。