您的位置:控制工程论坛网论坛 » 嵌入式系统 » 如何设计低功耗嵌入式系统

zhiy66

zhiy66   |   当前状态:在线

总积分:6528  2024年可用积分:0

注册时间: 2007-12-18

最后登录时间: 2012-01-11

空间 发短消息加为好友

如何设计低功耗嵌入式系统

zhiy66  发表于 2008/10/15 8:15:20      368 查看 0 回复  [上一主题]  [下一主题]

手机阅读

嵌入式系统的应用随着各种智能控制系统、智能玩具、工业控制、掌上设备(Portable)等的需求而不断扩大和流行。特别是近几年来,随着手机、PDAMP3等掌上系统的流行,使得系统功耗成为产品的设计瓶颈,也成为产品设计的关键技术之一。当然,功耗的问题本身是一个系统的问题,要想有效地降低整体功耗,不但需要在硬件上要充分考虑,而且在软件的设计上更需要认真对待。一个真正高效的低功耗系统,软硬件的相互配合和优化才是极为关键的。


一般来讲,低功耗嵌入式系统的设计包括如下的几个关键的步骤:

1.         方案的确定:方案是设计的关键,是项目成功的基本条件。方案选择错了就等于一个人走错了路,要么达不到要求,要么事倍功半,有时虽然满足了设计的要求,但却在时间、预算和成本等方面增加了更多的投入。例如在玩具行业,一般均选择4位系列的MCU来进行产品的设计,若采用8位甚至16MCU,则无论是在成本,功耗等方面都将是得不偿失的选择;

2.         器件的选型:不同的芯片,不同的厂家其所提供的产品的特性均存在差异,特别是在功耗方面,有时差别很大,比如在4MCU领域,EPSONOKI等的公司的Microcontroller的功耗就比Samsung以及台湾厂家的相同系列MCU要低几倍甚至是一个数量级。因此确定了方案之后,如何选择合理的器件和MCU,也是保证产品功耗能够达到要求的关键;

3.         硬件设计:我们知道外围电路有时是整个系统的功耗大户,比如ADC、背光、蜂鸣器、外部Memory、各种传感器等。因此如何合理设计外围电路模块,合理使用和控制相关的外围电路模块将是系统设计的重点。当然硬件的设计必须与软件的设计相结合。

4.         软件的设计:软件的设计是整个系统设计的重中之重,系统整体功耗的控制、外围电路模块的使用、调度和切换等,均需要通过软件的编程来实现。一般来讲,低功耗软件设计包括如下的几个方面:

a)         初始化:初始化是嵌入式系统设计的基本步骤,也是控制整个系统功耗的重要的步骤,何以如此呢?我们知道,一般来讲在初始化部分,我们需要对整个系统进行配置,比如IO口的设置、外围功能的配置等,而其中最容易被设计者所忽略的一步就是对在项目设计中未被使用MCU的功能的配置,有时正是这些资源的配置不合理,从而导致系统整体功耗出现意想不到的结果。

b)        系统时钟的控制:合理使用系统时钟,会在功耗方面带来意想不到的效果。我们知道,CPU的系统时钟与CPU的功耗成正比,时钟越快,其功耗也越大。因此,对于一些具有多个系统时钟的Microcontroller,软件的设计时必须根据系统需求来选择合理的CPU时钟,例如某些带有外部Memory的运动手表,在正常的运行下可以采用32768Hz作为其CPU时钟,以获得最低的整体功耗;而在访问外部Memory时,由于外部Memory的访问电流在几个毫安甚至更高,而长时间的访问势必导致功耗的增加,因此为了有效地降低由于Memory访问而导致的电流的损耗,则可以切换到1Mhz或更高的CPU时钟下,以求在最短的时间里完成对Memory的访问。当然,在进行时钟切换的时候必须进行全面的考虑,因为选择较高的CPU时钟,其MCU本身的功耗也会增加,因此我们必须要在各种因素下找到其平滑点。对于一个给定的系统,由于电压是固定的,而且电池的容量也是固定的(设位WBatt),因此系统的功耗可以用下式来进行表示:

WBatt ∑Ik*Tk       (k = 0......n)

其中,Ik为系统在不同的状态或条件下的电流,而Tk则为系统在此状态或条件下所维持的时间。

从上式可以看出,若要获得最低的功耗,要求Ik*Tk必须最小,对于一些模式来讲,时间有时是不可控制的,比如待机模式,此时只有更小的电流才能获得最地的功耗,而反应在芯片上就是一款芯片的Power Down Current;相反,对于电流是固定的情况,则必须让系统尽可能短地停留在该状态下。


c)        IO
口的控制:IO口的控制主要集中在上拉、下拉电阻的选择,待机状态下的电平输入输出设置等。对于IO口的控制,必须记住一个原则:任何情况下,都必须尽可能保证在IO口上不存在电流的流动。电流即意味着能量的损耗,因此在软件设计是必须根据实际的情况来合理配置IO口的状态和其输入输出电平;

d)        MCU工作模式的使用:对于大多数低功耗MCU,均存在多种工作模式,一般包括如下几个运行模式:

                                       i.              正常运行模式:CPUClock均在工作,此时MCU处于最大功耗状态;

                                     ii.              停机模式:CPU停止工作,但系统时钟仍在工作,此时MCU处于较低的功耗状态;

                                    iii.              掉电模式:CPU和系统时钟均停止工作,此时MCU处于最低功耗状态;

e)         外围功能模块或电路模块的管理:大多数系统的外围功能模块都是处于一种低频度使用状态,而且有时其功能的开启是有条件的,因而合理的使用和调度外围模块也是降低功耗的重要方法。例如在含有传感器的系统中,可以根据传感器数据增量的变化来提高或降低其开启的频率,就以环境温度的检测为例,由于环境的温度变化是非常缓慢的一个过程,应此对其的检测可以以一种相对较长的时间间隔来进行,入一分钟或若干分钟,若在某一次检测出现有别于常规的温度变化时,为了保证数据的可靠性,则可以在短时间内对其进行若干次的重复测量,以确认其温度的变化是否时正常的还是由于其他的干扰所导致。

1楼 0 0 回复