使用事件系统和DMA来消除中断可实现超快响应时间和极低功耗

使用事件系统和DMA来消除中断可实现超快响应时间和极低功耗技术分类:电源技术|2010-05-30KristianSaether,爱特梅尔公司AVR产品市场经理随着嵌入式系统与外围环境的响应越来越多,需要捕获和处理数据的外设数量也暴增。微控制器通常配备ADC、DAC、PWM、多个定时器/计数器,以及大量的TWI、SPI、CAN、USB和USART通信接口。外设的增加意味着需要循环密集(cycle-intensive)的中断,而在内存和外设之间移动的数据量也会呈指数级增加。一般来说,CPU负责处理中断和移动数据。在某些应用中,CPU的大多数时间都花费在这些活动上。例如,管理两个同步外设之间的通信和64Mbps速率的单一数据传输就需要200CPUMIPS,并消耗240mA电流,原因是这涉及了广泛的场景关联转换和中断处理。要应对这些额外的计算负荷,就必须提高CPU时钟速率,因而相应地增加了功耗。在极端情况下,还必须把设计从8/16位器件转换成32位器件才能应付。在多数情况下,一个外设上的信号除了要让另一个外设知道它有事要做外,并不需要CPU做什么。可惜的是,两个外设间的联络却需要大量中断处理时间。例如,在马达控制应用中,为防止马达过热,必须不断测量马达上的电流,并在出现过流马达停转信号时触发一个模拟比较器。这样CPU便会随之中断,并关断马达驱动电路的PWM输出。这个过程需要耗费数十个时钟周期,并需要另外的20~100个时钟周期来恢复关联。微控制器并没真正被用于任何需要其处理能力的事情,只是从模拟比较器向PWM输出传递了一个消息而已;换言之CPU时钟资源基本上被浪费了。除此之外,定时器/计数器为其它外设(ADC和DAC)的定时也会耗费CPU时钟的资源。在这类情况下,都要产生一个中断来开始一次转换。在几个kHz的抽样速率下,这些定时器/计数器中断会消耗掉1MIPS,大约是一个12MIPSCPU的8%的处理能力。如果这些外设能够无需中断CPU而直接相互通信,每秒钟就可轻易节省数百万个时钟周期。8位微控制器不再适用于8位应用的一个原因,就是应用涉及的数据处理和中断处理太多,CPU的MIPS大都耗费在这些活动上。而外设和内存之间的传输数据更进一步地增加了MCU的负担。一个350kps的数据传输就要耗费22~25个CPUMIPS。解决这个问题的一个方法是采用一个带8通道事件系统和直接内存访问(DMA)的低功耗8/16位单周期RISCMCU,让事件系统和DMA来为CPU分担这些工作。这种微控制器构架可同时处理多达8个外设间事件,以及4个速率为64Mps的数据传输,而且总体电流消耗低于10mA。由于事件系统和DMA可让外设自主地相互通信,因此不再需要CPU时钟周期或中断,这样CPU也就可以处于睡眠状态了。事件系统通过CPU数据总线和DMA控制器之外的一个专用网络传递外设信号。这样做的好处是外设间信号通信变得可预见和无延迟,并减少了CPU时间和释放了中断资源。有了事件系统,当一个外设出现了状态变化,就会自动触发其它外设上的相应动作。在前述马达案例中,微控制器中的模拟比较器、定时器/计数器,I/O引脚或ADC可以在过流状况的两个时钟周期内,直接关断马达驱动电路的PWM输出,不需占用任何中断,也不耗费任何CPU时钟资源,就可以为马达提供更好的保护。图1,带有事件系统总线的XMEGA微控制器:带有事件系统和DMA的MCU通过CPU数据总线和DMA之外的一个专用网络传递外设信号。这样做的好处是外设间信号通信变成可预见和无延迟,并减少了CPU周期时间和释放了中断资源。图1,带有事件系统总线的XMEGA微控制器。可以触发事件系统的外设事件包括:定时器/计数器比较匹配或溢出,模拟比较器触发,引脚状态变化,ADC完成或比较,以及实时计数器溢出。在其它外设中被触发的事件包括:ADC或DAC转换,输入捕获以记录通信时间戳或ADC测量时间戳,外部频率或脉宽测量,产生定时器/计数器时钟信号,开始一个DMA交易,或改变一个引脚输出。至于哪些事件应该触发特定外设上的哪些动作,完全可由设计人员进行配置。事件系统配置可以是静态锁定的,也可在应用执行的不同阶段动态变化。事件通道并行运作,任何时刻都可有多达8对外设同时互联。采用事件系统能够消除多个和/或频繁的中断触发造成的瓶颈,而且无需软件开销,关键任务可独立于CPU完成,而且也能...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?