节能微控制器设计可延长电池寿命
扫描二维码
随时随地手机看文章
在设计电池供电产品时,人们显然希望电池寿命尽可能长些。能源敏感的产品应用大致分为能源计量系统、家庭与楼宇自动化、安全和医疗系统(图1)。这些产品通常会围绕一个微控制器(MCU),必须用单个原电池工作很长时间。在某些应用中,更换电池很困难甚至是不可能的,即使在其它普通应用中,用户也不大愿意支付更换电池的成本。
这类应用中采用的是在极低占空比下工作的微处理器,它在“深度睡眠”状态下的时间可能占了99%甚至更高(达到99.9%也不罕见)。微处理器在一个周期循环或在回应某些刺激时被“唤醒”来执行操作,并返回到睡眠状态中。由于它们花了如此多时间在睡眠状态,很明显,获得更长电池寿命的关键是在掉电状态下的电流消耗。不过,同一节电池的使用寿命为3或4年与超过10年、延至20年甚至更长之间的区别在于,要密切注意这个任务如何使用MCU资源的各个方面,以及MCU本身是如何设计成以各种方式减少能耗的。
一节单电池可用20年
CR2032纽扣电池广泛用于小型MCU(如远程环境传感器)中,这是一种锂/二氧化锰3V原电池。典型的供应商,如柯达(参考文献1)将其容量*为230mAh到2V的终点电压能力为5.6k? (约为0.5mA)。如果是那样的话,电池寿命将为400小时,相比之下,能源敏感的应用可使使用寿命达到20万小时。
图1:人们期望新一代的计量产品能在二十年里工作无人看管。
这种特殊的电池具有很好的使用寿命或自放电率,数据表显示10年之后其容量仍达90%。非常相似的是,这相当于连续充电约0.25 ?A,如果能够达到10到20年的电池寿命,那么它可以满足应用的一般要求。
伴随电池寿命的是有限的电荷数,设计者必须在MCU运行的所有阶段减少产品的电流和运行时间,不仅要减少每微安数,还要减少每个动作花费的每个微秒。
为减小深度睡眠模式下消耗的电流,在能源敏感应用的MCU中采用8位(或16位)内核已经非常普遍。其理由是,8位内核(即使是在这类设计中经常采用的最新版本中)很小,门控相对较少,静电电流或漏电流较低。但是,现在的许多应用都需要比8位内核所能提供的更大的处理能力。在其它MCU应用领域,用户往往选择从8位升级到一个32位环境。在低功耗的情况下,人们一直先入为主地认为32位内核在其掉电模式状态下使用的电流一定高得令人无法接受。随着全套低功耗设计技术的出现,今天的IC设计工程师已经可以用一个32位ARM内核提供各种低功耗模式,效果与8位产品一样甚至更好,而且还能实现快速唤醒。 32位处理器更高的处理性能也使MCU可以更快完成任务,从而能够有更多时间处于这些低功耗模式下,这可以进一步降低平均功耗。
低功耗外围设备功能
为实现尽可能低的功耗,优化MCU睡眠状态功耗需要整体的设计方法。除了内核,MCU中的其它模块在待机设备、稳压器、偏置电流发生器,欠压检测比较仪、上电复位电路中会继续消耗电流。几乎在任何情况下,一个简单的折衷法则是:掉电状态越久,就有越多外围设备的功能被完全关断,芯片准备好实现处理任务的唤醒时间就越长。由于应用之间差别很大,MCU设计工程师提供一种灵活的断电状态下的扩展套件就显得很重要了,这样产品设计人员就可以很好地为其项目进行待机功率和响应能力的折衷。
设计一个在nanoamp区获得最深度睡眠状态电流水平的ARM内核只是低能源战略的一个步骤。能够获得32位内核的处理能力为管理能源的利用开辟了新途径。在任何时候,它是MCU供电图下面的区域,随着时间的推移,它表示从电池里取走的电荷(图2)。
图2:节能MCU内核通过完整的唤醒/工作/回到睡眠周期在多个不同区域节省能源。
灰色区域表示相比8位内核,一个性能更强大的32位内核在更短周期内完成任务所节省的能量。
就是这样,在具体配置中电流消耗的数字越大,设计人员就必须更密切注意要最大限度地延长电池的使用寿命。在EFM32微控制器的开发工具包中,这种测量是很清楚的,这个工具包的基本功能部分是先进能源.(图3)。该设备不断测量给MCU内核供电的电压轨下的电流。用一个从模数转换器(ADC)通过电阻器采集电压,而开发工具包软件集成其读数来精确测量不同时间的功率。
图3:Energy MICRO的先进能源.。
相比性能更低的MCU,一个32位的内核将花更少的时间去主动完成一项相同的任务,同时,该内核在运行时消耗的功率也应尽可能低。专注于低功耗的IC设计工程师能够获得许多设计细节来实现其目标。这样的例子包括针对所有芯片同步逻辑优化时钟门控结构,以及组织总线系统和内存(SRAM和闪存)以在任何特定处理中尽可能减少位跳变。采用全套低功耗设计方法会在闪存中产生一个运行典型代码的ARM Cortex-M3内核,而仅需用到低至180μA/MHz的能量。小心使用这些相同的技术可以确保其数字测量准确,获得低时钟速率,而不仅仅是一个最佳性能数字。
一旦MCU被唤醒并执行应用代码,M3内核使用Thumb2指令集也有助于减少“活跃时间”。利用这样的紧凑型16位指令的双取指令功能,Thumb2ISA的效率非常高。
在减少电流×微秒(current-times-MICROseconds)产品时,MCU设计工程师需要部署更多策略。其中一个是不仅减少内核在实际处理应用代码时所花的时间,而且还要缩短唤醒刺激之间的创建(ramp-up)时间(无论是定时生成或事件驱动),并且CPU正在准备做“真正的工作”。一种途径是最大限度地减少与内核时钟信号供应相关的启动时间。众所周知,当一个晶体振荡器从关闭状态中启动时,在作为一个系统时钟使用之前,它需要一些时间来稳定其输出。相反,一个RC振荡器作为MCU必须完成的所有任务的时基可能不够准确,但它会在开机后的几乎一瞬间产生有规则的输出。部分解决方案是缩短同时提供信号的时间。CPU在开机上电的同时就开始运行,由RC振荡器进行计时,而小型控制电路一旦稳定下来就将时钟源传到一个晶体振荡器上。RC振荡器输出中任何频率精度不够都不重要,因为使用它的周期相对较短。
简单任务无需MCU内核
尽管设计工程师非常小心地为一个高性能处理内核提供电源,并且在尽可能短的时间内实现了这个目标,但芯片设计师或系统设计师有必要问问给定任务是否需要这样的内核,即如果唤醒它只是执行简单任务的话,即使是最节能的内核也会浪费电池的电荷。我们再用环境传感器的应用作个例子,它可能需要定期测量,但只需在不频繁的时间间隔内将测量结果报告到中央数据记录器中。运行通信接口的软件堆栈一定会要求唤醒MCU内核,但这会更频繁地打开模数转换器,指挥A/D转换,并以低功耗内存积累结果。如果只要求外围设备设置在互连矩阵(图4)控制下自主运行的话,消耗的功率会更少。由于应用的差别很大,能够灵活地选择哪些功能模块来供电以及它们如何通信对充分利用这一概念非常重要。
图4:使用一个互连矩阵或“外围设备反射系统”可以执行简单的任务。
在电源预算中加密
众所周知,在现代CMOS半导体工艺中,为硬连接块IC增加功能的硅区成本相对较低。这产生了与直觉略微不一致的结果,为了把功耗降到最低,最有效的选择往往是增加门控数。利用先进的时钟树设计、时钟门控和片上电源开关等技术,IC设计工程师可以随时轻松地完全关断不需要的功能。这种方法的一个突出功能就是加密。即使是看似平常的数据现在也通过例行的加密来保证安全,通常采用被称为AES的算法。这对一个32位MCU内核而言不是一项具有挑战性的任务,但它确实占用了大量的处理器周期,延长了总的微安×微秒(MICROamps-times-MICROseconds)。这些周期中的大多数花在了执行算法中的一些内部循环计算上,增加一个AES加速器硬件模块可使MCU停止AES算法,转向专用硬件,MCU继续进行其他处理,并以更少的周期得到加密(或解密)结果。
迅速扩展的能源敏感应用类别(由少数高端类别如智能电能计量领导)重新定义了用电池驱动一个产品的意义。这些产品必须在单电池的驱动下提供服务,这一时间与电池本身的有效期一致,并与电池制造商规定的最大时间间隔(长达甚至超过20年)一致。只有一个高度集成的单芯片微控制器能为这样的设计提供一个现实的解决办法。
IC设计工程师十分注重低功耗芯片设计的每个方面,这样的IC架构现在可以提供现代、功能强大的32位处理器内核给产品设计工程师,同时尽可能地降低了功率要求。