CN103019848B - 一种pci总线非向量中断实现方法 - Google Patents
一种pci总线非向量中断实现方法 Download PDFInfo
- Publication number
- CN103019848B CN103019848B CN201210572407.2A CN201210572407A CN103019848B CN 103019848 B CN103019848 B CN 103019848B CN 201210572407 A CN201210572407 A CN 201210572407A CN 103019848 B CN103019848 B CN 103019848B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- status register
- register
- source
- pci
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title abstract description 21
- 230000002093 peripheral effect Effects 0.000 title abstract 2
- 238000012545 processing Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种PCI总线非向量中断实现方法,属于PCI总线技术领域,包括如下步骤:1.在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;2.控制平台根据使能信号对中断使能寄存器中指定位进行置位;3.控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;中断状态寄存器的1位或1位以上被置位即产生中断申请信号;4.PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,若中断申请标志位为空,则将中断申请标志位进行置位,响应中断并进入中断服务程序;中断服务程序针对不同的中断源进行调用不同的处理程序。本发明适用于PCI系统的中断控制。
Description
技术领域
本发明属于PCI总线技术领域。
背景技术
随着被测试系统的复杂性日渐提高,系统对于PCI总线板卡功能的要求也不断的提高,PCI总线现已向CPCI总线和PXI总线的发展,而单个PXI板卡的功能也越来越多、越来越复杂。
单个PCI板卡在面临复杂的被测试系统时,由于系统的中断事件增多,要求板卡应当具有对更多中断事件进行处理的能力,然而现有的PCI板卡只能为每个系统提供INTA#、INTB#、INTC#、INTD#等4个中断请求端,对于功能复杂的被测试系统来说,这已经远远不能满足目前负责功能板卡的应用。
发明内容
有鉴于此,本发明提供了一种PCI总线非向量中断实现方法,采用该方法可以突破现有PCI总线对每个板卡设备中断源数量的限制,数倍提高现有PCI板卡设备的中断源的数量,满足了基于PCI总线的多功能板卡设备对中断源数量方面的需求。
基于上述目的本发明的技术方案为:
一种PCI总线非向量中断实现方法,包括如下步骤:
步骤1、在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;PCI系统与控制平台通信,对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位;
对于n个中断源:
中断使能寄存器包括n位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,表示中断源i#被使能;第i位未被置位时,表示中断源i#被禁止,其中1≤i≤n;
中断状态寄存器包括n位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止;
中断清除寄存器包括n位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,清除中断状态寄存器第i位的置位;
步骤2、控制平台通过使能信号输入端接收用户输入的使能信号并根据使能信号对中断使能寄存器中指定位进行置位;
步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端;
其中设定的逻辑规则为:中断状态寄存器的1位或1位以上被置位即产生中断申请信号;
步骤4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,检测中断申请标志位,若中断申请标识位已被置位,则继续检测中断申请标识位,直至中断申请标识位为空;若中断申请标志位为空,则将中断申请标志位进行置位,响应中断并进入中断服务程序;
中断服务程序的工作流程为:
首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。
进一步地,调用序号对应的中断源的处理程序为:当中断状态寄存器的多个位被置位时,中断服务程序根据设定的中断优先级先后调用所述多个不同的中断源的处理程序。。
有益效果:
1、本发明通过创建包括中断使能寄存器、中断状态寄存器、中断清除寄存器在内的用于中断控制与识别的寄存器,实现了对更多中断源的管理与识别。本方法中的每个中断源均可产生中断触发信号通过中断请求端向PCI系统申请中断,该方法使得PCI板卡能够响应更多的中断事件并进行处理,突破了现有PCI总线对每个板卡设备中断源数量的限制,数倍提高现有PCI板卡设备的中断源的数量,满足了基于PCI总线的多功能板卡设备对中断源数量方面的需求;
2、本发明所提供的一种PCI总线非向量中断实现方法,进行寄存器归类设置,合理设置了中断使能寄存器、中断状态寄存器、中断清除寄存器三类寄存器,该种设置不仅保证了中断服务程序能够完整实现对中断事件的处理功能,而且大大简化了中断服务程序,使得PCI系统在完整实现其对于多种中断事件处理的功能的基础上,程序更为简洁、运行更为流畅。
附图说明
图1为本发明的控制平台设计示意图;
图2为本发明中断使能寄存器结构示意图;
图3为本发明中断状态寄存器结构示意图;
图4为本发明中断清除寄存器结构示意图;
图5为本发明中断申请逻辑结构示意图;
图6为本发明中断服务程序流程示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本实施例提出的PCI总线非向量中断实现方法具体为:
步骤1、如图1所示,在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;PCI系统通过总线对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位;
对于n个中断源:
中断使能寄存器结构如图2所示,中断使能寄存器包括n位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,标识中断源i#被使能;第i位未被置位时,标识中断源i#被禁止,其中1≤i≤n。
中断状态寄存器结构如图3所示,中断状态寄存器包括n位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止。中断状态寄存器的各位以设定的逻辑规则进行运算输出中断请求信号,由中断申请信号输出端输出。
中断清除寄存器结构如图4所示,中断清除寄存器包括n位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,控制平台清除中断状态寄存器第i位的置位。
可见,本发明根据寄存器功能创建寄存器,共创建了中断使能寄存器、中断状态寄存器、中断清除寄存器三类寄存器。
步骤2、控制平台通过使能信号输入端接收用户输入的使能信号,控制平台根据使能信号对中断使能寄存器中一定数量的位进行置位;对应位被置位的中断源即被使能。
步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位。
控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端。
设定的逻辑规则为:中断状态寄存器的1位或1位以上被置位即产生中断申请信号;则对于n个中断源,每个中断源产生中断事件均能够通过该设定的逻辑运算产生中断申请信号。
本实施例中的中断申请逻辑结构如图5所示。
步骤4、PCI系统中具有中断申请标志位,PCI系统接收到中断申请信号,检测中断申请标志位,若中断申请标识位已被置位,说明中断服务程序正在进行,则继续检测中断申请标识位,直至检测到中断申请标识位为空;当中断申请标志位为空时,则将中断申请标志位进行置位,响应中断并进入中断服务程序,中断服务程序按照设定的工作流程运行。
如图6所示,中断服务程序的工作流程为:
首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。
当中断状态寄存器的多个位被置位,则中断服务程序能够获取到多个序号,即对应多个不同的中断源同时产生中断事件,中断服务程序根据设定的中断优先级先后调用所述多个不同的中断源的处理程序;处理程序调用结束后,将中断申请标志位清空,退出中断服务程序。
由中断服务程序的工作流程可以看出,由于本发明根据功能创建寄存器,在中断服务程序中,通过识别或操作各寄存器的相应位即可完成程序的相应功能,这在保证中断服务程序的完整功能的基础上大大简化了程序流程。
根据本发明所做设计,对于32位PCI系统,可创建32位寄存器结构,将中断使能寄存器、中断状态寄存器、中断清除寄存器均设置为32位,则可使PCI总线系统支持的每个中断请求端对应32个中断源,即PCI总线系统支持的4个中断请求端对应的中断源可扩展为128个,极大了PCI总线系统支持的中断源数量。
本实施例中,可使用FPGA作为控制平台,在FPGA上创建存储区作为中断使能寄存器、中断状态寄存器、中断清除寄存器,并能够接收外部输入和中断触发信号,系统可通过总线与FPGA进行通讯,以读取FPGA上的相应存储区的位。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种PCI总线非向量中断实现方法,其特征在于,包括如下步骤:
步骤1、在控制平台创建中断使能寄存器、中断状态寄存器、中断清除寄存器;所述控制平台具有使能信号输入端和中断申请信号输出端;中断申请信号输出端连接PCI系统的中断请求端;PCI系统与控制平台通信,对控制平台中的中断使能寄存器、中断状态寄存器、中断清除寄存器进行读取或者置位;
对于n个中断源:
所述中断使能寄存器包括n位,每一位对应一个中断源,设定中断使能寄存器的第i位置位时,表示中断源i#被使能;第i位未被置位时,表示中断源i#被禁止,其中1≤i≤n;
所述中断状态寄存器包括n位,每一位对应一个中断源,设定中断状态寄存器的第i位置位时,标识中断源i#发生中断事件,否则标识中断源i#无中断事件发生或者被禁止;
所述中断清除寄存器包括n位,每一位对应一个中断源,设定中断清除寄存器的第i位在置位时,清除中断状态寄存器第i位的置位;
步骤2、控制平台通过使能信号输入端接收用户输入的使能信号,根据使能信号对中断使能寄存器中指定位进行置位;
步骤3、控制平台检测到中断源i#产生中断事件,同时检测到中断使能寄存器的第i位被置位,则将中断状态寄存器的第i位置位;控制平台将中断状态寄存器的各位以设定的逻辑规则进行运算产生中断申请信号,中断申请信号由中断申请信号输出端输出,送至PCI系统的中断请求端;
所述设定的逻辑规则为:中断状态寄存器的1位或1位以上被置位即产生中断申请信号;
步骤4、PCI系统中具有中断申请标识位,PCI系统接收到中断申请信号,检测中断申请标识位,若中断申请标识位已被置位,则继续检测中断申请标识位,直至中断申请标识位为空;若中断申请标识位为空,则将中断申请标识位进行置位,响应中断并进入中断服务程序;
中断服务程序的工作流程为:
首先读取中断状态寄存器,获取中断状态寄存器中被置位的位的序号,根据序号对中断清除寄存器中的位进行置位操作,并调用序号对应的中断源的处理程序,处理程序调用结束后,将中断申请标识位清空,退出中断服务程序。
2.如权利要求1所述的一种PCI总线非向量中断实现方法,其特征在于,所述调用序号对应的中断源的处理程序为:当中断状态寄存器的多个位被置位时,中断服务程序根据设定的中断优先级先后调用多个不同的所述中断源的处理程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572407.2A CN103019848B (zh) | 2012-12-25 | 2012-12-25 | 一种pci总线非向量中断实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572407.2A CN103019848B (zh) | 2012-12-25 | 2012-12-25 | 一种pci总线非向量中断实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019848A CN103019848A (zh) | 2013-04-03 |
CN103019848B true CN103019848B (zh) | 2015-06-03 |
Family
ID=47968479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210572407.2A Active CN103019848B (zh) | 2012-12-25 | 2012-12-25 | 一种pci总线非向量中断实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019848B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679687B (zh) * | 2014-12-19 | 2018-04-20 | 杭州华为数字技术有限公司 | 一种识别中断源的方法及装置 |
CN107085532B (zh) * | 2017-03-21 | 2019-12-13 | 东软集团股份有限公司 | 任务监听方法和装置 |
CN109343950B (zh) * | 2018-10-16 | 2021-06-08 | 南京国电南自维美德自动化有限公司 | 一种适用于Xilinx软核处理器的中断通用处理方法 |
CN111081295A (zh) * | 2018-10-22 | 2020-04-28 | 华邦电子股份有限公司 | 存储器装置及其中断处理方法 |
CN111143047A (zh) * | 2019-12-24 | 2020-05-12 | 北京无线电测量研究所 | 一种定时与随机双中断处理系统和方法 |
CN112069020B (zh) * | 2020-08-13 | 2023-09-15 | 中国航空无线电电子研究所 | 基于嵌入式操作系统的机载航电设备软件故障监控系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812858A (en) * | 1994-09-16 | 1998-09-22 | Cirrus Logic, Inc. | Method and apparatus for providing register and interrupt compatibility between non-identical integrated circuits |
US6643724B2 (en) * | 2000-12-27 | 2003-11-04 | International Business Machines Corporation | Method and apparatus for interrupt routing of PCI adapters via device address mapping |
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211323B (zh) * | 2006-12-28 | 2011-06-22 | 联想(北京)有限公司 | 一种硬件中断的处理方法和处理装置 |
-
2012
- 2012-12-25 CN CN201210572407.2A patent/CN103019848B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812858A (en) * | 1994-09-16 | 1998-09-22 | Cirrus Logic, Inc. | Method and apparatus for providing register and interrupt compatibility between non-identical integrated circuits |
US6643724B2 (en) * | 2000-12-27 | 2003-11-04 | International Business Machines Corporation | Method and apparatus for interrupt routing of PCI adapters via device address mapping |
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
Non-Patent Citations (1)
Title |
---|
基于EP2SGX系列FPGA的PCI接口设计;孙高俊 等;《研究与发展》;20090930;第28卷(第9期);44-83 * |
Also Published As
Publication number | Publication date |
---|---|
CN103019848A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019848B (zh) | 一种pci总线非向量中断实现方法 | |
CN105183698B (zh) | 一种基于多核dsp的控制处理系统和方法 | |
EP2701074A1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US8156273B2 (en) | Method and system for controlling transmission and execution of commands in an integrated circuit device | |
CN106874031A (zh) | 一种终端设备系统程序的启动方法及装置 | |
CN107944000A (zh) | 航班运价更新方法、装置、电子设备、存储介质 | |
GB2545973A (en) | Techniques for handling interrupts in a processing unit using virtual processor thread groups | |
CN107924325A (zh) | 用于多级虚拟化的技术 | |
US10481946B2 (en) | Information-processing device, processing method thereof, and input/output device | |
CN103995751A (zh) | 一种跨平台通信系统及方法 | |
CN110489713A (zh) | 用于为控制器区域网络控制器配置过滤器对象的方法和系统 | |
CN103077140A (zh) | 一种机器人运动控制卡与上位机的通信方法及通信装置 | |
CN105808338A (zh) | 一种在处理中实现中断响应核可配置的方法及装置 | |
CN105378650A (zh) | 用于控制处理模块的操作模式的方法和装置 | |
CN110471747A (zh) | 一种dma多通道的调度使用方法、装置及终端设备 | |
CN107229591A (zh) | 多串口通信方法及装置 | |
CN117931482A (zh) | 一种按键事件处理方法、装置、设备及存储介质 | |
CN102722466B (zh) | 一种3取2或2取2控制系统中的16位多总线电路 | |
CN101349975A (zh) | 实现中断底半部机制的方法及嵌入式系统 | |
CN106933681A (zh) | 一种多对象阻塞方法及其系统 | |
CN109343950A (zh) | 一种适用于Xilinx软核处理器的中断通用处理方法 | |
CN102662730B (zh) | 并行多核虚拟机的原子指令模拟方法及虚拟机装置 | |
CN111461476A (zh) | 混合仓库的出库订单分配方法、系统、设备及存储介质 | |
CN202748784U (zh) | 一种3取2或2取2控制系统中的16位多总线电路 | |
CN106530023A (zh) | 一种税控服务器及税控核心板的防假死方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |