设计电池供电产品的时候,超长的待机时间是设计目标。对于快速成长的这类产品,仅仅使用一节电池就能够长时间的工作,成为整个产品设计理念中最重要的目标。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
从广义上讲,能耗敏感的应用包括:能量表系统、家庭和楼宇自动化、安防和医疗系统。图1中就是一个基于微处理器并且仅使用一节电池供电,工作很长时间的设备。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> |
图1:新一代抄表设备,能够定期上报读数和资源管理,工作时间超过20年
在这些应用中,更换电池是比较困难的甚至是不可能的。另一方面来说,最终用户也不会承担更换电池的成本。
这些应用中的MCU有一个较长的工作周期,在这个周期中有99%,甚至99.9%处于 “深度休眠”状态,定期的唤醒或者被某种激励唤醒后工作,然后再次进入休眠状态。
因为大部分时间在休眠时,所以很明显获得最大电池工作时间的关键参数是休眠时候的电流消耗。如果想让电池供电设备的工作时间达到3、4年甚至超过10年、20年,就要使设备在运行时每个单元部分的能耗和MCU自身设计时每个功能部分的能耗达到最小化。
单节电池工作20年
锂-二氧化锰3V CR2302纽扣电池是广泛被使用在诸如远程环境传感器的小型MCU设备中。以工业商 Kodak 的电池为例,容量是230 mAh,最终使用电压是2V,5.6K欧姆(约0.5mA)。这样的电池的使用时间大约是400小时。相比而言,能耗敏感的应用的时候时间最大是200,000小时。这种电池有很好的外壳或叫自放电率。数据手册显示10年达到90%容量。大约等同于持续的放电是0.25μA.这是应用使用电池平均工作10-20年的供电背景。
由于电池生命周期的放电值已经确定,设计人员考虑MCU各个工作阶段的电流和时,不仅要按每毫安计算,而且也要考虑每个任务每毫秒工作情况。在能耗敏感的产品中,通常选用8位或是16位的内核MCU,因为这些内核比较小,相对有较少的门电路,静态或漏电流也比较低。可是,在实际的应用中,需要超过8位内核所能达到的处理能力,,在非低耗的应用中,用户频频从8位升级到32位的环境中,但在低功耗的应用中,32位内核在关断模式的功耗是大家不能接受了
随着IC设计者在低功耗设计方面的进步,提供了和8位内核一样好的设计方案,是多种低功耗模式的32位ARM内核成为可能。
32位内核处理器具有更高的性能也使MCU能更快的完成任务,更多的时间处于低功耗,从而取得更低的平均功耗。
低功耗外设功能
优化MCU在休眠时,功耗处于最低需要全面的设计方法。除了内核外,设备处于待机状态时MCU其他部分也需要降低电流,包括电压调节器、偏流生成器、欠压检测的比较器和复位电路等。在大部分的设计案例中,使用简单适中原则,更多的休眠状态和片上外设被完全关断,就有更多的唤醒时间能用于执行处理任务。因为应用变化很大,MCU设计者提供一套灵活的可扩展的关断机制,这样产品设计者能获得理想的平衡待机功耗和具体项目上的灵活应变。设计一个深度休眠时候电流是为nA级的ARM内核是的超低功耗策略的必须步骤,32位的处理能力开创了一个新的管理功耗的方法。下图2显示了一个MCU工作的电流供应情况:时间和从电池供电的情况。
如图标题所示功耗情况,应用开发者应该特别注意最大化电池的工作时间。
图2:超低功耗MCU内核在一个完整唤醒、工作、休眠周期内,相比8位处理器需要更少的工作时间,在工作和休眠模式下,也有更低的电流消耗。
在EFM32MCU的开发工具包中,电流检测被做成易于观测的。开发包中的一个基本特性就是Advanced Energy Monitor (下图 3 所示). 这个工具持续测量MCU的功耗,开发包固件能读取ADC采样通过一个电流采样电阻的电压并显示电流。
图3:EnergyMicro的“先进能耗监测”特性,能使用户跟踪工作周期的功耗和代码相对应
在相同的任务上,32位MCU比8位、16位的MCU要花费更少的时间,运行时的电压也更低,IC设计者重点是使用多种设计优化,来取得最低功耗这个目标。这些优化技术中包括诸如:优化时钟结构、优化芯片同步逻辑、组织总线系统和内存,包括SRAM和flash,以便最小化在制定动作下的位出发。
实现全部的低功耗设计方案能使ARM Cortex-M3能以180A/MHz从Flash中执行相应的代码。这些相同技术的认证使用能实现良好的指标,降低时钟速率和较高的性能。
一旦MCU被唤醒并执行应用代码,M3内核使用Thumb2指令集也能降低‘激活时间’。诸如双指令存取的精简16位指令的特性能使Thumb2 ISA的效率能体现出来。在减小其他状态时间能耗方面,MCU设计者也实现了更多的策略,除了内核处理代码时间缩短外,还有事件唤醒后有更快的唤醒时间使CPU进入工作状态,。一个Route被实现用于使用内核之前的时钟来缩短启动时间。众所周知,晶体从开始启动到稳定能做系统的时钟需要一段时间。
相反地,一个RC振荡器可能不足以精确到可以做MCU时钟源,但能在启动后立即产生一个基本有规律的输出。这个减少唤醒时间的方法介于前面提到的两种之间,CPU刚启动的时候使用RC振荡器,并有一个小控制电路使振荡器尽量稳定。任何RC电路输出不稳定的时钟不会明显的超出被使用的周期。不需要MCU内核执行简单任务,尽管实现了强大的内核和快速的启动,芯片设计者和系统开发者还会问:是否有的任务根本不需要内核执行。如果是一个简单的任务都要唤醒CPU内核执行的话就太浪费电池了。
例如环境传感器应用仅需要周期性的测量,并以更低的频率上报中心数据记录器。
运行软件协议栈通讯一定需要MCU内核被唤醒;但是更频繁的D/A转换、A/D转换和累计到内存中就仅需要外设就可以自动执行了(如图4示)。
图4:使用互联或“外设反射系统”,诸如初始化数据采集和保存结果,简单的任务能在根本没有32位处理内核的情况下执行。因为实际应用的变化比较广,基于功能的模块能灵活的被选择工作,模块间的通讯也可以灵活选择,以实现这个概念。
在能耗要求中增加加密功能
总所周知,现代CMOS工艺在IC中增加硬链接的成本相对硅片面积的成本是低的。这就导致为了减小功耗,最有效的选择是增加门电路。随着先进‘时钟树’、‘时钟门’和片上开关设计,IC设计者能在指定时间完全关闭相应功能。这种方法实现的一个功能就是加密。通常加密数据使用AES算法。这对32位处理器不是具体有挑战性的任务。但是这样会明显增加CPU处理时间增加功耗。
用户24167 2013-6-14 08:16
用户1417915 2010-6-17 11:09
用户120337 2010-6-16 12:55