高速微控制器广泛用于便携式设备。通过正确使用电源管理模式,设计人员可以优化当今新系统中使用的电池的使用寿命。本应用笔记探讨了通过选择高效时钟源和时钟速度、使用停止模式、空闲模式和突发模式来降低功耗的方法。Maxim高速微控制器和超高速闪存微控制器系列为用户提供电池备份应用的高级功能。
便携式产品在特性和功能方面不断进步。客户要求其产品具有更高的性能,这需要更大的计算能力。同时,他们希望产品功耗更低。这些竞争需求的核心是微控制器,它通常是便携式仪器中最大的功耗之一。
存在低功耗处理器,它们通常性能有限。Maxim的高速微控制器系列是功耗和性能的良好折衷方案。它基于8051架构,这是世界上最受欢迎的微控制器之一。设计人员看重其易用性、丰富的 I/O 结构和广泛接受度。它的流行已经延续到便携式领域,在许多应用中找到了家。
本文介绍了使用 8051 控制器最大限度地降低功耗的方法,重点介绍了可延长基于 8051 的高性能设计的电池寿命的新架构改进。本文讨论了将外设集成在片上并选择合适的时钟源作为降低功耗的方法。介绍了节能软件技术,以及降低使用停止模式的系统功耗的方法。
时钟速度
在任何微控制器设计中,决定功耗的最重要因素是系统时钟速度。互补金属氧化物半导体(CMOS)器件的功耗与时钟速度成正比。因此,从电源的角度来看,以尽可能慢的速度运行处理器是有益的。
图1显示了通用8051微控制器的典型功耗曲线,这是所有便携式系统设计人员都知道的关系。通常,电流与频率特性是线性的,具有直流偏移。该静态电流由片内静态电路引起,例如比较器、运算放大器等。虽然这个数字通常很小(<1mA),但它是一个需要考虑的恒定漏极。
图1.通用 8051 微控制器的典型功耗曲线。
任何注重功耗的设计都会尝试尽可能慢地运行。确定最小系统频率以及最小功耗取决于许多因素,包括所需的性能和中断延迟。然而,无论使用什么标准,最终目标都是相同的:使器件的工作频率尽可能与应用要求相匹配。
高速核心
降低基于 8051 的设计功耗的最直接方法是提高微控制器的效率。8051 的原始设计基于 12 时钟、每台机器 2 次抓取的周期架构。然而,高速微控制器系列使用每个机器周期内核 4 或 1 时钟。它的计算效率更高,执行指令所需的时钟周期更少,从而缩短执行时间并提高最大时钟速率。
虽然高速内核的优势通常从性能方面考虑,但它们对功耗也有重要影响。当处理器的指令执行得到优化时,完成相同任务所需的时间更少。许多便携式产品以突发模式运行,其特点是活动时间短,例如记录环境数据或扫描条形码,然后长时间不活动。减少处理器必须处于活动状态的时间可以相应地降低能耗。
这种效率提高的另一个结果是,在降低时钟速度的同时可以实现相当的性能。如果重新设计的内核每个周期使用4个时钟而不是12个时钟,这意味着可以在降低晶体速度的情况下完成相同的工作。由于功耗与晶体速度成正比,因此可以在不牺牲性能的情况下降低功耗。
图2显示了三个微控制器以相同的性能水平执行相同任务的功耗。两个微控制器是标准的80C3x衍生产品,每个机器周期工作在12个外部时钟,而第二个是DS80C320微控制器,每个机器周期工作4个时钟。测量所有器件的电流消耗,然后进行比较,假设DS250C2的保守性能提高了5%(80.320倍)。从图中可以明显看出,在相同的吞吐量下,每个周期内核的时钟减少会显著降低,尤其是在高性能水平下。
图2.缩短时钟周期的内核在整个过程中使用较少的电流。
集成
片上集成外设是一种省电方法。当驱动片外信号时,发生器件必须应对驱动外部负载所需的开关功率和任何直流损耗。开关功率(PSW)是数字信号变化时消耗的功率。开关功率近似如下:
PSWα CV²/T | (1) |
其中C是接收栅输入缓冲器的集总电容和两个栅极之间的互连,T是信号的时钟周期。CMOS输入的典型输入电容为10pF。虽然很难计算出系统的开关功率的确切值,但很明显,微控制器必须驱动的每个额外的外部负载或引脚都会消耗额外的功率。
基于微控制器的系统通常使用许多外设。这些范围从外部UART和上电复位电路到看门狗定时器。8051产品系列的优势之一是片上提供了大量外设功能。除了通过消除组件来简化设计外,集成外设还可以降低功耗。可以假设任何外设的核心功能消耗相同的功率,无论是位于处理器内部还是外部。然而,在片上定位外设将消除与驱动外部总线相关的开关功率损耗。
内部程序存储器
另一个通常不被视为外设的8051功能是程序存储器。所有 8051 衍生产品都集成了不同数量的片上程序存储器。许多系统设计人员希望将其作为减少元件数量和电路板面积的方法,但它也延长了便携式系统的电池寿命。如前所述,这将通过消除驱动外部总线的需要来降低功耗。使用片上存储器时,还可以节省额外的功耗。8051 架构需要使用 74373 型锁存器来解复用地址的较低字节。图3比较了内部程序存储器和外部程序存储器的使用。第一种使用DS87C520高速微控制器,带有74AC573锁存器和27C256 EPROM,访问时间为70ns。第二个系统使用相同的微控制器,但由内部存储器运行。两个系统的工作频率均为11.0592MHz,执行一个简短的通用程序。从图中可以明显看出,通过消除系统中的外部EPROM和锁存器,可以在高频下节省多达49mA的电流。
图3.使用内部存储器可显著降低电流消耗。
内部数据存储器
如前所述,使用片上存储器而不是外部RAM将节省功耗。80C32衍生产品(256字节)的扩展暂存器足以用于堆栈操作和小程序中的一些数据存储,无需外部RAM。
但是,对于需要更多数据存储器或需要实现外部堆栈的设计,可能需要额外的SRAM。虽然可以使用低功耗SRAM,但其功耗还必须包括与74373串联锁存器相关的功耗以及驱动外部总线的容性损耗。这可以通过使用具有扩展片上RAM的设备来缓解。图4显示了使用映射到8051 MOVX数据空间的SRAM的两个系统的功耗。第一种使用DS87C520高速微控制器,带有74AC573锁存器和DS2064 SRAM。第二个系统使用相同的微控制器,但使用1KB的内部MOVX数据存储器。两个微控制器的工作频率均为11.0592MHz,执行一个简短的通用程序,用于读取和写入MOVX数据存储器。从图中可以明显看出,通过消除系统中的外部SRAM和锁存器,可以在高频下节省多达9mA的电流。
时钟源
从电源的角度来看,另一个关键系统组件是时钟源。标准 8051 设计通常使用内部振荡器放大器激励外部石英晶体,或使用外部晶体振荡器。如果使用外部晶体振荡器,时钟的波形会影响功耗。XTAL1 引脚的输入级用于将外部时钟信号驱动到 8051 中,通常采用互补驱动器。当输入时钟在高电平和低电平之间转换时,驱动器将暂时导通,从而导致明显的电流浪涌。使用方波时,高电平和低电平状态之间的转换几乎是瞬时的,并且两个设备都打开的时间被最小化。上升和下降时间较慢的波形(如正弦波或三角波)将需要更长的时间才能完成转换,并且在两个驱动器上花费更多时间。这将增加电流和功耗。
图4.无需外部SRAM和锁存器可节省功耗。
图5显示了电流消耗与波形形状的关系。时钟源是一个可编程波形发生器,能够输出正弦波、三角波或方波。所示电流消耗平均为四个器件,包括传统和高速内核。比较表明,电流消耗与时钟波形的上升(和下降)时间成正比。三角波的斜率最低,方波的斜率最高。方波平均比三角波小0.75mA。这意味着外部时钟振荡器设计中的电流消耗可以通过使用具有快速上升和下降时间的振荡器来降低。在较低频率下,当设备在转换中花费更多时间时,这一点变得更加重要。
图5.具有更锐边的振荡器波形可降低功耗。
一些 8051 衍生产品集成了片上内部环形振荡器。这通常是在其周围传播脉冲的逆变器链。这提供了一个大约 2MHz 至 4MHz 的内部时钟源,能够操作器件。因为它不需要使用晶体,所以它是一种非常低功率的时钟源。对DS87C520高速微控制器的表征表明,环形振荡器工作在约7.8051mA时可提供与3MHz 6相当的性能。虽然环形振荡器不具备压电晶体的稳定性,但其低功耗和可忽略的上电延迟使其成为电源管理方案中的一个重要因素。
时钟管理
如前所述,微控制器的工作频率是影响器件功耗的最大单一因素。虽然系统时钟频率主要是一种硬件功能,但 8051 能够对其进行有限的控制。这些方法依赖于减慢或停止全部或部分器件的内部工作频率。传统的 8051 架构使用两种时钟控制模式:空闲和停止。
改进停止模式
停止模式是 8051 设计人员可用的最低功耗状态。在这种模式下,内部晶体放大器停止,停止器件的运行。从停止模式退出通常由外部复位启动。某些变体还支持使用外部中断从停止模式退出。
与停止模式相关的缺点之一是晶体恢复运行时在“死区时间”期间消耗的功率。晶体振荡器依靠石英晶体的运动来运行。物理限制要求晶体振荡需要有限的时间才能达到足够的振幅供器件运行。无论时钟源是外部晶体和内部晶体放大器,还是使用外部晶体振荡器,都会遇到此预热期。这个时间可以在3ms到12ms之间,具体取决于晶体和相关放大器的特性。
预热期对功耗的影响是,虽然设备在此期间没有执行任何有用的工作,但它仍在消耗功率。如果设备频繁进入和退出停止模式,或者退出停止模式以执行短期任务,这可能会变得很重要。实际上,如果任务非常短(<5ms),晶体重启周期可能会比任务本身消耗更多的功率。如果使用环形振荡器从停止模式执行“快速启动”,则可以避免这种延迟。这将大大减少退出停止模式时的电量。
图 6 显示了两个系统从停止模式退出并执行简短任务的操作。一个器件集成了内部环形振荡器,另一个器件使用传统的外部晶体。没有环形振荡器的器件必须承受晶体预热期。在此期间,设备继续消耗电量,但不做任何有用的工作。第二款器件是DS87C520高速微控制器,内置环形振荡器。这允许设备在退出停止模式时立即恢复操作。在本例中,要执行的例程在大约 4MHz 时持续时间小于 2ms。如图所示,在退出停止模式时使用环形振荡器执行短任务,可以大大降低能耗。
图6.带环和不带振铃的停止模式退出的比较。
在某些应用中,在退出停止模式后不久可能需要晶体振荡器的稳定性。在这种情况下,环形振荡器仍然可以是有利的。退出停止模式后,器件应立即重新启动晶体振荡器。然后,该器件可以在晶体仍在预热时初始化任何必要的数据或寄存器。大多数高速微控制器都包含一个状态位,用于指示晶体振荡器是否已稳定。一旦晶体振荡器代码的初始化程序完成,软件就可以轮询状态位,以确定何时可以开始高精度定时操作。
提高停止模式效率的另一种方法是使用中断退出而不是复位。这允许处理器按照 STOP 位设置后的指令立即恢复操作,而不必从复位矢量重新启动。这消除了确定复位原因的需要,并允许处理器在更短的时间内开始执行有用的工作。
空闲模式
空闲模式是原始 8051 架构中使用的第二种时钟管理模式。此模式停止 CPU 的运行,但保持片上通用定时器运行。在功耗敏感型应用中,这些计时器用于定期唤醒设备以执行任务或轮询是否应执行任务。
由于标准 8051 定时器限制为 16 位,因此在 31MHz 时钟速率下,最大超时周期为 16ms。如果需要更长的时间段,则需要多个计时器溢出。这将消耗额外的功率,因为设备必须偶尔恢复完全操作以增加计数器,但不执行任何有用的工作。
对于较长时间,请使用周期较长的内部计时器。一些 8051 衍生产品集成了看门狗定时器,也可用于唤醒设备。看门狗定时器可以编程为226个时钟周期的长超时周期。这将允许在4MHz时的最大超时周期为2.16s。例如,假设应用程序希望每 3 秒从低功耗状态唤醒一次以执行任务。如果使用内部计时器对操作进行计时,则设备必须退出空闲模式 96 次,而不会执行有用的工作。如果使用具有较长超时的看门狗定时器,则器件将仅退出一次空闲模式,执行任务,然后返回到低功耗状态。
另一种选择是使用具有实时时钟(RTC)的微控制器。DS87C530高速微控制器集成了RTC,能够产生长达24小时的报警周期。此警报产生的内部中断可能导致设备退出空闲或停止模式。使用 RTC 退出停止模式是长时间暂停设备操作的最有效方法。
电源管理模式
虽然空闲模式通过停止程序执行来降低功耗,但内部定时器继续以外部时钟频率工作。考虑到定时器基本上以“待机”容量运行,这消耗了相当大的功率。
更好的方法是降低整个设备的时钟速率。这可以通过内部时钟除数来完成,该除数在外部时钟频率进入CPU之前对其进行分频。这种方案已经在DS87C520高速微控制器中实现。该器件采用两种时钟除数功能:电源管理模式 1(将输入时钟源分频 64)和电源管理模式 2(将输入时钟源分频 1024)。这些模式通过在特殊功能寄存器中设置适当的位来启用。
图7给出了DS87C520高速微控制器的时钟除数和时钟控制模式的比较。该图对比了全速(除以 4)、电源管理模式 1(除以 64)、电源管理模式 2(除以 1024)、空闲模式和停止模式下的电流消耗。正如预期的那样,停止模式消耗的电流最小,因为所有内部时钟都已停止。这种比较的一个有趣结果是,两种电源管理模式消耗的电流比空闲模式少。这不仅使设备能够节省功率,而且允许其在低运行水平下连续运行。在传统的 8051 架构中,执行任何类型的 CPU 活动都是“全有或全无”。设备被迫以最高性能水平持续运行,即使高性能只需要短时间。这不必要地增加了功耗。使用电源管理模式 (PMM) 允许设备(和系统)将其功耗与所需的性能水平相匹配。
图7.完全/空闲/电源管理模式比较。
将中断与 PMM 结合使用
使用内部时钟除数的一个可能后果是中断延迟可能会大大增加。此外,降低内部定时器的速度会影响 8051 串行端口生成标准波特率或与标准波特率同步的能力。这可能会严重干扰设备对外部刺激的反应能力。一种解决方案是加入一项功能,该功能可在识别外部中断或串行端动时自动将设备恢复到完全运行状态。这种机制已在DS87C520中实现。该设备的回切功能允许设备快速响应外部中断。一旦确认中断,设备将自动切换回全速(除以 4),无需软件干预。
串行端口以类似的方式运行。在串行端口接收引脚上收到下降沿(起始位)后,器件将自动切换回全速(除以 4)。由于这在传输开始时立即发生,因此设备将全速正确接收传输的其余部分。对于传统的 8051 架构,在低功耗配置中使用串行端口的唯一方法是使用空闲模式。使用电源管理模式提供了一种低功耗的替代方案。
改进突发模式操作
功耗敏感型设计中的常见工作模式是让系统从停止模式唤醒,执行突发活动,然后返回停止模式。在这种系统中降低功耗的一种方法是提高工作频率。起初,这似乎违反直觉。在设备运行时,它将比以较低频率运行的系统消耗更多的功率。然而,系统运行时消耗的静态电流不是频率的函数。在最终的系统设计中,通常会评估能量以确定电池寿命。在评估高性能微控制器时,这种区别很重要,因为它结合了时间和处理能力的概念。如果给定系统的功率和时间的乘积较小,则无论单个项如何,它都需要更少的能量。在许多情况下,可以证明高速微控制器实际上可以通过短时间快速运行来降低能耗,而不是在较长时间内运行得更慢。
这可以通过重新检查图7来证明。假设DS87C520从停止模式恢复时,必须读取I/O端口,执行数学计算,并将结果输出到另一个端口,需要500个机器周期的CPU时间。从图中可以看出,12MHz时的电流消耗为4.10mA,34MHz时的电流消耗为6.30mA。表 1 总结了两种速度下的任务结果。从表中可以看出,在30MHz下工作是最节能的,能耗降低了6%以上。
赶紧等待
在许多应用中,停止模式的时间并不完全取决于速度。通常,设备必须访问具有固定响应时间的外围设备,例如A / D转换器或恒温器。在这种情况下,微控制器将有一个突发活动,通常是启动一个进程,然后是一段时间很少或没有活动。在这种情况下,节能技术的组合可能是有效的。
一个实际示例可以说明带有PMM的高速微控制器在这种系统中的优势。假设DS87C520与DS1620数字温度计和恒温器接口。此设备使用在模式 8051 下运行的标准 0 串行端口进行串行寻址。主机处理器偶尔会使用外部中断将DS87C520从停止模式唤醒,并请求其读取DS1620的温度。数据检索完成后,DS87C520将其存储在内部存储器中,以便稍后传输。DS1620的功能与许多A/D转换器类似:发出命令开始转换,然后在转换完成时出现延迟,然后数据移出。DS1620的转换时间约为1秒。轮询设备以确定转换何时完成。DS87C520可以快速执行初始化和计算功能,因此非常适合这样的任务。然后,设备可以在等待转换完成的同时将自身置于 PMM 中。在传统的8051中,一旦转换开始,空闲模式将用于将传统的8051置于低功耗状态。使用此模式允许内部 16 位定时器测量转换周期。传统的 16 工作频率为 8051MHz,可能需要退出多达 32 次空闲模式才能完成转换。
表 1.500 个机器周期任务的能耗与处理器速度
时钟频率 | 机器周期 | 所需的机器周期 | 总时间 | ICC | 当前 时间产品 |
10兆赫 | 400ns | 500 | 200年代 | 12.41毫安 | 2.48犁 |
30兆赫 | 133ns | 500 | 66.5秒 | 34.66毫安 | 2.30如 |
在此示例中,可以进行进一步的改进。由于DS1620作为同步器件,因此不需要高精度的定时操作。因此,微控制器可以在启动和读取转换结果时通过环形振荡器工作。这通过消除稳定外部晶体所需的死区时间,进一步节省功耗。
图 8 显示了实现上述“快点等待”方案的两个 8051 系统的操作。从图中可以看出,退出停止模式后,程序执行期间的功耗显著降低。除了使用 PMM2 而不是空闲模式可以节省功耗外,消除晶体预热周期意味着例程可以更快地返回到停止模式。在 1s 转换延迟期间从环形振荡器运行会进一步降低处理器速度,从而节省更多功耗。
图8.实施8051“赶紧等待”计划。
总结
8051微控制器系列仍然是世界上最受欢迎的处理器之一。其易用性和相对较高的性能使其成为许多应用的理想选择,包括便携式和手持式产品。Maxim高速微控制器的推出使现有8051设计无需昂贵的重新设计即可提高电源效率。
高速微控制器降低功耗的优势可总结如下:
高性能 CPU 允许减慢处理器时钟,从而以更低的功耗获得相同的性能水平。或者,可以在不增加功耗的情况下提高现有系统的性能。
高速微控制器集成了看门狗定时器、附加UART和精密复位电路等功能。外部组件消耗更多功率。
引入两种新的低功耗模式为空闲模式提供了一种低功耗替代方案。除了降低电流消耗外,DS87C520中使用的电源管理模式还允许处理器在低电平状态下执行轮询等任务。传统的 8051 架构要求处理器以最大时钟速率运行,即使只需要最小的处理能力。
可编程时钟速率和高性能内核的优势可以与停止模式相结合,以大大降低功耗。已经提供了一些示例,展示了如何通过将设备的时钟速率与所需的性能水平相匹配来降低能耗。