五种降低微控制器能耗的技术

五种降低微控制器能耗的技术,第1张

五种降低微控制器能耗的技术

在我的上一篇文章中,“你能走多低(功率)?”,我们研究了微控制器中可用的几种不同低功耗模式,以及这些低功耗模式如何影响能耗和唤醒时间。低功耗模式是降低微控制器能耗的主要技术之一,但它并不是开发人员可用的唯一技术。在这篇文章中,我们将研究我最喜欢的五种降低微控制器能耗的技术。

技巧 #1 – 利用 DMA 控制器

在微控制器中,CPU 通常是使用最多电流的耗电设备。外围设备肯定会导致能耗,尤其是在有 USB以太网控制器的情况下,但优化设备能耗的第一步是尽可能长时间地将 CPU 保持在最低状态。应用程序将需要定期唤醒以移动数据,例如从 UART 接收字节并将它们存储在缓冲区中。避免不断唤醒 CPU 以处理移动数据的一种方法是使用直接内存访问 (DMA) 控制器。

DMA 允许开发人员让他们的 CPU 保持睡眠状态,而是使用低功耗外设来完成 CPU 本来可以做的事情,在微控制器周围移动数据。DMA 控制器可用于多种用途,例如:

将数据从外设移动到内存

将数据从内存移动到另一个内存位置

将内存中的数据移动到外设

关于如何设置 DMA 的细节因微控制器而异,但好处是 CPU 可以保持在低功耗状态,直到它需要实际唤醒并处理已由 DMA 传输的数据.

技巧 #2 – 使用时钟节流

您可能从微控制器课程或在线阅读中回忆起微控制器的能耗取决于时钟频率。频率越高,能量消耗越高。应用程序不一定总是需要全速运行。事实上,根据需要做的事情来限制时钟可能是一种有效的技术,可以最大限度地减少消耗的能量。

以下面的图 1 为例,它显示了 NXP KineTIs-L 微控制器中运行模式电流与内核频率的关系。从这个图中,读者可以看到,降低时钟频率会降低能耗。还可以看出,禁用未使用的外围设备如何影响微控制器消耗的能量。

 

 


图 1 – 微控制器电流消耗作为内核时钟频率的函数。(来源:NXP KineTIs-L 数据表)

确切何时以及如何限制时钟频率完全取决于应用程序。某些应用程序可能仍希望始终全速运行。在其他情况下,可以将频率从最大值减半并以这种方式运行该部分。在其他情况下,根据应用程序正在执行的 *** 作动态更改时钟可能是有意义的。请注意,如果您决定动态使用时钟节流,您可能还需要动态更改外设寄存器设置以补偿更改。

技巧#3——利用编译器优化

现代编译器提供嵌入式优化设置,可以改善给定代码的执行时间。例如,大多数编译器为开发人员提供优化设置以执行循环展开和内联函数。虽然这只是两个示例,但开发人员可以使用这些技术来生成执行速度更快的代码。执行速度更快的代码,即使它确实使用更多代码空间,也将有机会在低功耗模式下花费更多时间,这反过来将减少应用程序消耗的能量。

我建议您尽快安排一些时间来查看您的编译器手册,看看它内置了哪些功能来帮助您更快地执行代码。虽然看起来节省几十个时钟周期似乎没什么大不了的。在数周甚至数月的过程中,这些时钟周期可以很快加起来。

技巧 #4 – 利用低功耗 (LP) 外设

如果您仔细阅读微控制器数据表,您会注意到专为低功耗 *** 作而设计的微控制器通常包含与“标准”外设分开的低功耗外设。例如,STM32 微控制器包括一个 LP 定时器。这是一个定时器外设,不包括所有额外的花里胡哨,但设计用于在低功耗环境中运行。在优化甚至开始低功耗设计时,注意这些低功耗外围设备并加以利用是无需大量额外工作即可降低产品能耗的好方法。

技巧#5——跳出框框思考

有时您可能会发现您需要真正跳出框框思考以优化能源。几年前,我正在研究一种由电池供电的医疗产品,每次充电之间必须使用电池供电 12 到 14 小时。我们选择了我们需要的电池,然后继续设计。好吧,工业设计师认为电池太大了,在没有告诉电子软件团队的情况下,他们决定大幅缩小电池尺寸,以便制造出更小、更性感的设备。该设备的第一次测试显示电池仅持续约 4 - 5 小时!

工业团队当然已经转向生产工具,并且没有回到更大的电池。唯一的选择就是疯狂地优化。尽管使用了书中所有可能的优化技术,但我只能让设备持续使用大约 8 小时。那么,可以做些什么呢?事实证明,该产品有一个板载 USB 主机,它有一个作为 MSD/CDC 设备连接的自定义存储设备。USB消耗大量能源,如果USB可以在不需要时关闭,可以节省相当多的能源。

我们必须跳出框框思考,在启动设备后,我们将禁用 USB 设备,关闭 USB 主机,当需要 USB 设备时,我们通过 USB D+ 和 D- 端口发送一条消息,发出信号USB 主机将重新启动。这是一种疯狂、丑陋的变通方法,但它成功地将电池寿命延长到 14 小时以上。有时您只需跳出框框思考即可获得所需的能源效率。

结论

在这篇文章中,我们研究了一些额外的技术,开发人员可以利用这些技术来最大限度地降低微控制器的能耗。将这些技术与低功耗模式一起使用可以显着降低设备能耗。当您致力于优化您的微控制器应用的能源时,不要忘记选择能够为您的时间带来最大收益的技术。能量优化通常会成为一个黑洞,每次迭代的时间投资回报都会递减。
 

审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2418223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存