位置:51电子网 » 技术资料 » 嵌入式系统

MAX3420E中断系统

发布时间:2008/5/27 0:00:00 访问次数:422

引言

max3420e可与任何spi主控制器相连,构成全速usb外设器件。尽管由max3420管理底层usb信令,但是需要处理usb事件时,spi主控制器必须参与处理。max3420的int引脚指示有中断发生,spi主控制器读取14个中断请求位,确定需要服务的中断。主要由这些中断请求(irq)位确定max3420e的工作过程。

注意:spi主控制器可以是微控制器、dsp、asic或者任何具备spi端口的器件,并能提供sclk信号。本文档使用的术语“spi主控制器”和“微控制器”含义相同。

max3420e中断逻辑
图1所示为max3420e中断逻辑。阴影部分是可通过spi访问的寄存器位。

irq位
每一个中断源都有一个用于锁存服务请求的触发器。触发器的输出即为irq,它出现在max3420e寄存器中。irq位提供两种功能:

读取一个irq位,将返回irq触发器的状态。
写入一个“1”至irq位,将清除irq触发器,写入“0”至irq位,不改变触发器状态。
可以在任意时刻读取irq位,它反映了irq触发器的状态。按照上面第2条,写入1而不是0来清除所选的irq位,这一过程不需要读-修改-写周期。举例说明,假设max3420e的irq位与普通的寄存器位一样,写1置位,写0清除。现在,我们想要清除usbirq寄存器的uresirq位。图2所示为实现该操作的代码。

由于spi主控制器通过写1来清除一个max3420e irq位,而写0不改变其他寄存器位,因此spi主控制器可以直接写入位屏蔽值来清除uresirq位。所以,图2中的最后三条语句可以由图3中的单条语句替代。

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

注意,无论ien位的状态如何,irq位都指示中断悬挂状态。这样,即使中断不触发int引脚,固件仍可以检查该悬挂中断。如果您的程序需要检查一个irq寄存器“是否悬挂中断”,一个简单的方法是读取irq和ien寄存器,对它们进行“与”操作,检查现在指示“等待和被使能的irq”位。零值表示没有使能的中断处于悬挂状态。

ie位
spi主控制器通过ie位使能或者禁止int引脚。由于该位影响到所有的中断,因此通常称之为全局中断使能。不论irq或者ien位的状态如何,当ie = 0时,int引脚无效。

中断引脚逻辑
两个寄存器位intlevel (参考下面的讨论)和posint控制int引脚的工作方式。在设置ie = 1之前,应先设置这两个配置位。

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

边沿模式,intlevel = 0 (缺省值)
max3420e int引脚也可以驱动边沿有效的中断系统,此时微控制器在其中断输入引脚上检查0-1或者1-0跳变。这是max3420e的缺省模式,intlevel = 0。spi主控制器通过第二个posint位设置边沿极性。当posint = 1时,max3420e为悬挂中断输出一个0-1跳变。当posint = 0 (缺省值)时,max3420e为悬挂中断输出一个1-0跳变。

在图1中,请注意以下几方面:

如果一个irq位置位,而其对应的ien位清零,则irq不会影响int输出引脚。但是,中断仍处于悬挂状态。永远可以读取irq位以获得其状态,可向对应的寄存器位写1,将irq位清零。
悬挂中断(irq位是1)的ien位出现0-1跳变时将产生中断
int引脚可连接至微控制器的中断系统。此外,微控制器可以轮询int引脚,以确定max3420e是否有中断处于悬挂状态。最适合轮询的模式是电平模式(intlevel = 1),这是因为在边沿模式中,int引脚输出的脉冲可能太窄,微控制器无法探测到(参考下面的讨论)。请注意,电平模式需要在int引脚和vl之间连接一个上拉电阻。
int引脚波形
电平模式

引言

max3420e可与任何spi主控制器相连,构成全速usb外设器件。尽管由max3420管理底层usb信令,但是需要处理usb事件时,spi主控制器必须参与处理。max3420的int引脚指示有中断发生,spi主控制器读取14个中断请求位,确定需要服务的中断。主要由这些中断请求(irq)位确定max3420e的工作过程。

注意:spi主控制器可以是微控制器、dsp、asic或者任何具备spi端口的器件,并能提供sclk信号。本文档使用的术语“spi主控制器”和“微控制器”含义相同。

max3420e中断逻辑
图1所示为max3420e中断逻辑。阴影部分是可通过spi访问的寄存器位。

irq位
每一个中断源都有一个用于锁存服务请求的触发器。触发器的输出即为irq,它出现在max3420e寄存器中。irq位提供两种功能:

读取一个irq位,将返回irq触发器的状态。
写入一个“1”至irq位,将清除irq触发器,写入“0”至irq位,不改变触发器状态。
可以在任意时刻读取irq位,它反映了irq触发器的状态。按照上面第2条,写入1而不是0来清除所选的irq位,这一过程不需要读-修改-写周期。举例说明,假设max3420e的irq位与普通的寄存器位一样,写1置位,写0清除。现在,我们想要清除usbirq寄存器的uresirq位。图2所示为实现该操作的代码。

由于spi主控制器通过写1来清除一个max3420e irq位,而写0不改变其他寄存器位,因此spi主控制器可以直接写入位屏蔽值来清除uresirq位。所以,图2中的最后三条语句可以由图3中的单条语句替代。

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

注意,无论ien位的状态如何,irq位都指示中断悬挂状态。这样,即使中断不触发int引脚,固件仍可以检查该悬挂中断。如果您的程序需要检查一个irq寄存器“是否悬挂中断”,一个简单的方法是读取irq和ien寄存器,对它们进行“与”操作,检查现在指示“等待和被使能的irq”位。零值表示没有使能的中断处于悬挂状态。

ie位
spi主控制器通过ie位使能或者禁止int引脚。由于该位影响到所有的中断,因此通常称之为全局中断使能。不论irq或者ien位的状态如何,当ie = 0时,int引脚无效。

中断引脚逻辑
两个寄存器位intlevel (参考下面的讨论)和posint控制int引脚的工作方式。在设置ie = 1之前,应先设置这两个配置位。

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

边沿模式,intlevel = 0 (缺省值)
max3420e int引脚也可以驱动边沿有效的中断系统,此时微控制器在其中断输入引脚上检查0-1或者1-0跳变。这是max3420e的缺省模式,intlevel = 0。spi主控制器通过第二个posint位设置边沿极性。当posint = 1时,max3420e为悬挂中断输出一个0-1跳变。当posint = 0 (缺省值)时,max3420e为悬挂中断输出一个1-0跳变。

在图1中,请注意以下几方面:

如果一个irq位置位,而其对应的ien位清零,则irq不会影响int输出引脚。但是,中断仍处于悬挂状态。永远可以读取irq位以获得其状态,可向对应的寄存器位写1,将irq位清零。
悬挂中断(irq位是1)的ien位出现0-1跳变时将产生中断
int引脚可连接至微控制器的中断系统。此外,微控制器可以轮询int引脚,以确定max3420e是否有中断处于悬挂状态。最适合轮询的模式是电平模式(intlevel = 1),这是因为在边沿模式中,int引脚输出的脉冲可能太窄,微控制器无法探测到(参考下面的讨论)。请注意,电平模式需要在int引脚和vl之间连接一个上拉电阻。
int引脚波形
电平模式

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!