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

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

    关注

    112

    文章

    6015

    浏览量

    141113
  • 物联网
    +关注

    关注

    2870

    文章

    41670

    浏览量

    358449
收藏 人收藏

    评论

    相关推荐

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

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

    一文读懂低功耗蓝牙的应用

    蓝牙技术联盟于2010年推出了蓝牙4.0规范,其中低功耗蓝牙的出现满足了小型电池供电设备进行低功耗无线连接的需求,因此得到广泛应用。本文章将
    的头像 发表于 12-28 08:24 424次阅读
    一文读懂<b class='flag-5'>低功耗</b>蓝牙的应用

    桂花网蓝牙网关:功能强大、应用广泛的联网连接设备

    的功能及其在不同领域的应用场景。 一、桂花网蓝牙网关的功能特点 蓝牙5.0兼容:桂花网蓝牙网关支持最新的低功耗蓝牙5.0标准,提供了更高的传输速度和更低的功耗,为联网
    发表于 12-12 16:06

    安科瑞ANET系列智能通讯管理机 高性能低功耗 上传平台

    通信管理机,可满足水、电、气、油、冷量、热量等各种形式的用量及能源能耗分项计量数据采集的需求。 产品采用高性能 ARM 芯片,具有高性能、低功耗、实时数据采集,实时数据监控、
    的头像 发表于 11-10 14:04 258次阅读
    安科瑞ANET系列智能通讯<b class='flag-5'>管理</b>机 高性能<b class='flag-5'>低功耗</b> 上传平台

    满足高达7.5V 电压需求的超级电容

    电容范围:0.047F-1.5F 符合RoHS 5.5V 纽扣式超级电容 应用 计量 智能仪表 照明 工业设备 电动工具 无线网络联网、IIOT、Ag
    发表于 11-06 14:18

    《SoC底层软件低功耗系统设计与实现》阅读笔记

    。 这本书我分为四个部分来阅读,分别是:设计思路,低功耗框架,拓展知识,和优化思路&问题定位。 设计思路 当前主流的3中降低功耗的设计思路:设计工艺,降低工作电压/频率,多电源
    发表于 10-18 03:27

    Banana Pi 开源硬件基于ESP32-S3开发的联网开发板系列

    设计,深度睡眠模式下功耗仅为10uA。 支持USB和外接3.7V锂电池两种供电方式,可实现双电源下自动切换电源功能,并支持USB充电方式。体积小巧,接口方便,上手简单,可直接应用于
    发表于 09-27 17:10

    《SoC底层软件低功耗系统设计与实现》基于Linux专门讲解软件低功耗框架和设计的书籍

    本书内容 选材不错 在众多的Linux技术书籍中,专门讲低功耗这一部分细分技术的书籍非常少,本书专注于该部分技术分析,从内容看是一本值得一看的书。联网行业尤其对功耗敏感,所以本书的众
    发表于 09-08 23:38

    MCU类设备电源管理框架使用

    电子发烧友网站提供《MCU类设备电源管理框架使用.pdf》资料免费下载
    发表于 08-16 16:41 0次下载
    MCU类<b class='flag-5'>设备</b>的<b class='flag-5'>电源</b><b class='flag-5'>管理</b>器<b class='flag-5'>框架</b>使用

    浅谈工业联网平台

    。是由四川酷哞哞有限公司自主研发得百万级接入量的工业互联网云平台,采用云-边-端架构,可以帮助企业快速、低成本的自建工业互联网云平台,满足企业对设备
    发表于 08-10 15:45

    【华秋推荐】联网入门学习模块 ESP8266

    随着全球信息技术的不断进步和普及,联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术,
    发表于 08-04 11:27

    低功耗MCU在联网方案中的应用

    随着联网技术的不断发展,超低功耗MCU已经成为了联网方案中主要的芯片处理技术。超低功耗MCU
    发表于 06-13 18:18

    CENTAURI200如何满足OEM对多协议物联网网关的需求

    联网和智能连接设备的重要性日益增加,增加了对物联网网关的需求。理想的网关应支持运行低功耗南向协议(如Z-Wave,Zigbee,BLE,T
    发表于 06-09 09:53 138次阅读
    CENTAURI200如何<b class='flag-5'>满足</b>OEM对多协议物<b class='flag-5'>联网</b>网关的<b class='flag-5'>需求</b>

    嵌入式实时操作系统AliOS Things的编码风格介绍

    本文是AliOS Things提供的一套C语言代码规范,适用的对象为符合C99标准的C语言工程。
    的头像 发表于 06-07 09:20 393次阅读

    联网无线通信技术比较

    的商用,‘管’这一侧基本上也变得十分通畅,大带宽,低时延的特性,满足了各种联网应用场景的需求。就蓝牙来说,各种应用如果出现与云之间的交互的话,5G就能比较好的克服时延的问题。举个栗子
    发表于 05-15 15:57