一种pci总线非向量中断实现方法

文档序号:6385428阅读:215来源:国知局
专利名称:一种pci总线非向量中断实现方法
技术领域
本发明属于PCI总线技术领域。
背景技术
随着被测试系统的复杂性日渐提高,系统对于PCI总线板卡功能的要求也不断的提高,PCI总线现已向CPCI总线和PXI总线的发展,而单个PXI板卡的功能也越来越多、越来越复杂。单个PCI板卡在面临复杂的被测试系统时,由于系统的中断事件增多,要求板卡应当具有对更多中断事件进行处理的能力,然而现有的PCI板卡只能为每个系统提供INTA#、INTB#、INTC#、INTD#等4个中断请求端,对于功能复杂的被测试系统来说,这已经远 远不能满足目前负责功能板卡的应用。

发明内容
有鉴于此,本发明提供了一种PCI总线非向量中断实现方法,采用该方法可以突破现有PCI总线对每个板卡设备中断源数量的限制,数倍提高现有PCI板卡设备的中断源的数量,满足了基于PCI总线的多功能板卡设备对中断源数量方面的需求。基于上述目的本发明的技术方案为一种PCI总线非向量中断实现方法,包括如下步骤步骤1、在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;PCI系统与控制平台通信,对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位;对于η个中断源中断使能寄存器包括η位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,表示中断源i#被使能;第i位未被置位时,表示中断源i#被禁止,其中KiSn;中断状态寄存器包括η位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止;中断清除寄存器包括η位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,清除中断状态寄存器第i位的置位;步骤2、控制平台通过使能信号输入端接收用户输入的使能信号并根据使能信号对中断使能寄存器中指定位进行置位;步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端;其中设定的逻辑规则为中断状态寄存器的I位或I位以上被置位即产生中断申请号;步骤4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,检测中断申请标志位,若中断申请标识位已被置位,则继续检测中断申请标识位,直至中断申请标识位为空;若中断申请标志位为空,则将中断申请标志位进行置位,响应中断并进入中断服务程序;中断服务程序的工作流程为首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。进一步地,调用序号对应的中断源的处理程序为当中断状态寄存器的多个位被置位时,中断服务程序根据设定的中断优先级先后调用所述多个不同的中断源的处理程序。。有益效果1、本发明通过创建包括中断使能寄存器、中断状态寄存器、中断清除寄存器在内的用于中断控制与识别的寄存器,实现了对更多中断源的管理与识别。本方法中的每个中断源均可产生中断触发信号通过中断请求端向PCI系统申请中断,该方法使得PCI板卡能够响应更多的中断事件并进行处理,突破了现有PCI总线对每个板卡设备中断源数量的限制,数倍提高现有PCI板卡设备的中断源的数量,满足了基于PCI总线的多功能板卡设备对中断源数量方面的需求;2、本发明所提供的一种PCI总线非向量中断实现方法,进行寄存器归类设置,合理设置了中断使能寄存器、中断状态寄存器、中断清除寄存器三类寄存器,该种设置不仅保证了中断服务程序能够完整实现对中断事件的处理功能,而且大大简化了中断服务程序,使得PCI系统在完整实现其对于多种中断事件处理的功能的基础上,程序更为简洁、运行更为流畅。


图1为本发明的控制平台设计示意图;图2为本发明中断使能寄存器结构示意图;图3为本发明中断状态寄存器结构示意图;图4为本发明中断清除寄存器结构示意图;图5为本发明中断申请逻辑结构示意图;图6为本发明中断服务程序流程示意图。
具体实施例方式下面结合附图并举实施例,对本发明进行详细描述。本实施例提出的PCI总线非向量中断实现方法具体为步骤1、如图1所示,在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;PCI系统通过总线对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位;对于η个中断源中断使能寄存器结构如图2所示,中断使能寄存器包括η位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,标识中断源i#被使能;第i位未被置位时,标识中断源i#被禁止,其中I彡i彡η。
中断状态寄存器结构如图3所示,中断状态寄存器包括η位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止。中断状态寄存器的各位以设定的逻辑规则进行运算输出中断请求信号,由中断申请信号输出端输出。中断清除寄存器结构如图4所示,中断清除寄存器包括η位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,控制平台清除中断状态寄存器第i位的置位。可见,本发明根据寄存器功能创建寄存器,共创建了中断使能寄存器、中断状态寄存器、中断清除寄存器三类寄存器。步骤2、控制平台通过使能信号输入端接收用户输入的使能信号,控制平台根据使能信号对中断使能寄存器中一定数量的位进行置位;对应位被置位的中断源即被使能。步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位。控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端。设定的逻辑规则为中断状态寄存器的I位或I位以上被置位即产生中断申请信号;则对于η个中断源,每个中断源产生中断事件均能够通过该设定的逻辑运算产生中断申请号。本实施例中的中断申请逻辑结构如图5所示。步骤4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,检测中断申请标志位,若中断申请标识位已被置位,说明中断服务程序正在进行,则继续检测中断申请标识位,直至检测到中断申请标识位为空;当中断申请标志位为空时,则将中断申请标志位进行置位,响应中断并进入中断服务程序,中断服务程序按照设定的工作流程运行。如图6所示,中断服务程序的工作流程为首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。当中断状态寄存器的多个位被置位,则中断服务程序能够获取到多个序号,即对应多个不同的中断源同时产生中断事件,中断服务程序根据设定的中断优先级先后调用所述多个不同的中断源的处理程序;处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。由中断服务程序的工作流程可以看出,由于本发明根据功能创建寄存器,在中断服务程序中,通过识别或操作各寄存器的相应位即可完成程序的相应功能,这在保证中断服务程序的完整功能的基础上大大简化了程序流程。根据本发明所做设计,对于32位PCI系统,可创建32位寄存器结构,将中断使能寄存器、中断状态寄存器、中断清除寄存器均设置为32位,则可使PCI总线系统支持的每个中断请求端对应32个中断源,即PCI总线系统支持的4个中断请求端对应的中断源可扩展为128个,极大了 PCI总线系统支持的中断源数量。本实施例中,可使用FPGA作为控制平台,在FPGA上创建存储区作为中断使能寄存器、中断状态寄存器、中断清除寄存器,并能够接收外部输入和中断触发信号,系统可通过总线与FPGA进行通讯,以读取FPGA上的相应存储区的位。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种PCI总线非向量中断实现方法,其特征在于,包括如下步骤 步骤1、在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;所述控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;pci系统与控制平台通信,对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位; 对于n个中断源 所述中断使能寄存器包括η位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,表示中断源i#被使能;第1位未被置位时,表示中断源i#被禁止,其中i Sn ; 所述中断状态寄存器包括η位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止; 所述中断清除寄存器包括η位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,清除中断状态寄存器第i位的置位; 步骤2、控制平台通过使能信号输入端接收用户输入的使能信号,根据使能信号对中断使能寄存器中指定位进行置位; 步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端; 所述设定的逻辑规则为中断状态寄存器的I位或I位以上被置位即产生中断申请信号; 步骤4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,检测中断申请标志位,若中断申请标识位已被置位,则继续检测中断申请标识位,直至中断申请标识位为空;若中断申请标志位为空,则将中断申请标志位进行置位,响应中断并进入中断服务程序; 中断服务程序的工作流程为 首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。
2.如权利要求1所述的一种PCI总线非向量中断实现方法,其特征在于,所述调用序号对应的中断源的处理程序为当中断状态寄存器的多个位被置位时,中断服务程序根据设定的中断优先级先后调用所述多个不同的中断源的处理程序。
全文摘要
本发明公开了一种PCI总线非向量中断实现方法,属于PCI总线技术领域,包括如下步骤1、在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;2、控制平台根据使能信号对中断使能寄存器中指定位进行置位;3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;中断状态寄存器的1位或1位以上被置位即产生中断申请信号;4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,若中断申请标志位为空,则将中断申请标志位进行置位,响应中断并进入中断服务程序;中断服务程序针对不同的中断源进行调用不同的处理程序。本发明适用于PCI系统的中断控制。
文档编号G06F9/48GK103019848SQ20121057240
公开日2013年4月3日 申请日期2012年12月25日 优先权日2012年12月25日
发明者杨立杰, 史雄伟, 胡志臣, 许崴稚, 高伟强, 张伟楠 申请人:北京航天测控技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1