專利名稱:一種pci總線非向量中斷實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于PCI總線技術(shù)領(lǐng)域。
背景技術(shù):
隨著被測試系統(tǒng)的復(fù)雜性日漸提高,系統(tǒng)對于PCI總線板卡功能的要求也不斷的提高,PCI總線現(xiàn)已向CPCI總線和PXI總線的發(fā)展,而單個PXI板卡的功能也越來越多、越來越復(fù)雜。單個PCI板卡在面臨復(fù)雜的被測試系統(tǒng)時,由于系統(tǒng)的中斷事件增多,要求板卡應(yīng)當(dāng)具有對更多中斷事件進(jìn)行處理的能力,然而現(xiàn)有的PCI板卡只能為每個系統(tǒng)提供INTA#、INTB#、INTC#、INTD#等4個中斷請求端,對于功能復(fù)雜的被測試系統(tǒng)來說,這已經(jīng)遠(yuǎn) 遠(yuǎn)不能滿足目前負(fù)責(zé)功能板卡的應(yīng)用。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種PCI總線非向量中斷實現(xiàn)方法,采用該方法可以突破現(xiàn)有PCI總線對每個板卡設(shè)備中斷源數(shù)量的限制,數(shù)倍提高現(xiàn)有PCI板卡設(shè)備的中斷源的數(shù)量,滿足了基于PCI總線的多功能板卡設(shè)備對中斷源數(shù)量方面的需求?;谏鲜瞿康谋景l(fā)明的技術(shù)方案為一種PCI總線非向量中斷實現(xiàn)方法,包括如下步驟步驟1、在控制平臺創(chuàng)建中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器;控制平臺具有使能信號輸入端和中斷申請信號輸出端;中斷申請信號輸出端連接PCI系統(tǒng)的中斷請求端;PCI系統(tǒng)與控制平臺通信,對控制平臺中的中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器進(jìn)行讀取或者置位;對于η個中斷源中斷使能寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷使能寄存器的第i位置位時,表示中斷源i#被使能;第i位未被置位時,表示中斷源i#被禁止,其中KiSn;中斷狀態(tài)寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷狀態(tài)寄存器的第i位置位時,標(biāo)識中斷源i#發(fā)生中斷事件,否則標(biāo)識中斷源i#無中斷事件發(fā)生或者被禁止;中斷清除寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷清除寄存器的第i位在置位時,清除中斷狀態(tài)寄存器第i位的置位;步驟2、控制平臺通過使能信號輸入端接收用戶輸入的使能信號并根據(jù)使能信號對中斷使能寄存器中指定位進(jìn)行置位;步驟3、控制平臺檢測到中斷源i#產(chǎn)生中斷事件,同時檢測到中斷使能寄存器的第i位被置位,則將中斷狀態(tài)寄存器的第i位置位;控制平臺將中斷狀態(tài)寄存器的各位以設(shè)定的邏輯規(guī)則進(jìn)行運(yùn)算產(chǎn)生中斷申請信號,中斷申請信號由中斷申請信號輸出端輸出,送至PCI系統(tǒng)的中斷請求端;其中設(shè)定的邏輯規(guī)則為中斷狀態(tài)寄存器的I位或I位以上被置位即產(chǎn)生中斷申請?zhí)?;步驟4、PCI系統(tǒng)中具有中斷申請標(biāo)志位,PCI系統(tǒng)接收到中斷申請信號,檢測中斷申請標(biāo)志位,若中斷申請標(biāo)識位已被置位,則繼續(xù)檢測中斷申請標(biāo)識位,直至中斷申請標(biāo)識位為空;若中斷申請標(biāo)志位為空,則將中斷申請標(biāo)志位進(jìn)行置位,響應(yīng)中斷并進(jìn)入中斷服務(wù)程序;中斷服務(wù)程序的工作流程為首先讀取中斷狀態(tài)寄存器,獲取中斷狀態(tài)寄存器中被置位的位的序號,根據(jù)序號對中斷清除寄存器中的位進(jìn)行置位操作,并調(diào)用序號對應(yīng)的中斷源的處理程序,處理程序調(diào)用結(jié)束后,將中斷申請標(biāo)志位清空,退出中斷服務(wù)程序。進(jìn)一步地,調(diào)用序號對應(yīng)的中斷源的處理程序為當(dāng)中斷狀態(tài)寄存器的多個位被置位時,中斷服務(wù)程序根據(jù)設(shè)定的中斷優(yōu)先級先后調(diào)用所述多個不同的中斷源的處理程序。。有益效果1、本發(fā)明通過創(chuàng)建包括中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器在內(nèi)的用于中斷控制與識別的寄存器,實現(xiàn)了對更多中斷源的管理與識別。本方法中的每個中斷源均可產(chǎn)生中斷觸發(fā)信號通過中斷請求端向PCI系統(tǒng)申請中斷,該方法使得PCI板卡能夠響應(yīng)更多的中斷事件并進(jìn)行處理,突破了現(xiàn)有PCI總線對每個板卡設(shè)備中斷源數(shù)量的限制,數(shù)倍提高現(xiàn)有PCI板卡設(shè)備的中斷源的數(shù)量,滿足了基于PCI總線的多功能板卡設(shè)備對中斷源數(shù)量方面的需求;2、本發(fā)明所提供的一種PCI總線非向量中斷實現(xiàn)方法,進(jìn)行寄存器歸類設(shè)置,合理設(shè)置了中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器三類寄存器,該種設(shè)置不僅保證了中斷服務(wù)程序能夠完整實現(xiàn)對中斷事件的處理功能,而且大大簡化了中斷服務(wù)程序,使得PCI系統(tǒng)在完整實現(xiàn)其對于多種中斷事件處理的功能的基礎(chǔ)上,程序更為簡潔、運(yùn)行更為流暢。
圖1為本發(fā)明的控制平臺設(shè)計示意圖;圖2為本發(fā)明中斷使能寄存器結(jié)構(gòu)示意圖;圖3為本發(fā)明中斷狀態(tài)寄存器結(jié)構(gòu)示意圖;圖4為本發(fā)明中斷清除寄存器結(jié)構(gòu)示意圖;圖5為本發(fā)明中斷申請邏輯結(jié)構(gòu)示意圖;圖6為本發(fā)明中斷服務(wù)程序流程示意圖。
具體實施例方式下面結(jié)合附圖并舉實施例,對本發(fā)明進(jìn)行詳細(xì)描述。本實施例提出的PCI總線非向量中斷實現(xiàn)方法具體為步驟1、如圖1所示,在控制平臺創(chuàng)建中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器;控制平臺具有使能信號輸入端和中斷申請信號輸出端;中斷申請信號輸出端連接PCI系統(tǒng)的中斷請求端;PCI系統(tǒng)通過總線對控制平臺中的中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器進(jìn)行讀取或者置位;對于η個中斷源中斷使能寄存器結(jié)構(gòu)如圖2所示,中斷使能寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷使能寄存器的第i位置位時,標(biāo)識中斷源i#被使能;第i位未被置位時,標(biāo)識中斷源i#被禁止,其中I彡i彡η。
中斷狀態(tài)寄存器結(jié)構(gòu)如圖3所示,中斷狀態(tài)寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷狀態(tài)寄存器的第i位置位時,標(biāo)識中斷源i#發(fā)生中斷事件,否則標(biāo)識中斷源i#無中斷事件發(fā)生或者被禁止。中斷狀態(tài)寄存器的各位以設(shè)定的邏輯規(guī)則進(jìn)行運(yùn)算輸出中斷請求信號,由中斷申請信號輸出端輸出。中斷清除寄存器結(jié)構(gòu)如圖4所示,中斷清除寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷清除寄存器的第i位在置位時,控制平臺清除中斷狀態(tài)寄存器第i位的置位??梢?,本發(fā)明根據(jù)寄存器功能創(chuàng)建寄存器,共創(chuàng)建了中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器三類寄存器。步驟2、控制平臺通過使能信號輸入端接收用戶輸入的使能信號,控制平臺根據(jù)使能信號對中斷使能寄存器中一定數(shù)量的位進(jìn)行置位;對應(yīng)位被置位的中斷源即被使能。步驟3、控制平臺檢測到中斷源i#產(chǎn)生中斷事件,同時檢測到中斷使能寄存器的第i位被置位,則將中斷狀態(tài)寄存器的第i位置位。控制平臺將中斷狀態(tài)寄存器的各位以設(shè)定的邏輯規(guī)則進(jìn)行運(yùn)算產(chǎn)生中斷申請信號,中斷申請信號由中斷申請信號輸出端輸出,送至PCI系統(tǒng)的中斷請求端。設(shè)定的邏輯規(guī)則為中斷狀態(tài)寄存器的I位或I位以上被置位即產(chǎn)生中斷申請信號;則對于η個中斷源,每個中斷源產(chǎn)生中斷事件均能夠通過該設(shè)定的邏輯運(yùn)算產(chǎn)生中斷申請?zhí)枴1緦嵤├械闹袛嗌暾堖壿嫿Y(jié)構(gòu)如圖5所示。步驟4、PCI系統(tǒng)中具有中斷申請標(biāo)志位,PCI系統(tǒng)接收到中斷申請信號,檢測中斷申請標(biāo)志位,若中斷申請標(biāo)識位已被置位,說明中斷服務(wù)程序正在進(jìn)行,則繼續(xù)檢測中斷申請標(biāo)識位,直至檢測到中斷申請標(biāo)識位為空;當(dāng)中斷申請標(biāo)志位為空時,則將中斷申請標(biāo)志位進(jìn)行置位,響應(yīng)中斷并進(jìn)入中斷服務(wù)程序,中斷服務(wù)程序按照設(shè)定的工作流程運(yùn)行。如圖6所示,中斷服務(wù)程序的工作流程為首先讀取中斷狀態(tài)寄存器,獲取中斷狀態(tài)寄存器中被置位的位的序號,根據(jù)序號對中斷清除寄存器中的位進(jìn)行置位操作,并調(diào)用序號對應(yīng)的中斷源的處理程序,處理程序調(diào)用結(jié)束后,將中斷申請標(biāo)志位清空,退出中斷服務(wù)程序。當(dāng)中斷狀態(tài)寄存器的多個位被置位,則中斷服務(wù)程序能夠獲取到多個序號,即對應(yīng)多個不同的中斷源同時產(chǎn)生中斷事件,中斷服務(wù)程序根據(jù)設(shè)定的中斷優(yōu)先級先后調(diào)用所述多個不同的中斷源的處理程序;處理程序調(diào)用結(jié)束后,將中斷申請標(biāo)志位清空,退出中斷服務(wù)程序。由中斷服務(wù)程序的工作流程可以看出,由于本發(fā)明根據(jù)功能創(chuàng)建寄存器,在中斷服務(wù)程序中,通過識別或操作各寄存器的相應(yīng)位即可完成程序的相應(yīng)功能,這在保證中斷服務(wù)程序的完整功能的基礎(chǔ)上大大簡化了程序流程。根據(jù)本發(fā)明所做設(shè)計,對于32位PCI系統(tǒng),可創(chuàng)建32位寄存器結(jié)構(gòu),將中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器均設(shè)置為32位,則可使PCI總線系統(tǒng)支持的每個中斷請求端對應(yīng)32個中斷源,即PCI總線系統(tǒng)支持的4個中斷請求端對應(yīng)的中斷源可擴(kuò)展為128個,極大了 PCI總線系統(tǒng)支持的中斷源數(shù)量。本實施例中,可使用FPGA作為控制平臺,在FPGA上創(chuàng)建存儲區(qū)作為中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器,并能夠接收外部輸入和中斷觸發(fā)信號,系統(tǒng)可通過總線與FPGA進(jìn)行通訊,以讀取FPGA上的相應(yīng)存儲區(qū)的位。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種PCI總線非向量中斷實現(xiàn)方法,其特征在于,包括如下步驟 步驟1、在控制平臺創(chuàng)建中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器;所述控制平臺具有使能信號輸入端和中斷申請信號輸出端;中斷申請信號輸出端連接PCI系統(tǒng)的中斷請求端;pci系統(tǒng)與控制平臺通信,對控制平臺中的中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器進(jìn)行讀取或者置位; 對于n個中斷源 所述中斷使能寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷使能寄存器的第i位置位時,表示中斷源i#被使能;第1位未被置位時,表示中斷源i#被禁止,其中i Sn ; 所述中斷狀態(tài)寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷狀態(tài)寄存器的第i位置位時,標(biāo)識中斷源i#發(fā)生中斷事件,否則標(biāo)識中斷源i#無中斷事件發(fā)生或者被禁止; 所述中斷清除寄存器包括η位,每一位對應(yīng)一個中斷源,設(shè)定中斷清除寄存器的第i位在置位時,清除中斷狀態(tài)寄存器第i位的置位; 步驟2、控制平臺通過使能信號輸入端接收用戶輸入的使能信號,根據(jù)使能信號對中斷使能寄存器中指定位進(jìn)行置位; 步驟3、控制平臺檢測到中斷源i#產(chǎn)生中斷事件,同時檢測到中斷使能寄存器的第i位被置位,則將中斷狀態(tài)寄存器的第i位置位;控制平臺將中斷狀態(tài)寄存器的各位以設(shè)定的邏輯規(guī)則進(jìn)行運(yùn)算產(chǎn)生中斷申請信號,中斷申請信號由中斷申請信號輸出端輸出,送至PCI系統(tǒng)的中斷請求端; 所述設(shè)定的邏輯規(guī)則為中斷狀態(tài)寄存器的I位或I位以上被置位即產(chǎn)生中斷申請信號; 步驟4、PCI系統(tǒng)中具有中斷申請標(biāo)志位,PCI系統(tǒng)接收到中斷申請信號,檢測中斷申請標(biāo)志位,若中斷申請標(biāo)識位已被置位,則繼續(xù)檢測中斷申請標(biāo)識位,直至中斷申請標(biāo)識位為空;若中斷申請標(biāo)志位為空,則將中斷申請標(biāo)志位進(jìn)行置位,響應(yīng)中斷并進(jìn)入中斷服務(wù)程序; 中斷服務(wù)程序的工作流程為 首先讀取中斷狀態(tài)寄存器,獲取中斷狀態(tài)寄存器中被置位的位的序號,根據(jù)序號對中斷清除寄存器中的位進(jìn)行置位操作,并調(diào)用序號對應(yīng)的中斷源的處理程序,處理程序調(diào)用結(jié)束后,將中斷申請標(biāo)志位清空,退出中斷服務(wù)程序。
2.如權(quán)利要求1所述的一種PCI總線非向量中斷實現(xiàn)方法,其特征在于,所述調(diào)用序號對應(yīng)的中斷源的處理程序為當(dāng)中斷狀態(tài)寄存器的多個位被置位時,中斷服務(wù)程序根據(jù)設(shè)定的中斷優(yōu)先級先后調(diào)用所述多個不同的中斷源的處理程序。
全文摘要
本發(fā)明公開了一種PCI總線非向量中斷實現(xiàn)方法,屬于PCI總線技術(shù)領(lǐng)域,包括如下步驟1、在控制平臺創(chuàng)建中斷使能寄存器、中斷狀態(tài)寄存器、中斷清除寄存器;2、控制平臺根據(jù)使能信號對中斷使能寄存器中指定位進(jìn)行置位;3、控制平臺檢測到中斷源i#產(chǎn)生中斷事件,同時檢測到中斷使能寄存器的第i位被置位,則將中斷狀態(tài)寄存器的第i位置位;中斷狀態(tài)寄存器的1位或1位以上被置位即產(chǎn)生中斷申請信號;4、PCI系統(tǒng)中具有中斷申請標(biāo)志位,PCI系統(tǒng)接收到中斷申請信號,若中斷申請標(biāo)志位為空,則將中斷申請標(biāo)志位進(jìn)行置位,響應(yīng)中斷并進(jìn)入中斷服務(wù)程序;中斷服務(wù)程序針對不同的中斷源進(jìn)行調(diào)用不同的處理程序。本發(fā)明適用于PCI系統(tǒng)的中斷控制。
文檔編號G06F9/48GK103019848SQ20121057240
公開日2013年4月3日 申請日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者楊立杰, 史雄偉, 胡志臣, 許崴稚, 高偉強(qiáng), 張偉楠 申請人:北京航天測控技術(shù)有限公司