历史上的今天
返回首页

历史上的今天

今天是:2026年03月03日(星期二)

正在发生

2023年03月03日 | 【超低功耗系列二】低功耗设计应用考虑

2023-03-03 来源:zhihu

在这篇文章里我们来分享一下如果一个项目有低功耗的需求,那在这个项目中如何去做芯片的选型、与MCU相关的低功耗系统设计考虑(硬件考虑和软件考虑及系统考虑),也就是从项目的角度出发如何做低功耗设计的考虑因素。

整体来说,按照你的应用需求会先选择一颗芯片,现在假设我们选好了芯片,基于应用需求,需要做低功耗设计,降低功耗是需要软件和硬件协同工作才能解决的。

从芯片选型开始说,有一些设计大家可能沿用原先项目中使用过的低功耗芯片,在此基础上做低功耗设计,不断从软件和硬件角度来降低功耗,最终看能不能达到我们的需求,如果达不到,再换其他的芯片,还有一些情况,我们可能要完全从头去选一个MCU芯片,一般这时候还是要看项目需求,要求做到的工作,再加上休眠这样的一个时间要求做到多低的功耗,也就是要求电池的使用寿命时间有多长,依据这个标准去做选择。

选择芯片会考虑到的因素有:

首先需要拿到芯片的数据参考手册,看到它在不同功耗时的数值,做一个简单的估计。对STM32来说,会有一个power consumption calculate这样一个软件,其实就是一个简单的数学建模模型,然后把芯片工作的模式变得模式化,也就是把它变成一个循环,比如工作多长时间,紧接着让哪些外设进入休眠的状态,休眠的时候让哪些外设去工作,什么条件唤醒,要把这些变为程序化的过程,把这个过程输到数学建模的模型中,这样就可以帮我们算出power consumption calculat的值,算出来之后我们就可以很明显的得到一个数值,也就是说我们使用这样一个电池去给应用供电大概可以使用多久,可以看到功耗是不是能够满足应用需求。

从工艺的角度来说,一般芯片的工艺越先进,动态功耗会越低,但是静态的漏电流会相对高一些。

低功耗芯片与不是低功耗的芯片,两者最大的区别是专门为低功耗设计的芯片它的低功耗模式一定会比没有为低功耗设计的芯片模式多很多种,它会考虑到各种可能性的低功耗组合,在这种组合下用更多的组合模式来达到更低的功耗。

MCU相关的系统设计

在系统设计的时候,我们先要搞清楚MCU芯片是怎么设计进去的,可以查阅数据手册,找出可以被唤醒的最大的休眠模式,按照数据手册的要求写一个测试工程,像STM32的话,还会有很多的例程,CubeMX里带的固件库里有低功耗的各个使用例程,那么去实现一个纯粹什么都不做的休眠状态,然后关闭所有能够关闭的功能,这样就获得了一个很极限的低功耗,也可以称之为最小系统,也是最小功耗的最小系统,这个时候要做的就是根据硬件工程师提供的I/O设置状态来配置I/O状态获得人为的最低的功耗。

如何减少I/O的漏电流

一般来说,如果I/O口是由固定电平的,把它配置为模拟的、输入的形式,这时候功耗是最低的,它内部的触发器一定要关掉,我们需要有一个正确的I/O口的状态,然后把代码加入到目标电路板里测量功耗,如果电路板上无法优化的一些固有功耗,比如某些固定的消耗电流的一些电阻功耗,消除之后仍然没有达到数据手册上所说的对应的休眠状态下的最大值,这个时候可能就要从硬件状态上找原因,这件事情是值得花时间好好研究一下的。

如何唤醒MCU

在这个过程里,我们要确认系统的脉搏,就是要总体来审查应用的工作方式,找到系统时钟最大的节拍,然后根据这个需求来确认芯片所需要使用的唤醒源。

除此之外,还要研究应用的需求,明白系统工作的模式,比如拿采样模式来说,需要先采样,然后进入低功耗休息状态,再采样,再进入低功耗休息状态,所以整个系统是类似于像一个状态机一样,以采样事件作为驱动来工作的,采样不仅是提供信息,也提供系统的脉搏,这类系统在采样的同时可能还会涉及串口要进行通信等问题,因为信息的本源是采样,所以还是要采样的周期本身决定信息的有效性,要明确系统对唤醒源和唤醒模式的需求,以便确定系统最基础的休眠方式。进一步来说,比如基础的休眠方式和所应用的场景需求确定了,就可以给出这个系统设计的一个初步评估结果,从而达到是否能够确定是这个芯片、确定适用系统设计的结果。

所以我们总结下来,要关注MCU是怎样进入休眠状态的以及怎样从休眠状态被唤醒的,这样来考虑系统的优化,使系统能用最小的功耗提供最大的性能,还能满足所需要的唤醒时间。

从另一个角度说,刚才的方式就是包含低功耗应用中两个不同的阶段,一个是process阶段,在规定的时间间隔,不管是RTC还是外部的事件、GPIO中断等等,需要处理一些传感器收集过来的数据或者是无线传过来的数据;还有一个是inactive阶段,这个时候系统是属于真正的低功耗状态,会等待各种唤醒源或者是中断来把它唤醒。低功耗设计就是要考虑这两个阶段,考虑的各种因素就是要从这两个阶段来进行考虑,在process阶段,要求在给定的时间内能够执行一定数量的指令,所以有时候也不是说process阶段频率越慢越好,要考虑性价比,在inactive阶段,要保持最少的内容,比如数据要在SRAM里面保持,还要有一定的唤醒能力。两个阶段之间的转换要支持不同的约束条件,睡眠到运行的转换要求在转换时具有快速的唤醒时间,而且风驰电流是最小的,这样能够使用外部的电池来供电;从运行到睡眠的时候其实是不太关心转换时间的,但是需要关心的是要转换到最能够节约功耗的一个睡眠模式。

所以综合起来考虑,关键是要考虑四个参数:


一个叫平均功耗,一般会以微瓦的数量级来计量大小,它就能决定用的电池的大小以及所预期的应用是不是能够用这个MCU;


还有风驰电流,这个参数一般是以微安的数量级来计量大小,它决定了可以使用电池的类型以及需要添加到板上的外部元件的数量和尺寸。


在process阶段的处理性能也很重要,它和CPU的频率以及CPU工作在什么样的状态成正比;


最后一个参数是反应时间,它是唤醒的信号源激活和第一条指令执行之间的时间。

上面提到了如何选MCU芯片以及如何知道MCU是如何进入低功耗、如何去唤醒的,除了这些MCU低功耗的一些特性之外,还要考虑MCU的一些其他特性,像STM32的超低功耗系列里面这样几个特性,比如SMPS,也就是外接的开关电源,这也是能保证动态功耗被极大降低的一个办法;还有一个叫BAM,就是批处理的一个模式;另一个是STM32具有自己的知识产权的FLASH ART加速器。

SMPS

SMPS是通过外部的DCDC转换器生成内核的逻辑电压源,用来显著提高运行模式的效率

BAM

BAM是批处理的一个模式,它使用在睡眠模式或者低功耗睡眠模式或者低功耗运行模式,相当于是给MCU做了一个小的协处理器,不需要耗费CPU的资源,也不需要每次采集完数据都要CPU去处理

FLASH ART加速器

大家知道从半导体工艺制程上来说,FLASH的工艺就决定了它的速度不会很快,基本上就到20多MHz,但是一般MCU内核可以跑到80、90甚至100、200MHz,这个时候从FLASH中做代码执行就有一个瓶颈——时间不匹配,正常情况我们都是加等待周期,随着FLASH的频率越高,要加的等待周期就越大,所以ST就加入了一个新东西,叫FLASH ART加速器。

加速器实现的功能就是让我们从FLASH代码里面做执行的时候不需要等待,这是因为它加了cache。

从低功耗的角度来说,从SRAM里运行和从FLASH里运行功耗更低的是从SRAM里运行。


推荐阅读

史海拾趣

Astro Tool Corp公司的发展小趣事

随着企业规模的不断扩大和影响力的提升,Astro Tool Corp公司逐渐认识到企业社会责任的重要性。公司积极参与社会公益事业,为当地社区和弱势群体提供帮助和支持。同时,公司还注重环境保护和可持续发展,通过引进环保技术和设备,降低生产过程中的能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实基础。


请注意,这些故事是虚构的,旨在展示一个电子行业企业可能经历的一些典型发展阶段和策略,并不代表任何真实公司的具体情况。如果需要更贴近真实情况的故事,建议进一步调研和了解Astro Tool Corp公司的实际发展历程。

动运科技(DONGWOON)公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。动运科技始终将技术创新作为公司的核心竞争力,不断投入研发资源,推动产品升级和技术创新。近年来,公司在自动对焦和光学防抖技术方面取得了重大突破,成功应用于音圈马达驱动芯片中,为智能手机等设备的摄像头模组提供了更加稳定、清晰的成像效果。这一技术的成功应用,不仅提升了动运科技在业界的地位,也为公司带来了广阔的市场前景。

锋鸣电子(Fengming)公司的发展小趣事

福斯特集团在半导体封测领域也展现了强大的实力。集团旗下拥有安徽龙芯微科技有限公司和泸州龙芯微科技有限公司等多家子公司,这些公司均配备有全球领先的集成电路封装测试线。通过不断的技术创新和设备升级,福斯特集团能够满足客户全方位的器件封测要求,为客户提供高质量、高效率的封测服务。此外,公司还积极投入研发,推出多项新技术和新产品,进一步巩固其在半导体封测领域的领先地位。

HEICO Corporation公司的发展小趣事

自1957年成立以来,HEICO Corporation不断扩展其电子技术领域的业务。公司电子技术部门专注于设计、制造电子、数据和微波以及光电产品,涵盖了从红外模拟和测试设备到激光测距接收器、电源转换产品等多个方面。这种多元化的产品组合不仅满足了航空、国防等行业的特定需求,也逐渐在医疗、电信等电子行业中占据了一席之地。通过持续的技术创新和研发投入,HEICO在电子市场上建立了稳固的地位。

Aerovox Corporation公司的发展小趣事

为了进一步扩大在电子行业的市场份额,HEICO Corporation采取了积极的并购策略。例如,在2022年,公司宣布收购Accurate Metal Machining, Inc. 96%的股份,这是一家位于克利夫兰的高可靠性组件制造商。此次收购为HEICO带来了新产品和功能,增强了其在航空航天和国防领域的竞争力。通过并购,HEICO不仅获得了先进的技术和人才,还拓宽了产品线,加速了其在电子行业的扩张步伐。

C-MEDIA公司的发展小趣事

在2000年代初,C-MEDIA以其在音频处理领域的专业技术而知名。然而,随着市场竞争的加剧和技术的快速发展,公司意识到需要调整战略以适应市场变化。于是,C-MEDIA在与瑞昱(Realtek)达成收购协议后,决定将AC97、HD Audio板载音频芯片技术转让给Realtek,并退出板载声卡领域。这一决策使得C-MEDIA能够专注于中高端音频处理芯片的研发,进一步巩固了其在独立声卡市场的地位。

问答坊 | AI 解惑

在mtk做手机软件开发有前途么?很急,请各位指教!

  我现在拿到mtk的offer了,手机软件开发职位,11w/年左右,我也同时拿到了另一家国内比较有名的做网络安全的公司的offer,8~9w/年。     上面两个公司职位一个是偏嵌入式,一个是win c++软件开发, 我是计算机系的,自己感 ...…

查看全部问答>

求助:eVC开发数据库的问题

请教各位高人:     我使用的工具是eVC4.0,前期开发了一些程序,不是利用MFC框架编的,直接用API编写的 那么我想问一下在我目前的这样开发环境下,开发数据库数据库,选用SQLite和SQLCE哪个开发容易一些呢? 另外:我没有开发数据库 ...…

查看全部问答>

大锅和机顶盒的原理是?有点疑问,很愚昧

我这样问,好像是很简单的问题了。 大锅和机顶盒好像都是只会接受消息,不会回复消息。 如果大锅能回复消息,卫星怎能承受得了。 机顶盒也是一样。 如果是这样,怎么认证帐号呢?[img=http://forum.eeworld.net/PointForum/ui/scripts/eeworld/ ...…

查看全部问答>

请教USB DEVICE 驱动的一个问题

Bulk-Only时 如果HOST向DEVICE写数据时 出现如下情况: 1 HOST发送CBW 2 DEVICE接收后开始等待DATA 3 HOST没有接收硬件层的关于CBW的确认。(对USB不了解,其中可能出现了重传等过程。最终的结果就是,HOST认为CBW没有被接收,DEVICE则等待DATA ...…

查看全部问答>

--声卡驱动 找不到 啊 !!!

音频控制芯片 SiS Azalia Audio Controller 芯片制造商 SiS 子系统ID 304217AAh 板卡制造商 Lenovo 中断 IRQ 18,INT# A ------------------------以上是Windows优化大师 检测的信息 sis high definition audio controller 着驱动精灵的信息 ...…

查看全部问答>

VGA 转 RGB

请问有谁做过VGA 转 RGB的系统没? 电脑显卡出来的VGA显示信号,转变为RGB数字信号,24位的最好, 就是想用480x272的LCD液晶来显示电脑输出的显示信号呀 ,各位高 手请指点一下,用哪个芯片好?…

查看全部问答>

怎么理解 ??????????????????????????????????????????????????????????????????

8051的停止位怎么设置? -------------------------------------------------------------------------------- 发布时间: 2006-12-15 ; 上次回复: 2006-12-15; 总计回复: 1人次 -------------------------------------------------------------- ...…

查看全部问答>

IAR5.4所產生的library(.a)如何在GCC下使用??

Dear all, 有人使用過IAR5.4產生的library,然後在GCC(WINARM)下使用嗎??…

查看全部问答>

麻烦大家给推荐个USB接口模块和蓝牙模块还有无线充电模块

如题,谢谢大家 以前没遇到过 怎么不能插入图片呢…

查看全部问答>

易电源试用心得二--再谈Ron

首先先向大家说声抱歉,试用计划里面提到的测量带载能力及效率曲线的任务我不准备做了,原因之一是我手中的工具测量精度有限,而且只有一只万用表,测量效率时需要设置多个开关不断的切换,费时费力,并且测出的数据也不具备代表性,况且大厂数据手 ...…

查看全部问答>