打印

单片机系统的低功耗设计策略

[复制链接]
925|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Plantt|  楼主 | 2018-12-31 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机系统的低功耗设计策略

       摘要: 嵌入式系统的低功耗设计需要全面分析各面因素,统筹规划。在设计之初,各个因素往往是相互制约、相互影响的,一个降低系统功耗的措施有时会带来其他方面的“负效应”。因此,降低系统整体功耗,需要仔细分析和计算。本文从硬件和应用软件设计两个方面,阐述一个以单片机为核心的嵌入式系统低功耗设计时所需考虑的一些问题。

        关键词: 低功耗设计 硬件设计 应用软件设计 低功耗模式

    在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。

   随着越来越多的嵌入式应用使用了实时操作系统如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。本文仅从硬件设计方面讨论。



1 硬件设计

   选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。

1.1 选用尽量简单的CPU内核

   在选择CPU内核时切忌一味追求性能。8位机够用,就没有必要选用16位机,选择的原则应该是“够用就好”。现在单片机的运行速度越来越快,但性能的提升往往带来功耗的增加。一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入STOP状态,漏电流也变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。

1.2 选择低电压供电的系统

   降低单片机的供电电压可以有效地降低其功耗。当前,单片机从与TTL兼容的5 V供电降低到3.3 V、3 V、2 V乃至1.8 V供电。供电电压降下来,要归功于半导体工艺的发展。从原来的3 μm工艺到现在的0.25、0.18、0.13 μm工艺, CMOS电路的门限电平阈值不断降低。低电压供电可以大大降低系统的工作电流,但是由于晶体管的尺寸不断减小,管子的漏电流有增大的趋势,这也是对降低功耗不利的一个方面。

   目前,单片机系统的电源电压仍以5 V为主,而过去5年中,3 V供电的单片机系统数量增加了1倍,2 V供电的系统也在不断增加。再过五年,低电压供电的单片机数量可能会超过5 V电压供电的单片机。如此看来,供电电压降低将是未来单片机发展的一个重要趋势。

1.3 选择带有低功耗模式的系统

   低功耗模式指的是系统的等待和停止模式。处于这类模式下的单片机功耗将大大小于运行模式下的功耗。过去传统的单片机,在运行模式下有wait和stop两条指令,可以使单片机进入等待或停止状态,以达到省电的目的。

   等待模式下,CPU停止工作,但系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式的50%~70%。

   停止模式下,系统时钟也将停止,由外部事件中断重新启动时钟系统时钟,进而唤醒CPU继续工作,CPU消耗电流可降到μ**。在停止模式下,CPU本身实际上已经不消耗什么电流,要想进一步减小系统功耗,就要尽量将单片机的各个I/O模块关掉。随着I/O模块的逐个关闭,系统的功耗越来越小,进入停止模式的深度也越来越深。进入深度停止模式无异于关机,这时的单片机耗电可以小于20 nA。其中特别要提示的是,片内RAM停止供电后,RAM中存储的数据会丢失,也就是说,唤醒CPU后要重新对系统作初始化。因此在让系统进入深度停止状态前,要将重要系统参数保存在非易失性存储器中,如EEPROM中。深度停止模式关掉了所有的I/O,可能的唤醒方式也很有限,一般只能是复位或IRQ中断等。

   保留的I/O模块越多,系统允许的唤醒中断源也就越多。单片机的功耗将根据保留唤醒方式的不同,降至1μA至几十μA之间。例如,用户可以保留外部键盘中断,保留异步串行口(SCI)接收数据中断等来唤醒CPU。保留的唤醒方式越多,系统耗电也就会多一些。其他可能的唤醒方式还有实时钟唤醒、看门狗唤醒等。停机状态较浅的情况下,外部晶振电路还是工作的。

   以Freescale的HCS08单片机为例,给出不同运行模式下的系统功耗。HCS08是8位单片机,有多个系列,各系列I/O模块数目有所不同,但低功耗模式下的电流消耗大致相同。

   以R系列单片机为例:在室温(25℃)下,不包括I/O口的负载,以2 V供电,将可编程锁相环时钟设为16 MHz(总线时钟8 MHz),典型电流值为2.6 mA,当温度升高到85℃时,供电电流也升高到3.6 mA;而采用3 V供电,这一组数据升高至3.8 mA和4.8 mA。用2 V供电,直接使用外部晶振2 MHz(总线时钟1 MHz)时,典型运行电流降至450 μA。在等待状态下,因时钟并没有停止,耗电情况和时钟频率有很大关系,节省的功耗有限;而进入轻度停止(stop3),以外部中断唤醒,电流消耗在0. 5 μA左右。在中度停止态(stop2),功耗可进一步降低。使用内部1 kHz的时钟,保持1个运行的时钟,周期性唤醒CPU,所增加的电流约为0.3 μA。在深度停止态(stop1),RAM的数据也不再保留,只能通过外部复位重启系统,此时的电流消耗可降到20 nA。以上数据都是在室温下测量所得。当环境温度升高到85℃时,电流消耗可能增加3~5倍.


相关帖子

沙发
gygp| | 2019-1-2 16:59 | 只看该作者
进入掉电模式啊   

使用特权

评论回复
板凳
chenci2013| | 2019-1-2 17:00 | 只看该作者
适当的休眠还是可以节省一些功耗的

使用特权

评论回复
地板
biechedan| | 2019-1-2 17:00 | 只看该作者
可以考虑把晶体搞到32k去运行

使用特权

评论回复
5
wangdezhi| | 2019-1-2 17:01 | 只看该作者
软件优化很重要!

使用特权

评论回复
6
isseed| | 2019-1-2 17:01 | 只看该作者
可以通过降低主频

使用特权

评论回复
7
xietingfeng| | 2019-1-2 17:02 | 只看该作者
可采用降低工作频率的方法

使用特权

评论回复
8
suzhanhua| | 2019-1-2 17:02 | 只看该作者
干脆采用MSP430,一般<1mA

使用特权

评论回复
9
mituzu| | 2019-1-2 17:02 | 只看该作者
利用单片机的中断和休眠功能

使用特权

评论回复
10
hellosdc| | 2019-1-2 17:02 | 只看该作者
注意空闲IO口的状态         

使用特权

评论回复
11
uiint| | 2019-1-2 17:03 | 只看该作者
好的系统设计是降低功耗的关键。

使用特权

评论回复
12
hellosdc| | 2019-1-2 17:03 | 只看该作者
输出的最好置低,输入的要视外围电路而定

使用特权

评论回复
13
gygp| | 2019-1-2 17:03 | 只看该作者
单片机进入掉电模式下,待机电流就很低了。         

使用特权

评论回复
14
mituzu| | 2019-1-2 17:03 | 只看该作者
单片机尽可能的处于休眠等待状态

使用特权

评论回复
15
chenci2013| | 2019-1-2 17:03 | 只看该作者
提高主频反而会获取更多的休眠时间,反而使系统功耗更小了。

使用特权

评论回复
16
suzhanhua| | 2019-1-2 17:03 | 只看该作者
稍稍采取措施,马上可以接近零功耗!

使用特权

评论回复
17
biechedan| | 2019-1-2 17:03 | 只看该作者
采用线性降压的方法,电源损耗大

使用特权

评论回复
18
xietingfeng| | 2019-1-2 17:03 | 只看该作者
工作频率的下降可大大降低功耗        

使用特权

评论回复
19
wangdezhi| | 2019-1-2 17:03 | 只看该作者
开关电源本身消耗的电流就是一个大问题

使用特权

评论回复
20
isseed| | 2019-1-2 17:03 | 只看该作者
将IO口置在比较合适的状态来达到一个比较省心又省力的方式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

4

粉丝