Arm Cortex-M低功耗模式基础

2019-05-13 16:37:25 嵌入式开发中心 7


无论嵌入式系统是使用电池运行还是连接到电网,设计绿色系统并最大限度地降低能耗是大多数系统的常见要求。现代嵌入式系统中最大的能源消费者之一是微控制器,并且了解如何最小化其能耗是至关重要的。即使您查看单个微控制器系列,每个处理器架构的低功耗也会略有不同。在这篇文章中,我们将介绍Arm Cortex-M处理器内核中的基本低功耗模式以及如何使用它们。

基本的低能量模式

每个基于Arm Cortex-M处理器的微控制器至少具有三种电源模式; 跑步,睡眠和深度睡眠。显然,运行模式是处理器完全上电并执行嵌入式系统设计的所有操作。休眠模式将暂停CPU时钟,但会使系统时钟,闪存和外设时钟运行。深度睡眠模式不仅会停止CPU时钟,还会关闭系统时钟,闪存和PLL。

微控制器供应商能够完全定制其低功耗模块,以提供不同程度的低功耗。重要的是要注意微控制器进入睡眠时间越深,完全关闭就越接近。这一点很重要,因为当您使用越来越深的睡眠模式时,为微控制器供电并开始执行指令所需的时间会急剧增加。一些提供非常深的功耗模式的处理器需要与处理器引导序列相同的时间才能再次运行。根据您的应用程序,这可能会对系统的实时性能产生重大影响。

arm.jpg

进入低功耗模式

开发人员可以使用两种不同的指令将系统置于低功耗状态等待事件(WFE)和等待中断(WFI)。执行WFE指令时,它会检查系统控制块(SCB)中事件位的值。如果未设置该位,则系统将进入睡眠模式。事件可以由外部源生成,也可以使用发送事件(SEV)指令生成。在大多数情况下,我见过或写过的99%的应用程序都使用了WFI指令。

当遇到WFI指令时,处理器将立即进入SCB中配置的低功耗休眠模式,除非有待处理的中断。一旦处理器处于休眠状态,它将在触发中断时唤醒。某些处理器甚至可能有一个可选的唤醒中断控制器,它允许开发人员配置允许唤醒处理器的源。这为开发人员提供了更精细的控制,使他们的系统能够保持最低功耗睡眠模式的时间。

进入所需睡眠模式的C代码非常简单。在大多数开发环境中需要做的就是编写以下代码行:

__WFI;

如果您正在使用CMSIS,您还可以通过编写以下内容来调用WFI函数:

__WFI();

现在您可能想知道如何配置输入的低功耗模式。在SCB寄存器中有一个SLEEPDEEP位,如果设置为1将使处理器进入深度睡眠模式。如果该位清零,则处理器将进入休眠模式。正如我之前提到的,硅片供应商通常会增强睡眠模式,因此还需要根据设计微控制器的人员来配置其他寄存器。  

额外的低功耗功能

除了能够进入低功耗模式之外,还有另一个有趣的低功耗模式功能,称为Sleep-On-Exit。Sleep-On-Exit允许处理器在正在执行的中断完成后立即返回休眠状态。这允许开发人员通过避免主应用程序和中断之间不必要的上下文切换来节省时间,并且在这种情况下时间是能量。允许处理器在中断时唤醒,执行必要的工作然后返回休眠状态。 

结论

Cortex-M处理器的低功耗模式是降低嵌入式系统使用的能耗的主要关键之一。正如我们所看到的,开发人员可以使用WFI指令将系统置于低功耗模式,然后一旦触发了先前配置的唤醒事件或中断,系统就会唤醒。每个微控制器供应商都能够自定义其功耗模式,我们将看到具有三种默认功耗模式的微控制器,通过具有十几种功耗模式和复杂状态机的部件,可以简化处理器从一种模式移动到下一种模式的方式。





24小时全国服务热线:0755-88879880

 

深圳市朗锐智科实业有限公司是深圳北航物联网研究院旗下专注物联网方案实施实现的创新企业,致力于成为“领先的物联网综合方案服务提供商”。

提供从云到端的全流程产品研发和生产服务,硬件设计涵盖单片机、ARM、X86、DSP等平台,软件开发跨Windows、linux、android及IOS等操作系统,应用技术从数据采集、工业通讯、自动化控制到机器视觉等,服务领域从电梯安全、油田监控、环保监测、铁路安全、现代农业到医疗健康等。

以物联网综合解决方案为基础,通过高效软硬件开发,服务客户的垂直行业应用,帮助客户实现物联网项目快速实施快速盈利。

在线留言
深圳市朗锐智科实业有限公司
友情链接:    雅米娱乐   诚信棋牌   乐天彩票是哪个公司   极速五分彩票   九龙彩票网