发挥ARM Cortex-M3和M4微控制器最大作用的要诀

发布者:sheng44最新更新时间:2014-01-24 来源: 21ic关键字:ARM  Cortex-M3  Cortex-M4  微控制器 手机看文章 扫描二维码
随时随地手机看文章

 引言

许多嵌入式开发人员对ARM Cortex处理器架构颇为熟悉,但很少有人能够对这种流行架构了如指掌,从而可以充分发挥它独特的特性和性能。新型ARM Cortex-M4处理器尤为如此,它拥有引以为豪的增强架构、天生的数字信号处理(DSP)能力和可选的浮点加速器,使精于此道的程序设计人员或硬件工程师可以充分发挥它的优势。本文接下来将就Cortex-M3/M4微控制器(MCU)的一些更有趣的(但经常遭到忽视的)特性展开详细的论述。

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

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

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

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

ARM Cortex基本介绍

就像Advanced RISC Machines(ARM)公司在20世纪80年代所推出的第一代16位处理器内核一样,ARM Cortex系列以哈佛式RISC架构为基础,采用适度的硅封装工艺获得更高性能,以及代码和内存效率。该架构在过去十年间大有进展,扩展出了三种不同的子系列,以满足特定应用的需求:

●A型系列处理器针对高效能开放应用平台而优化设计。

●R型系列处理器注重提升实时应用的性能和可靠度。

●M型系列处理器特别为采用嵌入式MCU的应用而设计,其性能必须在能源效率和降低解决方案成本之间加以平衡。适用于Cortex M系列的常见应用包括智能电表、人机接口设备、汽车与工业控制系统、白色家电、消费电子产品和医疗器材等。

Cortex-M3对比Cortex-M4

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

●不可屏蔽式中断

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

●原子位操作

●可选的存储保护(MPU)

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

图1:Cortex-M3与M4处理器内核的比较。

Cortex-M3和M4处理器共享许多相同的设计要素,包括先进的片内调试特性,以及执行完整ARM指令集或ARM指令子集(用于THUMB2处理器)的能力。Cortex-M4处理器的指令集具有增强的高效DSP特性库,包括扩展的单周期16/32位乘法累加器(MAC)、双16位MAC指令、优化的8/16位SIMD运算及饱和运算指令。总体来说,M3与M4最显著的差别在于,M4具有可选的单精度(IEEE-754)浮点单元(FPU)。

多项秘诀造就巧妙解决方案

嵌入式设计的成败经常取决于如何在系统性能、能耗和解决方案成本之间找到适当的平衡。许多情况下,开发人员可以采用Cortex-M处理器上的独特特性来优化产品成本或能源需求,同时维持、甚至提升它的性能。例如,Cortex-M内核天生的串行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接口,这些接口它们可能早已被分配给了应用。

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

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

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

图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)唤醒时,出栈过程将会自动进行。

图4:ARM Cortex-M的Sleep-on-Exit功能通过避免不必要的代码执行和减少出栈入栈操作降低功耗。(引自:《The Definitive Guide to the ARM Cortex-M31》)

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

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

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

一些应用仅仅需要DSP处理能力。例如,有些安全系统采用一种以声学分析来感测玻璃破损的装置。玻璃破损时会发出一连串独特的声音和振动,并且在玻璃特有的固有频率时达到最大,在这个例子中是13kHz。大多数采用传感器接口的系统只有在所监测的频率被监测到时,才唤醒处理器。但是当设计中使用带DSP功能的Cortex-M4时就能额外节能,因为它在执行实际的玻璃破损分析时比软件解决方案更快。

甚至,这些使用基于M4微控制器的应用可以更加节能,因为MCU中所包含的高级休眠模式和自治外设可以在CPU休眠时执行许多日程任务。例如,以Cortex-M4为内核的Wonder Gecko MCU7具有五种不同的低功耗模式,包括20nA的关机状态和950nA的深度休眠模式(实时时钟有效、RAM和寄存器内容保持、使能掉电检测)。

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

结论

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

此外,如何通过选择搭配有合适I/O、加速器和其它先进外设的ARM MCU来改善设计性能、功耗和解决方案成本,来自Silicon Labs的EFM32 Gecko和Wonder Gecko MCU系列产品提供了极佳范例。

关键字:ARM  Cortex-M3  Cortex-M4  微控制器 引用地址:发挥ARM Cortex-M3和M4微控制器最大作用的要诀

上一篇:数据融合技术在车辆动态称重系统中的应用
下一篇:嵌入式系统的自适应前照灯系统设计

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

基于LM3S8962 ARM的神经元控制直流调速系统
直流电动机具有良好的起制动性能,能大范围内平滑调速,因而在可控的电力拖动领域中得到了广泛的应用。然而传统的直流调速系统所采用的是由分立元件构成的复杂PID模拟控制系统。常规PID控制虽然具有结构简单、稳定性好、易于工程实现等优点,但该方法过分依赖控制对象的模型参数,鲁棒性差。对于复杂系统如对机器人的控制,由于其负载模型参数的大范围变化以及非线性因素的影响,常规PID控制难以达到满意的效果。本文提出一种基于 LM3S8962 ARM芯片的模糊控制系统,以替代传统的PID模拟控制,提高直流调速系统的控制性能。 1 控制系统的控制方案 系统控制框图如图1所示,采用串级控制,分为转速环(外环)和电流环(内环)。为了提高系统响应的快速性
[工业控制]
基于LM3S8962 <font color='red'>ARM</font>的神经元控制直流调速系统
基于MSP430单片机的智能防夹电子密码锁
传统的锁具由于其构造简单,被强行破坏导致用户财产被盗的事件屡见不鲜,电子密码锁安全系数高,使用方便,性价比高,受到了广大用户的喜爱。锁具发展至今已有数千年的历史了,但是传统锁具都有不同程度上的缺点:传统锁具制作工艺在技术上已经明显落后,其制造材料无法抵抗强力破坏,无法阻止技术手段的开启,并且很多密码锁存在着夹手的问题。随着电子技术和人工智能技术的不断发展,电 子类产品的发展更趋向智能化和自动化。针对目前 市面上密码锁存在的问题,设计了一款基于MSP430 单片机的智能防夹电子密码锁,可以满足大多数用 户对于家庭防盗的需求。 1电子锁设计特点本设计从经济实用、防夹手的角度出发,采用MSP430 单片机作为主控系统,设计了一款具有
[单片机]
基于MSP430<font color='red'>单片机</font>的智能防夹电子密码锁
ARM指令集——数据处理指令
ARM汇编指令集 ARM汇编文件的组成 指令:编译完成后作为一条指令(机器码)存储在内存单元中,CPU执行时能够完成处理的操作 伪指令:在编译时替换成能被识别的ARM指令 伪操作:知道编译器进行编译,编译完成后不生成指令,也不占用内存空间。 ARM汇编指令类型 数据处理指令 跳转指令:实现程序执行过程中的跳转 Load/Store指令:CPU与内存数据之间的操作指令 状态寄存器存送指令:对状态寄存器操作(只能使用这些指令对状态寄存器操作) 协处理器指令:对协处理器进行操作 异常产生指令:产生异常(软中断),实现模式切换 数据处理指令 mov,add,adds,adc,sub,subs,sbc,rsb,mul,and,o
[单片机]
单片机译码器的作用和工作原理
问:单片机里的译码器是如何工作的?寻址空间是如何确定的?译码器与寻址空间是怎么联系的? 答:单片机技术里常用的译码器实际上是由许多与门、或门、非门和它们的组合构成的。它有若干个输入端和若干个输出端(也可能只有一个输出端)。对某一个输出端来说,它的电平高低必然与输入的某一种状态相对应。 例如,具有4个输入端的与非门就是一个简单的译码器,只有四个输入端为1111时,它的输出端才为0。如果将地址总线的A9、A8、A7、A6与它的四个输入连接起来,并把它的输出连到存储器芯片或某个需要寻址的外设接口的片选端(假定低电平有效),那么,只有当A9、A8、A7、A6为1111时,存储器芯片或外设才会被选中。 译码器的寻址空间取决于地址总线的
[单片机]
全面剖析arm平台安全架构psa
随着物联网(IoT)的发展,近年来所部署的连接设备也与日俱增,这促使针对物联网的攻击数量急剧上升,即便是小型的低成本设备, 也必须确保安全,因为它们很可能成为黑客攻击大型系统的入口。更强大、可扩展的物联网防御系统刻不容缓! 走进 Arm 的平台安全架构(PSA) 平台安全架构是一个由威胁模型、安全分析、以及硬件和固件架构规范组成的整体。PSA 提供了一个基于行业最佳实践的框架,通过它可以在硬件和固件层面实现一致的安全设计。它为制造更安全的设备提供了通用规则和更加经济的方法。另外,Arm 还面向基于 Armv8-M 的设备推出了 PSA 固件的开源参考实施。PSA的组件按照三个总体设计的来构建: 分析,架构和实施。 1 分析
[单片机]
全面剖析<font color='red'>arm</font>平台安全架构psa
PIC单片机或运算指令XORWF的设计和实现
大家都知道,PIC单片机的大多数寄存器,包括RAM数据存储器的每个存储单元都能实现移位、清位、位测试等系列复杂操作功能。然而,协调它们运行的(应用最广泛的基本级、中级)精简指令集中,却没有对寄存器的某"位"进行"取反"运作的现成指令,而在实际应用中对某些"位"进行取反运作是很需要的。如下图所示。单片机PIC16C622单片机的端口RB作为输出端口的8个引脚,分别控制着8个不同的电器设备。按动按钮AN一下,继电器J吸合,再按一下J释放,即按动AN一下,端口RB3引脚的输出状态改变一下,而RB口的其它7个引脚输出保持原有状态不变。在这种情况下最好的方法是按动一下AN,对PORTB(3)"取反一次"--这对于MCS-51单片机来讲是极
[单片机]
PIC<font color='red'>单片机</font>或运算指令XORWF的设计和实现
ARM裸机程序设计—按键中断程序设计
首先是按键中断处理过程: 1、中断控制器汇集各类外设发出的中断信号,然后告诉CPU 2、CPU保存当前程序的运行环境(各个寄存器等),调用中断服务程序(ISR,Interrupt Service Routine) 3、在ISR中通过读中断控制器、外设的相关寄存器来识别这是哪个中断,并进行相应的处理 4、清楚中断:通过读写中断控制器和外设的相关寄存器来实现 5、最好恢复中断程序的运行环境(即上面保存的各个寄存器等),继续执行 按键中断程序设计流程: 1、按键以及按键中断初始化 1)对按键中断端口初始化,设置为特殊功能模式(10) 2)设置外部中断触发方式(EXTINTn低电平触发000、高电平触发001、上升沿触
[单片机]
常用电机微控制器之比较
    摘要: 在介绍几种典型电机微控制器8XC196MC、TMS320C240和ADMC311结构的基础上,着重对这些芯片如何实现PWM控制等交流电机控制系统所必需的性能进行了分析比较,以便为交流感应电机(ACIM)、步进电机(SM)等电机控制系统的数字设计提供参考。     关键词: DSP 微控制器 电机控制 PWM 电机控制是微控制器的一个重要应用领域。近几十年来,随着微电子工艺水平的提高,电机微控制水平有了飞速的发展。世界上著名的集成电路芯片制造商纷纷推出各自的产品,使得电机微控制器种类不断增多,功能日益增强。常见的有Intel公司的8CX196MC/MD/MH、TI公司的TMS320C24x系列
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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