MAX3420E外设控制器的中断系统

发布者:恬淡岁月最新更新时间:2006-10-16 来源: 电子元器件应用关键字:USB  控制  信号  寄存 手机看文章 扫描二维码
随时随地手机看文章

MAX3420E可与任何SPI主控制器相连,以构成全速USB外设器件。尽管一般都由MAX3420来管理底层USB信令,但是需要处理USB事件时,SPI主控制器必须参与处理,当MAX3420的INT引脚指示有中断发生时,SPI主控制器将读取14个中断请求位,以确定需要服务的中断,一般情况下,主要由这些中断请求(IRQ)位确定MAX3420E的工作过程,在选择器件时,SPI主控制器可以是微控制器、DSP、ASIC或具备SPI端口的其他器件,并应能提供SCLK信号。

MAX3420E的中断逻辑

◇ IRQ位

图1所示为MAX3420E中断逻辑。阴影部分是可通过SPI访问的寄存器位,图中有一个IRQ位,实际上,每一个中断都有一个用于锁存服务请求的触发器。触发器的输出即为IRQ,它出现在MAX3420E寄存器中,IRQ位提供两种功能:一是读取一个IRQ位,然后返回IRQ触发器的状态;二是写入一个“1”至IRQ位,以清除IRQ触发器,而写入“0”至IRQ位,则不改变触发器状态。

事实上,可以在任意时刻读取IRQ位,它反映了IRQ触发器的状态,当按照写入1而不是0来清除所选的IRQ位时,这一过程不需要读-修改-写周期,假设MAX3420E的IRQ位与普通的寄存器位一样,即写1置位,写0清除,那么,清除USBIRQ寄存器的USESIRQ位的操作代码如下:

#define rUSBIRQ 13 //register 13

#define bmURESIRQ 0x08 //URESIRQ is bit4,bm means“bit mask”

unsigned char dum;

dum=rreg(rUSBIRQ); //read the register

dum=dum&—bmURESIRQ; //chear one bit

wreg(Rusbirq,dum); //write it back

由于SPI主控制器可通过写1来清除一个MAX3420E IRQ位,而写0则不改变其他寄存器位,因此,SPI主控制器可直接写入位屏蔽值以清除URESIRQ位。这样,上述代码中的最后三条语句便可由下面的单条语句所替代:

wreg(rUSBIRQ,bmURESIRQ);//1 cheras an IRQ bit,0 leaves it alone

◇ IEN位

14个MAX3420E中断的每一个都有相应的中断使能(IEN)位,IEN位和IRQ触发器输出进行“与”操作,可决定是否向INT引脚传送中断请求。14个IRQ触发器通过门控电路后再进行“或”操作,也会形成一个内部中断请求信号,并传送至中断引脚逻辑模块。

实际上,无论IEN位的状态如何,IRQ位都指示中断悬挂状态,这样,即使中断不触发INT引脚,固件仍可以检查该悬挂中断,如果您的程序需要检查一个IRQ寄存器“是否悬挂中断”,比较简单的方法是读取IRQ和IEN寄存器,并对它们进行“与”操作,然后检查“等待和被使能的IRQ”位,零值表示没有使能的中断,系统处于悬挂状态。

◇ IE位

SIP主控制器通过IE位来使能或者禁止INT引脚,由于该位影响到所有的中断,因此通常称之为全局中断使能,不论IRQ或者IEN位的状态如何,当IE为0时,INT引脚均无效。

可用两个寄存器位INTLEVEL(参考下面的讨论)和POSINT来控制INT引脚的工作方式,在设置IE为1之间,应先设置这两个配置位。其操作如下:

(1)电平模式

某些微控制器系统使用低电平有效中断。当采用这种配置时,MAX3420E采用一个开漏极晶体管驱动INT引脚至地,由于引脚只能驱动低电平,因此,需要在INT引脚和逻辑电源之间接一个上拉电阻,该模块支持多个芯片的INT引脚输出(每个均为开漏输出)连接在一起,并使用单个上拉电阻。由于任何一个芯片输出都可将引脚拉低,因此这种逻辑有时也称为“线或”。对于这种类型的系统,可设置INTLEVEL为1。

(2)边沿模式

MAX3420E的INT引脚可以驱动边沿有效的中断系统,此时,微控制器在其中中断输入脚上将检查0到1或者1到0跳变,INTLEVEL为0是MAX3420E的缺省模式。SPI主控制器通过第二个POSINT位设置边沿极性,POSINT为1时,MAX3420E为悬挂中断输出一个0到1的跳变。POSINT为0(缺省值)时,MAX3420为悬挂中断输出一个1到0的跳变。

需要说明的是:如果一个IRQ位置位,而其对应的IEN位清零,则IRQ将不会影响INT输出引脚,但是,中断仍处于悬挂状态,永远可以读取IRQ位以获得其状态,可向对应的寄存器位写1,并将IRQ位清零。

悬挂中断(IRQ位是1)的IEN位出现0到1跳变时将产生中断。

INT引脚可连接至微控制器的中断系统,此外,微控制器可以轮询INT引脚,以确定MAX3420E是否有中断处于悬挂状态,最适合轮询的模式是电平模式(INTLEVEL=1),这是因为在边沿模式中,INT引脚输出的脉冲可能太窄,微控制器无法探测到(参考下面的讨论)。请注意,电平模式需要在INT引脚和V1之间连接一个上拉电阻。

INT引脚状态与波形

◇ 电平模式

图2所示为电平模式下的MAX3420E的INT引脚波形。INT引脚静态为高电平(上拉至VL)。假设图中两个中断的IEN位均置为1,全局IE位也置1,那么将发生一个中断请求,使MAX3420E INT引脚置低,实际上,尽管MAX3420E中断输出引脚被称为INT引脚,它有时也是负极性(例如在电平模式下)。

SPI主控制器完成中断服务后将向IRQ位写入1,并将其清零,并使INT引脚返回至静态高电平。(a)和(b)之间的间隔是中断置位其IRQ位和SPI主控制器清除IRQ位之间的时间,当系统产生另一个中断请求,会将INT引脚拉低,而当第一个中断请求处于悬挂状态时,系统可能产生第二个中断请求,而此时INT电平没有变化,因此至少有一个中断处于悬挂状态(实际上,此刻有两个中断处于悬挂状态。)

当SPI主控制器完成一个中断服务向IRQ位写入1并将其清零后,由于仍有一个中断处于悬挂状态,INT引脚将保持低电平,此后SIP主控制器处理完剩下的中断请求,并向IRQ位写入1,在将其清零,此后由于没有中断处于悬挂状态,因此,INT引脚将返回至静态高电平。

这种逻辑可以很好地处理INT引脚轮询,如果MAX3420E的任何部分需要服务,并且其中断已被使能,那么INT引脚将变为低电平,在微控制器清除最后一个悬挂IRQ位之前,INT引脚一直保持低电平。

边沿模式

图3所示为两种极性边沿模式下MAX3420E的INT引脚波形,极性由POSINT位控制。该波形与电平模式相似,但有两处不同,在两种条件下,INT引脚将产生边沿跳变:第一是一个IRQ位变为有效状态(其IRQ触发器产生0到1跳变),此时处理器将清除一个IRQ位(向其写入1),其他IRQ处于悬挂状态,第二个条件是在确保还有中断需要服务时,处理器能够检测到边沿跳变。

除了产生边沿跳变外,与电平模式一样,INT引脚也具有有效和无效状态,INT引脚的无效状态取决于POSINT位设置的边沿极性,在这一点上,边沿模式与电平模式相似,察看INT引脚的状态就可以知道是否有中断处于悬挂状态,当在负极性边沿模式下如果没有悬挂中断,INT引脚为高电平,如果有悬挂中断,则为低电平,而在正极性边沿模式下,如果没有悬挂中断,INT引脚为低电平,如果有悬挂中断,则为高电平。

INT引脚的有效状态意味着至少有一个中断处于悬挂状态,无效状态是指没有中断处于悬挂状态,假设中断已被使能,那么,系统将出现以下事件;

(1)产生一个中断请求时,MAX3420E INT引脚出现一个边沿跳变,边沿的极性取决于POSINT位的设置,由于中断仍处于悬挂状态,INT引脚保持其有效状态。

(2)SPI主控制器完成中断服务后,并向IRQ位写入1,并将其清零。MAX3420E INT引脚返回至无效状态,图中(a)和(b)之间的间隔(1)是产生中断和SPI主控制器清除IRQ位之间的时间。

(3)产生另一个中断请求时,MAX3420E INT引脚产生一个边沿跳变,并保持其有效状态。

(4)当第一个中断请求处于悬挂状态时,系统又将产生第二个中断请求,由于MAX3420E INT引脚必须产生另一个边沿跳变。因此,该引脚将在无效和有效状态之间产生跳变脉冲,从而提供正确的边沿极性,在MAX3420E中,该脉冲的宽度固定为10.67μs,由于还有中断处于悬挂状态,INT引脚可保持在有效状态。

(5)SPI主控制器完成一个悬挂中断服务后,向其IRQ位写入1,将其清除。与第(d)步一样,INT引脚产生另一个边沿跳变。

(6)SPI主控制器处理完剩下的中断请求,并向其IRQ位写入1,将其清除。由于此时已没有中断处于悬挂状态,因此,INT引脚返回至无效状态。

中断寄存器

表1是MAX3420E寄存器控制位,其中阴影部分可用于控制USB中断系统。MAX3420E具有两类USB中断,可由表1中阴影部分的寄存器控制,中断位分为两类:一是位于EPIRQ(R11)和EPIEN(R12)寄存器的端点控制,二是位于USBIRQ(R13)和USBIEN(R14)寄存器的USB控制,全局IE位在CPUCTL寄存器中。

中断请求位BAV

该器件的三个缓冲区就绪(BAV)IRQ位可用于指示是否可以将SPI主控制器装入一个IN端点FIFO,芯片复位或者IN数据由端点缓冲区成功地发送给主机后,MAX3420将置位这些IRQ位,此后该IRQ将通知SPI主控制器缓冲区可以装入新数据。

与所有的MAX3420E IRQ位一样,也可以通过写入1来三个清除BAV IRQ位,但是千万不要这样做,相反,应通过写入IN端点的字节计数寄存器来清除BAV IRQ位,这是因为MAX3420E要使用一个IN端点的BAV中断请求位作为锁定机制。

事实上,上述机制可以确保SPI主控制器和MAX3420E的串行接口引擎(SIE)不会同时使用端点缓冲区。例如,如果清除BAV位,然后以两条单独指令装入字节计数器。那么当您更新字节计数寄存器时,可能已经开始了数据包传输,从而导致数据出错。

关键字:USB  控制  信号  寄存 引用地址:MAX3420E外设控制器的中断系统

上一篇:基于CAN总线的非智能适配卡设计
下一篇:基于CDMA 1X的远程监控系统设计

推荐阅读最新更新时间:2024-03-30 21:22

基于TMS320C32的直流侧有源电力滤波器的控制
摘要:介绍了如何基于DSP技术(TMS320C32)实现直流侧有源电力滤波器(Active Power Filter,即APF);并在介绍TMS320C32的主要特点、功能及其结构的基础上,重点陈述了它在直流侧有源电力滤波器中应用的硬件结构和算法流程。 关键词:TMS320C32 直流侧有源电力滤波器 高压直流输 电源滤波器 随着电力电子技术在电力系统中的应用越来越广泛,电力系统的谐波污染问题也日益严重。有源电力滤波器是最近二十年兴起的电力系统谐波和无功的消除手段。目前,实际应用中的有源电力滤波器系统都是由国外公司研制的。国家计委为了实现交互流滤波装置的自主设计和生产,组织清华大学和锦州电容器厂合作,研制三峡高压直流输电的滤波装置。
[电源管理]
基于AT89C52单片机的智能液体卸料控制器的设计
0引言 液体物料的运输是日常运输活动中的主要内容之一,例如各种油料,液体酸、硫酸铜溶液等液体化工原料。当前液体物料运输车的装卸料操作主要是通过人工按一定的组合顺序来控制阐门的打开和关闭,这种方式操作复杂、劳动强度大。对于油料运输车,除了装,卸料外,往往还存在给其它车辆进行加油的操作,需要对油量进行计量。在一些易燃、易爆液料运输过程中,安全性差也是一个急需解决的问题。针对以上问题,本设计采用微控制器和智能传感器组成控制系统,从而实现了液体物料运输车卸料过程的白动控制和运输过程中的安全警报。 1系统原理 该卸料系统南嵌入式微控制器及相应的控制软件、油泵、气动阀门F1~F5、阀门状态检测开关、流量计量装置组成,其原理图如图l所示。
[单片机]
基于AT89C52单片机的智能液体卸料<font color='red'>控制</font>器的设计
英飞凌推出全新的TEGRION™系列安全控制
基于Integrity Guard 32的增强型安全架构,在安全性、效率、性能和易用性方面树立全新行业标杆 【2023年8月18日,德国慕尼黑讯】 英飞凌科技股份公司于近日宣布推出全新的TEGRION™系列安全控制器,这是英飞凌迄今为止最广泛的28 nm安全控制器产品组合。 该系列安全控制器集成了全新的Integrity Guard 32安全架构、结合一套先进的Arm® v8-M指令集,极大地提升了半导体器件的性能。TEGRION™安全控制器秉承为客户提供易于部署及快速开发的产品特性,支持长效的产品生命周期管理,为客户产品的快速上市提供助力。TEGRION™系列安全控制器将提供广泛的产品组合以支持智能家居、智慧出行、智能工业、
[电源管理]
英飞凌推出全新的TEGRION™系列安全<font color='red'>控制</font>器
基于MODBUS协议的智能控制系统设计
  引言   现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。MODBUS作为现场总线的一种通信协议,它实现了PLC控制器、工控仪表与设备间的通讯和信息交换。具有MODBUS功能的工控仪表虽然应用比较广泛,但是工控仪表和PLC控制器价格较高并且没有形成自主知识产权的产品,阻碍了它的进一步发展。本文从这个问题着手,设计基于MODBUS协议的单片机控制系统,设计合理,价格低廉,自主性强,在工业控制领域具有广泛的应用前景。   1 系统总体设计   系统中计算机PC作为主机,AVR单片机作为从机,采用RS-485工业现场总线通信。由于计算机的串口采用RS232总线标准,因此在主机的串行
[单片机]
基于MODBUS协议的智能<font color='red'>控制</font>系统设计
细节不注意,再贵的示波器也测不准高速信号
随着电子技术的快速发展,通信信号频率越来越高,信号质量要求也越来越严。测量这些高速信号是不是只要选一个昂贵的示波器就行了呢?其实不然,如果一些细节没有被注意,再贵的示波器也不见得测得准! 一、带宽选择 测量高速信号,首先要考虑测试系统的带宽,这个测试系统的带宽包括探头的带宽和示波器的带宽。要测量 100MHz 的信号,用一个 100MHz 带宽的示波器是不是就可以了?一些用户可能对带宽的概念并不是很清晰。认为 100MHz 带宽的示波器就可以测量 100MHz 的信号了,其实并不是这样。带宽所指的频率是正弦波信号衰减到-3dB 时的频率,而我们一般测量的数字信号都不是正选波,而是接近方波。这两者对带宽的需求是不同的。 根据
[测试测量]
细节不注意,再贵的示波器也测不准高速<font color='red'>信号</font>
自制手机信号放大器简介
   1 手机放大器   所谓手机放大器,并非指安装上这种器材在原地就能改善通信效果,手机信号单单经过放大是不能改善信号质量的。信号质量,在很大程度上取绝于信噪比,信噪比指标是不可能通过简单的放大来改善的,因为在放大有用信号的同时,噪声信号也得到了同样的放大。   信号不好时,手机用户往往会拿着手机按照手机上面的信号指示到处找信号,这是很有效的办法,但是很不方便,因为信号比较好的位置不一定是手机使用者能够常呆的地方。所以,选一付高增益天线,架设到信号尽可能好的地方,然后将天线用射频同轴电缆连接到手机使用者常呆的地方并连接手机,这样,在没有信号的地方使用手机就成为可能的了。 改善信号质量有两个途径,一个是主要的,
[测试测量]
自制手机<font color='red'>信号</font>放大器简介
STM32F407使用USB作虚拟串口出现黄感叹号
最近因为工作需要使用到了STM32F407VET6的USB_OTG_FS作为虚拟串口。 之前用STM32 CubeMX生成过STM32F103C8T6的虚拟串口代码,感觉用起来很方便,于是这次的F407也用MX生产工程,奈何竟然遇到诸多难题,整整困扰了两天。 先说一下我的流程。 MX生成F407 USB虚拟串口工程操作流程 1,选择芯片 先是利用条件筛选选择自己的芯片,如下图: 2,配置管脚 配置RCC输入脚,SYS调试口以及USB_OTG_FS,USB_OTG_FS– Device Only– Comunication Device Class,个人喜欢使用FreeRTOS。配置如下图: 3,配置时钟 用的8M外部晶
[单片机]
基于嵌入式微处理器EP9315的二次开发技术
嵌入式系统已成为IT行业研发热点,但基于嵌入式系统的二次开发应用却存在很多难点,难以真正地将嵌入式系统投入到实际应用中。武汉中科院岩土力学所智能仪器室对基于ARM9的嵌入式系统进行二次开发,采用ARM9微处理器取代原有的51单片机实现对SY5声波检测仪的控制。其中高速微处理器与现有低速设备接口及在配套的操作系统中就SY5声波检测仪原有功能设计相应驱动是本文研究的重点。同时提出了可行的硬件调试方法,为今后基于ARM9微处理器的硬件开发提供了思路。 1 系统构成 1.1 高性能的ARM9嵌入式微处理器 本设计选择Cirrus Logle公司2004年7月推出的EP93XX系列中的高端产品EP9315。该微处理器是高度集成的片上系统处
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved