微控制器的功耗调试:找出能量泄漏,降低嵌入式系统功耗

发布者:keiss2018最新更新时间:2014-10-27 来源: 21ic关键字:微控制器  功耗  DMA  调试器 手机看文章 扫描二维码
随时随地手机看文章

  功耗调试技术使软件工程师得以了解嵌入式系统的软件对系统功耗的影响。通过建立源代码和功耗之间的联系,使得测试和调整系统功耗成为可能,即所谓功耗调试。传统上,降低功耗仅是硬件工程师的设计目标;然而在实际运行的系统中,功耗不仅取决于硬件的设计,而且还与硬件如何被使用有关,而后者则是由系统软件来控制的。

<a class=

图1:IAR Systems的C-SPY调试器能够在不同的视图中显示静态和动态的功耗数据。

  功耗调试技术基于对功耗进行采样,并建立每个采样数据与程序的指令序列(以及源代码)之间的关联。其中的难点之一在于实现高精度的采样。理想情况下,对功耗的采样频率应该与系统时钟相同,但系统中的电容性元件会降低此类测量的可靠性。从软件工程师的角度来看,更感兴趣的是功耗与源代码以及程序运行期间的各种事件之间的联系,而非个别的指令,因此所需的采样分辨率将大大低于对每个指令进行采样的频率。

  对功耗的测量由调试工具完成。例如,IAR Embedded Workbench所支持的调试工具是IAR J-Link Ultra。它能够测量芯片的供电电源经过一个串联小电阻之后的压降,见图2。该压降是使用差分放大器进行测量,并通过模数转换器进行采样的。 

IAR J-Link Ultra能够测量芯片的供电电源经过一个串联小电阻之后的压降

图2:IAR J-Link Ultra能够测量芯片的供电电源经过一个串联小电阻之后的压降。

  要提高功耗调试的精确性,关键在于建立指令跟踪与功耗采样之间的良好关联。最佳的关联仅当能够进行完全的指令跟踪时才能实现,但其缺点在于并非所有芯片都能支持这一功能;即便支持,也通常需要特殊的调试工具。

  要在较低的精确性下达到较好的关联度,可以使用一些现代片上调试架构所支持的PC采样功能。该功能周期性地对PC进行采样,并给出每个采样的时间戳。与此同时,调试工具使用模数转换器对芯片的功耗进行采样。通过比对功耗采样值和PC采样值的时间戳,调试器就能够在同一根时间轴上显示功耗数据以及中断纪录、变量监控等图形,并且将功耗数据与源代码关联起来,见图3。 

PC和功耗采样校正

图3:PC和功耗采样校正。

  一般来说,功耗优化与速度优化是非常相似的。一个任务运行得越快,低功耗模式持续的时间就能越长。因此,将处理器的空闲时间最大化可以降低系统的功耗。

  想要找出系统中不必要的能耗以及在何处能够降低这些能耗是有难度的。通常它们并非源代码中显而易见地暴露出来的缺陷,而更多地存在于对硬件使用方式的调整之中。

  等待设备的状态

  一个导致不必要能耗的常见错误是使用轮询来等待某个外设状态的改变。下面的例子中,代码一直不中断地运行,直到状态变量变为预期的值。

  while (USBD_GetState() < USBD_STATE_CONFIGURED);

  while ((BASE_PMC->MC_SR & MC_MCKRDY) != PMC_MCKRDY);

  另一种类似的代码是在for或while循环中实现软件延时,例如:

   i = 10000; // SW Delay

  do i--;  

  while (i != 0);

  这段代码使得CPU一直忙于执行除了计时之外没有任何作用的指令。[page]

  在上述这些情况中,可以通过改写代码来降低功耗。延时最好是通过硬件定时器来实现。CPU在设置好定时器中断之后就可以进入低功耗模式直到被中断唤醒。同样,对外设状态的轮询若有可能也应该通过中断来解决,或者使用定时器中断从而使得CPU在两次轮询之间可以进入休眠。

  DMA vs polled I/O  

  传统上,DMA被用于提高传输速度。在某些架构中,CPU即使在DMA传输过程中也可以进入休眠模式。功耗调试使得开发者能够试验并通过调试器看到与传统由CPU驱动的传输方式相比,DMA技术所带来的效果。  

  低功耗模式  

  很多嵌入式应用都把大多数时间花费在等待某些事件发生。如果处理器在空闲时仍然全速运行,电池的寿命将在几乎未作任何事情的情况下被消耗。所以在很多应用中,处理器仅在总计很少的时间里才被激活。通过将处理器在空闲时间里置于低功耗模式,电池的寿命将得到数量级的延长。

  一个好的方式是使用RTOS和面向任务的设计。可以定义一个最低优先级,仅当没有任何其他任务需要运行时才会被运行的任务。这个空闲任务将是实现功耗管理的理想场所。在实践中,当空闲任务每次被激活时,都将处理器(或其部份)置于(可能的)多种低功耗模式之一。

  CPU频率理论上,CMOS MCU的功耗可由以下公式得出: P = f x U^2 x k 上式中的f是时钟频率,U是供电电压,k是数。功耗调试使得开发者能够验证功耗与时钟频率之间的关系。运行在50MHz且几乎不休眠的系统,当运行在100MHz时将在休眠模式下消耗约50%的时间。调试器中的功耗数据使得开发者能够检验所期望的行为,以及当如果存在与时钟频率的非线性关系时,选择功耗最低的工作频率。

 

  中断处理   

  图4显示了一个事件驱动系统的功耗示意图,其在t0时处于非激活模式,消耗的电流为I0。在t1时系统被激活且电流上升为I1,对应于系统在激活模式下且有一个外设被使用时的功耗。在t2时,程序的运行被一个更高优先级的中断所挂起。已经被激活的外设没有被关闭,虽然高优先级的线程中并未用到它们。更多的外设被新的线程所激活,导致电流在t2和t3之间升高为I2。在t3时,控制权重又回到低优先级的线程。

显示了一个事件驱动系统的功耗示意图

图4:显示了一个事件驱动系统的功耗示意图。

  该系统的功能可以非常出色,并且能够在运行速度和代码尺寸两方面进行优化。然而在功耗方面,还有更多的优化可以实现。图中黄色的区域表示如果在t2和t3之间关闭不需要的外设,或者对调这两个线程的优先级,所能够节省的能量。

  使用功耗调试,能够更容易地发现当中断发生时功耗的额外上升,并将其标识为异常。

  查找有冲突的硬件初始化  

  为了避免输入端浮动,在通常的设计中会将未使用的MCU I/O管脚接地。如果软件错误地将某个接地管脚配置为输出逻辑“1”,高达25mA的电流会流向该管脚。这种非期望的高电流在功耗采样图形上很容易观测到;同时还可以通过观察系统启动过程中的图形来查找相关的初始化错误代码。

  模拟干扰也可能对功耗调试产生影响。模数混合电路板有其自身的特性。板级的布局和走线对于抑制模拟噪声、保证对低电平模拟信号的精确采样十分重要。良好的混合信号电路需要对硬件进行仔细的考量和认真的设计。

  总结

  功耗调试使得嵌入式系统的开发者能够深入了解他们的应用,并发现程序的代码对功耗有何影响。基于这些信息,可以通过调整和优化源代码以最大限度地降低功耗。使用这种方法,工程师们能够确保他们的设计已经尽可能地节省能量,而又不会对系统性能产生不利的影响。

关键字:微控制器  功耗  DMA  调试器 引用地址:微控制器的功耗调试:找出能量泄漏,降低嵌入式系统功耗

上一篇:基于CPLD的OMAP-L137与ADS1178数据通信设计
下一篇:基于ADSP—BF533的μClinux嵌入式系统移植与开发

推荐阅读最新更新时间:2024-03-16 13:44

基于STC89C52单片机的LED调光系统电路设计
LED 的排列方式及LED 光源的规范决定着基本的驱动器要求。 LED驱动器的主要功能就是在一定的工作条件范围下限制流过LED的电流,而无论输入及输出电压如何变化。最常用的是采用变压器来进行电气隔离。下文论述了LED照明设计需要考虑的调光因素。 正是因为调光的要求所以驱动LED 面临着不少挑战,如正向电压会随着温度、电流的变化而变化,而不同个体、不同批次、不同供应商的LED 正向电压也会有差异;另外,LED 的“色点”也会随着电流及温度的变化而漂移。 下文 LED采用多个串联的方式,供电电源为12V电,所以使用了一级升压电路。 系统组成 LED调光系统组成框图如图1.1所示。 图1 LED调光系统组成框图 单元硬件电
[电源管理]
基于STC89C52<font color='red'>单片机</font>的LED调光系统电路设计
STC12C2052AD单片机AD转换C语言程序的实现
功能:STC12C2052AD AD转换C程序 +PWM输出功能 成功使用。 应用:AD检测电压进行过欠压保护(继电器控制)+PWM把直流电压斩波成脉动直流。 板子功能:给手机电池充电。 降压用的LM317,小电流应用应该够了。没时间去买开关管,就用的9013开关。 图纸: //以下是成功了的程序。如果你需要应用在你自己的项目中,您只需要更改io就能直接应用了 //程序的完整版本下载地址:http://www.51hei.com/ziliao/file/stc12c2052adde.rar #include stc12c2052ad.h //stc 单片机 专用的头文件 #include int
[单片机]
STC12C2052AD<font color='red'>单片机</font>AD转换C语言程序的实现
超低功耗高精度数字温度计的原理及校正误差方法
内容说明 本发明涉及一种超低功耗高精度标准数字温度计稳定电路及误差校正方法。 发明背景 当前用作中温范围( -60~ 300 )℃的标准温度计主要有2种形式:采用标准玻璃水银温度计,但是标准玻璃水银温度计由于其精度低、示值影响因素多、使用不方便、易粹、有毒等缺点,特别是2013年10月9日~12日,我国参加并签署了《关于汞的水俣公约》,根据该公约全世界所有成员国到2020年将全面禁止包括水银温度计等含汞产品的生产和销售,因此,标准水银温度计必将面临淘汰并退出温度量传系统。采用高精度温度测量仪表( 表头)匹配标准铂电阻传感器组成标准数字温度计,这种标准数字温度计虽然克服了标准玻璃水银温度计的很多缺点,但其自身也存在以下缺点:a、
[测试测量]
超低<font color='red'>功耗</font>高精度数字温度计的原理及校正误差方法
基于1602液晶的温度感应器
1602液晶是单片机初学者必学的资源,其操作简单,可读可写,相比数码管而言,其显示更为简单。这里就不再介绍1602的具体特点和功能,可以去百度一下,可以搜索到很多资料。下面是我结合天祥视频写的一个温度感应器。 -------------------------------------------------------------------------------------------------- #include reg52.h #define uint unsigned int #define uchar unsigned char uchar code table = The Tem is C ;// 初
[单片机]
Semtech全新LoRa®智能家居器件提供低功耗和低成本的全面覆盖
模拟和混合信号半导体产品及先进算法的领先供应商Semtech公司(纳斯达克股票代码:SMTC)宣布推出全新的LoRa®智能家居器件(LLCC68d),从而将LoRa的市场应用范围从行业类低功耗广域网(LPWAN)扩展到智能家居、社区和消费者应用。该收发器可为室内和邻近区域的物联网(IoT)设备提供低功耗和广泛的覆盖,以连接用于安全防护、环境监测和提供便利等应用场景的传感器和执行器。 “凭借其简单而灵活的网络架构,Semtech的LoRa器件为消费者加速采用智能家居连接解决方案提供了独特的机会。作为一种端到端解决方案,或作为Wi-Fi的补充,LoRa通过为处于室内和室外的低成本和电池供电终端节点设备提供连接,拓展了智能家居
[物联网]
Semtech全新LoRa®智能家居器件提供低<font color='red'>功耗</font>和低成本的全面覆盖
PIC单片机的各种汇编语言指令的用法解析
工作以来一直使用ST的单片机,其他的单片机虽大致了解但从未认真看过,近几日恰好无事,决定熟悉一下PIC的单片机,于是想将自己从网上或这书本上的东西转下来,予以同一样的初学者共同参考。 PIC的指令系统 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号 操作码助记符 操作数1,操作数2;注释
[单片机]
PIC<font color='red'>单片机</font>的各种汇编语言指令的用法解析
上下游联动,给汽车产业注入“芯”动力
随着汽车“新四化”的发展,自动驾驶芯片也将成为汽车芯片领域弯道超车的新赛道。在当前汽车缺芯的挑战下,加速AI芯片的突围创新,是汽车行业无法规避的严峻现实课题。 促进汽车电子芯片与下游应用客户联动、促进人工智能芯片发展、瞄准芯片国家战略加强青少年科创教育……近日召开的上海两会上,集成电路领域汽车芯片、人才教育与产业联动等问题成为人大代表们关注的“芯”事。 全球汽车行业严重“缺芯”    2021年伊始,全球汽车行业“缺芯”问题更加严重,多家车企宣布汽车产量将受半导体短缺影响而下降。 “芯片堪称汽车的神经,整车应用芯片的数量已达500块以上,车上电子稳定程序系统(ESP)、电子控制单元(ECU)等车内核心系统都依赖于此。
[汽车电子]
基于单片机的LED点阵显示控制的设计
由于单片机技术的不断发展以及高亮度LED发光管的出现,使得大屏幕高亮度LED电子广告屏成为可能。与传统的霓虹灯广告相比,LED电子广告屏在显示效果以及可修改性上都有着无法比拟的优势,而且单片机的日益平民化以及LED技术的不断创新,使得高亮度高清晰的LED点阵广告牌与传统霓虹灯广告牌的成本日益接近。另外,SMT技术飞速发展,开关电源的大规模使用,使其无论在体积上还是在可靠性上都比传统的霓虹灯广告有明显的优势,为其在特殊领域的应用奠定了基础。 1 设计原理与设计方案 1.1 设计原理 对于点阵型LED显示可以采用共阴极或共阳极,本系统采用共阳极,其硬件电路如图1所示。当行上有一正选通信号时,列选端四位数据为0的发光二极管便导通点
[单片机]
基于<font color='red'>单片机</font>的LED点阵显示控制的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved