0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【干货】教你如何以0 MIPS运行你的嵌入式系统

Silicon Labs 来源:Silicon Labs 作者:Øivind Loe 2017-08-28 19:29 次阅读

作者:Øivind LoeSilicon Labs微控制器产品高级营销经理

即使是在诸如物联网应用的无线连接这种主导功耗的事件中,让尽可能多的进程自主运行,也可大大提高电池寿命。降低功耗一直是微控器(MCU)市场的一个主要关注点。超低功耗MCU现在可以大大降低工作模式和深度睡眠模式下的功耗。这种变化的效果是显而易见的,它大大提高了我们日常嵌入式应用中的电池寿命,并且提供了在未来使用能量收集的可能性。

然而,要基于新型MCU降低功耗,开发人员必须考虑到许多因素,对此Silicon Labs特别撰写一篇技术文章:0 MIPS运行你的嵌入式系统,帮助开发人员了解如何利用新型MCU中外设的自主运行,通过更接近以“0”MIPS运行,来实现数据手册中所承诺的低功耗

低功耗为嵌入式系统研发关键

对于在功耗敏感型物联网(IoT)应用中所使用的新型MCU和无线MCUWMCU)来说,执行代码时的功耗已经明显下降,甚至达到40μA/ MHz以下。使用这些低功耗规格,您可能会想知道为什么我们需要睡眠模式,为什么不以500 kHz运行您的代码来实现20μA电流消耗,并且允许您的应用使用电池运行10年?其实事情并不是这么简单的。

睡眠模式下的功耗在过去几年中也有显著的改善。我们现在可以看到深度睡眠模式下的功耗低于2μA,而一些睡眠模式下的功耗甚至低于50 nA。您可能会觉得拥有这些模式设计出来的系统功耗自然很低,然而事实并非如此,应用能否利用睡眠模式才是关键。

为什么工作模式是好的...也是坏的

使用MCUWMCU的最直接的方法是让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的时间,从而可以大大降低功耗。

1 目标应用的功耗预算

如果该无线应用由具有225 mAh容量的CR2032电池供电,则在61.6μA功耗下操作时其寿命约为0.4年。事实上,我们可以做得更好。

改善现状

我们来看看降低MCU传感器测量电流的方法。虽然此示例涉及ADC测量外部传感器,但相关示例可能集中在一系列不同类型的测量以及与外部环境的交互上。在这两种情况下,MCU和外部环境之间都会发生频繁的交互。

实现低功耗传感的最简单的方法是让CPU尽可能多地处于睡眠模式,只在采样时唤醒,并尽可能快地重回睡眠模式。对于非常低的采样率来说,这种方法很好,但是从图1可以看出,当每秒采样次数增加时,系统的功耗也会显著增加:

1 采用中断进行ADC采样,显示出随着每秒采样次数的增加,功耗也在增加

许多类型的应用必须具有频繁的活动,同时还需要保持电池寿命。超过1kHz的活动率并不是闻所未闻,这时候就需要采取措施来保持低功耗。

2显示了传感器管理的两种附加方法。外设反射系统/直接存储器访问(PRS / DMA)方法使CPU在完全不参与的情况下在深度睡眠模式进行ADC采样。而不是RTC唤醒CPU,然后CPU启动ADC进行采样。RTC通过事件系统(如Silicon LabsPRS)将事件直接发送到ADCADC在接收到此事件时自动启动ADC转换。转换完成后,DMA在这种情况下也能够从深度睡眠模式下运行,从ADC获取数据并将其存储在RAM中。 PRS / DMA方法的好处是显著降低了电流消耗。在1 kHz时,系统电流从58μA降低到25μA

2 ADC采样图显示了各种工作方式下的功耗

驱动ADC的更有效的方法是PRS /比较器CMP)方法,其中RTC仍然通过PRS系统触发ADC,但在这种情况下,ADC立即使用比较功能对样本进行评估,除非发现有需要的数据,否则不使用DMACPU。这种方法能够实现1 kHz采样率时系统电流只有3.5μA

动态ADC比较器

使用PRS/CMP方法,大部分采样数据都被丢弃,CPU只关注需要处理的数据。当信号变化缓慢时,或者需要特定的信号时,这种方法很有效。

当使用比较功能监视信号时,一种方法是测量信号,然后根据这个信号设置阈值,只要信号在阈值范围内,那么当ADC测量信号时,系统可以保持在深度睡眠模式,当然CPU也保持在睡眠模式。

然而,如果信号发生变化,并且超过阈值,系统将知道该信号,并采取适当的措施。在回到睡眠模式之前,ADC阈值将重新配置以适应新的信号值,因此系统可以再次进入睡眠模式,直到下一次信号发生变化。图3显示了这种技术的示例。圆点表示ADC样本,箭头表示每当CPU被唤醒时,它将记录本次变化并重新配置阈值。

3 当信号超过阈值时,CPU中断动态修改ADC的阈值

使用这种方法,系统实际上将丢失一些信号准确性,因为信号可以在触发器之间的阈值范围内任意移动。然而,益处是功耗显著降低。

如果系统的目标是测量信号的动态值,则PRS / DMA驱动方法是理想的,因为它使所有数据可用,同时仍然可以提供非常有益的节能特性。

自主工作子系统

ADC示例只是众多通过睡眠模式降低应用功耗的方法之一。专注于低功耗应用的新型MCU(如Silicon LabsEFM32 Gecko MCU)拥有大量功能,可在深度睡眠模式下运行,从而实现高水平的自主行为。

例如,Gecko MCULESENSE(低功耗传感)模块可以自动地、周期性地采样多达16个通道,完全不需要CPU参与。它可以实现高频率检测且充电1次就能工作10年。

在许多情况下,单个外设可以自主地履行其职责,但也有许多需要交互的情况。在这种情况下,我们可以利用诸如在当前一些新型MCU中存在的PRS系统这样的外设互连。这些外设互连允许多个外设连接以自主执行更复杂的任务。

4显示了这样的自主系统示例,其使用事件链来执行其功能:

1.RTC以给定的时间周期性地发送PRS信号至ADC以启动转换。

2.RTC同时启动外部传感器,这样在测量时信号就已经准备好了。

3.ADC完成采样并通知DMADMA把数据传送到RAM

4.来自ADC的完成PRS信号关闭外部传感器。

5.当缓冲器满时中断唤醒CPU,或者超过ADC阈值时中断唤醒CPU

6.可选项:PRS看门狗监视事件循环,确保它保持运行。

DMA可以从图4所示系统中拿走,通过设置ADC的比较功能来做到更省电。

4 该自主ADC系统包含周期工作的传感器和看门狗

这些自主子系统具有以下几个主要优点:

1.显著节能。

2.即使CPU负载很重时传感器依旧可以稳定工作。

缺点是,并不是所有的MCU都支持这种类型的操作,并且在设置交互时,您会希望像硬件设计人员一样思考。总之,对于许多电池供电型应用来说,其优点明显多于缺点。

结论

通过利用各种节能技术,当传感器测量时,CPU几乎完全脱离工作。对于表1所示的无线应用,这将使总平均功耗从61.6μA降低到37.6μA,降低了39%,从而使电池寿命从大约5个月延长到8个月,增加了64%,或者可以允许电池尺寸减小以改善系统外形。

对于非无线应用,节能将更加显著。表1中的示例,能耗将从29.6μA降低到5.6μA,由CR2032电池供电,理论上寿命将从10个月延长到4.6年。

想学更多嵌入式课程,请扫描下图二维码,马上学习!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17123

    浏览量

    350983
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3587

    浏览量

    129435
  • mips
    +关注

    关注

    1

    文章

    239

    浏览量

    47749
  • SiliconLabs
    +关注

    关注

    2

    文章

    52

    浏览量

    24502

原文标题:【干货】以0 MIPS运行你的嵌入式系统

文章出处:【微信号:SiliconLabs,微信公众号:Silicon Labs】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电子发烧友年终盘点——内容精选

    何以0 MIPS运行嵌入式系统怎样学好“信号完
    发表于 02-06 15:01

    什么是嵌入式系统

    系统的核心课程,或者就讲一下ARM编程基础;做嵌入式实验大部分也只是教学系统里现有的实验程序调出来运行验证一下结果,属于验证性实验,很多学生做完了实验都不知道自己做了什么。根本就没有机
    发表于 04-17 11:46

    什么是嵌入式linux?

    与电脑端运行的linux系统本质上是一样的,都是使用的linux内核,相同的文件系统目录结构。区别在于嵌入式linux系统多少经过裁剪的,可
    发表于 10-27 06:30

    嵌入式系统有哪些应用

    经过这些年的发展,嵌入式的功能不断强大,嵌入式的应用领域也更为宽泛,嵌入式在当前主要是指为了各种具体应用功能的实现,按照基本计算机技术,在硬件方面和软件方面均可裁剪,不断适应各种应用系统
    发表于 10-27 06:19

    MCU的嵌入式系统设计,如何运行SDRAM?

    MCU的嵌入式系统设计,如何运行SDRAM?2020-03-17 11:36 预计 10 分钟读完在使用 MCU 的嵌入式系统设计中,当程序
    发表于 11-04 08:03

    教你好学的嵌入式开发学习路线

    原标题:十年资深嵌入式工程师:教你好学的嵌入式开发学习路线Linux 是一个开源、免费的操作系统,主要应用于服务器(网站服务器、云计算集群、DNS 等)和
    发表于 11-05 08:11

    嵌入式系统的特点具体有哪些呢

    今天小编跟大家来讨论一下:嵌入式系统的11大特点,知多少呢?不一样的干货,喜欢的记得转载或留言哦*-*嵌入式
    发表于 12-22 06:51

    MIPS 连接和嵌入式外设解决方案

    MIPS 连接和嵌入式外设解决方案 在集成连接解决方案之时,今天 SoC 开发人员面临的最大挑战是什么? 在学校学习和构建数字系统的时候,最大的
    发表于 01-28 00:39 1084次阅读
    <b class='flag-5'>MIPS</b> 连接和<b class='flag-5'>嵌入式</b>外设解决方案

    基于嵌入式Linux系统的Bootloader模型在MIPS64上的移植设计浅析

    Bootloader初始化硬件,引导内核和文件系统来启动Linux。但由于在嵌入式开发中基于MIPS体系的Bootloader较少,开发者在移植MIPS Bootloader需花费大量
    发表于 09-12 16:13 917次阅读

    基于嵌入式软硬件系统了解多少

    嵌入式运用方面来说,嵌入式系统是控制、监视或者辅助设备机器和车间运行的装置。
    发表于 10-23 15:51 1901次阅读
    基于<b class='flag-5'>嵌入式</b>软硬件<b class='flag-5'>系统</b><b class='flag-5'>你</b>了解多少

    嵌入式linux简介

    与电脑端运行的linux系统本质上是一样的,都是使用的linux内核,相同的文件系统目录结构。区别在于嵌入式linux系统多少经过裁剪的,可
    发表于 10-19 18:33 7次下载
    <b class='flag-5'>嵌入式</b>linux简介

    什么是嵌入式眼中的嵌入式是怎么样的?怎么学嵌入式教你五分钟看懂嵌入式

    眼中的嵌入式是怎么样的?嵌入式的定义从技术上来区分嵌入式嵌入式硬件工程师必备技能嵌入式驱动工程
    发表于 10-20 16:21 12次下载
    什么是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>你</b>眼中的<b class='flag-5'>嵌入式</b>是怎么样的?怎么学<b class='flag-5'>嵌入式</b>?<b class='flag-5'>教你</b>五分钟看懂<b class='flag-5'>嵌入式</b>。

    干货 | 嵌入式系统软件架构设计

    点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达!整理 :嵌入式云IOT技术圈,作者:veryarm1. 前言嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了...
    发表于 10-20 21:05 5次下载
    <b class='flag-5'>干货</b> | <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>软件架构设计

    【纯干货教你如何学习嵌入式开发,嵌入式学习路线

    很多学习嵌入式设计同学都会发出这样的感慨,“学嵌入式好难啊”!!这是因为对学习嵌入式没有掌握一个好的方法,当你掌握了,就会发现其实也很简单,今天我就总结了一些自己的学习方法给新人们参
    发表于 11-03 09:06 32次下载
    【纯<b class='flag-5'>干货</b>】<b class='flag-5'>教你</b>如何学习<b class='flag-5'>嵌入式</b>开发,<b class='flag-5'>嵌入式</b>学习路线

    教你如何学习嵌入式系统

    教你如何学习嵌入式系统一、如何学习嵌入式系统- - 嵌入式
    发表于 11-03 20:21 7次下载
    <b class='flag-5'>教你</b>如何学习<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>