MCU软件优化之能源调试
现在人们更加重视可配置和可编程的解决方案,主要是因为在微控制器中,能源消耗很大程度上直接来自于处理内核和许多外围设备的活动,这也是为什么现在半导体产业对'超低功耗'微控制器解决方案的需求量急剧增加的原因。
传统上,在大多数能源敏感的应用中人们一直采用8位或16位的设备,因为这些设备的内核很小,门相对较少, 泄漏电流的水平较低。然而今天的应用要求的处理能力要比8位或16位内核所能集合的更强大。
过去人们普遍假定32位内核产生的电流在节能模式下就会有益于能量敏感的应用。今天看来这是一种误解。利用现有的全套低功耗设计技术, 32位内核才可以实现低功耗模式,节能效果和8位内核一样好,甚至更好。
Energy Micro生产的EFM32 Gecko微控制器是一种新的节能设备,是专门开发来用在MCU操作所有阶段的产品,可减少电流和时间(即: 真正的能量)。图1简要说明了与尺寸较小的处理器内核相比,这种以ARM Cortex?- M3为基础的设备完成任务的时间更快,更能在低功耗模式下花更多的时间,从而进一步降低平均功耗。
图1:一个节能MCU内核可通过完整的唤醒/操作/返回睡眠周期节省几个不同区域的能量。蓝色区域表示一个更强大的32位内核完成任务所节省的能量,所需的周期比一个8位内核需要的少,在活跃和睡眠模式下消耗的电流也较少。
如图2所示,Gecko已证明了它所消耗的能量仅为8位、16位或32位解决方案所需能量的四分之一。这一性能在很大程度上是通过一个低能量的外围设备套装组合实现的,这个组合包括外围反射系统(使得外围设备围绕内核自动运作)、五个不同的和分级的低能量模式和非常快速的唤醒时间。
Energy Micro的ARM ?Cortex?- M3芯片结构是以EFM32 Gecko微控制器为基础的。
要实现目标应用中尽可能低的能源消耗,我们不能忽视应用源代码所发挥的关键作用。如果电池寿命被充分最大化了, 源代码的设计就要尽量使用低能量的外围设备和低能量模式。
由于源代码库规模的增长,源代码变得越来越难以识别,例如,当需要中断服务程序来取代循环时:一个简单的代码疏忽可能会导致处理器继续保持全面活跃,同时等待某个外部事件的发生,而不是进入节能睡眠模式。
在检查代码或在理想条件下进行测试时,这种伪随机事件很容易被忽略,而且在浸泡试验中很难捕捉到它。同样,即使是最有经验的工程师可能也无法独自从一张纯粹的代码列表中识别出消耗了不定量能源的代码。
虽然通过万用表阅读或示波器跟踪可能会测出给定时间内的能耗平均水平,它却不能测出特定事件所消耗的电流。同样,逻辑分析仪可以显示某个特别程序开始运行的时间和次数,但却不能将此与电涌联系起来。
利用创新科技,Energy Micro开发了一种克服这些限制的解决方案,该方案不仅提供了所用的瞬时能量水平,也将信息与当时实际采用的代码联系了起来。
energyAware Profiler是用于PC的一种'能量调试'工具,它采用了现有的EFM32 Gecko开发工具包中的专用Advanced Energy Monitoring (先进能源监控AEM)系统。AEM能显示开发工具包里印刷线路板上液晶显示器应用的实时耗电量,如图3所示,在运用Profiler软件时,能源调试的真正能量才得以实现。
图3:节能的EFM32 Gecko微控制器开发工具包里有Advanced Energy Monitoring (先进能源监控)。
该软件通过USB接口在Windows和开发工具包界面上运行。来自开发工具包里的基本数据使PC显示出运行在目标MCU上的应用代码的实时能量剖面。
默认配置显示出时间推移中的能量水平,使工程师能识别出某个关注区域里使用的能源可能比预期的高了。随着时间的推移, 系统推断出的电池供电应用的预期寿命指标比通过一张数据表中估算出最好和最差情况下的数据更准确。
在与energyAware Profiler一同使用时,AEM系统采用一个基于ARM的串行接口收集应用中的其它信息。传递给它的数据采用AEM系统的硬件进行解码,然后再传到PC上。这项活动的非侵入性意味着目标的能源剖面不以任何方式改变。
其它数据包括重要的调试信息,包括Program Counter(程序计数器),它使energyAware Profiler能及时识别在某个特定时刻采用的实际源代码,如能量图所示。这会立刻向工程师指出该程序产生高能耗的任何区域,将代码进行优化以降低整体能源消耗。见图4。
图4:energyAware Profiler同时提供三个角度、一张实时电流消耗图、一张设备代码列表和一个单独应用功能的能量剖面。
该图通过宽度和高度的轨迹和快速的量级来代表能量的使用。下面是独立的峰值 – 很容易通过使用示波器来监控电源的电流进行识别- 实际
- 如何将DSP和MCU两者完美结合(08-10)
- 基于MCU+DSP的运动控制硬件平台设计(10-01)
- 微控制器省电管理方法(05-04)
- 利用低成本的MCU的UART驱动智能卡(05-04)
- DSP结构特点和运算性能(07-19)
- 基于DSP+MCU的列车滚动轴承故障诊断系统设计与应用(10-08)