如何延长基于微控制器设计的电池寿命

[09-12 17:55:57]   来源:http://www.88dzw.com  单片机学习   阅读:8274

文章摘要:我们常常容易忘记最高引脚数版本的封装中,可用引脚仍在较低引脚数版本的封装硅片上。任何浮动的输入引脚都会阻碍过载电流源电流的流出,在某些情况下阻碍作用会高许多倍,如温度变化的情况下。在这些情况下,应启动内部上拉或者如果该引脚是I/O引脚,可将其配置成输出引脚(如果该引脚驱动的是开路,则与数据无关)。 延长寿命的系统软件策略 从软件角度来看,有一些明显的降低功耗的窍门。如前所述,保存能量的最佳方法就是尽可能长时间地处于最低功耗状态。由于在工作状态下,CPU活跃地执行各种指令,永远不会处于最低功耗状态中。因此,我们必须将CPU需要执行的工作量最小化。这就应该使CPU更快地完成其任务,让MCU迅速返回

如何延长基于微控制器设计的电池寿命,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

我们常常容易忘记最高引脚数版本的封装中,可用引脚仍在较低引脚数版本的封装硅片上。任何浮动的输入引脚都会阻碍过载电流源电流的流出,在某些情况下阻碍作用会高许多倍,如温度变化的情况下。在这些情况下,应启动内部上拉或者如果该引脚是I/O引脚,可将其配置成输出引脚(如果该引脚驱动的是开路,则与数据无关)。

延长寿命的系统软件策略

从软件角度来看,有一些明显的降低功耗的窍门。如前所述,保存能量的最佳方法就是尽可能长时间地处于最低功耗状态。

由于在工作状态下,CPU活跃地执行各种指令,永远不会处于最低功耗状态中。因此,我们必须将CPU需要执行的工作量最小化。这就应该使CPU更快地完成其任务,让MCU迅速返回低功耗模式中。

这儿有一些降低CPU工作时间的技巧。尽量使用最短的数据类型。当写入C代码时,我们很容易忘记一点,即普通的整数常常被定义为16位或32位的数字,即使是在8位MCU的编译器中亦是如此。

对于8位的器件,应默认使用8位字符类型,除非必须使用更长的字节。即使字节长度需要更长,同样可以通过将16位或32位数字分解成几个8位片段,只在数据处理最后阶段才将其连接起来的方法就可以降低代码长度。

如果有额外的内存来使用直接插入码,就应避免使用短循环或子程序调用。每个循环和子程序都会使用额外的CPU周期来确认循环是否完成,或者是将程序计数器推入堆栈和弹出堆栈。

如果你知道一个短循环只会执行四次,那么就在一行之内写入四次相同的代码,而避免使用for-next或while-loop循环语句。如果一个子程序只有10或20比特的代码,考虑将其直接插入以取代使用子程序。在简单的任务中,这种方法将大大降低CPU负载。

在适当的时候将数值预先计算好。回到我们的自行车里程表例子中,根据主控制面板是与显示器还是与速度传感器进行对话,假设RF链路分别采用两种波特率。当写入C代码时,将实际波特率代替串行接口所需的实际预算数值传输给串行接口设置程序可能更好。

毕竟这会使代码的可读性更强些。但是,这同样也导致串行接口程序不得不在波特率每次发生改变时都根据新的波特率计算出预算数值。将预算数值预先算好并传输给串行设置程序将会减少CPU周期和代码长度。

要考虑使用查表方法取代复杂的计算。如飞思卡尔公司HCS08家族的MCU就拥有非常有效的访问表格数据的指令和寻址模式。根据计算的复杂性,该方法能够节省一些CPU的计算。如果计算仍不可避免,那么就应在程序开始之前确保尽早退出计算。 简单的例子是通过“1”或“0”搜索乘法运算。

本文小结

当今的多功能微控制器能够为电池供电应用的设计工程师提供许多延长此类设备电池寿命的方法。多种低功耗模式和灵活的时钟源让设计工程师能够对节能和所需的性能进行管理,以实现设计目标。当CPU要求高时进行高速运作,反之则进行低速运作。要在任何可能的时候转入低功耗模式。

除了对MCU自身功耗进行管理之外,通过深谋远虑的系统规划可使MCU管理整个系统的功耗。MCU能够在需要时使系统内的设备和电路开始运作或停止运作,几乎如同MCU管理其片上外设一样简单。

不可忽视的是,软件工程师们可以通过建立CPU周期意识来延长电池使用寿命。CPU所执行的指令越少,MCU就能够越快地进入低功耗模式。创造许多简单的函数可以缩短代码长度,但是却断送了缩短电池寿命的努力。另一方面,尽可能使用最短的数据类型会在缩短代码长度的同时延长电池寿命。

因此,下次选用电池供电系统设计时,别忘了对您的MCU做出明智的选择,同时使用MCU能够提供的所有功能来管理整个系统的功耗。


上一页  [1] [2] [3] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《如何延长基于微控制器设计的电池寿命》相关文章

分类导航
最新更新
热门排行