利用事件系统和DMA来实现超快响应时间和极低功耗
。在其它外设中被触发的事件包括: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和功耗比较
- flash接口电路的实现(07-18)
- RS485串行总线可靠性的研究(03-24)
- 掉电保护在嵌入式系统中的设计应用(01-05)
- 基于SEP0611的电源管理驱动设计方案(04-10)
- 基于FLASH介质嵌入式存储方案的设计与实现(04-20)
- 嵌入式应用的高度整合的USB微控制器解决方案(03-05)