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

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

3天内不再提示

AliOS Things电源管理框架怎么满足物联网设备低功耗需求

电子设计 ? 2018-10-29 08:57 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

AliOS Things电源管理框架使用介绍,主要针对物联网设备低功耗需求。

一、电源管理框架简介

电源管理框架的目的在于节约CPU的功耗。传统上,当操作系统处于空闲状态时,比如所有用户任务和系统任务处于阻塞状态,将执行idle task。idle task的通常做法是一个while(1)空循环,从汇编视角看是不断执行跳转指令,也就是说当操作系统空闲时,CPU将处于空转状态。使能电源管理框架后,当系统进入idle task后,将设置CPU进入低功耗状态,从而节省CPU的功耗。

AliOS Things电源管理框架具有如下特点:

(1)应用配置电源管理框架并添加初始化代码后,整个框架的运行对应用透明,用户无需为了支持电源管理框架而修改应用代码;

(2)支持多级低功耗状态;

在某些MCU上,根据不同的节电程度和唤醒时间分为多级睡眠,电源管理框架提供了对该特性的支持,在进入低功耗状态时将根据睡眠时间和节电程度选择最佳睡眠等级。

(3)支持tickless机制

当MCU决定进入低功耗状态时,将关闭系统tick中断,并在醒来的时候恢复系统tick中断并补偿睡眠过程中丢失的tick数。这种策略通过减少系统时钟中断来最大程度降低系统空闲时的功耗。

(4)支持精简的低功耗模式

当MCU进入低功耗后,不关闭系统tick中断,系统tick也能唤醒系统。它的优点是实现简单,但当系统长时间空闲时,由于系统时钟频繁唤醒系统,不利于节能。

在某基于nrf52832 MCU的开发板上测试电源管理框架的运行效果如下:

在普通运行模式下nrf52832 MCU的平均运行电流在4mA左右,在添加电源管理模块后MCU的电流测试如下表所示:

从测试结果可以看出,在对功耗敏感的系统上,比如依靠电池供电的系统,非常有必要使用电源管理框架,它可显著降低系统功耗,增加系统待机时间。

二、应用配置(为应用添加低功耗支持)

应用若要使用电源管理框架,需进行如下配置:

(1)应用目录的.mk文件中添加对电源管理模块的依赖,示例:

GLOBAL_DEFINES += RHINO_CONFIG_CPU_PWR_MGMT=1

$(NAME)_COMPONENTS := rhino/pwrmgmt

(2)在应用初始化函数中(比如application_start(int argc, char *argv[]))调用电源管理模块初始化函数。

cpu_pwrmgmt_init();

三、示例应用(app/example/pwr_test)

目前AliOS Things 2.0版本在developerkit和PCA10040平台上对电源管理框架进行了适配,可用如下命令编译示例应用并下载到develoerkit上运行:

aos make pwr_test@developerkit

aos upload pwr_test@developerkit

示例应用创建了2个任务demo1和demo2。demo1的主要逻辑是一个while循环:count1增1,同时打印count1和g_idle_count[0]的值,然后睡眠1秒。demo2的主要逻辑也是一个while循环:count2增1,同时打印count2的值,然后睡眠2秒。

其中g_idle_count[0]是一个全局变量,idle任务在执行时会累加该值。

若没有开启低功耗模块,那么当demo1和demo2处于睡眠状态时,idle任务持续执行,g_idle_count[0]不断增加。输出示例如下:

count1 = 0, idle = 0

count2 = 0

count1 = 1, idle = 2347298

count1 = 2, idle = 4693421

count2 = 1

count1 = 3, idle = 7036926

count1 = 4, idle = 9383049

count2 = 2

count1 = 5, idle = 11726554

count1 = 6, idle = 14072465

开启低功耗时,当demo1和demo2处于睡眠状态时,idle任务执行g_idle_count[0]增1后,调用cpu_pwr_down()进入低功耗状态。因此系统每次进入空闲状态,g_idle_count[0]只增加1。输出示例如下:

count1 = 0, idle = 0

count2 = 0

count1 = 1, idle = 1

count2 = 1

count1 = 2, idle = 3

count1 = 3, idle = 4

count2 = 2

count1 = 4, idle = 6

count1 = 5, idle = 7

说明:如果条件允许,直接测试功耗,比如测试MCU的电流,效果更直观。

四、电源管理框架的适配

由于电源管理框架的运行依赖于硬件能力,因此在适配时首先要分析目标硬件是否有能力支持,然后要基于硬件能力为电源管理框架提供相关驱动。

4.1 硬件要求

要想支持电源管理框架,目标MCU需要支持如下特性:

(1)至少支持一种低功耗模式。在该低功耗模式下,RAM寄存器的值能够被维持。

(2)在低功耗模式下,存在可用的定时器,且该定时器能唤醒系统。在tickless机制下,该定时器用于计算低功耗时间,以补偿系统时钟。

4.2 适配接口

为了支持电源管理模块需完成如下接口适配:

注:可参考developerkit和PCA10040平台上的适配示例(pwrmgmt_hal目录)。

作者:云栖社区 jianniu

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

    关注

    117

    文章

    6454

    浏览量

    146300
  • 物联网
    +关注

    关注

    2933

    文章

    46387

    浏览量

    394707
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    联网蓝牙模块有哪些优势?

    随着联网技术的不断发展,蓝牙模块作为联网的重要组成部分,其应用越来越广泛。那么,联网蓝牙模
    发表于 06-28 21:49

    联网工程师为什么要学Linux?

    联网工程师需要掌握Linux的主要原因可以从技术生态、开发需求、行业应用及就业竞争力四个角度来分析: 一、技术生态与行业适配性 1)嵌入式开发的主流平台
    发表于 05-26 10:32

    低功耗Wi-Fi 6模块联网:NRF7002

    在智能终端爆发式增长的背景下,迅通科技推出的?PTR7002超低功耗Wi-Fi 6模块?,凭借其高性能和紧凑设计,迅速成为联网设备开发者的关注焦点。这款模块不仅适配智能家居、工业自动
    发表于 05-21 17:10

    BLE+LoRa融合技术赋能远程低功耗联网应用

    随着联网技术的快速发展,智能设备的连接需求也在不断增长。在众多无线通信技术中,蓝牙(BLE)和长距离低功耗无线射频技术(LoRa)因其独特
    的头像 发表于 05-15 19:34 ?699次阅读
    BLE+LoRa融合技术赋能远程<b class='flag-5'>低功耗</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>应用

    看完必会!Open开发低功耗应用:电源管理核心API全攻略!

    低功耗设计是Open开发的核心竞争力之一,而电源管理API则是实现这一目标的技术基石。通过灵活调用这些接口,开发者可精准控制硬件资源使用、动态调整系统能耗模式、优化任务执行时机,从而显著延长
    的头像 发表于 04-10 14:36 ?327次阅读
    看完必会!Open开发<b class='flag-5'>低功耗</b>应用:<b class='flag-5'>电源</b><b class='flag-5'>管理</b>核心API全攻略!

    蜂窝联网的超低功耗特性

    针对低功耗进行优化的蜂窝联网 革命性的蜂窝解决方案: 无与伦比的电源效率 要打造卓越的蜂窝联网
    的头像 发表于 04-07 14:57 ?561次阅读

    ESP32-C3FH4:高性能联网芯片的卓越之选,智能门锁安防等应用

    防护,满足联网设备安全需求 低功耗设计:多种省电模式延长电池
    发表于 04-03 11:41

    Nordic nRF54 系列芯片:开启 AI 与联网新时代?

    系列无线 SoC 更是树立了新的行业标杆。这一系列产品在效率、处理能力和设计选项上实现了显著提升,以满足不断增长的低功耗蓝牙和联网应用需求
    发表于 04-01 00:18

    Nordic NRF9151低功耗蜂窝模组 助力卫星联网应用.

    合作伙伴关系,在Skylo的卫星网络服务上认证Nordic的nRF9151低功耗蜂窝模组。 两家公司合作为小型、受限的联网设备实现无缝卫星连接,开启了全新的大规模
    发表于 03-24 11:12

    为什么选择蜂窝联网

    在为您的联网(IoT)应用评估最合适的低功耗广域网(LPWAN)技术时,除了考虑技术指标外,还必须考虑各种因素,因为技术指标本身可能与实际性能大相径庭。与 LoRaWAN、Sigfox
    发表于 03-17 11:42

    国产固态继电器如何满足联网应用的需求

    联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备
    的头像 发表于 01-03 15:57 ?754次阅读

    联网系统中常用的低功耗自组网无线传输方案(三)_蓝牙芯片篇

    低功耗蓝牙(BLE)芯片,能够在保证正常通信的前提下显著减少电量消耗,从而延长物联网设备的使用时间。这种低功耗特性对于依赖电池供电的
    的头像 发表于 09-29 17:11 ?1453次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>系统中常用的<b class='flag-5'>低功耗</b>自组网无线传输方案(三)_蓝牙芯片篇

    联网系统中TCP低功耗产品长连接状态下降低功耗功能的实现方案

    01 ?概述 TCP相关内容参考文章《联网行业中TCP通信协议介绍以及如何实现》 02 ?功耗的组成 低功耗技术就是一系列的降低功耗的技术
    的头像 发表于 09-29 11:50 ?1030次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>系统中TCP<b class='flag-5'>低功耗</b>产品长连接状态下降<b class='flag-5'>低功耗</b>功能的实现方案

    联网系统低压差低功耗电源方案分享_LDO详解

    联网系统中为什么要使用线性电源芯片(LDO) 在联网系统中,使用线性电源芯片(LDO,Low
    的头像 发表于 09-27 16:45 ?3158次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>系统低压差<b class='flag-5'>低功耗电源</b>方案分享_LDO详解

    什么是联网技术?

    什么是联网技术? 联网技术(Internet of Things, IoT)是一种通过信息传感设备
    发表于 08-19 14:08