本發(fā)明涉及一種中斷技術(shù),特別是涉及CPCI總線的中斷處理。
背景技術(shù):
現(xiàn)代雷達(dá)系統(tǒng)內(nèi)部都有時(shí)統(tǒng)信號(hào),用以保持雷達(dá)各分機(jī)間在時(shí)序關(guān)系上的同步。對(duì)于中心機(jī),時(shí)統(tǒng)信號(hào)一般通過接口板轉(zhuǎn)換為CPCI總線中斷,中心機(jī)程序通過響應(yīng)中斷的方式達(dá)到與其他分機(jī)時(shí)序上的同步的目的。然而就實(shí)際使用過程中比較常用的每秒500次的中斷,會(huì)存在中心機(jī)沒有響應(yīng)中斷的情況。
為了解決這一問題,通常在Vxworks下的做法是在程序中通過軟定時(shí)器計(jì)數(shù),判斷超時(shí)的時(shí)候模擬一次中斷。雖然這樣做能夠解決中斷未響應(yīng)的問題,但卻損失了系統(tǒng)的效率,降低了系統(tǒng)的實(shí)時(shí)性,不適合應(yīng)用于時(shí)序要求較高的環(huán)境。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種硬件補(bǔ)償?shù)姆椒?,能夠解決CPCI中斷的丟失問題,而且不會(huì)降低系統(tǒng)的實(shí)時(shí)性。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案包括以下步驟:
(1)外部輸入的差分時(shí)統(tǒng)信號(hào)轉(zhuǎn)為3.3V的LVTTL信號(hào),在LVTTL信號(hào)下降沿啟動(dòng)定時(shí)器1和定時(shí)器2,定時(shí)器1用于產(chǎn)生20us脈寬的中斷信號(hào),定時(shí)器2對(duì)雷達(dá)中心機(jī)響應(yīng)中斷的時(shí)間進(jìn)行計(jì)時(shí),同時(shí)置中斷狀態(tài)寄存器為有效狀態(tài);
(2)若中心機(jī)響應(yīng)中斷,則在ISR中置中斷狀態(tài)寄存器為無效狀態(tài);否則,在定時(shí)器2計(jì)數(shù)夠40us時(shí),對(duì)定時(shí)器1和定時(shí)器2復(fù)位,以產(chǎn)生中斷補(bǔ)償信號(hào);
(3)中斷補(bǔ)償信號(hào)和定時(shí)器1產(chǎn)生的中斷信號(hào)相與,產(chǎn)生最終送雷達(dá)中心機(jī)的中斷信號(hào)。
本發(fā)明的有益效果是:實(shí)現(xiàn)了一種CPCI中斷未響應(yīng)時(shí)的從硬件上的補(bǔ)償方法,一方面解決了中心機(jī)在響應(yīng)CPCI總線中斷時(shí)有丟失的問題;另一方面,由于使用可編程邏輯器件從硬件上去補(bǔ)償中斷,因而將補(bǔ)償導(dǎo)致的延時(shí)降到了最少。
附圖說明
圖1是中斷補(bǔ)償過程示意圖。
圖2是中心機(jī)和接口板的處理流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實(shí)施例。
本發(fā)明的技術(shù)方案描述如下:
(1)外部輸入的差分時(shí)統(tǒng)信號(hào)轉(zhuǎn)為3.3V的LVTTL信號(hào),在此信號(hào)下降沿啟動(dòng)定時(shí)器1和定時(shí)器2:定時(shí)器1用于產(chǎn)生20us脈寬的中斷信號(hào),定時(shí)器2對(duì)雷達(dá)中心機(jī)響應(yīng)中斷的時(shí)間進(jìn)行計(jì)時(shí),同時(shí)置中斷狀態(tài)寄存器為有效狀態(tài)。
(2)若中心機(jī)響應(yīng)中斷,則在ISR(中斷服務(wù)程序)中置中斷狀態(tài)寄存器為無效狀態(tài);否則,在定時(shí)器2計(jì)數(shù)夠40us時(shí),對(duì)定時(shí)器1和定時(shí)器2復(fù)位,以產(chǎn)生中斷補(bǔ)償信號(hào);
(3)中斷補(bǔ)償信號(hào)和定時(shí)器1產(chǎn)生的中斷信號(hào)相與,產(chǎn)生最終送雷達(dá)中心機(jī)的中斷信號(hào)。
下面采用20us負(fù)脈沖,2ms周期外部中斷為例,對(duì)本發(fā)明進(jìn)行進(jìn)一步說明:
(1)外部輸入的時(shí)統(tǒng)信號(hào)經(jīng)過差分接收器SN65LBC175A轉(zhuǎn)為3.3V LVTTL信號(hào)后,如圖1中的EXT Timer所示。
(2)在EXT Timer信號(hào)的下降沿將定時(shí)器1復(fù)位,使其從0開始計(jì)數(shù),同時(shí)將定時(shí)器2復(fù)位。
定時(shí)器1用來產(chǎn)生LINT信號(hào),當(dāng)定時(shí)器1計(jì)數(shù)在1~600區(qū)間時(shí),置LINT信號(hào)為低,此信號(hào)通過PLX9054CPCI總線接口芯片轉(zhuǎn)為CPCI總線中斷,中斷信號(hào)寬度為20us。之所以定為這個(gè)寬度,是因?yàn)榇罅繉?shí)驗(yàn)數(shù)據(jù)顯示絕大多數(shù)中斷的響應(yīng)時(shí)間在20us以內(nèi)。
定時(shí)器2用來對(duì)中心機(jī)的響應(yīng)時(shí)間進(jìn)行計(jì)時(shí),計(jì)量方法為N個(gè)30M時(shí)鐘的周期。當(dāng)定時(shí)器2計(jì)夠1200個(gè)時(shí)鐘周期時(shí),說明中心機(jī)的響應(yīng)時(shí)間已經(jīng)超過了40us。
(3)在LINT為低時(shí)置INT STATE寄存器為1,中心機(jī)在進(jìn)入中斷服務(wù)程序(ISR)后的第一條語句讀INT STATE寄存器,接口板在檢測(cè)到讀信號(hào)且地址等于INT STATE寄存器地址時(shí),將INT STATE的值送給中心機(jī),同時(shí)置INT STATE寄存器的值為0;如圖1中的INT STATE(Normal)所示。
INT STATE保持1的時(shí)間反映了中心機(jī)響應(yīng)中斷的時(shí)間,該時(shí)間是一個(gè)變動(dòng)的時(shí)間,變化范圍一般為5us~20us。
(4)在定時(shí)器2計(jì)夠40us后,判斷INT STATE寄存器的值是否清0,如果清0,則說明中斷已被處理;若為1,說明中心機(jī)未響應(yīng)CPCI中斷,此時(shí)復(fù)位定時(shí)器1,以產(chǎn)生補(bǔ)償?shù)闹袛嘈盘?hào),如圖1中的Compensate LINT所示。
(5)將Compensate LINT信號(hào)通過“與”操作合并到LINT信號(hào)上,即得到最終的LINT信號(hào),如圖1中的LINT After Compensate所示。補(bǔ)償中斷后,INT STATE信號(hào)如圖1中的INT STATE(Lost and Compensate)所示。