0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实现响应时间和低功耗的事件系统的研究分析

电子设计 来源:郭婷 作者:电子设计 2018-12-25 09:00 次阅读

随着嵌入式系统与外围环境的响应越来越多,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。微控制器(Microcontroller Unit,即MCU)可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机;根据存储器结构可分为Harvard结构和Von Neumann结构;根据内嵌程序存储的类别可分为OTP、掩膜、EPROM/EEPROM和闪存Flash;根据指令结构又可分为CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。

一般来说,CPU负责处理中断和移动数据。在某些应用中,CPU的大多数时间都花费在这些活动上。要应对这些额外的计算负荷,就必须提高CPU时钟速率,因而相应地增加了功耗。在极端情况下,还必须把设计从8/16位器件转换成32位器件才能应付。

在多数情况下,一个外设上的信号除了要让另一个外设知道它有事要做外,两个外设间的联络却需要大量中断处理时间。CPU便会随之中断,并关断马达驱动电路的PWM输出。这个过程需要耗费数十个时钟周期,并需要另外的20~100个时钟周期来恢复关联。微控制器并没真正被用于任何需要其处理能力的事情,只是从模拟比较器向PWM输出传递了一个消息而已。

如果这些外设能够无需中断CPU而直接相互通信,每秒钟就可轻易节省数百万个时钟周期。8位微控制器不再适用于8位应用的一个原因,就是应用涉及的数据处理和中断处理太多,CPU的MIPS大都耗费在这些活动上。而外设和内存之间的传输数据更进一步地增加了MCU的负担。一个350kps的数据传输就要耗费22~25个CPU MIPS。

解决这个问题的一个方法是采用一个带8通道事件系统和直接内存访问(DMA)的低功耗8/16位单周期RISC MCU,让事件系统和DMA来为CPU分担这些工作。DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。 DMA 传输重要地将一个内存区从一个装置复制到另外一个。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统 算法网络是很重要的。

在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。

事件系统通过CPU数据总线和DMA控制器之外的一个专用网络传递外设信号。有了事件系统,当一个外设出现了状态变化,就会自动触发其它外设上的相应动作。在前述马达案例中,微控制器中的模拟比较器、定时器/计数器,I/O引脚或ADC可以在过流状况的两个时钟周期内,直接关断马达驱动电路的PWM输出,不需占用任何中断,也不耗费任何CPU时钟资源,就可以为马达提供更好的保护。

图1,带有事件系统总线的XMEGA微控制器:带有事件系统和DMA的MCU通过CPU数据总线和DMA之外的一个专用网络传递外设信号。这样做的好处是外设间信号通信变成可预见和无延迟,并减少了CPU周期时间和释放了中断资源。

实现响应时间和低功耗的事件系统的研究分析

图1,带有事件系统总线的XMEGA微控制器。

可以触发事件系统的外设事件包括:定时器/计数器比较匹配或溢出,模拟比较器触发,引脚状态变化,ADC完成或比较,以及实时计数器溢出。在其它外设中被触发的事件包括:ADC或 DAC转换,输入捕获以记录通信时间戳或ADC测量时间戳,外部频率或脉宽测量,产生定时器/计数器时钟信号,开始一个DMA交易,或改变一个引脚输出。

采用事件系统能够消除多个和/或频繁的中断触发造成的瓶颈,而且无需软件开销,关键任务可独立于CPU完成,而且也能大大降低功耗。一个没有事件系统的传统8位MCU要耗费16 MIPS才能完成响应马达过流信号关断PWM的动作。在16 MHz,1 MIPS/MHz,以及0.6 mA/MHz的工作条件下,微控制器需要消耗8.6 mA才能完成这项任务。而一个带有事件系统的同等MCU则不消耗MIPS,而且也不会增加功耗。

图2,XMEGA微控制器的事件系统:有了事件系统,一个外设上出现状态变化就会自动触发其它外设上的相应动作,且不 占用任何中断,也不耗费任何CPU时钟资源。可同时处理多达8个外设间事件,以及4个速率为64Mps的数据传输,而CPU处于睡眠模式,电流消耗仅10mA。

实现响应时间和低功耗的事件系统的研究分析

图2,XMEGA微控制器的事件系统。

消除中断后,处理响应延迟可获减少,而且确保最多只要2个时钟周期,或者说在32 MHz 时钟频率下只需62.5 ns的时间;而最快响应时间可达到31.2 ns。实际上,在8/16位MCU上采用事件系统,响应时间较无事件系统的传统32位MCU 缩短了37倍。

传输数据是另一个耗费时钟周期和增加功耗的活动。由于CPU本身每次只能传输1个位,因此用CPU传输数据会带来巨大处理开销很大。8位微控制器必须执行22 MIPS,消耗14mA电流才能完成速率350Kbps的数据传输。

只要在器件上增加一个外设DMA控制器,就可基本上解除CPU的所有这些工作负荷。当CPU数据总线空闲时,DMA控制器便会用它来完成内存和外设间的数据传输,无需使用CPU资源。连接外设寄存器的内部总线是分开的,因而DMA控制器和CPU可以同时进行总线访问。

跟处理能力为22 MIPS、功耗为11mA但不带DMA的8位MCU比较,使用DMA控制器传输350 Kbps数据,MIPS消耗可减少99%;电流消耗则低于1mA。

DMA控制器可以直接将数据从一个外设寄存器移到内部或外部SRAM,也可在SRAM的不同地址间,甚至不同外设寄存器之间移动数据。4个DMA通道有着各自的优先级、、目的地、触发方式、寻址模式,以及传输块大小。由于RISC CPU中简单的线性内存地址空间以及DMA控制器的自动增/减和重新加载的特点,DMA一次可传送1到16M字节。

若事件系统与DMA控制器配合使用,就可按如下方式完成模数和数模转换:任何I/O引脚上的状态变化或任何定时器/计数器出现溢出,就会触发ADC转换,无需任何CPU开销。ADC转换结果通过一个DMA通道传送到SRAM。同时,第二个定时器/计数器会触发一个高速DAC转换,并用第二个DMA通道传输相应的数据。事件系统会让模拟比较器触发输入捕捉,以100%精度记录时间戳,触发自动捕获,记录通信交易的起始时间戳,或在第二个ADC上扫描ADC转换。4个事件通道仍是可使用的,它们可用于PWM输出的故障保护,控制一个高压驱动级、定时器/计数器的级联,以及两个通信通道,所有动作均在同时进行,而CPU则处于睡眠状态。

图3,XMEGA的事件处理:若事件系统与DMA控制器配合使用,就可按如下方式完成模数和数模转换:任何I/O引脚上的状态变化或任何定时器/计数器出现溢出,就会触发ADC转换,无需任何CPU开销。ADC转换结果通过一个DMA通道传送到SRAM。

实现响应时间和低功耗的事件系统的研究分析

图3,XMEGA的事件处理

在微控制器中增加事件系统和DMA对功耗有很大改善。在某些应用中,这样做可使MCU在大多数时间都处于睡眠模式,功率消耗仅80 uA/MHz,而所有的外设却仍继续工作。对一个有8个同时事件和4个350 Kbps数据传输的应用而言,一个带有事件系统和DMA的8/16位MCU,每秒将有3160万个周期处于睡眠模式,而总电流消耗仅4mA。任何不带事件系统和DMA的8/16位MCU则会消耗52 至 60 mA的电流。而一个32位MCU则会消耗34.8 mA的电流,几乎是带有事件系统和DMA处理器的10倍功耗。

有/无事件系统和DMA之MCU的处理周期和功耗比较见表3。

表1,有/无事件系统之MCU的处理周期和响应时间比较

实现响应时间和低功耗的事件系统的研究分析

表2,有/无DMA的MCU传输350 KBps数据时的典型MIPS和功耗

实现响应时间和低功耗的事件系统的研究分析

表3,传输350Kbps 数据的中断、MIPS和功耗比较

实现响应时间和低功耗的事件系统的研究分析


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18265

    浏览量

    288193
  • 存储器
    +关注

    关注

    38

    文章

    7139

    浏览量

    161961
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10428

    浏览量

    206511
  • 低功耗
    +关注

    关注

    9

    文章

    2224

    浏览量

    102633
收藏 人收藏

    评论

    相关推荐

    产品响应时间

    大家好,我正在做一个光开关的控制,老师要求我对产品的响应时间做一个仿真跟优化,基本工作电路是MCU控制升压芯片的电压,要求对从MCU发出升压命令到升压稳定的这一段时间做一个时间的长度仿真,并对已有电路进行优化,缩短
    发表于 06-16 22:20

    SAR ADC响应时间实现迅速响应、快速控制的方法

    “精确的”测量、“准确的”控制操作和/或快速“响应时间”来优化设计。在这个系列博文中,我们将讨论SAR DAC响应时间和几种实现设计最佳效果的方法。当我们考虑模拟电子元器件时:系统的“
    发表于 09-12 11:46

    μC/O-SII内核扩展接口低功耗实时系统

    ,使CPU进入低功耗模式会减弱系统的实时性。这种减弱来自于两个方面,一是使中断响应时间变长;二是使响应时间变得不易预测。
    发表于 05-06 09:18

    如何对看门狗的中断响应时间进行分析

    什么是看门狗?看门狗有哪些相关参数?怎么去设计一种看门狗电路?如何对看门狗的中断响应时间进行分析
    发表于 08-06 06:39

    紫外火焰探测器响应时间测试系统研究

    采用AVR系列ATmega8单片机设计并研制了紫外火焰探测器响应时间测试系统,介绍了该系统的结构和工作原理,论述了系统中高能自动点火装置与时间
    发表于 05-12 21:50 64次下载

    ADIS16365 惯性传感器,具有更快响应时间和更低功耗

    ADIS16365 惯性传感器,具有更快响应时间和更低功耗 Analog Devices, Inc.(ADI)最新推出一款6自由度(6 DoF)惯性传感器——ADIS16365,扩展了其iSensor智能传感
    发表于 09-03 09:30 924次阅读

    什么是响应时间

    什么是响应时间      响应时间是指液晶显示器各像素点对输入信号反应的速度,即像素由暗转亮或由亮转暗所需要的时间(其原理是在液晶分子内
    发表于 05-24 21:53 4980次阅读

    什么是液晶电视的响应时间

    什么是液晶电视的响应时间   响应时间是液晶电视各像素点对输入信号反应的速度,即像素由暗转亮或由亮转暗所需要的时间(其原理是在液晶分子内
    发表于 03-27 13:29 3968次阅读

    光敏电阻响应时间研究

    用半定量方法研究了光敏电阻的响应时间与照射光的照度和波长的关系,并给出了光敏电阻的上升时间和下降时间的测量方法.该实验可作为本科生的探索性实验。有助于培养学生的综
    发表于 09-20 17:00 85次下载
    光敏电阻<b class='flag-5'>响应时间</b><b class='flag-5'>研究</b>

    测量光耦响应时间的简单电路

    测量光耦响应时间的简单电路
    发表于 06-04 11:53 1855次阅读
    测量光耦<b class='flag-5'>响应时间</b>的简单电路

    什么是单片机的中断响应时间

    中断响应时间:从外部中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中,待下一个周期查询。
    发表于 12-19 15:57 8875次阅读
    什么是单片机的中断<b class='flag-5'>响应时间</b>

    面板响应时间有什么影响

    响应时间是一个计算机,显示器成像等多个领域的概念,在网络上,指从空载到负载发生一个步进值的变化时,传感器的响应时间
    的头像 发表于 01-14 14:56 3603次阅读

    基于异构多核的多类型DAG响应时间分析

    基于异构多核的多类型DAG响应时间分析
    发表于 06-15 14:08 22次下载

    PLC的I/O响应时间

    响应时间是指 plc 接收到一个输入信号以后,到输出控制信号所需的时间。当 CPU 接收到对应于输入刷新周期的输入信号时,用于响应时间取决于扫描周期。
    的头像 发表于 10-05 09:23 1922次阅读
    PLC的I/O<b class='flag-5'>响应时间</b>

    进程响应时间是指什么

    进程响应时间是指从发出请求到收到响应时间间隔,是衡量系统性能和用户体验的重要指标之一。在计算机系统中,进程是指一个正在运行的程序实例。当用
    的头像 发表于 11-17 11:31 419次阅读