电子产业一站式赋能平台

PCB联盟网

搜索
查看: 80|回复: 0
收起左侧

RTOS环境下低功耗设计思路

[复制链接]

344

主题

344

帖子

3148

积分

四级会员

Rank: 4

积分
3148
发表于 2024-9-18 11:45:00 | 显示全部楼层 |阅读模式
作者 | strongerHuang
微信公众号 | 嵌入式专栏

不知道大家有没有做过低功耗产品?

低功耗产品看似很简单,其实,要做好一款低功耗产品,特别是做到超低功耗,难度相对更高,软件和硬件需要“高度配合”才能达到理想的低功耗。

今天就来讲讲在RTOS环境下低功耗设计的思路。

写在前面:编程思维
嵌入式产品的设计具有多样性、定制性,很多时候都要结合需求来实现软硬件设计

可能你写的一套软件架构,在“近似”的产品中软件架构、代码模块能复用,但如果跨度较大,你的软件架构就不一定适用了。

但是,嵌入式软件设计有很多地方都是相通的,也许软件架构虽不能用了,但设计思路同样适用。

zyigeteljdm64027734455.png

zyigeteljdm64027734455.png


就好比:你学会了某项技能,这家公司不要你了,领一家公司也会要你,而两家公司的设计的产品不相同。

所以说,有一个良好的编程思维很重要,包括软件架构、编程模块、低耦合高内聚等。

说回来RTOS低功耗设计思路,常见的有:
  • 普通低功耗:运行Idle任务时,进入低功耗模式。
  • 超低功耗:在空闲状态进入低功耗,通过中断或者外部事件唤醒。

    普通低功耗
    普通低功耗,指处理器间歇性进入低功耗状态,但会定期唤醒,这种功耗就做不到很低。

    在RTOS中,实现这种普通低功耗,通常是在任务处于Idle(空闲任务)中实现其低功耗功能。

    大概示意图:

    h2p3lxoofub64027734555.png

    h2p3lxoofub64027734555.png


    大概意思:Idle空闲任务定期进入低功耗,但会定期唤醒,检测是否有更高优先级任务响应。在处于低功耗状态下,也可以通过外部事件或中断欢迎处理器。

    提示:
    有些RTOS可以通过“HOOK钩子函数”进行低功耗操作。同时,有些RTOS的空闲任务可能需要进行一些配置。

    超低功耗
    上面那种通过定期唤醒CPU的方式,即使没有其他事做,CPU也要醒来“看一眼”,肯定做不到超低功耗。

    要想做到超低功耗,没事时别来打扰CPU,有才把它叫醒。
    大概示意图:

    0olsdcmccp364027734655.png

    0olsdcmccp364027734655.png


    这种CPU进入“深入低功耗”的方式,和上面不一样,这与CPU的低功耗模式有关。

    比如:睡眠、停机、待机等。不同的处理器各种低功耗模式可能有差异,具体如何实现,如何唤醒,要结合具体CPU实现方法完成。

    jrhkj4qgmtv64027734755.png

    jrhkj4qgmtv64027734755.png


    最后
    低功耗产品的设计相对更难,需要结合软硬件解决各种“功耗异常”的问题,但整体的应用相对不复杂。

    当然,还有更多实现低功耗的方法:比如降频、0功耗待机等。欢迎大家留言说出你产品低功耗是如何实现的。
    ------------ END ------------

    sbk2qpbdqzu64027734855.gif

    sbk2qpbdqzu64027734855.gif

    ●专栏《嵌入式工具●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程
    关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。点击“阅读原文”查看更多分享。
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表