查看: 832|回复: 0

[经验] 选择低功耗微控制器开发,避免资源受限规则

[复制链接]

该用户从未签到

发表于 2020-1-2 09:42:51 | 显示全部楼层 |阅读模式
分享到:
对于电池供电的连接设备来说,能量消耗是至关重要的,为了最大限度地延长电池更换之间的时间,甚至允许设备运行在环境能源之外。 虽然许多嵌入式系统开发人员精通代码优化,但为物联网(IoT)设备节约能源需要更全面的方法。
这种方法不仅要考虑内存大小,MCU性能和功耗, 它还必须考虑无线电,模拟电路电源转换器传感器。 虽然所有这一切都有助于整个系统的能源状况,但是开发人员最大的控制力也是微控制器。
本文将介绍如何为物联网选择低功耗微控制器,以及如何寻找与板载外设有关的信息。 它还将展示如何使用电源监控工具,并提供最佳功耗和性能的提示和技巧。
选择低功耗微控制器架构
选择低功耗微控制器,首先要确定微处理器应该使用的正确的处理器核心。目前业内有许多专有的微控制器内核,但是可以从ARM®Cortex®-M微控制器开始。这些微控制器核心在多个供应商的整个行业中得到了支持,为支持和资源提供了强大的生态系统。
为了尽量减少能源消耗,有两个因素需要考虑:性能和能源效率。对于微控制器来说,这很难量化,但开发人员可以使用两种基准测试标准:EEMBC的CoreMark和ULPmark。
CoreMark测量微控制器上可用的处理能力,值越高,处理能力越强。例如,可以在STM32L053核板上测试的STmicroelectronics STM32L053处理器的CoreMark值为75.18。 STMicroelectronics的另一部分STM32F417的CoreMark值为501.85。乍一看,开发人员可能会认为使用STM32F417是一个好主意,因为它看起来具有非常优越的性能。但是,在作出决定之前还有很多事情需要考虑。

图1:STMicroelectronics STM32L053核电路板基于ARM®Cortex®-M0 +内核,专为低功耗,资源受限的应用而设计。

首先,CoreMark只是告诉开发人员一秒钟就能完成多少次基准测试。以不同时钟频率运行的处理器会产生完全不同的值。处理能力的更好的比较是比较CoreMark / MHz。在这种情况下,STM32L053处理器的结果是2.35,而STM32F417的结果是2.98(来源:EEMBC)。两个处理器效率非常接近。
其次,开发人员需要关注核心架构。 STM32L053基于ARM Cortex-M0 +,它针对低功耗进行了优化,并具有最少数量的调试模块。此外,所有在高性能处理器上发现的功耗最高的处理器也都被删除了。
另一方面,STM32F417基于ARM Cortex-M4,它被设计成高性能处理器,运行速度为168 MHz,而32 MHz。这几乎是时钟速度的五倍,CoreMark / MHz只增加了26%。
ULPmark测量微控制器如何有效地执行诸如计算和存储器操作之类的操作。最新的版本甚至包括外设效率,从开发者的能源使用角度来看,这个开发者能够很好地概述处理器的整体效率。
找到正确的周边组合
微控制器内核只是开发人员在选择低功耗微控制器时应考虑的首要考虑因素。另一个考虑因素应该是板载外围设备。外围设备在CPU占用的能量上有很大的不同。开发人员希望确保他们选择具有尽可能自动化的低能耗外围设备的部件。
首先,开发人员应该寻找具有不止一个直接内存访问(DMA)通道的设备。 DMA允许开发人员在没有CPU的情况下在微控制器内部移动信息。这意味着CPU可以执行一些其他操作,比如运行应用程序代码,或者可以关闭并且以深度睡眠模式来节能。同时,DMA通道正被用于将数据从外设移动到内存,内存到外设,甚至在内存中的不同区域之间移动。
比如,timsp430FR5994是MSP430FR5994 Launchpad开发套件中可以找到的低功耗器件的一个很好的例子。 MSP430FR5994有一个内置的DMA控制器,它有六个单独的通道,可以同时在幕后工作。


图2:德州仪器MSP430FR5994 Launchpad开发套件包含多个低功耗外设,如六通道DMA控制器,用于信号处理的低能量加速器以及多种低功耗模式。
另一个例子是寻找大量的低功耗模式。现代微控制器将具有各种功耗模式,将CPU和外设置于不同的状态,从简单的睡眠状态一直到微控制器几乎关机的深度睡眠。在这些深度睡眠模式下,整个微控制器可以绘制几十纳安。
在检查微控制器的低功耗状态时,还要检查工具链和生态系统功能。设置和配置低功耗模式以及将其唤醒的事件可能会非常具有挑战性和耗时。新型微控制器(如Renesas的Synergy微控制器)在其开发环境中包含配置软件,开发人员只需点击几下鼠标即可配置这些模式。对于一个低功耗的应用,开发人员会有兴趣检查带有64或128 K字节闪存的S124,32位MCU。为了使这些设备开始发展,可以使用Synergy DK-124开发板


图3:Renesas协同DK-124开发板具有低功耗模拟比较器,多种睡眠模式和低功耗操作。
测量和验证微控制器能耗
选择低功耗微控制器只是确保系统能够达到其最低能量潜力的第一步。为了真正使用最低能耗,开发人员需要在整个软件开发过程中仔细监控微控制器的能耗。开发人员可以使用几种不同的方法来监控微控制器的能耗,包括电流探头和能量感知调试器
电流探头无非是测量分流电阻两端的电压,然后根据分流电压和电阻计算电流。如果你想测量整个系统的电流消耗,这个解决方案的效果很好,但是如果你真的想把微控制器的功耗和能耗关联起来的话,那么一个能量感知调试器是一个很好的选择。这允许开发人员确定哪些代码区域可能需要进一步的优化或返工。
市场上有几种与ARM Cortex-M™微控制器配合使用的能量感知调试器,例如用于I-Jet调试探头的IAR系统I-Scope功率探头(图4)。


图4:连接到IAR I-Jet时,I-Scope可用于测量系统电压,电流和微控制器电流,然后将其全部关联到程序计数器(PC),以确定哪些代码区正在绘制 最能量。
I-Scope工具具有基于差分放大器的内部电压监测器。 它测量与单片机电源导轨串联的分流电阻上的电压降。 这允许I-Jet调试探头测量电压,同时对单片机CPU内核的程序计数器(PC)进行采样(图5)。


图5:I-Scope(用黄色突出显示)与I-Jet调试探头一起使用,将分流电阻上的电流与任何给定时刻执行的代码关联起来。
程序计数器确切地告诉探测器应用程序在执行过程中的位置。将PC计数器信息和当前测量结果关联起来,就可以生成一个应用程序能量配置文件,供开发人员用来优化和验证其代码。
设计低功耗设备的技巧和窍门
寻找合适的微控制器和监控硬件可以让开发人员设计一个低功耗设备。这个技巧就是知道如何从微控制器中获得最大的能量消耗。为了做到这一点,有几个开发人员可以遵循的一般技巧。这些包括:
  • 预先创建一个电池预算,具有最低,最高和平均功耗估算值。
  • 使用低功耗定时器来驱动调度程序或RTOS的任何内部系统节拍。
  • 尽可能使CPU进入睡眠模式(不要忘记考虑实时应用的唤醒和关机时间)。
  • 使系统事件驱动。中断可以用来唤醒系统,执行其功能,然后立即回到睡眠状态。
  • 将DMA控制器和任何自动外设集成到软件架构中,以实现“并行”处理。
  • 根据需要管理单片机的时钟频率,以获得额外的节能。
  • 监控软件能耗,不要害怕尝试不同的体系结构和配置。赔率是,第一次尝试将不会是最低的可能的配置。
如果可用的话,使用中断的睡眠退出功能,这将在处理器处于中断结束时休眠,并在每个事件上保存几十个时钟周期
结论
为物联网设备选择低功耗微控制器可能会非常棘手。正如我们所看到的,从微控制器架构到板上外设功能,都需要考虑多个因素。
虽然选择了低功耗微控制器,但不能保证设计就达到最低能耗。下一个阶段是仔细的软件架构设计和在整个开发生命周期中对软件性能的监控。只有这样,开发人员才能充分利用所选微控制器的低功耗特性。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

手机版|小黑屋|与非网

GMT+8, 2024-4-20 11:45 , Processed in 0.106187 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.