tag 标签: 中断处理

相关博文
  • 热度 14
    2016-3-10 21:37
    1319 次阅读|
    0 个评论
    高速读取正交编码器信号(比如1MHz,或1m/s,分辨率是1μm)通常需要专用硬件。本设计实例展示了一种简单的方案,它只使用了一个型号为ATtiny2313A的AVR微控制器就能实现这个功能(图)。当然,微控制器也可以通过串口连接到其它器件,或者将测量到的位置信息显示在与端口PB连接的本地液晶显示器上。另外,还可以将一个或多个LED增加到信号误差条件中。 图:用ATtiny2313A读取正交信号;Z索引信号是可选的。 在这个实现中,中断处理程序非常重要。它可以在不到1μs的时间内读取输入信号A和B。差分信号AP/N和BP/N由SN75157接收器处理,如果你的编码器输出的是逻辑电平信号,甚至无需处理。 处理器经配置可以根据端口PD引脚的任何变化产生中断。这个中断位于中断矢量表的最后,因此无需跳转指令,进而可以减少2-3个时钟(100~150ns)的中断服务时间。 通过以前信号和当前信号之间的异或(XOR)操作(Aold?Bnew 或Anew ?Bold)可以判断当前位置是在以前位置基础上增加了还是减少了。Aold和Bold是状态改变前的A和B信号,Anew和Bnew是在中断发生后的值。中断处理程序在PCIsubroutine1.txt文件中。 中断处理程序的执行时间是800~850ns(16~17个时钟)。为了尽量减少中断服务例程(ISR)的执行时间,需要使用一些专门的寄存器,这些寄存器一定不能再被主程序使用: ·R10用于保存SREG,并检测新中断的激活 ·R11和R12用于新旧状态 ·R24和R25用于位置传感器 计算当前位置只需一个时钟周期。缺点是位置只有65536个值。你可以用3个或4个字节来判断位置,此时子程序的执行时间由于增加了必要的指令(使用寄存器对R24、R26、R28或R30)而增加到18-19个周期。 中断处理程序在退出当前ISR之前会检查是否有新的中断。这种情况由SREG中的T位置位通知。实现这种检查后的执行时间将增加3个周期。我们用RB6029(每个圈(rotation)有4000个脉冲)以最快速度测试了子程序的运行,没有发现错误。 在激活中断之前,必须将PCIE2值放进寄存器R12(在使能PCINT2中断和SREG-I标志置位之前先要读取PIND寄存器)。 如果你想使用Z索引信号,位置需要存储在三个寄存器中,因为有1024000个值(4000个/圈;256个圈)。中断处理程序读取数据的过程比较复杂,详见PCIsubroutine2.txt文件。当Z处于激活状态,同时当前位置增加时,长度是19个周期或20个周期。 如果Z索引是激活状态,我们清除角度位置,增加圈的数量,同时检查前面的角度位置是3999。在这个子程序中检测到三个错误:一个错误是叠加了新的中断(就像前一例子中那样),两个错误与Z索引(检查以前角度位置的正确性)有关。误差计数寄存器rerr1、rerr2和rerr3应该由用户来定义。为了初始化系统,需要执行InitIndexZ.txt程序,它会等待Z被激活。 《电子技术设计》2016年2月刊,版权所有,谢绝转载。
  • 热度 28
    2016-2-7 01:03
    2222 次阅读|
    0 个评论
    高速读取正交编码器信号(比如1MHz,或1m/s,分辨率是1μm)通常需要专用硬件。本设计实例展示了一种简单的方案,它只使用了一个型号为ATtiny2313A的AVR微控制器就能实现这个功能(图)。当然,微控制器也可以通过串口连接到其它器件,或者将测量到的位置信息显示在与端口PB连接的本地液晶显示器上。另外,还可以将一个或多个LED增加到信号误差条件中。 图:用ATtiny2313A读取正交信号;Z索引信号是可选的。 在这个实现中,中断处理程序非常重要。它可以在不到1μs的时间内读取输入信号A和B。差分信号AP/N和BP/N由SN75157接收器处理,如果你的编码器输出的是逻辑电平信号,甚至无需处理。 处理器经配置可以根据端口PD引脚的任何变化产生中断。这个中断位于中断矢量表的最后,因此无需跳转指令,进而可以减少2-3个时钟(100~150ns)的中断服务时间。 通过以前信号和当前信号之间的异或(XOR)操作(Aold?Bnew 或Anew ?Bold)可以判断当前位置是在以前位置基础上增加了还是减少了。Aold和Bold是状态改变前的A和B信号,Anew和Bnew是在中断发生后的值。中断处理程序在PCIsubroutine1.txt文件中。 中断处理程序的执行时间是800~850ns(16~17个时钟)。为了尽量减少中断服务例程(ISR)的执行时间,需要使用一些专门的寄存器,这些寄存器一定不能再被主程序使用: ·R10用于保存SREG,并检测新中断的激活 ·R11和R12用于新旧状态 ·R24和R25用于位置传感器 计算当前位置只需一个时钟周期。缺点是位置只有65536个值。你可以用3个或4个字节来判断位置,此时子程序的执行时间由于增加了必要的指令(使用寄存器对R24、R26、R28或R30)而增加到18-19个周期。 中断处理程序在退出当前ISR之前会检查是否有新的中断。这种情况由SREG中的T位置位通知。实现这种检查后的执行时间将增加3个周期。我们用RB6029(每个圈(rotation)有4000个脉冲)以最快速度测试了子程序的运行,没有发现错误。 在激活中断之前,必须将PCIE2值放进寄存器R12(在使能PCINT2中断和SREG-I标志置位之前先要读取PIND寄存器)。 如果你想使用Z索引信号,位置需要存储在三个寄存器中,因为有1024000个值(4000个/圈;256个圈)。中断处理程序读取数据的过程比较复杂,详见PCIsubroutine2.txt文件。当Z处于激活状态,同时当前位置增加时,长度是19个周期或20个周期。 如果Z索引是激活状态,我们清除角度位置,增加圈的数量,同时检查前面的角度位置是3999。在这个子程序中检测到三个错误:一个错误是叠加了新的中断(就像前一例子中那样),两个错误与Z索引(检查以前角度位置的正确性)有关。误差计数寄存器rerr1、rerr2和rerr3应该由用户来定义。为了初始化系统,需要执行InitIndexZ.txt程序,它会等待Z被激活。 《电子技术设计》2016年2月刊,版权所有,谢绝转载。
相关资源
  • 所需E币: 5
    时间: 2021-9-10 23:19
    大小: 154.41KB
    上传者: czd886
    嵌入式系统中断处理的分析和改进
  • 所需E币: 4
    时间: 2019-12-25 16:34
    大小: 31.5KB
    上传者: 16245458_qq.com
    嵌入式Linux驱动程序开发要点在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。嵌入式Linux驱动程序开发要点在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的CPU时间用来等待。网络设备可以通过BSD套接口访问数据。每个设备文件都有其文件属性(c/b),表示是字符设备还是块设备。另外每个文件都有2个设备号,第一个是主设备号,标识驱动程序;第二个是从设备号,标识使用同一个设备驱动程序的、不同的硬件设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致,否则用户进程将无法访问驱动程序。系统调用时操作系统内核与应用程序之间的接口,设备驱动程序是操作系统内核与机器硬件之间的接口。设备驱动程序是内核的一部分,它完成以下功能:●对设备初始化和释放●把数据从内核传送到硬件和从硬件读取数据●读取应用程序传送给设备文件的数据和回送应用程序请求的数据●检测和处理设备出现的错误MTD(MemoryTechnologyDevice)设备是闪存芯片、小型闪存卡、记忆棒之类的设备,它们在嵌入式设备中的使用正在不断增加。MTD驱动程序是在Linux下专门为嵌入式环境开发的新的一类驱动程序。相对于常规块设备驱动程序,使用MTD驱动程序的优点在于他们能更好的支持、管理给予闪存设备,有基于扇区的擦除和读/写操作的更好的接口。……
  • 所需E币: 4
    时间: 2019-12-25 16:19
    大小: 231.11KB
    上传者: quw431979_163.com
    VxWorks下FMPC860的中断处理机制及其应用维普资讯http://www.cqvip.com控制系统VxWorks'FMPC860的中断处理机制及其应用InterruptHandlingMechanismofMPC860underVxWorksand……
  • 所需E币: 4
    时间: 2019-12-25 15:52
    大小: 369.9KB
    上传者: 微风DS
    提出一种以嵌入式微处理器为核心,移植VxWorks操作系统的方法.通过对VxWorks输入/输出系统的分析以及中断处理和异常处理过程的研究,设计了相应的外围器件,成功实现了VxWorks操作系统的移植.第24卷第6期计算机应用研究V01.24No.62007年6月Applica“onResearchofComputeI_sJune2007基于嵌入式微处理器的VxWorks系统移植屈文新,樊晓桠……
  • 所需E币: 5
    时间: 2019-12-25 15:15
    大小: 189.1KB
    上传者: 978461154_qq
    设计基于SH-3系列单片机程序时的若干关键技术,包括中断处理程序和C程序中变量,并给出关键部分的汇编和C语言程序.介绍的所有方法都在实际系统中得到验证.……
  • 所需E币: 4
    时间: 2019-12-25 15:04
    大小: 282.37KB
    上传者: 二不过三
    介绍基于WindowsCE.net的AD7854流接口驱动程序的开发.以AD7854与嵌入式处理器S3C2410接口电路为依据,详细阐述WindowsCE.net的中断处理过程,给出驱动开发的具体实现过程、涉及的内核文件以及部分源代码.该驱动程序的实现为基于WindowsCE.net的嵌入式系统引进AD7854提供了方便.……
  • 所需E币: 3
    时间: 2019-12-25 12:49
    大小: 484.68KB
    上传者: 238112554_qq
    基于ARM处理器的RealMonitor实现InformationQuarterly[51]Number3,Autumn2005InformationQuarterly[52]Number3,Autumn2005InformationQuarterly[53]Number3,Autumn2005……
  • 所需E币: 4
    时间: 2019-12-25 12:18
    大小: 151KB
    上传者: rdg1993
    C语言进阶-第六讲中断与驱动……
  • 所需E币: 5
    时间: 2019-12-25 12:07
    大小: 300.36KB
    上传者: 微风DS
    C与汇编混合编程……
  • 所需E币: 5
    时间: 2019-12-25 10:49
    大小: 251.6KB
    上传者: givh79_163.com
    中断系统……
  • 所需E币: 3
    时间: 2019-12-25 10:35
    大小: 246.24KB
    上传者: 978461154_qq
    异常中断处理……
  • 所需E币: 5
    时间: 2019-12-25 10:35
    大小: 2.69MB
    上传者: givh79_163.com
    嵌入式软件系统设计……
  • 所需E币: 4
    时间: 2019-12-25 10:34
    大小: 830.39KB
    上传者: 2iot
    嵌入式操作系统UCOS的使用……
  • 所需E币: 4
    时间: 2019-12-25 10:34
    大小: 79.74KB
    上传者: 238112554_qq
    ADS异常处理……
  • 所需E币: 3
    时间: 2019-12-25 10:33
    大小: 10.27MB
    上传者: 二不过三
    嵌入式操作系统原理……
  • 所需E币: 4
    时间: 2019-12-25 10:25
    大小: 2.27KB
    上传者: givh79_163.com
    单片机典型模块设计实例1……
  • 所需E币: 3
    时间: 2019-6-9 09:07
    大小: 705.07KB
    上传者: royalark_912907664
    在自动测试系统中,计算机与硬件板卡之间的高速数据传输是高性能测试系统研发的关键点。为满足海量数据的高速传输,PXI总线是很好的选择。随着对测试系统集成度要求的不断提高,更多的硬件设备需要参与到测试过程之中,这就使得设备的驱动开发与维护变得更加重要。在基于WDF驱动框架下,设计开发了PXI总线多功能数据采集卡的驱动程序。驱动程序的主要功能包括驱动对象与设备对象的创建、I/O请求处理、中断处理和DMA处理,很好的实现了计算机对板卡的功能控制。