如何为物联网设备选择低功耗微控制器

Duke 2018-06-25 09:46 次阅读

对于电池供电的互连设备而言,能耗是至关重要的,降低能耗可以最大程度地延长电池的更换时间,甚至让设备在没有环境能量源的情况下运行。虽然很多嵌入式系统开发人员精通优化代码,但要为物联网 (IoT) 设备节省能源,还需要更加全面的方法。

此类方法不仅必须要考虑存储容量、MCU 性能和功耗的因素,还必须考虑到无线电、模拟电路、电源转换器和传感器。虽然所有这些因素都会影响系统的整体能耗,但开发人员最好控制的主要因素是微控制器。

本文将描述如何为物联网设备选择低功耗微控制器,以及在板载外设方面要注意哪些问题。本文还将演示如何使用功率监测工具,并提供达到最佳功率及性能的技巧和诀窍。

选择低功耗微控制器架构

要选择低功耗微控制器,首先必须确定微控制器应该使用的合适处理器内核。目前行业中有很多专有微控制器内核,但从 ARM® Cortex®-M 微控制器入手是非常合理的选择。业界的多家供应商都支持这些微控制器内核,从而形成了提供支持和资源的稳定生态环境。

为了最大程度地降低能耗,必须及早考虑到两大因素:性能和能效。对于微控制器而言,这两个指标很难量化,但开发人员可以使用两种基准标准: EEMBC 的 CoreMark 和 ULPmark。

CoreMark 用于测量微控制器的处理能力,这个值越高,处理能力就越强。例如,STMicroelectronics STM32L053 处理器可使用 STM32L053 Nucleo 开发板进行测试,它的 CoreMark 值为 75.18。另一款 STMicroelectronics 零件 STM32F417 的 CoreMark 值为 501.85。初看起来,开发人员可能认为使用 STM32F417 是可取的,因为它的性能似乎出色得多。但是,在做出决定之前,还要考虑另外几个因素。

STMicroelectronics 的 STM32L053 Nucleo 板的图片

图 1: STMicroelectronics 的 STM32L053 Nucleo 板采用 ARM® Cortex®-M0+ 内核,专门针对低功耗、资源受限的应用而设计。(图片来源:STMicroelectronics)

首先,CoreMark 只是告诉开发人员它能够在一秒钟内执行多少次基准测试迭代。在不同时钟速率下运行的处理器将产生差异很大的值。对处理能力进行比较的更好方式是比较 CoreMark/MHz。在本例中,STM32L053 处理器得出的结果为 2.35,而 STM32F417 得出的结果为 2.98(数据来源: EEMBC)。两款处理器在效率方面非常接近。

其次,开发人员必须关注内核架构。STM32L053 采用 ARM Cortex-M0+,该处理器经过优化,具有很低的功耗,而且调试模块的数量最少。此外,它还舍弃了高性能处理器上的所有附加部件,这些也是功耗最高的部件。

而 STM32F417 采用 ARM Cortex-M4,该处理器是作为高性能处理器设计的,在 168 MHz 而不是 32 MHz 的时钟速度下运行。该时钟速度达到了 STM32L053 的五倍,但 CoreMark/MHz 值仅提高了 26%。

ULPmark 可测量微控制器执行操作(例如计算和存储器操作)的效率高低。最新版本甚至可测量外设效率,让开发人员能够很好地从能源利用的视角,了解处理器的整体效率如何。

寻找合适的外设组合

微控制器内核只是开发人员在选择低功耗微控制器时应该考虑的第一个因素。应该考虑的另外一个因素是板载外设。CPU 的能耗大小在很大程度上取决于外设。开发人员希望确保他们选择的零件采用尽可能自动化的低功耗外设。

首先,开发人员应该寻找提供了不止一个直接存储器访问 (DMA) 通道的器件。利用 DMA,开发人员能够在微控制器内部传输更多信息,而无需 CPU 干预。这意味着 CPU 能够腾出手做其他工作,例如运行应用程序代码,或者关闭或进入深度休眠模式以节省能耗。同时,DMA 通道还用于将数据从外设传输到存储器,从存储器传输到外设,甚至在存储器的不同区域之间进行传输。

Texas Instruments 的 MSP430FR5994 就是专为低功耗工作设计的零件的很好例子,MSP430FR5994 Launchpad 开发套件包括了这种零件。MSP430FR5994 带有内置的 DMA 控制器,它有六个单独的通道,可以同时在后台工作。

Texas Instruments 的 MSP430FR5994 Launchpad 开发套件的图片

图 2: Texas Instruments 的 MSP430FR5994 Launchpad 开发套件包含多个低功耗外设,例如用于信号处理的六通道 DMA 控制器和低功耗加速器,另外还提供多种低功耗模式。(图片来源:Texas Instruments)

另一个例子是寻求多种低功耗模式。新型微控制器将提供多种功耗模式,可将 CPU 和外设置于不同状态,从简单的休眠状态一直到深度休眠状态,微控制器在深度休眠状态下几乎接近关闭。在这些深度休眠模式下,整个微控制器的工作电流仅为几毫微安。

在了解微控制器的低功耗状态时,还要评估工具链和生态系统功能。设置和配置低功耗模式以及唤醒这些模式的事件,可能是一项颇具挑战性的工作,而且非常耗时。新型微控制器,例如 Renesas 提供的 Synergy,在开发环境内部包含了配置软件,开发人员只需几次点击即可配置这些模式。对于低功耗应用,开发人员应该考虑使用带有 64 或 128 KB 闪存的 S124 32 位 MCU。要快速启动采用这些器件的开发工作,可以使用 Synergy DK-124 开发板。

Renesas Synergy DK-124 开发板的图片

图 3: Renesas Synergy DK-124 开发板带有低功耗模拟比较器,提供多种休眠模式,实现了低功耗运行。(图片来源: Renesas)

测量和验证微控制器功耗

选择低功耗微控制器,只是确保系统能够达到可能的最低功耗的第一步。为了真正达到最低功耗,开发人员必须在整个软件开发过程中仔细地监控微控制器的能耗。开发人员可以采用多种不同方法来监控微控制器的能耗,包括电流探头和能量感知调试器。

电流探头的作用只是测量分流电阻器两端的电压,然后根据该电压和分流电阻值来计算电流。如果您希望测量整个系统的电流消耗,那么这种解决方案的效果非常好,但如果您真正希望将微控制器执行的操作与它们消耗的能量关联起来,则应使用能量感知调试器。这让开发人员能够确定哪些代码区域需要进一步优化或返工。

市场上有多种适用于 ARM Cortex-M™ 微控制器的能量感知调试器,例如 I-Jet 调试探头的 IAR Systems I-Scope 电源探头(图 4)。

I-Jet 调试探头的 IAR Systems I-Scope 电源探头的图片

图 4: 连接到 IAR I-Jet 时,I-Scope 可用于测量系统电压、电流和微控制器电流,然后全部反向关联到程序计数器 (PC),以确定哪些代码区域消耗的能源最多。(图片来源: IAR Systems Software)

I-Scope 工具带有一个基于差分放大器的内部电压监视器。它可以测量与微控制器电源轨串联的分流电阻器两端的压降。这使得 I-Jet 调试探头能够测量电压,同时对微控制器的 CPU 内核中的程序计数器 (PC) 进行采样(图 5)。

IAR I-Scope 的图片(突出显示为黄色)

图 5: I-Scope(突出显示为黄色)与 I-Jet 调试探头配合使用,将分流电阻器的电流与在特定时间执行的代码关联起来。(图片来源: IAR Systems Software)

程序计数器准确告诉探头:应用程序处于执行过程的什么位置。将 PC 计数器信息与电流测量值相关联,可生成应用程序的能耗概况数据,以便开发人员能够利用这些数据来优化和验证代码。

设计低功耗器件的技巧和诀窍

找到合适的微控制器并监控硬件,只是开发人员设计低功耗器件的第一个阶段。此时的诀窍是了解如何充分利用微控制器来最大程度降低能耗。为了达到这个目标,开发人员可以遵循以下的一般技巧。其中包括:

  • 预先制定电池预算,包括最小功耗、最大功耗和平均功耗的估算值。

  • 使用低功耗定时器来驱动计划程序或 RTOS 的任何内部系统节拍。

  • 尽可能经常地将 CPU 置于休眠模式(对于实时应用,请务必考虑到唤醒和掉电时间)。

  • 让系统成为事件驱动型系统。可以利用中断来唤醒系统并执行功能,然后立即返回到休眠模式。

  • 将 DMA 控制器和任何自动化外设集成到软件架构中,以实现“并行”处理。

  • 根据需要管理微控制器时钟频率,以实现额外的能源节省。

  • 监控软件能耗,不要害怕试用不同的架构和配置。第一次尝试的很可能不是功耗最低的配置。

  • 适当时,请使用中断的 Sleep-on-exit 功能,该功能可在中断结束时将处理器置于休眠模式,每个事件节省几十个时钟周期。

总结

为物联网设备选择低功耗微控制器是一项非常棘手的工作。正如本文所述,我们必须考虑到诸多因素,从微控制器架构一直到板载外设功能。

选定了低功耗微控制器之后,并不能保证开发人员能够实现最低功耗的目标。下一个阶段是认真地设计架构,并在整个开发生命周期中监控软件的性能。只有这样,开发人员才能充分利用所选微控制器的低功耗特性和性能。

收藏 人收藏
分享:

评论

相关推荐

9.19周三STM32问答小结

1、STM32f446中的BOOT0电路设计 2、STM32 RTC - 如何更新? 3、STM32F103:定时器可以干扰uart吗? ...

发表于 09-19 17:40 113次 阅读
9.19周三STM32问答小结

STM32和TFT彩屏显示图片程序(附取模软件)免费下载

本文档的主要内容详细介绍的是STM32和TFT彩屏显示图片程序(附取模软件)免费下载。

发表于 09-19 17:21 5次 阅读
STM32和TFT彩屏显示图片程序(附取模软件)免费下载

STM32的PID算法实例

STM32单片机的PID算法实例,通过PID算法控制STM32的PWM输出,反馈量是PWM低通滤波后得到的AD ...

发表于 09-19 15:44 120次 阅读
STM32的PID算法实例

STM32入门必备《如何安装RealView MDK软件》

考虑到大多数同学都是从单片机过渡到 STM32,因此我们将采用 MDK 作为我们 STM32 的调试软件。该软件的界面为 KEIL...

发表于 09-19 15:20 134次 阅读
STM32入门必备《如何安装RealView MDK软件》

Uart / Usart:仅使用Rx-pin

我正在设计一个带有stm32f722 MCU(64引脚版本)的电路板,我不能浪费/不使用任何GPIO。我的问题是:是否可以选择仅使用u...

发表于 09-19 14:27 92次 阅读
Uart / Usart:仅使用Rx-pin

STM32F103RB的中断优先级

我对stm32f103中的中断分组产生了疑问。在微控制器的编程手册中,我找到了5种配置方法。 但是,在调试时,我找到了8种方法。...

发表于 09-19 14:22 72次 阅读
STM32F103RB的中断优先级

STM32F103闪存起始地址

我正在尝试为STM32F103C8T6微控制器的第一个固件编写链接描述文件。我有一个有效的示例脚本。我试图理解的是,为什么...

发表于 09-19 14:16 85次 阅读
STM32F103闪存起始地址

我可以通过SWO与STM32通信吗?

目前,我可以使用OpenOCD在Raspberry Pi 3上编程/调试STM32,并且还希望从STM32接收数据或从STM32传输数据。我可...

发表于 09-19 14:03 88次 阅读
我可以通过SWO与STM32通信吗?

STM32 SPI SCLK停止滴答作响

我有STM32L052K8T6(主机),我试图通过SPI与AD7124-4 ADC(从机)通信。我的问题是STM在从tx缓冲区传输所有数...

发表于 09-19 13:44 90次 阅读
STM32 SPI SCLK停止滴答作响

STM32 RTC - 如何更新?

我有一个运行STM32L0 MCU的远程单元。它没有连接到互联网,而是通过无线电与远程PC通信。我想用我从PC收到的时间戳来...

发表于 09-19 11:29 154次 阅读
STM32 RTC - 如何更新?

STM32f446中的BOOT0电路设计

正在一个项目中设计PCB中的STM32f446芯片。它将通过SWD编程。但我坚持使用(BOOT0)引脚。我希望它是推荐的(0)。...

发表于 09-19 11:12 169次 阅读
STM32f446中的BOOT0电路设计

ATTINY13 20SSI在系统可编程闪存中的8位微控制器的数据手册免费下载

AVR内核结合了丰富的指令集和32个通用工作寄存器。所有32个寄存器都直接连接到算术逻辑单元(ALU....

发表于 09-19 08:00 13次 阅读
ATTINY13 20SSI在系统可编程闪存中的8位微控制器的数据手册免费下载

STM32F10X超声波串口测距显示波特率的详细代码资料免费下载

本文档的主要内容详细介绍的是STM32F10X超声波串口测距显示波特率的详细代码资料免费下载。

发表于 09-18 08:00 12次 阅读
STM32F10X超声波串口测距显示波特率的详细代码资料免费下载

使用STM32让OV7670摄像头跟随的C语言程序详细资料合集免费下载

本文档的主要内容详细介绍的是使用STM32让OV7670摄像头跟随的C语言程序详细资料合集免费下载

发表于 09-18 08:00 28次 阅读
使用STM32让OV7670摄像头跟随的C语言程序详细资料合集免费下载

实操经验分享——在STM32上移植Linux

刚从硬件跳槽为嵌软时,没有任何一丝的准备。一入职,领导就交代了一项特难的任务——在stm32上移植l....

的头像 传感器技术 发表于 09-17 17:01 225次 阅读
实操经验分享——在STM32上移植Linux

MPC5604B和MPC5604C微控制器的详细数据手册和资料免费下载

MPC5604B和MPC5604C是一个建立在电源架构嵌入式范畴的下一代微控制器系列。本文件描述了家....

发表于 09-17 14:44 22次 阅读
MPC5604B和MPC5604C微控制器的详细数据手册和资料免费下载

OLED显示屏反白显示使用C51和STM32ZET的程序实例及技术说明免费下载

反显和正常显示是最常用的显示方式;希望大家能够真正理解他的真正原理是什么。OLED 显示屏内部的点阵....

发表于 09-17 08:00 17次 阅读
OLED显示屏反白显示使用C51和STM32ZET的程序实例及技术说明免费下载

MCU再创销售额新高纪录,到2020年持续呈现上扬走势

市场研究机构IC Insights预期,IC产业的原始系统级晶片(SoC)产品──微控制器(micr....

发表于 09-16 11:13 89次 阅读
MCU再创销售额新高纪录,到2020年持续呈现上扬走势

浅析STM32的五种嵌入式操作系统的特点及不足

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-....

的头像 电子发烧友网 发表于 09-15 09:28 318次 阅读
浅析STM32的五种嵌入式操作系统的特点及不足

中容量微控制器STM32F103xx的详细数据手册和资料免费下载

STM32F103xxx中密度性能线系列包括以72MHz频率工作的高性能ARM∈Cortex∈-M3....

发表于 09-14 17:25 34次 阅读
中容量微控制器STM32F103xx的详细数据手册和资料免费下载

中容量微控制器STM32F102xx的详细数据手册和参考资料免费下载

STM32F102xx中密度USB接入线包括以48MHz频率工作的高性能ARM∈Cortex∈-M3....

发表于 09-14 17:25 22次 阅读
中容量微控制器STM32F102xx的详细数据手册和参考资料免费下载

小容量微控制器STM32F103x4和STM32F103x6的详细介绍和数据资料免费下载

STM32F103x4和STM32F103x6性能线系列包含以72MHz频率工作的高性能ARM∈Co....

发表于 09-14 17:25 39次 阅读
小容量微控制器STM32F103x4和STM32F103x6的详细介绍和数据资料免费下载

中容量微控制器STM32F101xB和STM32F101x8的详细参考资料免费下载

STM32F101xB和STM32F101x8中密度接入线系列包括以36MHz频率工作的高性能ARM....

发表于 09-14 17:25 19次 阅读
中容量微控制器STM32F101xB和STM32F101x8的详细参考资料免费下载

小容量微控制器STM32F102x4和STM32F102x6的详细资料和数据手册免费下载

STM32F102xx中密度USB接入线包括以48MHz频率工作的高性能ARM∈Cortex∈-M3....

发表于 09-14 17:02 15次 阅读
小容量微控制器STM32F102x4和STM32F102x6的详细资料和数据手册免费下载

小容量STM32F101x4和STM32F101x6微控制器的详细资料和数据资料免费下载

STM32F101x4和STM32F101x6低密度接入线系列包括以36MHz频率工作的高性能ARM....

发表于 09-14 17:02 19次 阅读
小容量STM32F101x4和STM32F101x6微控制器的详细资料和数据资料免费下载

互联型STM32F105xx和STM32F107xx微控制器的详细参考资料和数据手册

STM32F105xx和STM32F107xx连接线系列包括以72MHz频率工作的高性能ARM∈Co....

发表于 09-14 17:02 22次 阅读
互联型STM32F105xx和STM32F107xx微控制器的详细参考资料和数据手册

大容量STM32F103xC,xD,xE微控制器的详细参考资料和数据手册免费下载

STM32F103xC、STM32F103xD和STM32F103xE性能线系列包括工作在72MHz....

发表于 09-14 17:02 14次 阅读
大容量STM32F103xC,xD,xE微控制器的详细参考资料和数据手册免费下载

大容量STM32F103xC,xD,xE微控制器的详细参考资料和数据手册免费下载

STM32F103xC、STM32F103xD和STM32F103xE性能线系列包括工作在72MHz....

发表于 09-14 17:02 35次 阅读
大容量STM32F103xC,xD,xE微控制器的详细参考资料和数据手册免费下载

大容量STM32F101xC,xD,xE微控制器的详细参考资料和数据手册免费下载

STM32F101xC、STM32F101xD和STM32F101xE接入线系列包括以36MHz频率....

发表于 09-14 17:02 17次 阅读
大容量STM32F101xC,xD,xE微控制器的详细参考资料和数据手册免费下载

32位ARM微控制器STM32F101xx和STM32F103xx的固件函数库资料概述

本手册介绍了 32 位基于 ARM 微控制器 STM32F101xx 与 STM32F103xx 的....

发表于 09-14 15:44 36次 阅读
32位ARM微控制器STM32F101xx和STM32F103xx的固件函数库资料概述

STM32F103X6,X8,XB微控制器的详细中午资料和数据免费下载

STM32F103xx增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频....

发表于 09-14 15:44 31次 阅读
STM32F103X6,X8,XB微控制器的详细中午资料和数据免费下载

STM32F103开发板教程之寄存器V3.1版本中文手册免费下载

本手册将由浅入深,带领大家学习 STM32F103 的各个功能,为您开启全新的 STM32 之旅。本....

发表于 09-14 14:08 29次 阅读
STM32F103开发板教程之寄存器V3.1版本中文手册免费下载

STM32F103开发板教程之库函数V3.1版本中文手册免费下载

实践出真知,要想学好 STM32,实验平台必不可少!本篇将详细介绍我们用来学习 STM32的硬件平台....

发表于 09-14 14:08 36次 阅读
STM32F103开发板教程之库函数V3.1版本中文手册免费下载

STM32F10xxx系列产品的参考手册中文版的详细资料免费下载

本参考手册针对应用开发,提供关于如何使用STM32F101xx、STM32F102xx、STM32F....

发表于 09-14 14:08 23次 阅读
STM32F10xxx系列产品的参考手册中文版的详细资料免费下载

STM32f103rct6单片机的详细原理图资料免费下载

本文档的主要内容详细介绍的是STM32f103rct6单片机的详细原理图资料免费下载。

发表于 09-13 17:38 40次 阅读
STM32f103rct6单片机的详细原理图资料免费下载

STM32f103rct6单片机的详细原理图资料免费下载

本文档的主要内容详细介绍的是STM32f103rct6单片机的详细原理图资料免费下载。

发表于 09-13 17:38 50次 阅读
STM32f103rct6单片机的详细原理图资料免费下载

面对物联网的蓝海,先建设一张广度和深度覆盖的网络是否也非常迫切?

非常典型的就是Sigfox。这家公司早已成为物联网领域的一家明星企业,而且也曾经因为2015年初获得....

的头像 物联网资本论 发表于 09-12 16:25 1180次 阅读
面对物联网的蓝海,先建设一张广度和深度覆盖的网络是否也非常迫切?

在Keil环境编程中发现STM32内存管理存在的问题

非常简单的一个工程,没有用到任何IO操作,与STM32有关的仅仅只有芯片的选择,即其SRAM大小有区....

的头像 玩转单片机 发表于 09-12 16:15 328次 阅读
在Keil环境编程中发现STM32内存管理存在的问题

东芝宣布推出新品——“M3H族”微控制器

近日,东芝宣布推出新品——“M3H族”微控制器,该产品基于全球标准的Arm Cortex-M3内核,....

的头像 东芝半导体与存储产品 发表于 09-12 15:55 1072次 阅读
东芝宣布推出新品——“M3H族”微控制器

瑞萨电子以大约67亿美元的价格收购IDT ,加强与英伟达及英特尔在自动驾驶技术领域的竞争

瑞萨电子预计,更大规模商业平台将带来更多业务机遇并打开进入快速发展行业的通道从而实现近期和长期的收入....

的头像 EETOP 发表于 09-12 15:12 612次 阅读
瑞萨电子以大约67亿美元的价格收购IDT ,加强与英伟达及英特尔在自动驾驶技术领域的竞争

STM32单片机有哪些学习方法?STM32学习方法以及资料视频资料免费下载

具体学习方法是通读不同来源的程序,在程序中找到相关的函数库的应用,然后再阅读相关文档,有条件的实验。....

发表于 09-12 15:05 80次 阅读
STM32单片机有哪些学习方法?STM32学习方法以及资料视频资料免费下载

如何使用STM32设计四轴飞行器资料合集包括了程序,原理图和罗盘计算

本文档的主要内容详细介绍的是如何使用STM32设计四轴飞行器资料合集包括了程序,原理图和罗盘计算。

发表于 09-12 15:05 35次 阅读
如何使用STM32设计四轴飞行器资料合集包括了程序,原理图和罗盘计算

ARM微控制器STM32F101xx与STM32F103xx固件库的介绍和使用手册资料概述

本手册介绍了32 位基于ARM 微控制器 STM32F101xx 与 STM32F103xx 的固件....

发表于 09-11 15:46 43次 阅读
ARM微控制器STM32F101xx与STM32F103xx固件库的介绍和使用手册资料概述

意法半导体宣布与TomTom 合作,推出用于STM32*开放开发环境的工具

据外媒报道,意法半导体(STMicroelectronics)宣布与TomTom (TOM2)宣布合....

的头像 罗欣 发表于 09-11 10:51 662次 阅读
意法半导体宣布与TomTom 合作,推出用于STM32*开放开发环境的工具

浅析STM32的五大嵌入式操作系统的特点及不足

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-....

的头像 玩转单片机 发表于 09-10 17:26 372次 阅读
浅析STM32的五大嵌入式操作系统的特点及不足

LCM模组典型的电路设计

为了抑制电磁辐射,MIPI、LVDS、EDP等高速信号的差分线尽量走线内层,靠近GND平面的走线层来....

的头像 电子发烧友网工程师 发表于 09-10 10:52 267次 阅读
LCM模组典型的电路设计

改良迟滞控制算法,提供LED电流高精度

现在,欧洲法律规定机动车辆必须配备日间行车灯。 自 2011 年 2 月起新制造的小汽车和 2012....

的头像 Duke 发表于 09-10 09:40 1649次 阅读
改良迟滞控制算法,提供LED电流高精度