本章節(jié)首先將以MCU開發(fā)人員常接觸到的“中斷”、“事件”和“中斷事件”三個(gè)名詞的概念展開,然后去闡述彼此的主要區(qū)別,最后借助MCU的GPIO外部中斷/事件控制器(EXTI)的傳輸路徑來加深對上述概念的理解。
概念簡介
中斷
為了具化下述概念,特引用MCU運(yùn)行過程中外設(shè)模塊的觸發(fā)和反饋來解釋說明。
MCU執(zhí)行程序時(shí),由于發(fā)生了某種特定的事件(外部或內(nèi)部),引起MCU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行與該事件相關(guān)的中斷服務(wù)程序,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱之為中斷或中斷響應(yīng)。
事件
事件是指CKS32F107xx系統(tǒng)中發(fā)生的一些特定的狀態(tài)變化,譬如:外部輸入電平變化、定時(shí)器溢出、FIFO非空、串口接收/發(fā)送數(shù)據(jù)、AD轉(zhuǎn)換完成、外設(shè)使能、初始化等。而事件與中斷事件是包含關(guān)系,即事件可分為中斷事件或非中斷事件。比如AD轉(zhuǎn)換并不會(huì)導(dǎo)致中斷發(fā)生,因而歸類為非中斷事件,但AD轉(zhuǎn)換結(jié)束就是一個(gè)中斷事件。
中斷事件
中斷事件,顧名思義是指能導(dǎo)致中斷發(fā)生的事件。值得注意的是中斷事件最終是否導(dǎo)致后續(xù)中斷的正常觸發(fā),還需要確保是否開啟了該中斷事件的中斷使能。
中斷與事件的主要區(qū)別
(1)中斷與中斷事件屬于前后關(guān)聯(lián)的因果關(guān)系,二者在時(shí)序和行為上不一樣,即中斷事件是中斷的觸發(fā)源;
(2)事件與中斷事件為包含關(guān)系;
(3)中斷有可能被更高優(yōu)先級的中斷屏蔽,但事件不會(huì);
(4)中斷一定要有中斷服務(wù)函數(shù),但是事件沒有;
(5)中斷一定要MCU的介入,但事件執(zhí)行操作,可以不需要MCU干預(yù);
(6)中斷是軟件級的操作,而事件是硬件級。
外部中斷/事件控制器(EXTI)
對于互聯(lián)型產(chǎn)品CKS32F107xx系列的EXTI,它支持20個(gè)軟件的事件/中斷請求,且每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽,每個(gè)中斷線都有專用的狀態(tài)位。下圖為GPIO的EXTI的框圖,同時(shí)也是外部中斷線或外部事件線的示意圖。
圖1 中斷/事件線示意圖
從上文可知曉,一個(gè)能夠觸發(fā)中斷的事件在觸發(fā)配置時(shí)就出現(xiàn)兩種可能,即允許產(chǎn)生中斷或禁止產(chǎn)生中斷,這隨之引出事件模式和中斷模式兩個(gè)概念。從上圖不難看出,每根信號線上劃有一條斜線,并標(biāo)注數(shù)字20,表明這樣的線路共有20條,圖中的藍(lán)色虛線箭頭,標(biāo)出了中斷模式下的傳輸路徑,而圖中的綠色箭頭則標(biāo)識了事件模式下的傳輸路徑,下文一一說明。
1)中斷模式下的傳輸路徑(①-②-③-④-⑤)
①輸入線:EXTI控制器具有20個(gè)中斷/事件輸入線,這些輸入線可以連接到任意一個(gè) GPIO或一些外設(shè)的事件,當(dāng)這些輸入線上的信號發(fā)生電平變化時(shí),EXTI控制器會(huì)檢測到并觸發(fā)中斷或事件。
②邊沿檢測電路:EXTI控制器允許用戶選擇觸發(fā)方式,可通過設(shè)置上升沿、下降沿觸發(fā)選擇寄存器中相應(yīng)的位來控制信號的觸發(fā)。
③或門電路:一端輸入信號線由邊沿檢測電路提供,另一端由軟件中斷事件寄存器(可以使用軟件來啟動(dòng)中斷/事件線)提供,此處軟件可以優(yōu)先于外部信號請求一個(gè)中斷或事件,即當(dāng)軟件中斷事件寄存器的對應(yīng)位為”1”時(shí),不管外部信號如何,則輸出有效信號1,并且輸出的信號會(huì)被保存到請求掛起寄存器內(nèi),當(dāng)電路輸出為1就會(huì)把請求掛起寄存器對應(yīng)位置1。
④與門電路:一端由或門電路的輸出提供,另一端由中斷屏蔽寄存器提供,只有當(dāng)兩者都為有效信號1,才會(huì)輸出有效信號1,即向NVIC中斷控制器發(fā)出一個(gè)中斷請求。
⑤將請求掛起寄存器的內(nèi)容輸入到NVIC中,從而實(shí)現(xiàn)對中斷事件的控制。
2)事件模式下的傳輸路徑(①-②-③-⑥-⑦-⑧)
⑥與門電路:此處與門電路與標(biāo)號④與門電路類似,用于引入事件屏蔽寄存器的控制,只有兩個(gè)均輸入有效電平1時(shí),才會(huì)輸出有效信號1。
⑦脈沖發(fā)生器:當(dāng)標(biāo)號⑥與門電路輸出有效信號1時(shí),脈沖發(fā)生器會(huì)輸出一個(gè)脈沖信號。
⑧脈沖信號:由脈沖發(fā)生器產(chǎn)生,通常用于觸發(fā)定時(shí)器、ADC等。
綜上所述,從外部激勵(lì)源來看,無論中斷模式還是事件模式的傳輸路徑在標(biāo)識①~③是一致的,主要區(qū)別是中斷需要MCU介入,且同時(shí)需要有中斷處理函數(shù)的參與才會(huì)形成中斷后的結(jié)果,但事件是通過脈沖發(fā)生器發(fā)出的脈沖信號,進(jìn)而由硬件自行完成該事件并產(chǎn)生響應(yīng)的結(jié)果。所以,從節(jié)省MCU開銷,提高系統(tǒng)運(yùn)行效率來看,事件模式不失為一種提高M(jìn)CU處理能力的快速響應(yīng)機(jī)制。
-
mcu
+關(guān)注
關(guān)注
146文章
17458瀏覽量
354442 -
控制器
+關(guān)注
關(guān)注
113文章
16573瀏覽量
180410 -
中斷
+關(guān)注
關(guān)注
5文章
900瀏覽量
41988 -
GPIO
+關(guān)注
關(guān)注
16文章
1223瀏覽量
52743
原文標(biāo)題:MCU微課堂|CKS32F107xx系列中斷和事件
文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置
基于CKS32F4xx系列的MCU互補(bǔ)PWM方案

CKS32F4xx系列產(chǎn)品NVIC中斷優(yōu)先級管理單元講解
CKS32F4xx系列產(chǎn)品串口DMA傳輸
CKS32F4xx系列RNG功能設(shè)置

CKS32F4xx系列FSMC功能簡介

CKS32F107xx系列時(shí)鐘組成介紹

CKS32F107xx系列時(shí)鐘系統(tǒng)具體配置方法講解

CKS32F107xx系列MCU中ADC介紹
CKS32F107xx系列MCU的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

詳解CKS32F107xx系列的定時(shí)器同步功能

評論