前言
80C51单片机由于功能全面、开发工具较为完善、衍生产品丰富、大量的设计资源可以继承和共享,得到广泛的应用。我们设计的一款手持线PDA产品,也选择80C51单片机作为主、辅CPU,还具备点阵液晶显示屏、导电橡胶键盘、双IC卡接口、EEPROM存储器、实时时钟和串行通信口。由于使用80C51单片机开发,高级语言编程,大大降低了设计的技术风险,产品在较短的时间内就推向了市场。
但是,同一些低速的微控制器(如4位单片机)和高速的RISC处理器相比,80C51单片机在功耗上没有优势。为了在PDA类产品中发挥80C51单片机的上述特长,我们通过采取软、硬件配合的一系列措施,加强低电压、低功耗设计,取得了良好的效果。该机使用一颗3V钮扣式锂电池,开机时工作电池小于4mA,瞬间最大工作电流小于20mA,瞬间最大工作电流小于20mA,关机电流小于2μA。一颗电池可以使用较长的时间,达到满意的设计指标。
一、低电压低功耗设计理论
在一个器件中,功耗通常用电流消耗来表示。下式表明消耗的电池与器件特性之间的关系:
Icc=C∫Vda≈ΔV·C·f (1)
式中:Icc是器件消耗的电流;Δ是电压变化的幅值;C是器件电容和输出容性负载的大小;f是器件运行频率。
从公式(1)可以得到降低系统功耗的理论依据。将器件供电电压从5V降低3V,可以至少降低40%的功耗。降低器件的工作频率,也能成比例地降低功耗。
80C51的器件电流包括两部分:核心电流和I/O电流,即:
Icc=ICORE+II/O (2)
核心电流是内部晶体管开关和内部电容充放电所消耗的电流,占有器件电流的较大比例。
ICORE=Vcc·CEQ·f (3)
式中:Vcc是器件工作电压;CEQ是内部结点和走线的电容,它是器件的固有属性,可由式(3)在一定的电流、电压和频率测试值下计算出来;f是核心工作频率。
I/O电流主要是地址/数据总线、RD、WR和ALE信号消耗的电流,在器件电流中占的比例较小,其数值有以下经验公式:
II/O=IREAD·(0.8)+IWRITE·(0.2)+ICONTROL (4)
IREAD、IWRITE分别是读写状态的I/O电流;ICONTROL是控制信号RD、WR、ALE的电流。以写状态I/O电流为例:
IWRITE=(V·C·f)·(1/n)·(X+Y) (5)
式中:V=Vcc;C是每个引脚的负载电容和电路板的线路电容,大约2pF/in(in为英寸);f是CPU工作频率;n=24,每个总线周期所花费的机器周期数;X是寻址阶段变化的引脚数;Y是传输数据阶段变化引脚数。
二、PDA类产品中CPU的选择
近年来80C51衍生产品涌现出许多低电压、低功耗品种,各具特色。如:ATMEL公司AT89LV5X系列,程序存储器4KB~20KB;PHILIPS公司LPC系列,高速低耗,片内集成的多种低功耗功能,极有阶段,但程序存储器空间只有2KB或4KB;台湾华邦公司W78LE和W77LE系列,有8~64KB程序空间和普通/高速多种型号可以选择。选择合适的CPU还有与后介绍的各项低功耗设计技术的使用有关,与软件规划和正确编程有关。
在开发过程中,我们经过试用和比较,发现适合PDA类产品应用、性能价格比最高的选择是华邦公司的W78LE516。W78LE516是华邦公司2000年发由的新产品,它有以下特点适合PDA类产品:
·工作电压2.4~5.5V,适合便携式产品的供电方式;
·全静态设计,工作频率从0到最大40MHz,适合低功耗产品的特殊要求;
·64KB可多次编程的片内应用程序存储器,非常适合于较大的程序和高级语言编程;
·4KB片内引导程序存储器,用于实现应用程序的在线编程;
·比80C52多一倍的512字节片内RAM,其有256字节AUX RAM;
·PLCC和QFP封装比通常的80C51多4个I/O口,P4口具有多种功能;
·完善的低功耗模式,特别是中断能够唤醒掉电模式;
·可靠的加密编程,保护开发者的知识产权和劳动成果。
三、晶振频率是决定功耗的基本环节
在5V电压下运行于12MHz的80C51,工作电流达到十几mA,无论如何难以在电流供电环境中使用。从公式(3)和图1可以看出,工作电流与晶振频率成严格的线性关系,空闲、掉电模式的电流也有类似的线性关系。因此,尽可能地降低晶振频率能够有效地降低整机电流;但是,降低晶振频率往往会受到系统运行速度的制约,需要综合考虑各部分的工作速度和整机信息算是的速度,选择一个合适的最小晶振频率。例如,128X64点阵液晶采用并行总线访问时,整屏汉字显示刷新需要80C51单片机2MHz的时钟频率才不会感觉响应迟钝;如果采用串行方式,显示还会更慢;串行EEPROM是串行访问数据的,还有起始停止位、地址选择、应答位等开销,读写时间较长;复杂算法对系统运行速度也有较高要求。考虑到串行通信波特率精确计算,我们最终确定晶振频率为3.686MHz,最大通信波特率可达到19200bps。在这一时钟频率下,78LE516的运行电流大约为3mA。
四.电压与CPU功耗成正比
从式(3)还可以看到,降低80C51的供电电压能够成比例地降低功耗。由图1可知,选择3V供电电压要比5V供电电压的功耗下降一半。随着低电压CPU的选择,其它部分也要选择低电压的型号。我们选择的器件全部可以工作到2.7V,最终确定工作电压为3V,由稳压电路提供稳定的输出。此外,值得一提的是,3.3V也是一个较好的选择,因为3.3V是W78LE516在线编程(ISP)的电压下降,ISP是一个很有价值的功能,并且3.3V电压一睥器件也较容易得到。
五、让空闲模式和掉电模式占用更多的时间
80C51有三种工作模式:运行模式、空闲模式和掉电模式。正确编程以便使80C51在较多的时间内工作在后面两种模式下,是PDA类产品降低功耗的有效途径。对于W78LE516,2.4V供电电压和12MHz时钟频率下,三种模式的电流消耗如表1所列。
表1
模式
运行
空闲
掉电
电流(max)
3mA
1.5mA
20μA
低功耗的软件原则是让运行模式远比空闲、掉电模式少占用时间,尤如一个占空比很小的脉冲,消耗的能量较少。在开机状态下,靠中断唤醒CPU,在短暂的时间内工作在运行模式,处理相应的事件,然后进入空闲(或掉电)模式;在关机状态下,完全进入掉电模式。
PDA类产品的主要机时占用是显示和按键的交互操作。仅在较短的时间内有大量的计算,需全速运行,显示也是瞬间完成,大部分时间花在等待按键上。如果采用查询方式,CPU钭以运行模式等待按键,耗电较大;如果采用中断方式,则可以由中断唤醒CPU,让较长的等待按键时间,都处在空闲模式(或掉电模式)。
中断有两种实现方式:一种是键盘接到外部中断引脚,外部中断唤醒CPU;一种是采用定时器中断,定时唤醒CPU,完成键盘处理和其它工作后CPU又进入休眠状态。
令人耳目一新的是,通常的80C51从掉电模式唤醒到运行模式,只能靠硬件复位;而78LE516可以通过第二途径——中断INT0和INT1来唤醒,这对于PDA类产品权为有利。因为掉电模式的功耗,会比空闲模式小2~3个数量级,整机功耗将会进一步降低。类似的功能在PHILIPS公司的PLC系列低功耗单片机中也提供。
六、外围器件的合理使用
由于外围器件的使用不是很频繁,所以要选择带片选功能的外围器件, 不使用它们时进入低功耗模式。
减少外围器件的使用是PDA类产品降低功耗、减小体积的积极办法,但这要视系统可行性而定,并需要软件的配合。例如,使用78LE516内部64KB程序空间,对中等规模的系统已经足够,可以不使用外部程序存储器;使用好78LE516内部RAM,尤其是比80C52多出的内部256字节AUX RAM,可以节省外部RAM和寻址电路,这需要对软件很好地规划;78LE516的P4口可以义为指定外部地址的设备片选信号,可以节省外部地址译码电路。
不可小视CMOS器件未使用的输入口。一个悬空的输入端不但可能因为其高输入阻抗而感应电荷,损坏器件,而且可能造成不断唤醒CPU,不能进入掉电模式。假如输入口感应到较高频率的信号。增加的电流甚至高达20mA。这一结论从公式(1)的理论和开实践都可以验证。正确的处理办法是将未使用的输入接到Vcc或地。
七、关机后关断整机电源
对于钮扣电池供电的设备,关机态的电流消耗也是不可忽略的。10μm的关机电流累积一个月,就会消耗大于6%的电池容量。
关断整机电流的简单方法是用CMOS触发器控制一个晶体管做的电子开关,通常开关三极管的截止电流小于500mA。
我们设计的智能电源控制电路,靠一个耗电极少的单片机PIC12LC508A控制晶体管电子开关和DC-DC变换器,可以实现单键开关机、自动关机、禁止关机、定时开机等功能。
现在,越来越多的电池变换芯片具有SHUT DOWN引脚和电流与负载断开的功能。采用这一特性实现的电路,使用与图2类似的原理,关机电流也可以达到1μA以下。