Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
电源管理
PM电源管理
嵌入式低功耗电源管理框架设计 - 软件规格说明
发布于 2021-08-29 14:12:20 浏览:1963
订阅该版
[tocm] [RT-Thread 电源管理与功耗调优系列 - 目录](https://club.rt-thread.org/ask/article/3419.html) ## 概述 ## 目标 本篇的目标是介绍低功耗电源管理框架设计的概念 - 理解低功耗管理的重要性 - 理解如何开发适合的低功耗管理框架 - 理解如何去管理产品的功耗 ## 形势 - 大多数的嵌入式产品非常注重低功耗设计,尤其近年来,硬件不断的更新换代,处理器的设计越来越复杂,资源也越来越丰富,很多嵌入式产品都开始使用嵌入式操作系统,如RTOS,以降低开发难度,加快产品开发效率,缩短产品交付时间。 - 电源管理、低功耗管理在多任务的操作系统下,控制与管理起来,会越来越困难,负责功耗的工程师,不仅需要掌握必备的硬件知识,还需要熟悉操作系统,设备驱动,需要设计适合产品的电源管理系统,甚至还需要了解生产测试、熟悉产品的策划、业务,并兼顾性能、功能指标等。 - 如今嵌入式产品的开发周期、上市周期,都比较短,很多从事Android、PC、Linux、裸机产品开发的工程师,面对低功耗的管理,不仅需要从原理上理解如何管理,还需要动手设计管理框架、功耗测量与拆解、功耗调优的方法的探索与验证,甚至需要与多个领域【谈判】如何兼顾功能、性能等产品指标。 - 很多嵌入式产品,如一些基于电池供电的可穿戴产品,体积小,电池容量小,根据产品的定义,会把【产品续航】作为一项重要的【卖点】,可能会组织一个团队去攻关【功耗管理】 ## 开发功耗管理框架 - 并不是每个公司在产品开发时,都需要自己开发电源管理框架,因为功耗管理本身是【实践性】的,框架开发一般由参与过功耗管理的人员开发会更实用。开发框架意味着增加了很多的额外工作量与开发周期。 - 目前部分操作系统,都有默认的PM电源管理框架,不过,并不适合所有产品的功耗管理,可能需要改进、重构以适合特殊产品的功耗管理,如有些产品只需要【睡眠管理】,有些产品还需要【变频管理】。 - 低功耗电源管理框架,用于功耗的管理,一般用于多任务的操作系统中,为用户提供较好的应用接口(API),用户可以不关心框架本身的运行机制,只需要根据框架提供的功能进行管理即可。这大大减轻功耗管理的工作量,缩短功耗管理周期,用户只需要关心如何调优功耗。 - 如RT-Thread操作系统,有PM电源管理组件,提供基本的【睡眠】【变频】机制,可以运行【Tickless】,适合大部分产品的功耗管理。 - 接下来会基于RT-Thread PM框架,开发一个低功耗管理软件包,基于实际功耗管理经验,特点:轻量、易用、敏捷。 ## 如何管理产品的功耗 - 前面有些功耗管理的文章,多多少少提到一些基本的概念 - 必备的【硬件、器件】知识,能动手焊接、拆解、通过硬件手册,了解各个芯片、电源回路的供电方式、特点、功耗组成。 - 初步的【驱动开发】能力,能熟悉操作系统基本的概念,理解电源管理框架的原理,动手编写功耗调试代码,【拆解功耗】【分析功耗】【调优功耗】 - 初步的【应用开发】能力,了解业务的基本工作流程,能看懂别人的业务代码,能懂得如何加入功耗管理代码,进行开关逻辑、任务运行与空闲的睡眠控制。 - 必要的【表达沟通】能力,会与各个领域沟通,完成功耗开发任务。【王者】级别的功耗管理,需要带动整个产品开发线:硬件、生成、测试、驱动、操作系统、GUI、策划、管理层,让他们意识到功耗管理的【重要性】,意识到不搞好电源管理,会带来:开关逻辑不合理、资源不够用、系统卡顿、死机重启、无法正常的开关机、产品变砖、发热发烫、续航短等等各种问题。 - 实践发现,功耗管理具备以上的几个条件,则产品功耗管理与开发产品其他功能一样,进展会比较的【顺利】 ## 现有电源管理框架 - 大部分的操作系统,如RT-Thread,拥有PM组件,但可能不具备轻量、简单易用等问题,用户理解或使用起来比较的困难 - 如RT-Thread Nano版本,没有设备管理的概念,如何使用PM管理框架? - 部分处理器本身资源如Flash、RAM不多,如何使用轻量的管理框架也可实现功耗的管理 - 基于以上的考量决定开发一个PM功耗管理的轻量版本 ## 开发路线 - 软件包命名:LPMS:Low-Power Management System,低功耗电源管理系统 - 方便移植、易于定制,让用户使用、定制起来更便捷。 - 把功耗管理系统做成一个软件包,易于更新迭代,用户简单适配后立即使用,方便功耗的管理, - 用户喜欢精简的调试手段,简单的请求、释放,功耗管理框架运行原理简单、可靠、易懂。 - 增加用户配置的灵活性,简化睡眠管理、变频管理、Tickless运行机制更清晰 - 使用功耗模块id,使用状态位,不使用设备管理,易于功耗的调试,并占用较少的ROM、RAM等资源 - 使用功耗模块id,移除睡眠、变频的引用计数,简化用户功耗管理 - 请求高频立即变频、请求低频在空闲线程(idle)中变频、请求的频率不变则不进行变频的【变频管理】 - 【睡眠执行】依旧在空闲线程(idle)中 ## 为何使用模块ID而不使用设备(Device) - LPMS 管理块,不在使用设备(Device)管理,无须注册设备,无须注册通知【Notify】,无须设置名字。 - 电源管理采用【化整为零】的思路,拆解为一个个模块,如一个线程或一个外设,只需要一个模块id标识,改为一个bit位,不使用字符串名称。模块id采用【位图】的管理方式,如请求为位置1,释放为位清0,【睡眠】【变频】模式的判断决策更快。 ## LPMS的组成 - `pms.c pms.h` 电源管理框架主文件,尽量实现【可配置】,平台无关。 - `pms_config.h` 用于用户自定义的配置、功耗模块id定义等 - `pms_drv.c pms_drv.h`,用于【平台适配】 - `pms_timer.c pms_timer.h`,用于【低功耗定时器】,实现tickless运行与系统时钟补偿 - 其他:Demo验证工程,验证pm管理框架的功能实现 ## LPMS的发布 - LPMS 暂时采用软件包的方式,易于快速的更新迭代 - LPMS 适配 RT-Thread,也就是标配版、Nano版本,均可以使用 - LPMS 可以移植适配到其他的RTOS上 ## LPMS的管理维护 - 暂时采用`gitee`管理,后期再使用`github`(网络不稳定) - 欢迎各位使用、提建议、维护、提交PR(代码) ## LPMS的愿景 - 开源 - 敏捷 - 免费 - 简单 - 高效 ## 软件包地址 [https://gitee.com/zhangsz0516/lpms](https://gitee.com/zhangsz0516/lpms) [https://gitee.com/zhangsz0516/stm32l4_lpms](https://gitee.com/zhangsz0516/stm32l4_lpms)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
812
被采纳
177
关注TA
发私信
相关文章
1
STM32F103的低功耗
2
最近用rtthread系统下AD采样并低功耗,中断响应不及时
3
rt-thread低功耗休眠应用问题请教
4
关于RTT对低功耗的支持
5
RT-Thread怎么休眠实现低功耗。
6
RT-Thread V3.0支持的低功耗,OS会自行进入吗?
7
关于RTThread3.0低功耗休眠模式
8
RTT3.0的bsp包中哪些MCU自带低功耗定时器?
9
关于低功耗上次说针对L4出个BSP的,怎么迟迟不见呀
10
低功耗问题。
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部