计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第12期 vol.25 No.12 1999



电子系统设计的低功耗技术
卫国伍　钱德沛
　　随着电子器件集成度的不断提高和功耗的减少，大量便携式的智能仪器仪表应运而生。便携式仪器仪表的核心是各种各样的低功耗单片机应用系统，在设计这类应用系统时，"低功耗"特性如何是系统能否成功的关键因素。如何才能获得理想的低功耗特性是广大工程技术人员关心的问题。低功耗系统的设计并没有"定式"可拿来套用，但还是有规律可循的。我们认为系统设计时一般要考虑如下因素：选择合适的单片机型号并充分利用它提供的低功耗特性；选用低功耗外围元器件；根据应用的具体要求选取够用的晶振频率；设计合理的供电回路；除了硬件措施外，程序设计技巧也很重要。下面根据我们多年来MCS-51系列单片机应用系统的设计实践，介绍软硬件两方面的低功耗设计。
1 电路设计要考虑的问题
1.1 器件选择
　　在设计单片机应用系统时，首先确定系统的功能，接着进行器件选择和电路设计。要设计出低功耗的电子系统，构成系统的元器件应是低功耗的。随着微电子技术的发展，几乎在每一个双极性器件出现的同时就有相同功能、管脚兼容、可直接互换使用的CMOS器件出现。可以设计出全部用CMOS电路组成的低功耗系统。
　　(1)单片机的选择
　　选择单片机除了要考虑功能和开发环境外，在低功耗系统设计中要关注单片机本身的功耗和提供的节能措施。单片机分为HMOS和CHMOS两种工艺技术芯片，HMOS芯片功耗大，不宜使用在低功耗系统中；而CHMOS工艺技术既可满足高集成度又可满足高运行速度要求，其功率相当于CMOS电路，因此，用CHMOS工艺技术制成的单片机称为低功耗型单片机，是低功耗系统设计的唯一选择。常用的CHMOS单片机中主要有Intel公司的80C31/80C51/87C51八位单片机，80C196十六位单片机；ATMEL公司的89C51衍生系列单片机；Philips公司的80C51衍生系列单片机；Motorola公司的MC68HC05、MC68HC11系列单片机等。具体选用哪一家的芯片可根据系统功能要求、自己的使用经验、具备的开发条件及价格等因素，选择往往因人而异。
　　(2)外围器件选择
　　在低功耗电子系统设计中可供选择的外围低功耗器件有：74HC系列高速CMOS 数字集成电路；4000系列低速CMOS电路；HCMOS技术的存储器和带C标志的接口扩展芯片。常用的存储器芯片有ROM芯片27Cxxx系列；静态RAM有6116、6264、62256、76C8128等；EEPROM 芯片有28C17、28C64等；FLASH有29Cxxx系列等。接口扩展芯片如 81C55、82C55、82C53、79C10等。外围器件的选择主要考虑实现的功能、使用的方便性、工作速度及价格等因素。
1.2 器件节能状态的利用
　　(1)利用外围器件的维持(Standby)状态
　　在电路设计过程中，要充分利用外围芯片提供的节电功能，最大限度地利用它们的维持状态。例如，ATMEL公司生产的AT27c256，工作时的电流约为15mA，而其维持状态的电流最大不超过200μA，所以在系统设计时要充分利用芯片提供的这一特性。若把AT27c256和MCS-51系列单片机配套使用，只要在一定的晶振频率范围内，可以把芯片的片选端(/CE)和输出使能端(/OE)都连到单片机的片外取指控制信号(/PSEN)端，这样, AT27c256在读操作以外的时间均处于维持状态，比常规接法省电。这种连接方法在单片机工作状态和闲置(Idle)状态能最大限度地节约电源，但在单片机掉电(PowerDown)状态就有问题。这是由于MCS-51系列单片机在掉电状态时，/PSEN引脚输出低电平，使AT27c256处于选通状态。为了解决这个问题，在系统设计时可以采用分区供电的方法，在单片机进入掉电状态前，切断 AT27c256的供电回路。
　　(2)单片机的节能状态
　　在任何时候，CMOS器件所消耗的功率都与开关速度成正比。不工作时CMOS单片机不消耗功率，一旦该芯片或其内部一部分开始工作，功耗就随着工作模块的增加、速度的加快而上升。所以有些单片机具有几种使芯片的不同部分停止工作以不同程度地减少功率的闲置模式。如MCS-51系列低功耗单片机就有两种节电方式(IDLE，PowerDown两种方式)，Texas Instruments TM320C54X提供了3种空闲模式。还有些单片机如东芝公司的TLCS-870提供了双时钟工作方式(内部有高频和低频两个时钟发生器)为芯片节能提供了更多的选择。例如，TLCS-870系列单片机的工作状态可分为：单时钟的正常运行方式(Normal1)、空闲方式(Idle1)、停机方式(Stop1)，以及双时钟的正常运行方式(Normal2)、空闲方式(Idle2)、慢速方式(Slow)、睡眠方式(Sleep)和停机方式(Stop2)。如何利用这些不同级别的节能方式，可根据任务运行情况进行选择。
1.3 供电回路设计
　　电源电路设计的好坏不但影响系统的功耗还严重影响系统的可靠性，下面给出一个实用的供电方案。
　　(1)主电源
　　系统的主电源如图1所示，图中JP1端用来外接DC电源(6～12V/200mA),电阻R1(10欧)、R2(10欧)、R3(1K欧)及三极管(KST4403)Q1、Q2起限流保护作用；JP2端与4节5号电池相连；JP3端接3.6V镍锰电池，从图1中可以看出为它设计了两条充电回路。LP2951-038M是Motorola公司的低压差高效率的5V直流稳压器件。系统处于掉电状态时由Vbat向系统的核心部分供电(一般由单片机、RAM、实时时钟芯片等组成)；当产生上电复位或按键复位时，单片机通过P1.0端口接通Vcc启动系统的最小系统部分和核心部分工作。图1中二极管D1、D2、D3为IN4148；D4、D5为IN5187；三极管Q1、Q2、Q3为KST4403。

图1 主电源电路
　　(2)电源分配
　　电源分配部分可由一片74HC374和多个PNP三极管组成，电路示意图如图2。

图2模块电源分配电路
　　电源分配电路，用来分别对各独立模块如RS232接口电路、红外接口电路等的电源设施控制。控制方法简单，只要给74HC374的相应输出端清0或置1即可。当单片机的P1口够用时就不要扩充74HC374。
　　(3) 电源异常检测电源异常检测部分可由电压比较器(LM358)，基准电源(LM336)及4个电阻组成，如图3所示。

图3电源检测电路
　　通过电阻分压和基准电源产生两级报警输出，它们可以与单片机的INT0及INT1端相连。当电源电压下降到一定的值时(比如4.5V)比较器1输出为低电平，触发外中断INT1，中断程序点亮相应的发光二极管或通过LCD向用户显示提示信息；若电源电压继续下降到一定的值时(比如4.0V)，比较器2输出为低电平，产生INT0中断，中断程序保护工作现场，设置标记，切断外围总电源Vcc，使系统进入掉电状态。
1.4 其它因素
　　(1)引脚与工作电压幅度
　　CMOS器件是电压型器件。它的输入电阻很大，因而CMOS器件的输入引脚不能悬空。如果输入引脚悬空，在输入引脚上很容易积累电荷产生感应电动势，造成引脚电位处于0与1之间的过度区域，这时内部反向器的上、下两个场效应管均会导通，使电路功耗大大增加。
　　CMOS器件电源供电的电压范围比较宽，而且随着供电电压的降低，功耗也随之降低。目前已有工作电压在3V、2.5V甚至1.2V的外围芯片和单片机可供选用。
　　(2)上拉电阻
　　上拉电阻一般与连接到总线的CMOS单片机引脚一起使用，因为这些引脚在总线未被驱动或禁用时往往处于高、低电平之间的中间态，若使用16位或32位总线时损耗功率相当可观。上拉电阻可用来使总线保持在高电位状态减少这种不必要的功耗。但这种设计需要附加功率使总线处于低电平状态，也会白白在电阻上消耗功率。为了解决这一问题，有些单片机采用了内部多级上拉电阻，如80C31单片机的4个8位I/O口中，P1、P2、P3口存在内部上拉电阻，P0口没有内部上拉电阻，在不同的工作方式下，它的使用就比较复杂，要根据具体情况选用上拉或下拉电阻。
　　(3) ROM与RAM的问题
　　为了得到最低的功耗，存储器的配置在应用中将对功耗产生很大的影响。如果要外扩存储器，在单片机与外部存储器的接口上就要消耗功率，这种情况下一般采用单片机与存储器分开供电的办法。所以，在设计应用系统时，最好选用内部有足够ROM和RAM的单片机芯片，这种芯片不但能减少系统功耗、体积，往往还能减少成本并提高可靠性。由于CMOS电路的动态功耗与该电路改变逻辑状态的频率及速度相关。电路逻辑状态改变的频率越高，改变的速度越低，电路的动态功耗就越大。故访问片上SRAM将比访问片上ROM 多耗用10%～15%的能量，所以要尽量少访问SRAM。
2 程序设计时要考虑的因素
　　一个低功耗系统，光靠低功耗的硬件设计技术还不够，必需有相应的软件措施配合才能取得最佳效果。在程序设计方面，要关心两个方面的问题：一是对模块供电进行控制，即根据工作需要接通相应功能模块的电源。例如，进行通信时，才给RS232接口部分接通电源；结束通信，立即切断电源。利用这种办法系统不通信时可节省5mA左右的电流，可以说模块供电方法是节能的好措施。二是充分利用单片机提供的闲置、掉电方式。下面给出了一个应用事例。 
　　MCS-51系列的低功耗单片机，设置了一个电源控制寄存器PCON，当送入立即数01H时，单片机则进入闲置方式。此时，单片机在12MHz的晶振下的工作电流由16mA下降到3.7mA，在闲置方式，若有允许的中断源申请中断时，单片机立即响应中断，唤醒单片机恢复到工作状态。当向PCON中送入立即数02H时，单片机则进入掉电方式。此时，单片机的维持电流仅为几十μA左右，要解除掉电方式只能采用按键复位或上电复位。为了充分利用上述方式在应用系统程序设计时，可以采用如下措施：
　　(l) 20ms定时中断：系统上电复位或按键复位后，不进入实际的工作过程时，主控程序不断查询键盘和读取实时时钟并在LCD上进行动态显示。大家知道实时时钟在LCD上显示只要1s刷新一次就行，键盘操作50ms响应一次也来得及，所以可充分利用单片机提供的闲置方式来降低功耗。基于上述分析，可以把定时器1设置为20ms定时中断，把主控程序设计成每循环执行一次就休眠20ms，定时中断不作任何操作只起唤醒Idle 的作用。因为主控程序执行时间很短，再加长休眠时间节能效果不明显反而影响按键响应。
　　(2) 30s自动掉电方式：利用实时时钟，在连续30s内无键盘、通信等操作，则自动进入掉电方式，使系统的功耗降到最低。
　　(3) 合理组织程序模块： 当片内带有ROM的单片机(如AT89C52)和片外ROM混合使用时，要注意组织程序模块。,应该把系统中的常用程序模块放在单片机内部，使得系统在绝大多数时间内，程序在单片机内部运行，使外扩ROM处于Standby状态。根据以上的分析，主控程序流程图可以归纳为图4。

图4 程序流程图
3 结束语
　　低功耗单片机应用系统的设计方法及其电源供电方法与模块化电源控制方式在我们设计的一台基于AT89C52的手持系统中得到实现，取得了理想的效果。当然，用MCS－51家族单片机设计低功耗应用系统并不理想，在设计超低功耗应用系统时有很多厂家的单片机可供选择，如，NEC、Toshiba、华邦等公司的LL单片机(LL：Low voltage、Low power consumption)芯片。但本文所论述的设计方法也可应用于其他类似的低功耗系统设计中。近年来，微处理器(CPU)向嵌入式微处理器(MPU)发展；近期，采用智能集成技术(Intelligent Integration technology,采用这种技术的单片机也称为I2单片机)的片上系统(PC-on-a-chip)也初露头角。在这种形势下，由MCU、MPU、PC-on-a-chip构成的电子系统(有人称为现代电子系统)将会在各种领域中取代传统的非智能的电子系统。
作者单位:西安交通大学计算机科学与技术系,西安710049
参考文献
1 CHMOS Components Handbook.Intel Corporation,1985
2 8-bit Microcontroller TLCS-870 Series:Data Book Toshiba,1994
3 何立民.MCS-51系列单片机应用系统设计.北京：北京航空航天大 学出版社,1990
4 何为民.低功耗单片微机系统设计.北京：北京航空航天大学出 版社,1993
