ARM Cortex M3/M4微控制器最大效率设计三秘诀

发布者:RadiantDusk最新更新时间:2014-08-30 来源: 互联网关键字:Cortex-M3 手机看文章 扫描二维码
随时随地手机看文章

  大部分采用Cortex-M3/M4 MCU的目标应用是便携式的,并且供电电源来自电池或能源收集系统,因此我们所探讨的大部分概念涉及如何减少系统整体能耗的技术。然而,在许多情况下,这些节能技术也是处理器应用设计的有力工具,可提供:

  ●更符合成本效益的解决方案

  ●更大的升级和采用新特性的设计冗余

  ●有助于产品在激烈竞争市场上脱颖而出的性能和特性

  小知识:Cortex-M3对比Cortex-M4

  Cortex-M3架构背后的指导思路是设计一种既要满足应用的成本效益又要提供高性能计算和控制1的处理器。类似的应用包括汽车车身系统、工业控制系统和无线网络/传感器产品等。M3系列为32位的ARM处理器架构引进了多项重要特性,包括:

  ●不可屏蔽式中断

  ●高度确定性、嵌套、向量式中断

  ●原子位操作

  ●可选的存储保护(MPU)

  除了绝佳的计算性能,Cortex-M3处理器先进的中断结构还能确保系统迅速响应真实世界的事件,同时仍然提供极低的动态与静态功耗。

ARM

  图1 ARM Cortex M3和M4对比

  进入正题

  SWO接口节省I/O引脚并加速调试

  除了传统的串行调试(Serial Wire Debug)功能之外,基于ARM Cortex-M的MCU还可以通过它的单引脚串行监视器输出(Serial Wire Viewer Output,SWO)3提供指令跟踪接口,如图2所示。这个接口可以直接把“printf格式的”调试信息传递给应用代码。SWO允许调试信息直接在任何标准的IDE中浏览。此外,这些信息也可以用独立的SWO监视器(例如,Segger的J-Link SWO Viewer软件4,或是Silicon Labs的energyAware Commander 4)进行浏览。由于SWO输出内建于内核硬件本身,因此它是Cortex-M内核与生俱来的优点。SWO不占用MCU的任何UART接口,这些接口它们可能早已被分配给了应用。

ARM

  图2 专用ARM Cortex SWO接口节省I/O引脚并加速调试

  基于SWO的调试还有一个重要的优势在于,它让微控制器在进入最低的休眠模式时,保持调试连接有效,而在大多数情况下,传统的调试连接这时是不能正常工作的。SWO的指令追踪还可以用于跟踪程序计数器,以帮忙IDE统计出程序各项功能所占用的时间。这些统计数字能够与电流测量结合起来,帮助开发人员对设计功耗进行微调。

  目前一些供应商正在开始重新认识这项优点,而且有些厂商已经为了这个目的而把功耗模式和电流测量硬件纳入到本身的开发平台。例如,Silicon Labs的EFM32 Gecko MCU入门级和开发级工具包都包含功耗测量输出,并可搭配energyAware Profiler工具6中的程序代码追踪功能。图3显示了如何让设计人员精确定位到哪个程序功能块最耗费能源,并且能够快速调试其它与能源有关的问题。

ARM

  图3 软硬件工具精确定位耗能最大的功能,无需示波器和万用表,快速排除问题

  智能休眠节省每一微瓦

  ARM Cortex-M处理器的Sleep-on-Exit(中断完成时直接进入休眠)是另一项“一箭双雕”的功能,可同时节省CPU周期和能耗。这点在由中断所驱动的应用中格外有用,因为处理器的大部分时间不是在执行中断处理,就是在中断事件之间休眠。在进入中断服务例程(ISR)时,MCU必须花费好几个指令周期把当前线程状态入栈,然后在退出中断处理返回时恢复原有线程状态,即“出栈”。当应用需要处理器在退出ISR后直接进入休眠状态时,传统MCU仍然必须恢复原先存储的状态信息,然后线程代码才能让MCU进入休眠状态。同样地,当下次的中断唤醒MCU时,它的状态必须再次入栈。

  而当使能ARM Cortex-M微控制器上的Sleep-on-Exit功能后,MCU就会在中断处理完成后直接进入休眠状态,而不用先返回到原有线程上(见图4)。这会使处理器仍然保持在中断状态,因为消除了唤醒再入栈过程,因而节省下许多宝贵的机器周期。消除入栈出栈过程既节省了时间也节省了能耗,否则电能就会被不必要的指令周期白白消耗,也包括哪些传统MCU在休眠和唤醒之间管理堆栈的代码。而且,当处理器被中止调试请求(Halt Debug Request)唤醒时,出栈过程将会自动进行。

流程图
ARM

  图4:ARM Cortex-M的Sleep-on-Exit功能通过避免不必要的代码执行和减少出栈入栈操作降低功耗

  ARM Cortex-M4运行更快、休眠功耗更低

  像许多MCU一样,Cortex-M3/4处理器通常能够采用高时钟速率的方法在中断驱动的应用中节省能耗。如果处理器大部分时间处于休眠状态,这种看似违背直觉但普遍采用的节能策略就会很好,因为运行时间减少所节省的能耗远远大于稍高的操作电流。简单来说,多花10%的电可以省掉 20%的时间,总体来说是节能了。

  这种技术可以应用在任何Cortex-M系列的处理器上,而涉及密集运算任务的应用也能从Cortex-M4处理器的额外能力中受益。它的单周期DSP指令和可选的浮点加速器能大大减少诸如数字信号处理、过滤、分析或波形合成等功能所需要的执行周期数。

  上面提及的节能特性也能带来其它优势。例如,在超音波/声学水表之类的应用中,它们必须在小电池供电下运行多年,需要MCU尽可能长的保持在休眠状态。除了有助于减少MCU唤醒时间之外,Cortex-4 DSP和浮点算术指令也能使用成熟的滤波功能从廉价声学传感器输出中获得所需的信息,从而避免采用昂贵的超声波流量传感器。在这个应用实例中,Wonder Gecko MCU的外设还能够作为模拟状态机提供额外的能量节省,它仅仅在需要时才唤醒Cortex-M4处理器。

  虽然并不完备,但这些林林总总的秘诀与妙方应该能让各位产生好的思路,可以在下一次设计中充分利用Cortex-M系列中一些较不为人知的特性所带来的好处。为了发挥ARM Cortex-M系列的这些和其它重要功能,可参考本文末段的参考资料,它们提供了所需的更多细节。

关键字:Cortex-M3 引用地址:ARM Cortex M3/M4微控制器最大效率设计三秘诀

上一篇:基于TMS320C6678的多核DSP上电加载技术
下一篇:基于DSP的智能控制器高可靠性分析与设计

推荐阅读最新更新时间:2024-05-02 23:09

Cortex-M3中断服务程序设计
是嵌入式应用系统获取各种事件的基本手段。而事件是实时性问题的讨论基础和事件计算的起点。 中断优先级 不同中断服务程序应有不同优先级,在允许中断嵌套时,最高优先级的中断总是能够得到响应。 只要没关中断,ISR可以中断任何任务的运行,比最高优先级的任务还要高。 Cortex-M3中断资源 抢占优先级:实现中断嵌套 子优先级:当抢占优先级相同的两个中断同时发生时,子优先级高的中断可以首先获得运行权。 中断优先级安排原则 紧迫性:触发中断的事件允许耽误的时间越短,优先级越高。 关键性:触发中断的事件越关键,越高 频繁性:触发中断的事件发生越频繁,越高 快捷性:前三项相近,ISR处理越快,越高。 ISR功能应尽量简单,只要
[单片机]
<font color='red'>Cortex-M3</font>中断服务程序设计
【ARM】浅谈Cortex-M3
1 关于ARM 英国ARM公司是全球领先的半导体知识产权(IP)提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。 ARM公司本身不生产芯片,通过出售芯片技术授权来进行盈利。同时,也提供技术的解决方案,比如,人工智能,物联网,安全,5G。 2 ARM Cortex-M3处理器 在CM3出现之前,ARM7占有了市场的大部分额,半导体厂商(NCP,TI,Atmel,ST等)都以ARM为内核,做出了性能强劲的32位MCU。CM3作为后来者,重新设计了架构,处理能力更加强大。 3 ARM处理器架构 应用 配置: Cortex-A 系列 嵌入式
[单片机]
【ARM】浅谈<font color='red'>Cortex-M3</font>
Cortex-M3 (NXP LPC1788)之IIS应用--UDA1380进行音频数据播放
LPC1788发送到I2S总线上的音频数据要通过音频解码芯片才能输出模拟音频信号。开发板上使用的是UDA1380,对它的寄存器的配置可以通过L3总线或者I2C总线进行,这里使用I2C总线进行控制,对于I2C总线的操作可以参考之前I2C的介绍。UDA1380的寄存器主要分成3类,系统控制、插值滤波(interpolation filter)、抽取滤波(decimator filter)。插值滤波和DAC转换有关,用于控制控制声音的输出参数。抽取滤波和ADC有关,用于控制对音频的采样。寄存器的地址和功能如图1所示。 图1:UDA1380寄存器地址和功能 根据图1的红色标记中的内容,可以知道两个滤波器的正常使用需要
[单片机]
<font color='red'>Cortex-M3</font> (NXP LPC1788)之IIS应用--UDA1380进行音频数据播放
基于EFM32+MPTC120NWL的数字气压计及高度计
概述 气压是来自于环境气体压强的物理参数。它能够直接反应所处环境的气体压强状况,也可用于预测天气的变化。气压高时,天气晴朗;气压降低时,将有风雨天气出现。此外,在户外运动时也可以利用气压参数测量山体的海拔高度,飞机在空中的飞行高度等。因此结合气压测量及学科扩展,它可以应用于测量仪器、户外运动手表、飞行航模、环境监测等多种领域。 气压计安装测量方法可以简单分为水银气压计和无液气压计。传统的水银气压计虽然具有无需外部供电,制作成本简单等特点,但是存在测量精度不够、存在读数误差、极限工作温度范围较窄等不足。因此,高精度、低功耗、使用简易的电子式无液气压计方案应运而生。本方案采用超低功耗的EFM32 作为主控MCU,气体压力检测部分采
[单片机]
基于EFM32+MPTC120NWL的数字气压计及高度计
Cortex-M3 MCU如何走出差异化的8位单片机替代之路
Cortex-M3 MCU如何走出差异化的8位单片机替代之路 前阵子,MCU市场“噩耗”频频传出。由于微控制器产品利润的不断下滑,先是富士通半导体宣布出售其MCU业务,紧接着三星半导体也不得不断臂淡出MCU市场。不过,在眼下阴云密布的MCU市场上也并非只有坏消息,日前,Silicon Labs就宣布签署了收购Energy Micro AS的最终协议。 代理Silicon Labs MCU产品线的知名分销商世强负责微控制器业务的张园根先生也表示:“富士通半导体和三星半导体退出的主因应该是MCU利润下滑太厉害,技术优势不足以弥补。目前除了国际老牌MCU厂商,台湾和中国大陆新晋厂商也不断涌入,更是进一步拉低了价格。” 市场竞争惨烈,不进
[单片机]
<font color='red'>Cortex-M3</font> MCU如何走出差异化的8位单片机替代之路
关于STM32 (Cortex-M3) 中NVIC的分析
  一、STM32 (Cortex-M3) 中的优先级概念   STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。   1. 何为占先式优先级(pre-emption priority)   高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。   2. 何为副优先级(subpriority)   在占先式优先级相同的情况下,高副优先级的中断优先被响应;   在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中
[单片机]
ARM Cortex-M3 学习笔记(4-5)
最近在学ARMCortex-M3, 找了本号称很经典的书 An Definitive Guide to The ARM Cortex-M3 在看。这个系列学习笔记其实就是在学习这本书的过程中做的读书笔记。 Barrier 指令 DMB, DSB, ISB 这三个指令的区别如下表所示。 指令名 功能描述 DMB 数据存储器隔离。DMB指令保证: 仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存储器访问操作。 DSB 数据同步隔离。比DMB严格: 仅当所有在它前面的存储器访问操作都执行完毕后,才执行在它后
[单片机]
Cortex-M3基础学习
  因为项目所需,所以不得不开始研究M3,我用的是NXP公司的 LPC1768 这个芯片,它是具有三级流水线的哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线,还包含一个支持随机跳转的内部预取指单元。好了,今天只是初步测试一下它的GPIO功能,所谓的GPIO也就是通用输入/输出口(General Purpose Input Output),万丈高楼平地起,慢慢来吧。实验的原理图很简单,就是几个LED灯,关于灯的电流及电压参数,这里不作详细介绍,有兴趣的可以到网上或供应商那里要一份数据手册看一下,做技术的不能懒,有些东西该看的还是要看的。      图1 硬件原理图   硬件原理图很简单了,74
[单片机]
<font color='red'>Cortex-M3</font>基础学习
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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