專利名稱:在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及單片機(jī)應(yīng)用領(lǐng)域,尤其涉及一種單片機(jī)電平觸發(fā)中斷方式支持響應(yīng)短 脈沖中斷請(qǐng)求信號(hào)的方法和裝置。
背景技術(shù):
單片機(jī)中斷系統(tǒng)的目的是為了對(duì)內(nèi)部或外部的突發(fā)事件及時(shí)地作出響應(yīng),并執(zhí)行 相應(yīng)的程序,在單片機(jī)的應(yīng)用中,它同樣有著十分重要的作用。單片機(jī)的外部中斷有兩種觸 發(fā)方式可選,邊沿觸發(fā)和電平觸發(fā)。選擇邊沿觸發(fā)方式時(shí),單片機(jī)在上一個(gè)機(jī)器周期檢測(cè)到 中斷源口線為高電平,下一個(gè)機(jī)器周期檢測(cè)到低電平,即置位中斷標(biāo)志,請(qǐng)求中斷。這種觸 發(fā)方式很容易受中斷信號(hào)‘毛刺’的干擾而導(dǎo)致中斷誤觸發(fā),因此電平觸發(fā)中斷方式相比較 而言更具穩(wěn)定性,應(yīng)用也更廣泛。電平觸發(fā)是持續(xù)觸發(fā),中斷標(biāo)志寄存器不鎖存中斷請(qǐng)求信號(hào)。標(biāo)志寄存器對(duì)于請(qǐng) 求信號(hào)來(lái)說(shuō)是透明的。這樣當(dāng)中斷請(qǐng)求被阻塞而沒(méi)有得到及時(shí)響應(yīng)時(shí),將被丟失。所以,要 使電平觸發(fā)的中斷被單片機(jī)響應(yīng)并執(zhí)行,必須保證外部中斷源輸入的電平維持到中斷被執(zhí) 行為止。因此單片機(jī)輸入的電平中斷信號(hào)必須一直保持到當(dāng)前一條指令執(zhí)行完成后才能觸 發(fā)中斷,當(dāng)單片機(jī)正在執(zhí)行同級(jí)中斷或更高級(jí)中斷期間,產(chǎn)生的外部中斷源即外部中斷電 平如果在該中斷執(zhí)行完畢之前撤銷了,那么將得不到響應(yīng),就如同沒(méi)發(fā)生一樣。同樣,當(dāng)單 片機(jī)在執(zhí)行不可被中斷的指令時(shí),產(chǎn)生的電平觸發(fā)中斷如果時(shí)間太短,也得不到執(zhí)行。但是在單片機(jī)的實(shí)際應(yīng)用中,很多情況下輸入到單片機(jī)的中斷信號(hào)不僅用來(lái)做中 斷觸發(fā),還需要控制其它傳感器或采樣保持等電路的工作。比如光纖通信系統(tǒng)中光收發(fā)一 體模塊的突發(fā)接收光功率監(jiān)控應(yīng)用中,上位機(jī)輸入的光功率監(jiān)控觸發(fā)脈沖信號(hào)同時(shí)還控制 著光收發(fā)一體模塊的采樣保持電路。該觸發(fā)脈沖受到突發(fā)接收光包長(zhǎng)度的限制,最小脈沖 寬度只有300ns,根本無(wú)法觸發(fā)類似美國(guó)ADI公司ADUC7020這樣的單片機(jī)做中斷采樣處理。目前,常規(guī)的解決這種問(wèn)題的辦法是在短脈沖觸發(fā)信號(hào)后串聯(lián)一個(gè)單穩(wěn)態(tài)電路, 產(chǎn)生一個(gè)固定寬度的長(zhǎng)脈沖信號(hào)來(lái)觸發(fā)單片機(jī)的中斷。如圖1所示(圖1為現(xiàn)有技術(shù)中利 用單穩(wěn)態(tài)電路展寬短脈沖寬度的示意圖),這種方法不僅增加了一些分離的器件,加大了布 板的面積和復(fù)雜度,而且該電路容易受到信號(hào)‘毛刺’的影響,造成中斷誤觸發(fā)。可編程邏輯陣列PLA(Programmable Logic Array),于20世紀(jì)70年代中期出現(xiàn), 它是由可編程的與陣列和可編程的或陣列組成。PLA的配置數(shù)據(jù)決定了 PLA內(nèi)部陣列的互 連關(guān)系和邏輯功能,改變這些數(shù)據(jù),也就改變了器件的邏輯功能。現(xiàn)在單片機(jī)技術(shù)的發(fā)展日 新月益,功能越來(lái)越強(qiáng)大,很多產(chǎn)品系列中都增加了 PLA的功能,比如ADI公司的ADuC702x 系列產(chǎn)品。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置 及其使用方法,以實(shí)現(xiàn)對(duì)短脈沖中斷觸發(fā)信號(hào)的響應(yīng),解決信號(hào)毛刺導(dǎo)致的誤觸發(fā)中斷的問(wèn)題,減小電路布板的復(fù)雜度,降低產(chǎn)品的成本和功耗。為實(shí)現(xiàn)以上目的,本發(fā)明提供一種在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的 裝置,在輸入的短脈沖中斷信號(hào)與單片機(jī)的中斷管腳之間,加入短脈沖鎖定電路,包括與 門一、或門、和寄存器。該短脈沖中斷信號(hào)輸入該或門的第一輸入端;該與門一的輸出端與 該或門的第二輸入端相連;該或門的輸出端與該與門一的第一輸入端相連;該與門一的第 二輸入端與該寄存器相連;該或門的輸出端同時(shí)輸出至單片機(jī)的中斷管腳。在輸入的短脈沖信號(hào)與或門之間,加入毛刺過(guò)濾電路,包括與門二、D觸發(fā)器一 和D觸發(fā)器二。該短脈沖信號(hào)同時(shí)輸入與門二的第一輸入端和該D觸發(fā)器一的輸入端;該 D觸發(fā)器一的輸出端連接至該D觸發(fā)器二的輸入端;該D觸發(fā)器二的輸出端連接至該與門 二的第二輸入端;該與門二的輸出端連接至該或門的第一輸入端;該D觸發(fā)器一和D觸發(fā) 器二由CLK時(shí)鐘信號(hào)控制輸出周期。該寄存器為單片機(jī)的PLA (可編程邏輯陣列)專用寄存器,直接控制PLA單元的輸 入電平。該短脈沖鎖定電路為可編程邏輯陣列(PLA)。該毛刺過(guò)濾電路為可編程邏輯陣列(PLA)。該D觸發(fā)器一和D觸發(fā)器二之間串聯(lián)加入η個(gè)D觸發(fā)器(η為大于0的整數(shù)),輸 入端指向D觸發(fā)器一,輸出端指向D觸發(fā)器二。本發(fā)明還提供一種使用該裝置的方法,包括如下步驟
a、單片機(jī)初始化;
b、將該寄存器設(shè)置為“0”,復(fù)位該短脈沖鎖定電路;
c、將該寄存器設(shè)置為“1”;
d、收到中斷請(qǐng)求信號(hào)時(shí),通過(guò)該短脈沖鎖定電路將鎖定后的中斷信號(hào)輸入該單片機(jī);
e、該單片機(jī)執(zhí)行中斷響應(yīng)操作程序;
f、判斷該單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳輸入是否是高電平,如果是,則轉(zhuǎn)至 步驟g,否則轉(zhuǎn)至步驟b;
g、利用定時(shí)器等待一定時(shí)間,然后重新轉(zhuǎn)至步驟f。該步驟g中,等待的時(shí)間大于0. 1 μ s,小于IOOms0采用本發(fā)明的方法和裝置,利用一些單片機(jī)內(nèi)嵌的PLA功能,實(shí)現(xiàn)了對(duì)短脈沖中 斷觸發(fā)信號(hào)的響應(yīng)。相比邊沿觸發(fā)中斷方式,本發(fā)明通過(guò)在配置PLA中增加D觸發(fā)器,解決 了信號(hào)毛刺導(dǎo)致的誤觸發(fā)中斷的問(wèn)題;相比傳統(tǒng)的電平中斷觸發(fā)方式,可以節(jié)約一個(gè)單穩(wěn) 態(tài)電路,減小了電路布板的復(fù)雜度,降低了產(chǎn)品的成本和功耗。
圖1是現(xiàn)有技術(shù)中利用單穩(wěn)態(tài)電路展寬短脈沖寬度的示意圖。圖2是本發(fā)明具體實(shí)施方式
一中在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的 裝置結(jié)構(gòu)示意圖。圖3是本發(fā)明具體實(shí)施方式
二中在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的 裝置結(jié)構(gòu)示意圖。圖4是本發(fā)明具體實(shí)施方式
中使用在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置的方法的流程圖。
具體實(shí)施例方式下面結(jié)合附圖并通過(guò)具體實(shí)施方式
來(lái)進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。本發(fā)明技術(shù)方案的主要思想是利用單片機(jī)內(nèi)部的PLA構(gòu)成鎖定輸出邏輯電路,將 輸入到單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)鎖定為穩(wěn)定的電平中斷信號(hào)輸出,并連到單片機(jī)的電 平觸發(fā)中斷管腳,直到單片機(jī)作出中斷響應(yīng)之后再重置PLA,將電平中斷觸發(fā)信號(hào)輸出復(fù) 位,并等待新的中斷觸發(fā)信號(hào)。圖2是本發(fā)明具體實(shí)施方式
一中在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的 裝置結(jié)構(gòu)示意圖。如圖2所示,具體實(shí)施方式
一中的該裝置包括或門、與門一和內(nèi)部寄存 器,單片機(jī)采用的是ADuc7020MCU,該單片機(jī)內(nèi)嵌有PLA,可以通過(guò)設(shè)置PLA為一個(gè)或門和一 個(gè)與門,或門的兩個(gè)輸入分別連接到單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳和與門的輸出 管腳,與門一的兩個(gè)輸入管腳分別連接到單片機(jī)的PLADIN寄存器輸入和或門的輸出管腳, 或門的輸出管腳同時(shí)也連接到單片機(jī)的電平觸發(fā)中斷輸入管腳。單片機(jī)的PLADIN寄存器首先設(shè)置為“1”,當(dāng)短脈沖中斷請(qǐng)求信號(hào)變?yōu)楦唠娖捷?入到上述短脈沖鎖存電路后,或門立即輸出“1”并輸入到與門一,此時(shí)與門一的兩個(gè)輸入 信號(hào)均為“1”,因此與門一輸出也為“1”。與門一的輸出管腳與或門的其中一個(gè)輸入管腳相 連,因此即使或門另外一輸入管腳上短脈沖中斷請(qǐng)求信號(hào)輸入電平變?yōu)榈碗娖?,或門的輸 出也鎖定為“1”即高電平,這樣短脈沖中斷請(qǐng)求信號(hào)轉(zhuǎn)換為穩(wěn)定的高電平輸入到單片機(jī)內(nèi) 部的電平觸發(fā)中斷管腳,致使中斷的觸發(fā)響應(yīng)。單片機(jī)內(nèi)部PLA單元的延時(shí)一般只有幾個(gè) 納秒,該短脈沖鎖存電路裝置對(duì)中斷脈沖信號(hào)最小寬度的要求僅為兩倍PLA單元延時(shí)的時(shí) 間,也就是說(shuō)該方法和裝置可以支持至少十納秒以上短脈沖的中斷請(qǐng)求信號(hào)。圖3是本發(fā)明具體實(shí)施方式
二中在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的 裝置結(jié)構(gòu)示意圖。如圖3所示,具體實(shí)施方式
二中的該裝置包括或門、兩個(gè)與門、內(nèi)部寄存 器和兩個(gè)D觸發(fā)器,單片機(jī)采用的是ADuc7020MCU,該單片機(jī)內(nèi)嵌有PLA,可以通過(guò)設(shè)置PLA 為一個(gè)或門、兩個(gè)與門和兩個(gè)D觸發(fā)器單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳與D觸發(fā)器 一的輸入管腳相連,D觸發(fā)器一的輸出管腳同D觸發(fā)器二的輸入管腳相連,與門二的兩個(gè)輸 入管腳分別連接到D觸發(fā)器二的輸出管腳和單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳,或門 的兩個(gè)輸入分別連接到與門一的輸出管腳和與門二的輸出管腳,與門二的兩個(gè)輸入管腳 分別連接到單片機(jī)的PLADIN寄存器輸入和或門的輸出管腳,或門的輸出管腳同時(shí)也連接 到單片機(jī)的電平觸發(fā)中斷輸入管腳。D觸發(fā)器的數(shù)量可以增加,串聯(lián)在電路中使用,增加信 號(hào)的延遲時(shí)間,D觸發(fā)器共用CLK時(shí)鐘信號(hào)作為觸發(fā)時(shí)鐘信號(hào)。單片機(jī)的PLADIN寄存器首先設(shè)置為“1”,當(dāng)短脈沖中斷請(qǐng)求信號(hào)由低電平變?yōu)?高電平輸入到上述短脈沖鎖存電路后,D觸發(fā)器一輸入信號(hào)為“1”,D觸發(fā)器的輸出受CLK 時(shí)鐘信號(hào)控制。CLK時(shí)鐘信號(hào)是周期性的時(shí)鐘信號(hào),其時(shí)間周期由單片機(jī)內(nèi)部配置,在每個(gè) CLK時(shí)鐘信號(hào)的上升沿,D觸發(fā)器改變一次輸出狀態(tài),其輸出信號(hào)與輸入信號(hào)相同,所以D觸 發(fā)器1輸出為“1”比短脈沖中斷請(qǐng)求信號(hào)上升沿的延時(shí)最長(zhǎng)為一個(gè)CLK時(shí)鐘周期。當(dāng)兩個(gè)D 觸發(fā)器級(jí)聯(lián)時(shí),采用相同的CLK時(shí)鐘信號(hào),D觸發(fā)器二的輸出信號(hào)的變化將比D觸發(fā)器一輸 出信號(hào)的變化延時(shí)一個(gè)CLK時(shí)鐘周期。因此D觸發(fā)器二會(huì)在兩個(gè)CLK時(shí)鐘周期之內(nèi)輸出信號(hào)“1”。D觸發(fā)器二的輸出管腳和單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳分別連接到與門 二的輸入管腳,因此只有短脈沖中斷請(qǐng)求信號(hào)的脈沖寬度大于兩個(gè)CLK時(shí)鐘周期以上,與 門二的輸出才為“1”。然后或門立即輸出“1”并輸入到與門一,此時(shí)與門一的兩個(gè)輸入信號(hào) 均為“1”,因此與門一輸出也為“1”。與門一的輸出管腳與或門的其中一個(gè)輸入管腳相連, 因此即使或門另外一輸入管腳與門二輸出變?yōu)椤?”,或門的輸出也鎖定為“1”即高電平,這 樣短脈沖中斷請(qǐng)求信號(hào)轉(zhuǎn)換為穩(wěn)定的高電平輸入到單片機(jī)內(nèi)部的電平觸發(fā)中斷管腳,致使 中斷的觸發(fā)響應(yīng)。由于CLK時(shí)鐘周期可以根據(jù)需求由單片機(jī)內(nèi)部靈活設(shè)置,這樣可以完全 避免中斷請(qǐng)求信號(hào)管腳上噪聲導(dǎo)致的中斷誤觸發(fā)。該方法和裝置不僅可以可靠實(shí)現(xiàn)短脈沖 中斷的每一次觸發(fā),還可以容忍中斷請(qǐng)求信號(hào)管腳上存在噪聲,在實(shí)際應(yīng)用中更加可靠。上述方法和裝置在應(yīng)用中需要單片機(jī)軟件程序的配合操作,圖4是本發(fā)明具體實(shí) 施方式中使用在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置的方法的流程圖。如圖4 所示,該流程包含以下步驟
步驟a、單片機(jī)初始化,并按照上述具體實(shí)施方式
配置PLA電路; 步驟b、單片機(jī)的PLADIN寄存器首先設(shè)置為“0”,復(fù)位短脈沖鎖定電路; 步驟C、單片機(jī)的PLADIN寄存器設(shè)置為“1”; 步驟d、等待中斷請(qǐng)求信號(hào),如果收到中斷請(qǐng)求信號(hào),則轉(zhuǎn)至步驟105 ; 步驟e、執(zhí)行中斷響應(yīng)操作程序;
步驟f、判斷單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳輸入是否是高電平,如果是,則轉(zhuǎn) 至步驟g,否則轉(zhuǎn)至步驟b ;
步驟g、利用定時(shí)器等待一定時(shí)間,然后重新轉(zhuǎn)至步驟f。以上程序操作保證了 PLA電路鎖定輸出后的重新復(fù)位,并避免了由于單片機(jī)中斷 請(qǐng)求信號(hào)輸入管腳輸入長(zhǎng)脈沖中斷請(qǐng)求信號(hào)而出現(xiàn)的重復(fù)進(jìn)中斷的情況。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋 在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征在于,在輸入的短脈沖中斷信號(hào)與單片機(jī)的中斷管腳之間,加入短脈沖鎖定電路,包括與門一;或門;和寄存器;所述短脈沖中斷信號(hào)輸入所述或門的第一輸入端;所述與門一的輸出端與所述或門的第二輸入端相連;所述或門的輸出端與所述與門一的第一輸入端相連;所述與門一的第二輸入端與所述寄存器相連;所述或門的輸出端同時(shí)輸出至單片機(jī)的中斷管腳。
2.根據(jù)權(quán)利要求1所述的在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征 在于,在輸入的短脈沖信號(hào)與或門之間,加入毛刺過(guò)濾電路,包括與門二;D觸發(fā)器一;和D觸發(fā)器二;所述短脈沖信號(hào)同時(shí)輸入與門二的第一輸入端和所述D觸發(fā)器一的輸入端;所述D觸 發(fā)器一的輸出端連接至所述D觸發(fā)器二的輸入端;所述D觸發(fā)器二的輸出端連接至所述與 門二的第二輸入端;所述與門二的輸出端連接至所述或門的第一輸入端;所述D觸發(fā)器一 和D觸發(fā)器二由CLK時(shí)鐘信號(hào)控制輸出周期。
3.根據(jù)權(quán)利要求1所述的在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征 在于所述寄存器為單片機(jī)的PLA (可編程邏輯陣列)專用寄存器,直接控制PLA單元的輸 入電平。
4.根據(jù)權(quán)利要求1所述的在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征 在于所述短脈沖鎖定電路為可編程邏輯陣列(PLA)。
5.根據(jù)權(quán)利要求2所述的在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征 在于所述毛刺過(guò)濾電路為可編程邏輯陣列(PLA)。
6.根據(jù)權(quán)利要求2所述的在電平觸發(fā)中斷方式中響應(yīng)短脈沖中斷請(qǐng)求的裝置,其特征 在于所述D觸發(fā)器一和D觸發(fā)器二之間串聯(lián)加入η個(gè)D觸發(fā)器(η為大于0的整數(shù)),輸入 端指向D觸發(fā)器一,輸出端指向D觸發(fā)器二。
7.一種使用權(quán)利要求1所述的裝置響應(yīng)中斷信號(hào)的方法,其特征在于,包括如下步驟a、單片機(jī)初始化;b、將所述寄存器設(shè)置為“0”,復(fù)位所述短脈沖鎖定電路;c、將所述寄存器設(shè)置為“1”;d、收到中斷請(qǐng)求信號(hào)時(shí),通過(guò)所述短脈沖鎖定電路將鎖定后的中斷信號(hào)輸入所述單片機(jī);e、所述單片機(jī)執(zhí)行中斷響應(yīng)操作程序;f、判斷所述單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)輸入管腳輸入是否是高電平,如果是,則轉(zhuǎn) 至步驟g,否則轉(zhuǎn)至步驟b ;g、利用定時(shí)器等待一定時(shí)間,然后重新轉(zhuǎn)至步驟f。
8.根據(jù)權(quán)利要求7所述的響應(yīng)中斷信號(hào)的方法,其特征在于所述步驟g中,等待的時(shí) 間大于0. 1 μ s,小于100ms。
全文摘要
本發(fā)明公開(kāi)了一種基于單片機(jī)的電平觸發(fā)中斷方式響應(yīng)短脈沖中斷請(qǐng)求信號(hào)的方法和裝置,屬于單片機(jī)應(yīng)用領(lǐng)域,利用單片機(jī)內(nèi)部的可編程邏輯器件將輸入到單片機(jī)的短脈沖中斷請(qǐng)求信號(hào)鎖定為穩(wěn)定的電平信號(hào)輸出??删幊踢壿嬈骷?gòu)成的鎖定輸出電路由或門、與門、內(nèi)部寄存器和可選用的D觸發(fā)器組成。采用了本發(fā)明的技術(shù)方案,可以支持最短幾個(gè)納秒寬度的短脈沖中斷請(qǐng)求,也可以避免由于輸入信號(hào)的“毛刺”噪聲而導(dǎo)致的中斷誤觸發(fā),并且該方法和裝置不使用額外的器件,在降低成本的同時(shí)實(shí)現(xiàn)了低功耗。
文檔編號(hào)G06F13/24GK101976228SQ20101027429
公開(kāi)日2011年2月16日 申請(qǐng)日期2010年9月7日 優(yōu)先權(quán)日2010年9月7日
發(fā)明者徐元 申請(qǐng)人:成都優(yōu)博創(chuàng)技術(shù)有限公司