多种提升8051系统用电效率的微控制器

本文作者:admin       点击: 2003-09-01 00:00
前言:
前言
便携式产品的功能和性能日新月异。消费者对产品性能的要求边越来越商,需要更强大的运算能力来支持。另外一方面,他们还希望产品具有更低的功耗。这些要求之间彼此制约,矛盾的中心是微控制器,它通常是便携式装置中的能耗大户之—.
尽管已经出观了很多低功耗处理器,但它们性能通常有限DALLas 公司系列高速微控制器在性能和功耗之间取得了一个很好的折衷。它们采用了8051架构——世界上最流行的控制器之一。简单易用、丰富的I/0资源使这种微控制器深受设计者的喜爱,并被广泛地接受.它的流行势头已蔓延到了便式携领域,在很多应用中都有其用武之地.
本文旨在探讨使用8051控制器时,如何降低功率消耗,重点介绍一种改进架构的高性能8051设计。外围功能的集成化和选用合适的时钟源作为降低功耗的途径也进行了讨论。另外还涉及到节省电能的软件技术,以及采用待机模式降低系统功耗的技巧。
时钟频率
任何微控制器设计中,决定功率消耗的一个首要因素就是系统时钟频率。互补金属氧化物半导体(CMOS)工艺的器件功耗直接正比于时钟频率.因此,从省电的角度考虑,将处理器运行于尽可能低的频率比较有利.
图1表示一个普通的8051微控制器的典型功率曲线,一个已被所有便携系统设计者所熟知的关系。一般来讲,电流随频率的变化曲线呈现为线性,具有一定的DC偏移,这个静态电流由片内的静态电路所消耗,例如比较器、运算放大器等。其数值一般很小(<lmA)是一个不可忽略的固定吸取电流.
任何功率受限的设计都应考虑采用尽可能慢的运行速度。决定最低系统频率,也就是最低功耗的,有很多因素,包括期望得到的系统性能,中断响应延迟等等。不管采用什么标准,最终目标是相同的:使器件的工作频率尽可能地靠近应用需求
高速内核
要降低基于8051系统的功率消耗,最直接的办法就是改善微控制器的效率。8051最初的设计采用了一个12时钟周期、每机器周期两次取指的架构。然而,高速微控制器采用的是每机器周期4个、甚至1个时钟的内核。它们具有更高的运算效率,执行一条指令只需很少的时钟周期,具有更快的运行速度和更高的时钟频率&#8226;
尽管高速核的优势通常考虑的是其处理能力,它们在降低功耗方面也有很重要的意义。当处理器的运行指令经过优化以后,执行同一任务所需的时间很短。很多便携式产品工作在猝发模式,其特点是只有很短的活动时间,例如记录环境数据或扫描一个条码,而在随后的很长时间内都处于非活动状态。减少处理器的活动时间就可以相应地降低功耗效率提升带来的另外一个好处是,获得相同的性能所需的时钟频率可以降得更低。如果一个经过重新设计的内核采用4时钟机器周期而非12时钟,这就意味着完成同样的工作,只需更低的晶振频率。由于功耗直接正比于晶振频率,这样,不必牺牲性能就可降低功耗。
图2显示三种微控制器以同样的速度完成同一任务时的功耗情况。其中两种是标准80C3x的衍生产品,工作于每机器周期12个外部时钟方式,另外一种是DS80C320微控制器,工作于4时钟机器周期。测出各个器件的消耗电流,然后进行对比,保守地估计DS80C320具有250%(2.5倍)的速度提升。正如图2中所显示的,每周期时钟数减少后的处理器核工作于同样的吞吐率时,消耗电流显著降低,高速运行时尤其显著。
    集成化
将外围功能集成于芯片内部是节省电能的方法之一。在向芯片外部驱动一个信号时,信源器件必须提供一定的开关功率,以便驱动外部负载和补偿DC损耗。开关功率(PSW)是数字信号过渡过程中?消耗的功率。开关功率可根据下面公式估算:
          

其中C是接收门输入电容和连线电容的总和,T是时钟信号周期。一个CMOS门的典型输人电容为10pF。尽管很难精确计算出系统的开关功率,但有一点是显然的,每个额外的外部负载或引脚都会给微控制器造成额外的功耗。基于微控制器的系统通常会有一定的外围器件.例如从外部的UART(通用异步接收器/传送器)和上电复位电路到看门狗定时器.8051系列的优势之一便是将大量的外围功能集成于片内.除了减少元件数量、简化设计外,外围功能的集成化也有利于降低功耗。可以认为任何外围器件的核心功能消耗的功率是相同的,而与它位于处理器的内部还是外部没有关系。然而,将外围功能放在片内无疑节省了驱动外部总线所需的开关功率。
内部程序存储器
8051,另外一个通常不被视作外设功能单元是程序存储器。所有8051的衍生产品都包含了不同容量的片内程序存储器。这是许多系统设计者所期望的,以便减少外围元件数量和印制板面积,但同时也改善了便携系统的电池寿命。正如前面所提到的,集成的程序存储器由于免去了外部总线的驱动,因而降低了功耗。采用片内存储器还有另外一个省电的原因。8051架构必须采用一个74373类型的锁存器,以便锁存低字节地址。
图3显示采用内部和外部程序存储器时的功耗情况对比。前者采用DS87C520高速微控制器和一个74AC573锁存器,以及一片27C256 EPROM,访问时间70ns.第二个系统采用同样的微控制器,但工作于内部存储器。两个系统均工作在11.0592MHz,执行—个简短、普通的程序。从图3中可以明显看到,从高频运行的系统中省掉外部EPROM和锁存器后,可以节省多达49mA的电流.
内部数据存储器
正如前面所述,采用片内存储器取代外部RAM能够节省电能。80C32衍生产品具有扩充了的临时存储器(256字节),足够小程序的堆栈操作和数据存储,不必外接RAM。对于需要更多数据存储器或设置外部堆栈的设计,还需要额外的SRAM。虽然可以找到低功耗的SRAM,在考虑它所带来的功耗时还应将相关的74373系列锁存器,还有驱动外部总线的容
性损耗等—并考虑在内。采用片内扩充RAM的器件将使这个问题更为轻松。图4显示两个采用8051 MOVX数据空间映射SRAM的系统的功耗情况。第一个采用DS87C520高速微控制器、一片74AC573锁存器和一片DS2064 SRAM。第二个系统使用相同的微控制器,但采用lK字节的内部MOVX数据存储器。两个微控制器都工作在11.0592MHz,运行一段简单、普通的程序,对MOVX数据存储器进行读写操作。从图4中可以看到,在高频下,省掉外部SRAM和锁存器可以为系统省出高达9mA的电流.
时钟源
影响功耗的另外一个重要的系统元素是时钟源。标准8051设计通常采用内部振荡器激励一个外部石英晶体产生时钟,或者采用外部晶体振荡器。如果采用外部晶体振荡器,时钟的波形会影响到功耗。XTALl引脚内的输人级——用来将外部时钟信号推入8051内核——通常采用互补式驱动器。随着输人时钟在高、低电平之间的跳动,驱动器中的互补对管会有一个短时间的同时开通过程,造成显著的电流浪涌。对于矩形波来讲,高、低状态之间的过渡过程非常短暂,两管同时开通的时间最短。对于上升和下降时间比较长的波形,例如正弦或三角波,过渡过程比较长,驱动器两管同时开通的时间也更长,这样会增加流和功耗.
图5表示电流消耗和波形的关系。时钟源是一个可编程波形发生器,可以产生正弦波、三角波或方波。图5中显示的电流是四个器件的平均值,包括传统的和改进的高速处理器核。比较发现电流消耗直接正比于时钟波形的上升(和下降)时间。三角波具有最小的斜率,而矩形波斜率最大。采用矩形波时的电流平均要比三角波低0.75mA。这预示着在用外部时钟振荡器时,采用上升和下降时间更快的振荡器将有利于降低电流消耗。这一点在较低频率下尤为重要,此时器件需要花费更多的时间用于过渡过程。
有些8051衍生产品包含了一个片内的环形振荡器。通常是一串反相器,脉冲在其中传播。它可以提供一个2MHz到4MHz的内部时钟源,能够驱动器件。由于不需要使用晶体,这种振荡器是功耗很低的时钟源。从DS87C520高速微控制器的特性可以看出,工作于环形振荡器时,能够提供等同于7MHz  8051的性能,而功耗仅有3.6mA。然环形振荡器没有压电式晶体那样稳定,它们的低功耗以及可以忽略的上电延迟在功率管理方面占有显要位置。
时钟管理
前面己经讨论过,微控制器的工作频率是影响器器件功耗量重要的一个因素。虽然系统的时钟频率、要取决于硬件配置,8051还是提供了一些有限的控制手段。这些手段依赖于减缓或终止器件全或部分单元的工作时钟。传统的 8051架构采用了两种时钟控制方法:空闲和停机。
改善停机模式
停板模式是8051设计者所能利用的最低功耗状态。在该模式下,内部振荡器停振,器件中止工作。脱离停机模式通常依事外部复位。某些变种也可以通过外部才断遇上停机模式。
停机模式有一个缺点,那就是在晶振恢复工作的一个“死时间”内的功耗问题。晶体振荡器的工作依赖于石英晶体的振动。物理局限性决定了晶体振荡器必须有一个确定的时间,才能达到足够的振荡幅度来驱动器件工作。这个预热过程不管采用内部振荡器还是外部振荡器都会存在。时间大约在3ms 到 12ms量级,与晶体和振荡器的件能有关。
预热过程对于功耗的作用在于,在此阶段器件不执行任何有用的工作,但仍要消耗功率。如果器件频繁地进入和推出停机模式,或者退上停机模式后只执行很短时间的任务,这种效应会变得格外显著。事实上,如果任务非常短(<5ms  ),晶振后动期消耗的能量甚至会超过执行任务本身的消耗。如果采用环形振荡器来实现从停机模式“快速展动”,就可避免这种延迟。这将大幅降低退出停机模式时的功率消耗。
现将两个系统退出停机模式并执行一个短任务时的工作情况作一比较。其中一个器件包含一个内重的环形振荡器,另一个使用传统的外部晶振。没有环形振荡器的器件必须经历一个晶振预热期。在此期间器件不断地消耗功率,却没有做任何有小的工作。第二个器件是一片DS87C520高速微控制器,片内包含一个环形振荡器。这就允许器件在退出停机模式时能主即恢复工作。在本例中,程序执行用时在4mS以内,间隔大约为2MHz。正如6图中所看刭的,当需要退出停机模式执行短任务时,采用环形振荡器可以大幅减少能量消耗.
某些应用中,在退出停机模式后不久,要求时钟具有晶振的稳定度。这种情况下,环形振荡器仍不失其优越性。紧随着停机模式的退出,控制器应该.即启动晶体振荡器。随后可以在晶体振荡器的预热率控制器初始化一些必要的数据或寄存器。多数高速微控制器可以用一个状态位来标志晶体振荡器是否达到稳定。一旦完成了晶振代码的初始化进程,软件可以查询状态位,以决定是否着手高精度定时操作。
另外一个改善停机模式效率的方法是采用中断而不是复位方式来唤醒控制器。这种方式使处理器能够紧接着设置S TO P位的指令.即恢复工作,而不是从复位向量重新启动。这样就免立了对复位原因的判断,允许处理器在最短的时间内开始有用的工作。
空闲模式
空闲模式是早期 8051架构使用的第二个时钟管理模式。该模式中止了C PU的运行,但片内交通用定时器保持工作。在功率敏感的应用中,这个定时器被用于周期性地唤醒处理器去执行任务,或者去判断是否该执行某个任务一由于标准的 8051定时器为 16位,采用 16MHz的时钟频率时,最大定时周期只有31ms。如果需要更长的周期,就需要定时器多次溢出。这会消耗额外的功率,因为处理器必须频繁地恢复全速工作来累积计数,但没有执行任何有用的工作。对于比较长的周期,最好采用比较长定时周期的内部定时器。有此8051衍生产品包含了一个看门狗定时器,也可被用来唤醒处理器。看门狗定时器可被编程为比较长的定时,可达226个时钟周期。在 16MHz频率下能够提供4.2秒的最长延期。假设某应用希望每隔3秒从低功耗状态唤醒,去执行某任务。如果采用内部定时器去定时启动工作,处理器将不得不退出空闲模式96次而不作有用的工作,如果采用长定时周期的看门狗定时器,则处理器只在需要执行任务的时候退出空闲状态,完成任务再次回到低功耗状态。
还有一个选择就是带有实时时钟(RT C)的微控制器。DS87C53O高速做控制器内置的RT C能够产生周期长达24小时的闹种信号。由该闹种产生的内部中断可将处理器从空间或停机时中唤醒。利用RTC退出停模式对于需要长时间挂起的系统来讲是最为有效的方式。
功率管理模式
尽管空闹模式通过挂起运行程序而使功耗得以降低,内部定时器仍在以外部时钟的频率连续运行。这会消耗掉数量可观的功率,试想一下,是否可以让定时器工作于基本上接近“待机”的状态。一个比较好的办法是降低整个器件的时钟频率。这可以由一个内部的时钟分频器实现,它将外部时钟频率分频后再送人CPU。这种方案已在D S 8 7 C 5 20高速微控制器才实现。该器件使用了两种时钟分频系数:功率管理模式,输入时钟源被除以64分频;以及功率管理模式2,输入时钟源被除以1024倍。这些模式可以通过设置特殊功能存器中的对应让而使能。
图 6对DS87C520高速做控制器的时钟分频器和时钟控制模式加以对比。图6中,全速模式(除以4),功率管理模式1(除以64),功率管理模式2(除以 1024),空闲模式,以及停机模式下的电流消耗形成鲜明对比。正如所料,停机模式吸收最低的电流,因为所有内部时钟都被关掉了。这个比较的一个有趣结果是,两种功率管理模式消耗的电流比空闲模式还低。这不以降低了器件的功耗,还说明我们可以让它以较低的水平持续运行。在传统的8051结构中,任何类型的CPU运作只有两种状态:“全部或者没有”。处理器破产频繁地运行于最高性能水平,尽管只在很短的时间内用得到高性能。这会增加一些不必要约功率浪费。功率管理模式(PM M)的使用,使处理器(和系统)能够根据实际性能需求,对其功耗进行
最优化管理。
办法是利用串口的唯一办法是利用闲置模式.功率管理模式的使用提供了一种更低功耗地替代方案.
跑跑停停
在很多应用字,停机模式以外的时间并不完全取决于运算速度。很多情况下,处理器需要访问一个具有固定响应时间的外围设备,例如A/D转换器或温控器。此种情况,处理器将有一个突发运作,一般是触发某个过程,随后的一段时间内,则只有很少的、或根本没有任何操作.在这种时候,一种组合的功率节省技术会更为有效。
可以用一个实例来说明在这样一个系统中,采用具有PMM的高速做控制器所带来的好处。设想DS87C520与一片 DSI 620数字温度计/温控器相接口。这个器件可使用标准8051串行口的工作模式0串行访问。主机处理器在某个时刻通过外部中断将DS87C520从停机模式唤醒,并要求它从DS1620中读取温度数据。获得数据后DS 87C5 20会将其保存于内部存储器中,以备随后传送.DSI6 2 0的工作类似于很多  A/D转换器:发出一个命令后启动一次转换,然后,经过一定延迟后转换完成,接着,数据就可以被移走了。对于DS1620来讲,转换时间接近于1秒钟。通过查询器件来确定转换是否完成。DS87C520非常适合于此种任务,因为它可以非常迅速地执行启动和运算功能。随后,在等待转换完成期间,微控制器可
以将其置于PMM。在传统8051中,转换被后动之后,可利用闲置模式将传统8051置于低
功耗状态。在这种馍式中,可利用内部的 16位定时器来测量转换时间。工作于16 M Hz
时传统8 0 5l需要在转换完成之前退出闲置模式多达32次。
                                                                                
本例可被进一步改进。因为DSI 620是作为一个同步器件进行访问的,不要求高精度
的定时操作。这样,微控制器在启动转换和读取转换结果时。可工作于环形振荡器。由于避免了稳定外部晶振所需的死时间,这会进一步节省功率。
小结
8051系列微控制器一直是全世界最流行的处理器之一。它的简单易用和相对较高的性能对很多应用十分理想,包括便携式和手持式产品.DallasSemiconductor高速做控制器的出现,为现有8051系统提供了一条改善用电效率、同时又无须再设计的新出路。
高速做控制器降低功率消耗的优点可归纳如下:
&#8226;高性能CPU允许采用较慢的处理器时钟,只需更低功率即可获得同等性能.换言之,现有系统的性能可在不增加功耗的情况下,得到提升。
&#8226;高速微控制器集成看门狗定时器、附加的UART、和精密的复位电路等功能。外部元件越多,消耗的功率也越多
&#8226;两种新的低功耗模式的引入,提供了一种替代闲置模式的低功率方案,除降低电流消耗外,DS87C52O所采用的这种功率管理模式允许处理器在低速状态下执行查询这样的任务.传统8051结构的处理器只能工作在全速状态,尽管只需要很低的处理能力.
&#8226;可编程时钟频率和高性能内核的优势可以和停机模式相结合,以便大幅度降低功耗.通过实例说明,时钟频率与希望获得的性能相适配可以降低能量消耗。