原创 单片机低功耗技术及应用

2009-8-13 08:59 2305 5 5 分类: MCU/ 嵌入式
摘要:介绍单片机的低功耗设计技术特点及单片机应用系统中的低功耗设计要注意的几个问题,并列举了充分利用片内资源实现低功耗及C语言源程序。

1Z$\!F{ |OO'v0    关键词:单片机 低功耗 设计

4gm#Gce+I3|:C0

7`#cP G(E#C`Krw0随着集成电路技术和工艺的飞速发展,真正单片化的单片机已经成为主流产品。它的绝在部分资源都在单片机芯片内部;过去需要用外部扩展器件才能实现的功能,如 ROM、RAM、A/D、D/A、数字量I/O、显示驱动等功能,现在在单片机内部就可以完成。单片机真正单片化,省去了大量的硬件开发调试工作,大大地提高了工作效率;系统先天的可靠性、抗干扰能力得到了显著的改善。经实验测试,实现同样功能的系统,采用单片方式比总线扩展方式具有更多的优点。系统不仅功能强、性能可靠、成本降低,而且进一步微型化和便携化。因此,使用电池作为系统的电源也越来越普遍。系统的最小电源消除和最大的电池寿命就成为主要的技术要求。例如1999年的多国仪器仪表展览会上,不止一家国外公司展出了使用电池的工业流量计,5~10年都不必更换电池和进行维护。所以低功耗单睡要同的应用有着非常广阔的天地。低功耗单片机应用符合现代电子终端产品的要求:便携、节能、可靠等。目前国际上先进的单片机生产厂商,如日本NEC、富士通、爱普森和美国TI等公司都采用了低功耗设计。笔者在一些应用中使用了日本NEC公司的78k0和78K0S系列的单片机,其休眠状态下的功耗电流可达到 0.05~0.01μA

GeP)[!r9i%C0 电子园51单片机学习网l@YT\

1 单片机的低功耗设计技术电子园51单片机学习网8W|K#z'D0w6w9j


^yX8y Va01.1 高集成度的完全单片化设计电子园51单片机学习网sU?VF&Y,z.w4i m1h


tp4Qa!_!zY0将很多外围硬件集成到了CPU芯片中,增大硬件冗余。内部以低功耗、低电压的原则设计,这给单片机的低功耗设计提供了很强的支持。电子园51单片机学习网[ Z-R9Z_.L c?

电子园51单片机学习网 nS:X(}v Yq

1.2 内部电路可选择性工作电子园51单片机学习网!qN;gAoC)A5YW.oE


3I9tIB QP Q0通过特殊功能寄存器选择使用不同的功能电路,即依靠软件选择其中不同的硬件;对于不使用的功能使其停止工作,以减少无效功耗。

\'v`Kp$c"e^E w0 电子园51单片机学习网){r`R3kk}g {

1.3 宽电源电压范围

5{!GVYx.G:qI0 电子园51单片机学习网d:Z2^h\2QS;n i[S

先进的单片机芯片工艺特别决定了单片机在很宽的电源电压范围内部能正常工作。例如,NEC公司的78K0和78K0S系列的单片机,可以在 1.8V~5.5V电源电压范围内正常工作。单片机供电电压范围的放宽,可以进一步拓宽单片机的应用领域,尤其是便携式或掌上型仪器或装置,可以放心地使用电池作为电源,而不必关心电过程电压曲线是否平衡、是否会影响单片机正常工作,更不必因电池供电而专门增加稳压电路,从而可减少大约1/3的功率消耗。电子园51单片机学习网g Q1z u;@cD

电子园51单片机学习网O.tG;bQ1y q(Y`

1.4 具有高速和低速两套时钟电子园51单片机学习网q[8y}LPl:P

电子园51单片机学习网$Z cr+W*q&}X k3mLv7E

系统运行频率越高,电源功耗就会相应增大。为更好地降低功耗,内部集成了两套独立的时钟系统,高速的主时钟和32.768kHz的副时钟。也可在满足功能需要的情况下按一定比例降低CPU主时钟频率,以降低电源功耗。在不需要高速运行的情况下,可选用副时钟低速运行,进一步降低功耗。通过软件对特殊功能寄存器赋值可改变CPU的时钟频率,或进行主时钟和副时钟切换。电子园51单片机学习网:P6L*Z4n6t(F6rq
图1 cpu在几种不同频率下工作的电源功耗比较电子园51单片机学习网|e0\A~VX

t8n&p7@"Ir'Yz#[ Y0J0

pYs/{7l:GYb.Mx0    1.5 在线改变CPU的工作频率 电子园51单片机学习网)y | q8T6?.e(d9? {j


!d2pl#m5E0QW0可根据CPU处理任务的不同,在外部振荡器不变的情况下,通过程序改变处理器时钟控制寄存器PCC的值,在线改变CPU的频率。CPU在几种不同频率下工作的电源功耗比较如图1所示。电子园51单片机学习网g%f(Oo#PC!gd5e


Q.Xih@n)L01.6 后备功能

!j7\P;K|0

8C iW;{'C1N\] r0后备功能是为了进一步降低系统功耗。CPU用主时钟时有HALT(待机)模式和STOP(休眠)模式,用副系统时钟时有副时钟运行模式和HALT模式。如表1所示。
6]LziT IOr8U0
iyU4x?5NT#q n0表1 NEC单片机后备模式

d{P;e w(o!o8P0 电子园51单片机学习网/~fy{)]


时钟源模  式描    述
主系统时钟HALTCPU时钟关闭,外围时钟工作
STOP主时钟停振,除中断控制器外的其它外围电路停止工作
副时钟系统副时钟运行主时钟停振,CPU使用副时钟,钟表定时器工作,其它外围电路停止工作
HALT主时钟停振,CPU时钟关闭,钟表定时器工作,其它外围电路停止工作
}:A+c8Oo OA0

W4LV0ip;J01.7 内部钟表定时器

4_+HFU!b{0 电子园51单片机学习网(i ]a@1Vh

NCE 单片机内部提供了时钟定时器,每隔0.5s产生一次中断。在系统处于休眠状态时,仍可定时被唤醒。对于单片机只须间歇工作、但又需要实时计时功能的应用场合,提供了非常有效的节能方法。CPU在不工作时可进入STOP模式或HALT模式,进入低功耗的后备功能状态。当时钟中断到来时,CPU回到正常工作状态,进入时钟中断处理程序做时钟更新处理,然后再进入后备功能状态。

:t*?U$Y!k}&C0 电子园51单片机学习网 l?0f/e*s;g,psn&^1|

2 单片机应用系统中的低功耗设计主要注意的问题

8a2u Z B/DWc{;\3uH0 电子园51单片机学习网;?z6TQ8s#QsG&D

(1)系统中单片机以外的其它电路器件尽可能选用静态功耗低的器件,如选用CMOS电路芯片。

.^ a$UFk9Y0 电子园51单片机学习网a w1woO[

(2)外部设备的选择也要尽可能支持低功耗设计。

5~YDz#Q+F:MD ~0

+@%AK [/m3FC0K0(3)设计外部中断唤醒电路,使单片机在等待时可进入休眠模式或待机模式,需要时由外部中断信号唤醒。电子园51单片机学习网:Q*jf!yx/mm


hW9U?0[0H ea0(4)设计外部器件的电源控制电路,使外部器件或设备在不工作时关断供电,减少无效功耗。电子园51单片机学习网9DeTP6[H


f3{;wK c6\%z{0(5)设计充分利用系统低功耗特点的软件。

7Ff7e+KsZ0 电子园51单片机学习网"?5zyod0I8RJ!] B

3 在线改变CPU的时钟频率以降低功力量的C语言程序举例电子园51单片机学习网 P7e vSx]~

电子园51单片机学习网;S1js0kb'}*l#X

CPU在不需要高速运行时,可设置在较低的时钟频率下工作,在运行过程中可根据需要在线改变CPU的时钟频率。下面是一个通过按键产生外部中断信号改变NCE单片机μPD780058的CPU时钟频率的程序,它使CPU在主、副时钟切换运行。通过I/O口P6的位0引脚连接1个LED小灯,每按下一次按键就使CPU的时钟频率改变。在主时钟和副时钟频率下工作时,用同样的软件延时程序控制小灯点亮的时间,以此观察CPU的运行速度。

S+| QX$e{0

*V t0q@qox0程序清单:电子园51单片机学习网/`.Sw S z;a

电子园51单片机学习网v#Tz0lpv Uk{

//**************宏定义**************

2u8V,[G'O1Su0 电子园51单片机学习网k-?P|;w@!d

#define PCCMODEM 0x00 //CPU时钟控制寄存器PCC

h&S2H;T}*P-k%D0

*L;G jq)TM,i$f$`0//定义为选主系统时钟

%h)H5W6I7JnUiW0 电子园51单片机学习网!l{8n)id1[

#define PCCMODES 0xf0 //CPU时钟控制寄存器PCC电子园51单片机学习网)Hs2te)K \n&eQ

电子园51单片机学习网u I\'u(I-i,d_N

//定义为选副系统时钟

iRhX?(a0

Uw N)e3~+PW%T+rM0#define PORT60 1 /P6口位0赋初值/电子园51单片机学习网 A'B7H4zTB'x

电子园51单片机学习网]d.Jt9d [C r1Q

#define PORTM600 //P6口位0设为输出电子园51单片机学习网k,[bU(^7qA1`

电子园51单片机学习网R v0t_2A*m U_ H

#define INTM0M 0x00 //定义外部中断INTP1的电子园51单片机学习网$uf&D6R l

电子园51单片机学习网wVk-L G

//中断触发沿为下降沿电子园51单片机学习网bXF k s_


fJa.Mk A0//*****单片机内部功能使用的定义*****电子园51单片机学习网v4xn R"J+npZ0u?


0Fq SS RR__ T*y]0#pragma sfr //使用特殊功能寄存器电子园51单片机学习网8g z:P+[;p7D:Nh


YIC3N]XM0#pragma HALT //使用HALT功能电子园51单片机学习网@t yCr/K4}

电子园51单片机学习网.C3_+e_"ff

#pragma interrupt INTP1 inter RB1 //使用中断功能

3Qn0T} Oe2M)sMlW0 电子园51单片机学习网ajK4oDd,U

#pragma DI //使用关中断功能电子园51单片机学习网R&EW_M&f0iF


n-^ X#M9lRq0#pragma EI //使用开中断功能电子园51单片机学习网j!|j9z;U4a


/l*`#O:c4C$u0//*************变量定义*************

#O2R~'W%w^0 电子园51单片机学习网 O+RG)zN]^O^3a

unsigned int b; //定义软件延时计数变量

R jdhRG0 电子园51单片机学习网6_y Q}Oz q

char msflag; //定义主、副时钟切换标志电子园51单片机学习网 T P6Y_M'E,O8sJ-vs


Xq I3[*U@d _0//**************主函数**************电子园51单片机学习网4MZtZ)}7|4E

电子园51单片机学习网|a~V"a I

void main()电子园51单片机学习网7iR h`Z({2lAP

电子园51单片机学习网+j"[Y],An

{电子园51单片机学习网7n-}f)ss(?)@


'n tO*Zbr3_U0PCC=PCCMODEM; //CPU用主系统时钟

D!X'{zcE&w0

Khl^_w+r0P6.0=PORTM60; //P6口的位0赋初值电子园51单片机学习网(t5iw |.u[{

电子园51单片机学习网^X6Y N0A6N&DM F&H

PM6.0=PORTM60; //P6口的位0为输出

8i$fdxB?#NI o0

\||Ocm Rux0INTM0=INTM0M; //INTP1下降沿触发电子园51单片机学习网7bN3`vR2{o `$Z


Vub)b"`~:i l IE3JR-|0PMK1=0; //清除INTP1中断屏蔽

f!KM$k8Mo$hu0 电子园51单片机学习网M&b7L9bE2t:L!K_

Msflag=0; //选用主副时钟的标志

?{C2Yp?K0 电子园51单片机学习网&a Xta3H|

EI(); //开中断电子园51单片机学习网'qP[4~,i zX.s

电子园51单片机学习网|5\ o]{[

While(1)电子园51单片机学习网0f'_1WG5Pl9T ]

电子园51单片机学习网"b*I2D;n(}#W8Z(Ad

{电子园51单片机学习网nM i7J#^9u


y5N;N/FD0if(msflag= =0) //时钟切换标志为0时电子园51单片机学习网L[&L NN9[2X

电子园51单片机学习网wg:v7w L"?{4f:G lL

msflag=1; //标志变为1电子园51单片机学习网$U?6o:pjG


Rg*{;tL!T0else msflag="0"; //否则标志变为0电子园51单片机学习网1{*`(Nq+lC


x"p5I&u8mC&p(_-AWHn0P6.0=0; //点亮LED灯电子园51单片机学习网 e!^7["Z-F.^6u


U_Jb^"z q }(d0b=0; //软件延时的计数值赋初值电子园51单片机学习网0u%h2c%?0\*RYR:@8xJ


K9d\ Yp2kl8rX0while(b<=10000)电子园51单片机学习网tF u.\~m G|

电子园51单片机学习网n$S PX%\c Z

{电子园51单片机学习网Ar tsjKQ%G6v


4akH3mfI)j o0b++; //软件延时(注意系统时钟为)

GS [~/bC0

oQ~RQ2X'Q0//主时钟与副时钟延时电子园51单片机学习网3T {`]1z/q9\,l-T

电子园51单片机学习网LtT@O(U

//时间的长短是不同的)电子园51单片机学习网 k"b bu i+J


&Tl`cYMz3ShG~0}电子园51单片机学习网^ _Qb/}

电子园51单片机学习网 w2\TX;@4ny j

P6.0=1; //熄灭LED灯

3Z$jT Lh0 电子园51单片机学习网 vY@;?)Y%Q8_(_0U

HALT(); //进入HALT状态

d,r4u {Vz sj}2g9Z0

5C E1Fi|d y0}电子园51单片机学习网` gdont+rm6M F+J


} r"F(D[-ELq0}电子园51单片机学习网k _lN&cT j8|W

电子园51单片机学习网!X3F;SoNh&lNt

//************中断服务函数************

y ^p'm3u:x0 电子园51单片机学习网 I E!t}i)qV

void inter(void)

e,xe9H$WaW?sN/z]0

!s1a x |s%cgD0{

(n5c1dS5|*`.i8e0

.SwH)d6t(t0if(msflag= =0) //若时钟切换标志为0电子园51单片机学习网TFHLM"X8|0C

电子园51单片机学习网\vw7e$n)VkL%z

PCC=PCCMODES; //CPU使用副时钟电子园51单片机学习网Zb:K U\Fjp

电子园51单片机学习网0@4Z1Zq8S

Else //否则

ZYH*X6W,Q.S0

{$A6aD&q)GZe$I,v C0PCC=PCCMODEM; //CPU使用主时钟

IW.KsJ6`0 电子园51单片机学习网6H"E?:r-[1a

}

1K&W,Ik.K]1Y+N$@0

D*{0f6F~I0a1AG%D0低功耗单片机的应用使电子产品、控制系统更符合当今时钟的要求,达到便携、低功耗和高可靠性。加之用高级语言(如C语言)对单片机进行开发的工具日臻完善。更为快速高效的开发应用提供了良好的条件和环境。低功耗的节能单片机应用系统将会带来很好的社会效益和经济效益

u#Z:o%B^,T5n)E0
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条