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

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

    关注

    115

    文章

    6183

    浏览量

    144533
  • 物联网
    +关注

    关注

    2909

    文章

    44671

    浏览量

    373666
收藏 人收藏

    评论

    相关推荐

    LDO在联网中的角色 LDO电源在汽车电子中的应用

    LDO在联网中的角色 联网(IoT)是一个由各种设备和传感器组成的网络,它们能够收集、交换和分析数据,以实现智能化的决策和自动化。在
    的头像 发表于 12-13 09:23 247次阅读

    联网学习路线来啦!

    联网学习路线来啦! 联网方向作为目前一个热门的技术发展方向,有大量的人才需求,小白的学习入门路线推荐以下步骤。 1.了解
    发表于 11-11 16:03

    如何测试联网设备功耗

    如何测试联网设备功耗联网(IoT)将涵盖我们日常生活的各个方面,因为它使数十亿的物品能够随
    的头像 发表于 10-11 08:05 466次阅读
    如何测试<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>设备</b>的<b class='flag-5'>功耗</b>

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

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

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

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

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

    联网系统中为什么要使用BLE蓝牙模块 联网系统中使用BLE蓝牙模块的原因主要有以下几点: 低功耗特性 延长
    的头像 发表于 09-27 16:51 419次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>系统中常用的<b class='flag-5'>低功耗</b>自组网无线传输方案(二)_蓝牙模块篇

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

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

    引领智能未来:英锐恩科技的国产低功耗单片机ENMCU

    访问详细的技术文档和示例代码,快速搭建自己的开发环境。此外,英锐恩还定期举办技术培训和线上讲座,与开发者分享最新的行业趋势和应用案例。 随着联网和智能设备的快速发展,对低功耗、高性
    发表于 09-26 17:16

    基于联网设备管理

    联网设备管理的重要性日益凸显,设备数量激增带来数据泄露风险。加强设备安全性、软件升级与修复、身份验证和互操作性是关键。
    的头像 发表于 09-10 11:04 654次阅读
    基于<b class='flag-5'>物</b><b class='flag-5'>联网</b>的<b class='flag-5'>设备管理</b>

    什么是联网技术?

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

    梯云联LoRa网关:联网时代的远距离低功耗通信先锋

    联网(IoT)技术日新月异的今天,高效、稳定且低功耗的数据传输设备成为了推动行业发展的关键。深圳梯云联推出的LoRa网关,正是这样一款
    的头像 发表于 07-25 09:59 295次阅读

    请问如何使用微控制器优化电池供电的联网设备功耗

    如何使用微控制器优化电池供电的联网设备功耗
    发表于 07-23 07:09

    NB-IoT设备天线静电浪涌保护方案解析

    窄带联网(Narrow Band Internet of Things,NB-IoT)是一种为联网
    发表于 03-05 12:30 507次阅读
    NB-IoT<b class='flag-5'>设备</b>天线静电浪涌保护方案解析

    低功耗蓝牙技术的特点 低功耗蓝牙如何实现低功耗

    低功耗蓝牙技术是一种优化的蓝牙技术,专为满足低功耗需求而设计。它通过采用一系列节能措施和技术,实现了更低的功耗消耗,延长了
    的头像 发表于 02-07 16:49 2102次阅读

    什么是窄带联网?窄带联网和宽带联网有什么区别?

    什么是窄带联网?窄带联网和宽带联网有什么区别? 窄带
    的头像 发表于 02-04 14:48 4525次阅读