作者 Øivind Loe Silicon Labs微操控器产品高档营销司理
摘要:本文介绍了下降MCU功耗的重要性、办法及相关技能的开展。
即便是在比方物联网运用的无线衔接这种主导功耗的作业中,让尽或许多的进程自主运转,也可大大提高电池寿数。
下降功耗一直是微控器(MCU)商场的一个首要重视点。超低功耗MCU现在能够大大下降作业形式和深度睡觉形式下的功耗。这种改变的作用是清楚明了的,它大大提高了咱们日常嵌入式运用中的电池寿数,而且供给了在未来运用能量搜集的或许性。可是,要依据新式MCU下降功耗,开发人员有必要考虑到许多要素。开发人员能够运用新式MCU中外设的自主运转,经过更挨近以“0”MIPS运转,来完结数据手册中所许诺的低功耗。
关于在功耗灵敏型物联网(IoT)运用中所运用的新式MCU和无线MCU(WMCU)来说,实行代码时的功耗现已显着下降,乃至到达40μA/ MHz以下。运用这些低功耗标准,为什么需求睡觉形式?为什么不以500 kHz运转你的代码来完结20μA的电流耗费,而且答应你的运用运用电池运转10年?其实作业并不是这么简略的。
睡觉形式下的功耗在曩昔几年中也有显着的改进。咱们现在能够看到深度睡觉形式下的功耗低于2μA,而一些睡觉形式下的功耗乃至低于50 nA。你或许会觉得具有这些形式规划出来的体系功耗天然很低,可是,现实并非如此,运用能否运用睡觉形式才是要害。
作业形式是好,也是坏
运用MCU或WMCU的最直接的办法是让CPU办理全部。例如,你能够发动模数转化(ADC),将一些数据放入通讯接口(如USART传输)中,读取ADC数据,并对数据做出一些处理,全部全部都由CPU直接操控。直接的CPU操控简化了开发,但其成本是:每逢外设或外部作业需求处理时,MCU都将处于作业形式,然后使功耗大增。
近期,一些数据手册显现作业形式的电流是40μA/MHz,乃至更低,它们通常是高时钟频率下的参数,低频下会变大,然后导致肯定功耗变大。这是由于在作业形式下的频率和功耗不是线性关系。功耗由如下两部分组成(其间第二部分和频率联络不严密):
1)处理器自身,它是和频率按份额改变的;
2)有根底作业电流的模块,比方低压差线性稳压器(LDO)、欠压检测器(BOD)等。
要想下降功耗,应尽或许地削减MCU在高功耗的作业形式下运转,尽或许地封闭外设,让CPU尽或许多地睡觉。
功耗预算
关于受限于动力的电池供电型运用来说,要知道动力耗费在哪里才干进行优化。表1显现了一个传感器检测无线运用的功耗预算,它的功耗优化不太好。
经过均匀核算每个组件的功耗来丈量或估量功耗。假如CPU占空比为两个百分点,而且在60μA/ MHz时作业在20 MHz,则CPU的耗费为24μA。
表1所示的功耗预算是依据功用区分的。例如,根底睡觉电流包含一个低频振荡器和一个实时时钟(RTC)来对体系作业进行守时然后答应深度睡觉。传感器丈量部分是由一个0.5kHz的中止触发,中止之间深度睡觉。低功耗蓝牙每秒钟都要把数据发出去,这是个很遍及的低功耗运用。最终,还有一些非MCU部分的功耗。MCU或许无法直接操控这些模块中的一部分,包含电源办理外设,在这个比如中,MCU是直接操控ADC对传感器进行采样,假如不是的话,传感器电流将彻底是图片中的数据。关于这个比如,传感器的继续电流大约是390μA,可是经过调整占空比,每个ADC采样仅仅运用了10 μs的时刻,然后能够大大下降功耗。
假如该无线运用由具有225 mAh容量的CR2032电池供电,则在61.5μA功耗下操作时其寿数约为0.4年。现实上,咱们能够做得更好。
改进现状
咱们来看看下降MCU传感器丈量电流的办法。尽管此示例触及ADC丈量外部传感器,但相关示例或许会集在一系列不同类型的丈量以及与外部环境的交互上。在这两种状况下,MCU和外部环境之间都会产生频频的交互。
完结低功耗传感的最简略的办法是让CPU尽或许多地处于睡觉形式,只在采样时唤醒,并尽或许快地重回睡觉形式。关于十分低的采样率来说,这种办法很好,可是从图1能够看出,当采样率或每秒交互次数添加时,体系的功耗也会显着添加:
许多类型的运用有必要具有频频的活动,一起还需求坚持电池寿数。超越1kHz的活动率并不是闻所未闻,这时候就需求采纳办法来坚持低功耗。
图2显现了传感器办理的两种附加办法。外设反射体系/直接存储器拜访(PRS / DMA)办法使CPU在彻底不参加的状况下在深度睡觉形式进行ADC采样。而不是RTC唤醒CPU,然后CPU发动ADC进行采样。RTC经过作业体系(如Silicon Labs的PRS)将作业直接发送到ADC。ADC在接纳到此作业时主动发动ADC转化。转化完结后,DMA在这种状况下也能够从深度睡觉形式下运转,从ADC获取数据并将其存储在RAM中。 PRS / DMA办法的长处是显着下降了电流耗费。在1 kHz时,体系电流从58μA下降到25μA。
驱动ADC的更有用的办法是PRS /比较器(CMP)办法,其间RTC依然经过PRS体系触发ADC,但在这种状况下,ADC当即运用比较功用对样本进行评价,除非发现有需求的数据,不然不运用DMA或CPU。这种办法能够完结1 kHz采样率时体系电流只需3.5μA。
动态ADC比较器
运用PRS/CMP办法,大部分采样数据都被丢掉,CPU只重视需求处理的数据。当信号改变缓慢时,或许需求特定的信号时,这种办法很有用。
当运用比较功用监督信号时,一种办法是丈量信号,然后依据这个信号设置阈值,只需信号在阈值范围内,那么当ADC丈量信号时,体系能够坚持在深度睡觉形式,当然CPU也坚持在睡觉形式。
可是,假如信号产生改变,而且超越阈值,体系将知道该信号,并采纳恰当的办法。在回到睡觉形式之前,ADC阈值将重新配置以习惯新的信号值,因而体系能够再次进入睡觉形式,直到下一次信号产生改变。图3显现了这种技能的示例。圆点表明ADC样本,箭头表明每逢CPU被唤醒时,它将记载本次改变并重新配置阈值。
运用这种办法,体系实践大将丢掉一些信号准确性,由于信号能够在触发器之间的阈值范围内恣意移动。可是,好处是功耗显着下降。
假如体系的方针是丈量信号的动态值,则PRS / DMA驱动办法是抱负的,由于它使全部数据可用,一起依然能够供给十分有利的节能特性。
自主作业子体系
ADC示例仅仅很多经过睡觉形式下降运用功耗的办法之一。专心于低功耗运用的新式MCU(如Silicon Labs的EFM32 Gecko MCU)具有很多功用,可在深度睡觉形式下运转,然后完结高水平的自主行为。
例如,Gecko MCU的LESENSE(低功耗传感)模块能够主动地、周期性地采样多达16个通道,彻底不需求CPU参加。它能够完结高频率检测且充电1次就能作业10年。
在许多状况下,单个外设能够自主地实行其责任,但也有许多需求交互的状况。在这种状况下,咱们能够运用比方在当时一些新式MCU中存在的PRS体系这样的外设互连。这些外设互连答应多个外设衔接以自主实行更杂乱的使命。
图4显现了这样的自主体系示例,其运用作业链来实行其功用:
1)RTC以给定的时刻周期性地发送PRS信号至ADC以发动转化;
2)RTC一起发动外部传感器,这样在丈量时信号就现已预备好了;
3)ADC完结采样并告诉DMA,DMA把数据传送到RAM;
4)来自ADC的完结PRS信号封闭外部传感器;
5)当缓冲器满时中止唤醒CPU,或许超越ADC阈值时中止唤醒CPU;
6)可选项:PRS看门狗监督作业循环,保证它坚持运转。
DMA能够从图4所示体系中拿走,经过设置ADC的比较功用来做到更省电。
这些自主子体系具有显着节能和即便CPU负载很重时传感器仍旧能够安稳作业的长处。
缺陷是,并不是全部的MCU都支撑这种类型的操作,而且在设置交互时,你会期望像硬件规划人员相同考虑。总归,关于许多电池供电型运用来说,其长处显着多于缺陷。
定论
经过运用各种节能技能,当传感器丈量时,CPU简直彻底脱离作业。关于表1所示的无线运用,这将使总均匀功耗从61.5μA下降到37.5μA,下降了39%,然后使电池寿数从大约5个月延长到8个月,添加了64%,或许能够答应电池尺度减小以改进体系外形。
关于非无线运用,节能将愈加显着。表1中的示例,能耗将从29.5μA下降到5.5μA,由CR2032电池供电,理论上寿数将从10个月延长到4.6年。
本文来源于《电子产品世界》2017年第8期第75页,欢迎您写论文时引证,并注明出处。