0

0

将MCU的功耗和IO引脚关联起来分析

看不見的法師

看不見的法師

发布时间:2025-05-06 20:16:12

|

928人浏览过

|

来源于php中文网

原创

现代的微控制器单元(mcu)功耗越来越低,同时集成了众多外设,但电池技术却未能跟上步伐,导致电池在系统中的质量占比很大。因此,有效利用有限的能量变得至关重要。通常来说,就像口袋里的钱一样,开源和节流永不过时。由于电池容量有限,开源已经没有希望,只能依靠节流来延长使用时间。面对众多的外设、寄存器和编程方式,找到最佳组合是个挑战。一般思路是,在需要时启用相应的外设时钟和中断,工作时才真正开始工作,而不是使用轮询来消耗系统资源。如果给我1000毫安,我可以直接采用高性能模式,但如果只有300毫安却要求几个小时的在线时间,确实是难上加难。

将MCU的功耗和IO引脚关联起来分析目前,牛迪克有一个开源工具非常好用,淘宝上也有一个类似的产品,不过需要使用别人的上位机软件,这里就不做评价了。

这个工具有一个PMU,称为源的功能,通过采样电阻和快速的ADC采样,可以计算出被测设备的功耗。

将MCU的功耗和IO引脚关联起来分析工具中包含了逻辑分析仪和低功耗测量功能的组合,我在思考,这样的仪器是否真正有用,或者应该如何使用?

其实,核心思想很简单,就是能否将引脚状态和功耗联系起来,能否在更大的时间跨度上进行控制。

提取与功耗变化密切相关的事件,如引脚状态的翻转、中断的发生等。

功耗数据和引脚状态数据都基于同一个高精度时钟,确保两者的时间戳一致。通过时间戳的对应关系,可以将每个时刻的功耗值与对应的引脚状态关联起来。通过观察功耗变化与不同模块对应的引脚状态,可以快速定位到功耗较高的模块。不同代码段的执行会引起不同的引脚状态变化,通过关联分析可以了解代码执行对功耗的影响。

也就是三个层级:瞬时的、代码的和关联性的。

将MCU的功耗和IO引脚关联起来分析我喜欢TI的单片机,绝对是因为它提供了每个步骤的功耗情况。

将MCU的功耗和IO引脚关联起来分析这里也是一个全新的机会。

时序分析:分析功耗变化与引脚状态变化的时间关系,找出是否存在因果关系。查看信号的上升沿、下降沿、脉宽等。分析信号的状态变化,分析不同时序下的功耗变化,找到最优的时序配置。

相关性分析:计算功耗与不同引脚状态之间的相关系数,衡量它们之间的线性关系。当所有引脚处于低电平或高阻态时,系统通常处于空闲状态,此时可以分析系统的静态功耗。当系统功耗出现峰值时,可以查看对应的引脚状态,判断是哪个模块或操作导致了功耗升高。

聚类分析:将具有相似功耗特征的数据点聚成簇,分析不同簇的引脚状态特征。

将MCU的功耗和IO引脚关联起来分析这是一个真实的例子,一个键盘,我们在不用的时候,马上进入低功耗,使用的时候马上高性能,以及一个纽扣电池配合一个一次性的传感器传输几个小时,所以这个技能真的很重要。哪个用户希望天天充电?就像一个尿袋一样。

软件千变万化,难以控制,但硬件则不同。

硬件中断:由外部硬件设备产生的中断,如定时器中断、外部中断、通信中断等。

软件中断:由软件产生的中断,如系统调用、异常等。

将MCU的功耗和IO引脚关联起来分析分类

神笔马良
神笔马良

神笔马良 - AI让剧本一键成片。

下载

中断发生时,功耗通常会有一个短暂的峰值。将功耗变化与其他相关信息(如中断请求信号、CPU状态等)进行关联分析。

通过单步调试,查看中断服务程序的执行过程,了解中断对系统状态的影响。

中断服务程序的执行时间:中断服务程序的执行时间越长,对功耗的影响越大。

中断嵌套:中断嵌套可能会导致功耗增加,需要仔细分析中断优先级和处理流程。

调试时需要具备这些常识,否则无法进行有效分析。

将MCU的功耗和IO引脚关联起来分析因此,需要对细节特别熟悉。

中断服务程序(ISR)的执行:

指令执行:ISR 中的指令执行会消耗一定的动态功耗。

寄存器读写:访问寄存器也会消耗功耗。

内存访问:如果 ISR 需要访问内存,则会带来额外的内存访问功耗。尽量使用寄存器,减少内存访问次数。

避免浮点运算:浮点运算消耗较大,尽量使用定点运算。

也就是说,可以通过对比不同代码的指令数量和消耗的功耗来优化。

中断响应延迟过长会导致系统无法及时处理事件,可能引起额外的功耗。中断嵌套会增加中断处理的复杂度,从而增加功耗。可以测量中断的响应时间,尽可能的短,多使用低功耗的外设,不要唤醒CPU以及无线功能这些大杀器。选择功耗较低的外设,减少外设功耗,如STM32 L系列的外设。

中断频率越高,功耗越大。中断处理时间越长,功耗越大。中断处理的复杂度越高,功耗越大。

这三条在编写程序时要深入心中,确保代码短小简单,不能太深入。如果存在中断嵌套,需要仔细分析中断优先级和处理流程,以确保功耗分析的准确性。

可以测量中断发生后系统响应的时间,评估系统的实时性。调整中断频率,避免过高的中断频率。

相关专题

更多
单片机编程软件有哪些
单片机编程软件有哪些

单片机常用的编程软件有:1、Keil编程开发环境;2、IAR;3、STC-ISP;4、STM32CubeIDE;5、Altium Designer。更多关于单片机编程软件的内容,大家可以访问本专题下面的文章。

1219

2023.10.12

单片机编程软件推荐
单片机编程软件推荐

常见的单片机编程软件可分为三类:1、专有软件,如keil uvision和iar embedded workbench;2、开源软件,如arduino ide和eclipse with cdt;3、跨平台软件,如visual studio code和atom。想了解更多单片机的相关内容,可以阅读本专题下面的文章。

506

2024.05.20

plc和单片机的区别
plc和单片机的区别

plc和单片机的区别:1、体积和结构不同:PLC体型通常较大,带有模块化结构,由多个组件组成,而单片机体型更小,通常由一个单芯片组成;2、存储容量不同:PLC通常具有较大的存储容量,用于存储程序和数据,单片机存储容量通常较小,但足以满足其应用需求;3、可编程性不同等等。想了解更多plc的相关内容,可以阅读本专题下面的文章。

613

2024.05.30

树莓派和单片机的区别
树莓派和单片机的区别

树莓派和单片机的主要区别在于功能和应用。树莓派基于linux操作系统,拥有强大的计算能力和丰富的软件生态系统,适用于物联网、小型服务器、教育和爱好者项目等场景。单片机基于简单的微控制器,计算能力有限,主要用于嵌入式系统和控制特定设备,如工业控制、家用电器和医疗设备。想了解更多树莓派和单片机的相关内容,可以阅读本专题下面的文章。

402

2024.06.03

dsp和单片机的区别
dsp和单片机的区别

dsp专注于数字信号处理,具有更高的处理能力、专门架构、指令集和存储器结构,但功耗也更高。单片机更适合一般任务,具有较低的处理能力、更通用的架构和指令集,以及较小的存储器结构和功耗。想了解更多dsp和单片机的相关内容,可以阅读本专题下面的文章。

677

2024.06.04

传感器故障解决方法
传感器故障解决方法

传感器故障排除指南:识别故障症状(如误读或错误代码)。检查电源和连接(确保连接牢固,无损坏)。校准传感器(遵循制造商说明)。诊断内部故障(目视检查、信号测试、环境影响评估)。更换传感器(选择相同规格,遵循安装说明)。验证修复(检查信号准确性,监测异常行为)。

462

2024.06.04

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

78

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

45

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

118

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
golang和swoole核心底层分析
golang和swoole核心底层分析

共3课时 | 0.1万人学习

Python 并发编程实战
Python 并发编程实战

共12课时 | 0.7万人学习

Golang进阶实战编程
Golang进阶实战编程

共34课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号