新闻中心

EEPW首页>电源与新能源>设计应用> 怎样延长微控制器设备的电池寿命

怎样延长微控制器设备的电池寿命

作者: 时间:2010-08-01 来源:网络 收藏

的系统硬件策略

  除了低功耗模式及时钟管理以外,想要使功耗最小化还应在设计时考虑许多硬件和软件方面的因素。从硬件角度来看,控制好MCU内外的外设功耗能够在很大程度上降低整体功耗。

  禁止片上外设使用MCU控制寄存器是一个很直接的方法,但该方法的效果可能没有直接禁用MCU外部外设那么明显。使用通用的I/O引脚,可以控制外部电路的功耗。

  里程表例子中是通过速度传感器来测量车轮的速度。这可以通过将LED和光传感器安装于车架上,并将槽盘安装于车轮中来实现。持续工作的LED和光传感器将会消耗大量的电流。而使用I/O引脚,使LED和光传感器只在进行速度测量时工作,就将会大大降低电流。

  当前,分立元器件,如LED和光传感器可以明显地控制I/O,但仅限于能够以类似模式控制的电路。如果这些器件需要的电流大于MCU能够直接提供的电流,就可以使用缓冲器作为这些电路的电源开关。在某些情况下,将几个I/O脚并联在一起就能够提供足够的电流。

  速度传感器同样有另一方法可以降低电流。如果持续读取光传感器来检查光线是否穿过槽盘,那么MCU必须一直处于更高电流的工作模式。由于我 们所关心的仅仅是从亮到暗或从暗到亮的转变点,因此可以使用中断来代替持续轮询。中断使MCU进入一个低功耗的等待模式。MCU的计时器可以持续计数,并 且通过使用与光传感器输出相连的一个输入捕捉特性,我们很容易就能够测出速度传感器的亮/暗时间,进而算出每分钟转速(RPM)。

  如果配置不当的话,MCU的I/O脚自身就会成为过载电流源。不用的引脚应即时关闭,避免浮动输入造成一个大的电流路径。在使用采取多种封装形式的MCU时,这一点常常会被忽略。

  我们常常容易忘记最高引脚数版本的封装中,可用引脚仍在较低引脚数版本的封装硅片上。任何浮动的输入引脚都会阻碍过载电流源电流的流出,在 某些情况下阻碍作用会高许多倍,如温度变化的情况下。在这些情况下,应启动内部上拉或者如果该引脚是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 下一页

评论


相关推荐

技术专区

关闭