MAX3420E中断系统知识讲解_第1页
MAX3420E中断系统知识讲解_第2页
MAX3420E中断系统知识讲解_第3页
MAX3420E中断系统知识讲解_第4页
MAX3420E中断系统知识讲解_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MAX34200E中断系统统引言MAX34420E可与与任何SPII主控制器相相连,构成全全速USB外外设器件。尽尽管由MAXX3420管管理底层USSB信令,但但是需要处理理USB事件件时,SPII主控制器必必须参与处理理。MAX33420的IINT引脚指指示有中断发发生,SPII主控制器读读取14个中中断请求位,确确定需要服务务的中断。主主要由这些中中断请求(IIRQ)位确确定MAX33420E的的工作过程。注意:SPI主控制器可以是微控制器、DSP、ASIC或者任何具备SPI端口的器件,并能提供SCLK信号。本文档使用的术语“SPI主控制器”和“微控制器”含义相同。MAX3420E中断逻

2、辑图1所示为MAAX34200E中断逻辑辑。阴影部分分是可通过SSPI访问的的寄存器位。 IRQ位每一个个中断源都有有一个用于锁锁存服务请求求的触发器。触触发器的输出出即为IRQQ,它出现在在MAX34420E寄存存器中。IRRQ位提供两两种功能: 读取一个IRQQ位,将返回回IRQ触发发器的状态。 写入一个“11”至IRQQ位,将清除除IRQ触发发器,写入“00”至IRQQ位,不改变变触发器状态态。 可以在在任意时刻读读取IRQ位位,它反映了了IRQ触发发器的状态。按按照上面第22条,写入11而不是0来来清除所选的的IRQ位,这这一过程不需需要读-修改改-写周期。举举例说明,假假设MAX33

3、420E的的IRQ位与与普通的寄存存器位一样,写写1置位,写写0清除。现现在,我们想想要清除USSBIRQ寄寄存器的URRESIRQQ位。图2所所示为实现该该操作的代码码。由于SPI主控控制器通过写写1来清除一一个MAX33420E IRQ位,而而写0不改变变其他寄存器器位,因此SSPI主控制制器可以直接接写入位屏蔽蔽值来清除UURESIRRQ位。所以以,图2中的的最后三条语语句可以由图图3中的单条条语句替代。 IEN位14个个MAX34420E中断断的每一个都都有相应的中中断使能(IIEN)位。IIEN位和IIRQ触发器器输出进行“与与”操作,决决定是否向IINT引脚传传送中断请求求(图1)

4、。114个IRQQ触发器通过过门控电路后后,进行“或或”操作,形形成一个内部部中断请求信信号,传送至至中断引脚逻逻辑模块。 注意,无论IEEN位的状态态如何,IRRQ位都指示示中断悬挂状状态。这样,即即使中断不触触发INT引引脚,固件仍仍可以检查该该悬挂中断。如如果您的程序序需要检查一一个IRQ寄寄存器“是否否悬挂中断”,一一个简单的方方法是读取IIRQ和IEEN寄存器,对对它们进行“与与”操作,检检查现在指示示“等待和被被使能的IRRQ”位。零零值表示没有有使能的中断断处于悬挂状状态。IE位 SPII主控制器通通过IE位使使能或者禁止止INT引脚脚。由于该位位影响到所有有的中断,因因此通常称

5、之之为全局中断断使能。不论论IRQ或者者IEN位的的状态如何,当当IE = 0时,INNT引脚无效效。中断引脚逻辑两两个寄存器位位INTLEEVEL (参考下面的的讨论)和PPOSINTT控制INTT引脚的工作作方式。在设设置IE = 1之前,应应先设置这两两个配置位。电平模式,INNTLEVEEL = 11某些微控制制器系统使用用低电平有效效中断。采用用这种配置时时,MAX33420E采采用一个开漏漏极晶体管驱驱动INT引引脚至地。由由于引脚只能能驱动为低电电平,因此,需需要在INTT引脚和逻辑辑电源之间接接一个上拉电电阻。该模式式支持多个芯芯片的INTT引脚输出(每个均为开开漏输出)连连接

6、在一起,并并使用单个上上拉电阻。由由于任何一个个芯片输出都都可将该引脚脚拉低,因此此这种逻辑有有时也称为“线线或”。对于于这种类型的的系统,设置置INTLEEVEL = 1。边沿模式,INNTLEVEEL = 00 (缺省值值)MAX33420E INT引脚脚也可以驱动动边沿有效的的中断系统,此此时微控制器器在其中断输输入引脚上检检查0-1或或者1-0跳跳变。这是MMAX34220E的缺省省模式,INNTLEVEEL = 00。SPI主主控制器通过过第二个POOSINT位位设置边沿极极性。当POOSINT = 1时,MMAX34220E为悬挂挂中断输出一一个0-1跳跳变。当POOSINT =

7、0 (缺省值)时时,MAX33420E为为悬挂中断输输出一个1-0跳变。在图1中,请注注意以下几方方面: 如果一个IRQQ位置位,而而其对应的IIEN位清零零,则IRQQ不会影响IINT输出引引脚。但是,中中断仍处于悬悬挂状态。永永远可以读取取IRQ位以以获得其状态态,可向对应应的寄存器位位写1,将IIRQ位清零零。 悬挂中中断(IRQQ位是1)的的IEN位出出现0-1跳跳变时将产生生中断 INNT引脚可连连接至微控制制器的中断系系统。此外,微微控制器可以以轮询INTT引脚,以确确定MAX33420E是是否有中断处处于悬挂状态态。最适合轮轮询的模式是是电平模式(INTLEEVEL = 1),这

8、这是因为在边边沿模式中,IINT引脚输输出的脉冲可可能太窄,微微控制器无法法探测到(参参考下面的讨讨论)。请注注意,电平模模式需要在IINT引脚和和VL之间连连接一个上拉拉电阻。 IINT引脚波波形电平模式式 图4所示为电平平模式下的MMAX34220E INNT引脚波形形。INT引引脚静态为高高电平(上拉拉至VL)。假假设图中两个个中断的IEEN位置为11,全局IEE位置为1,那那么将出现以以下事件。(下面标有字字母的条目对对应图4中相相同字母标出出的事件。) 发生一个中断请请求,使MAAX34200E INTT引脚置低。注意:尽管MAAX34200E中断输出出引脚被称为为INT引脚脚,它有

9、时也也是负极性(例如在电平平模式下)。 SPI主控控制器完成中中断服务后,向向IRQ位写写入1,将其其清零。INNT引脚返回回至静态高电电平。(a)和(b)之之间的间隔是是中断置位其其IRQ位和和SPI主控控制器清除IIRQ位之间间的时间。 产生另一个个中断请求,将将INT引脚脚拉低。 当当第一个中断断请求处于悬悬挂状态时,产产生了第二个个中断请求。IINT电平没没有变化,因因为至少有一一个中断处于于悬挂状态。(实际上,此此刻有两个中中断处于悬挂挂状态。) SPI主控控制器完成一一个中断服务务后,向IRRQ位写入11,将其清零零。由于仍有有一个中断处处于悬挂状态态,INT引引脚保持低电电平。

10、SPPI主控制器器处理完剩下下的中断请求求,向IRQQ位写入1,将将其清零。没没有中断处于于悬挂状态,因因此INT引引脚返回至静静态高电平。 注意:如果果一个中断的的IRQ触发发器(图1)置位,则认认为该中断处处于悬挂状态态。 这种逻逻辑可以很好好地处理INNT引脚轮询询。如果MAAX34200E的任何部部分需要服务务,并且其中中断已被使能能,那么INNT引脚变为为低电平。在在微控制器清清除最后一个个悬挂IRQQ位之前,IINT引脚一一直保持低电电平。 边沿模式 图5所示为两种种极性边沿模模式下的MAAX34200E INTT引脚波形,极极性由POSSINT位控控制。波形与与电平模式的的相似,

11、但有有两处不同。在在两种条件下下,INT引引脚产生边沿沿跳变: 一个IRQ位变变为有效状态态(其IRQQ触发器产生生0-1跳变变)。 处理理器清除一个个IRQ位(向其写入11),其他IIRQ处于悬悬挂状态。 第二个条件件确保还有中中断需要服务务时处理器能能够检测到边边沿跳变。除除了产生边沿沿跳变外,与与电平模式一一样,INTT引脚也具有有有效和无效效状态。INNT引脚的无无效状态取决决于POSIINT位设置置的边沿极性性。在这点上上,边沿模式式与电平模式式相似,查看看INT引脚脚的状态就可可以知道是否否有中断处于于悬挂状态: 在负极性边沿模模式下,如果果没有悬挂中中断,INTT引脚为高电电平;

12、如果有有悬挂中断,则则为低电平。 在正极性边边沿模式下,如如果没有悬挂挂中断,INNT引脚为低低电平;如果果有悬挂中断断,则为高电电平。 以下下说明解释了了INT引脚脚的有效和无无效状态。有有效状态意味味着至少有一一个中断处于于悬挂状态;无效状态是是指没有中断断处于悬挂状状态。假设中中断已被使能能,将出现以以下事件。(下面标有字字母的条目对对应图5中相相同字母标出出的事件。) 产生一个个中断请求时时,MAX33420E INT引脚脚出现一个边边沿跳变。边边沿的极性取取决于POSSINT位的的设置。由于于中断仍处于于悬挂状态,IINT引脚保保持其有效状状态。 SPPI主控制器器完成中断服服务后,

13、向IIRQ位写入入1,将其清清零。MAXX3420EE INT引引脚返回至无无效状态。图图中(a)和和(b)之间间的间隔(11)是产生中中断和SPII主控制器清清除IRQ位位之间的时间间。 产生另另一个中断请请求时,MAAX34200E INTT引脚产生一一个边沿跳变变,并保持其其有效状态。 当第一个中中断请求处于于悬挂状态时时,又产生了了第二个中断断请求。MAAX34200E INTT引脚必须产产生另一个边边沿跳变,因因此该引脚在在无效和有效效状态之间产产生跳变脉冲冲,从而提供供正确的边沿沿极性。在MMAX34220E中,该该脉冲的宽度度固定为100.67ss。由于还有有中断处于悬悬挂状态,

14、IINT引脚保保持在有效状状态。 SPPI主控制器器完成一个悬悬挂中断服务务后,向其IIRQ位写入入1,将其清清除。与第(d)步一样样,INT引引脚产生另一一个边沿跳变变。 SPII主控制器处处理完剩下的的中断请求,向向其IRQ位位写入1,将将其清除。没没有中断处于于悬挂状态,因因此,INTT引脚返回至至无效状态。 中断寄存器器表1. 阴阴影部分的MMAX34220E寄存器器位控制中断断系统MAX34200E具有两类类USB中断断,由表1中中阴影部分的的寄存器控制制。中断位分分为两类:位位于EPIRRQ (R111)和EPPIEN (R12)寄寄存器的端点点控制,以及及位于USBBIRQ (R

15、13)和和USBIEEN (R114)寄存器器的USB控控制。全局IIE位在CPPUCTL寄寄存器中。 表2. 14个个MAX34420E中断断源 表2说明了144个中断控制制位,MAXXQ34200E内部逻辑辑何时对它们们进行置位,以以及SPI主主控制器怎样样清除它们。 中断请求位BAAV位三个缓缓冲区就绪(BAV) IRQ位指指示SPI主主控制器可以以装入一个IIN端点FIIFO。芯片片复位或者IIN数据由端端点缓冲区成成功地发送给给主机后,MMAX34220E置位这这些IRQ位位。该IRQQ通知SPII主控制器缓缓冲区可以装装入新数据。图6所示为INN传输的总线线过程,主机机从MAX33

16、420E申申请数据。在在数据包71145到达前前,SPI主主控制器先将将字节00 00 088装入端点33-IN FFIFO (EP3INNFIFO)。然后,SSPI主控制制器将数值33写入EP33INBC (端点3 IN字节计计数)寄存器器。写入字节节计数寄存器器,可完成以以下三项功能能: 通知MAX34420E当IIN请求到达达时有多少字字节要发送。 使端点为传传输数据做好好准备(而不不是非应答)。 清除EEP3INBBAV IRRQ位。 MMAX34220E以数据据包71466响应以端点点3为地址的的IN数据包包。主机发送送应答(ACCK)数据包包7147,响响应接收到的的无误码数据据。

17、当MAXX3420EE检测到主机机ACK包后后,设置EPP3INBAAV中断请求求位,通知SSPI主控制制器端点FIIFO可以装装入新数据。如果在SPI主控制器准备好端点之前到达IN数据包,MAX3420E会响应一个NAK握手信号(图7)。NAK握手信号通知主机稍后重发IN请求。 如果在IN数据据传输至主机机过程中出现现误码,当主主机重发INN请求时,MMAX34220E自动重重发数据(以以及相同的数数据触发DAATA0/DDATA1)。只有接收收到来自主机机的ACK握握手信号后,MMAX34220E才会置置位端点的BBAV IRRQ位,指示示缓冲区准备备好接收新数数据。重要提示:与所所有的M

18、AXX3420EE IRQ位位一样,也可可以通过写入入1来三个清清除BAV IRQ位。千千万不要这样样做。相反,应应采用上面列列出的方法:通过写入IIN端点的字字节计数寄存存器来清除BBAV IRRQ位。这是是因为MAXX3420EE使用一个IIN端点的BBAV中断请请求位作为锁锁定机制。该该机制确保SSPI主控制制器和MAXX3420EE的串行接口口引擎(SIIE)不会同同时使用端点点缓冲区。例例如,如果清清除BAV位位,然后以两两条单独指令令装入字节计计数器,那么么当您更新字字节计数寄存存器时,可能能开始了数据据包传输,从从而导致数据据出错。 BAV IRQQ缺省值三个个BAV IIRQ位

19、(见见表2 Deefaultt列中的1)的缺省值为为1。这表明明,上电或者者复位后SPPI主控制器器将读取到EEPIRQ = 0 x119。如果任任何一个对应应的IEN位位置位,INNT引脚将指指示中断处于于悬挂状态。双缓冲端点EPP2-INMMAX34220E EPP2-IN端端点为双缓冲冲结构。这表表明它有两组组64字节FFIFO和字字节计数寄存存器。双缓冲冲提高了传输输带宽,这是是因为在装入入另一个数据据包之前,SSPI主控制制器不需要等等待数据包传传输至主机。采采用双缓冲结结构,SPII主控制器可可以在一个IIN FIFFO向主机传传输其IN数数据的同时装装入另一个IIN FIFFO。

20、当您装装载EP2IINBC寄存存器时,两个个缓冲区“自自动轮换”。这这将另一个FFIFO (第二组)和和字节计数寄寄存器提供给给SPI主控控制器使用。这这种双缓冲机机制对固件来来说是透明的的。双缓冲机制使我我们能够观察察到的唯一影影响出现在初初始化过程中中。上电或者者芯片复位时时,IN2BBAVIRQQ位置位。一一般情况下,初初始化程序把把数据装入EEP2IN FIFO,然然后装载EPP2INBCC寄存器,为为传输做好准准备,同时清清除了IN22BAVIRRQ位。这样样做时,您会会很奇怪地发发现MAX33420E立立即重新置位位IN2BAAVIRQ位位。这表明第第二个缓冲区区已经准备就就绪,允

21、许SSPI主控制制器装入第二二个数据包。DAV中断请求求位OUT端端点的数据就就绪(DAVV) IRQQ位指示已经经从主机接收收到了新数据据。MAX33420E自自动处理总线线重试操作,只只有当接收到到的数据无误误码时,才会会产生中断请请求。当SPPI主控制器器收到DAVV中断请求时时,它将读取取端点字节计计数寄存器,确确定有效数据据的大小。然然后SPI主主控制器从端端点的OUTTFIFO读读取相应数目目的字节。SSPI主控制制器以向OUUTDAV IRQ位写写入1的正常常方式对其清清零。这样,使使端点再次准准备好接收下下一个OUTT数据包。在图8中,主机机发送一个OOUT PIID和四个字字

22、节的数据,MMAX34220E将其传传送至EP11OUT FFIFO。当当MAX34420E验证证传送无误码码后,将更新新其EP1OOUTBC寄寄存器,指示示四个字节,向向主机发送AACK包,并并置位EP11OUTDAAV IRQQ,通知SPPI主控制器器可以提取端端点1 FIIFO内已经经准备好的数数据。 双缓冲端点EPP1-OUTTMAX34420E EEP1-OUUT端点为双双缓冲结构,这这表明它具有有两组64字字节FIFOO和字节计数数寄存器。双双缓冲意味着着SPI主控控制器对OUUT1DAVVIRQ清零零后,如果有有另一个主机机数据包在等等待,它可以以立即重新置置位。SUDAV中断断

23、请求位当主主机向MAXX3420EE发送一个CCONTROOL传输时,MMAX34220E在一个个8字节FIIFO中存储储8个SETTUP字节,SSPI主控制制器可从SUUDFIFOO寄存器中读读取该数据。由由于外设总是是从该缓冲区区中接收主机机数据,SUUDAVIRRQ的作用类类似一个OUUT端点FIIFO,当主主机来的新数数据接收完毕毕后,MAXX3420EE置位其SUUDAV IIRQ。一个个SETUPP数据包总是是包含8个字字节,因此,SSETUP数数据不需要字字节计数寄存存器。OSCOK中断断请求位当MMAX34220E上电、芯芯片复位完毕毕、或者退出出关电状态时时,需要时间间来启动

24、内部部振荡器和PPLL,以达达到稳定。振振荡器就绪(OSCOKK) IRQQ指示MAXX3420EE已经准备好好工作。 图9所示为实例例代码,采用用CHIPRRES寄存器器位复位MAAX34200E。由于芯芯片复位将停停止内部振荡荡器工作,代代码设置CHHIPRESS=0清除复复位信号后,在在使用MAXX3420EE之前应该等等待振荡器稳稳定下来。 RWUDN中断断请求位处于于挂起状态时时,USB外外设可以发出出远程唤醒(RWU)信信号,通知主主机恢复总线线工作。USSB规范定义义了一个1mms至15mms K-sstate的的远程唤醒信信号。SPII主控制器通通过设置远程程唤醒信号(SIGR

25、WWU)位等于于1,来触发发RWU信号号。当SPI主控制制器置位SIIGRWU位位时,MAXX3420EE等待5mss,驱动K-statee 10mss,然后置位位远程唤醒完完成中断请求求(RWUDDNIRQ)位。5mss延时保证符符合另一USSB要求:在在外设发出恢恢复信号前,总总线必须至少少空闲(J-statee) 5mss。图10所示为发发送远程唤醒醒的实例代码码。注意,MMAX34220E实现信信号定时,完完成后置位IIRQ。MAAX34200E对于所有有的定时USSB事件均这这样处理,完完成时产生一一个中断,因因此SPI主主控制器不需需要定时控制制信号间隔。 图10中的代码码置位SI

26、GGRWU位,然然后循环等待待RWUDNNIRQ置位位,以确定持持续10mss信号时间。然然后,SPII主控制器设设置SIGRRWU = 0,并清除除IRQ位。一一般地,在多多任务SPII主控制器中中,应响应RRWUDNIIRQ中断请请求,而不要要浪费时间直直接检查IRRQ位。接收到RWUDDNITQ中中断后的5mms内,SPPI主控制器器应关闭SIIGRWU位位。如果没有有这样做,MMAX34220E将启动动另一个100ms K-statee,重复这一一过程(等待待5ms, 然后10mms K-sstate),直到SIIGRWU = 0。在在RWU信号号处理过程中中设置SIGGRWU = 0

27、,不会会终止RWUU信号。如果SPI主控控制器设置SSIGRWUU = 1时时MAX34420E正处处于关电状态态(PWRDDOWN = 1),那那么MAX33420E会会自动重新启启动振荡器,等等待其达到稳稳定,然后开开始发送RWWU信号。在在这种情况下下,SPI主主控制器不需需要检查OSSCOK IIRQ。BUSACT中中断请求位当当MAX233420E探探测到在USSB数据包的的开始位置有有SYNC模模式时,置位位BUSACCT IRQQ位。USBB总线复位过过程不是总线线活动状态,因因此不会触发发BUSACCK中断请求求。URES和URRESDN中中断请求位UUSB主机通通过至少保持持

28、50ms的的单端零(SSE0)状态态(D+和DD-同时驱动动至低电平),来复位外外设。探测到到2.5ss的SE0状状态后,MAAX34200E置位USSB复位IRRQ (URRESIRQQ)。然后,当当主机完成复复位后,MAAX34200E置位USSB复位完成成IRQ (URESDDNIRQ)。由于SPI主控控制器需要监监视USB总总线复位事件件,在总线复复位期间,MMAX34220E不会清清除URESSIE、URRESDNIIE或IE中中断使能位。但但在总线复位位期间它会清清除EPIEEN和USBBIEN寄存存器中的所有有其他中断使使能位。 SUSP中断请请求位当MAAX34200E探测到总总线停止工作作3ms (持续J-sstate)后,它产生生挂起中断请请求(SUSSPIRQ)。如果使用用MAX34420E的外外设是由总线线供电的,它它必须进入低低功耗状态,以以最大程度降降低从VBUUS上吸收的的电流。在这这种情况下,SSPI主控制制器应关断消消耗功率的外外设,然后设设置PWRDDOWN = 1,使MMAX34220E进入低低功耗模式。这这样一来,MMAX34220E振荡器器停止工作,并并进入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论