本文主要介紹stm32中中斷與事件的區別。
圖 中斷與事件處理框圖
這張圖是一條外部中斷線或外部事件線的示意圖,圖中訊號線上劃有一條斜線,旁邊標誌19字樣的注釋,表示這樣的線路共有19套.圖中的藍色虛線箭頭,標出了外部中斷訊號的傳輸路徑
2.1 中斷路徑
首先外部訊號從編號1的晶元管腳進入-》經過編號2的邊沿檢測電路-》通過編號3的或門進入中斷掛起請求暫存器-》最後經過編號4的與門輸出到nvic中斷檢測電路
受上公升沿或下降沿選擇暫存器控制,使用者可以使用這兩個暫存器控制需要哪乙個邊沿產生中斷,因為選擇上公升沿或下降沿是分別受2個平行的暫存器控制,所以使用者可以同時選擇上公升沿或下降沿,而如果只有乙個暫存器控制,那麼只能選擇乙個邊沿了.
這個或門的另乙個輸入是軟體中斷/事件暫存器,從這裡可以看出,軟體可以優先於外部訊號請求乙個中斷或事件,即當軟體中斷/事件暫存器的對應位為"1"時,不管外部訊號如何,編號3的或門都會輸出有效訊號.
乙個中斷或事件請求訊號經過編號3的或門後,進入掛起請求暫存器,到此之前,中斷和事件的訊號傳輸通路都是一致的,也就是說,掛起請求暫存器中記錄了外部訊號的電平變化.
外部請求訊號最後經過編號4的與門,向nvic中斷控制器發出乙個中斷請求,如果中斷遮蔽暫存器的對應位為"0",則該請求訊號不能傳輸到與門的另一端,實現了中斷的遮蔽.
明白了外部中斷的請求機制,就很容易理解事件的請求機制了.圖中紅色虛線箭頭,標出了外部事件訊號的傳輸路徑,外部請求訊號經過編號3的或門後,進入編號5的與門,這個與門的作用與編號4的與門類似,用於引入事件遮蔽暫存器的控制;最後脈衝發生器的乙個跳變的訊號轉變為乙個單脈衝,輸出到晶元中的其它功能模組.
從這張圖上我們也可以知道,從外部激勵訊號來看,中斷和事件的產生源都可以是一樣的.之所以分成2個部分,由於中斷是需要cpu參與的,需要軟體的中斷服務函式才能完成中斷後產生的結果;
但是事件,是靠脈衝發生器產生乙個脈衝,進而由硬體自動完成這個事件產生的結果,當然相應的聯動部件需要先設定好,比如引起dma操作,ad轉換等;
簡單舉例:外部i/o觸發ad轉換,來測量外部物品的重量;如果使用傳統的中斷通道,需要i/o觸發產生外部中斷,外部中斷服務程式啟動ad轉換,ad轉換完成中斷服務程式提交最後結果;
要是使用事件通道,i/o觸發產生事件,然後聯動觸發ad轉換,ad轉換完成中斷服務程式提交最後結果;相比之下,後者不要軟體參與ad觸發,並且響應速度也更塊;
要是使用事件觸發dma操作,就完全不用軟體參與就可以完成某些聯動任務了。
可以這樣簡單的認為,事件機制提供了乙個完全有硬體自動完成的觸發到產生結果的通道,不要軟體的參與,降低了cpu的負荷,節省了中斷資源,提高了響應速度(硬體總快於軟體),是利用硬體來提公升cpu晶元處理事件能力的乙個有效方法;
[1]
STM32之中斷與事件 中斷與事件的區別
這張圖是一條外部中斷線或外部事件線的示意圖 圖中訊號線上劃有一條斜線 旁邊標誌 19字樣的注釋 表示這樣的線路共有19套 圖中的藍色虛線箭頭 標出了外部中斷訊號的傳輸路徑 首先外部訊號從編號 1的晶元管腳進入 經過編號 2的邊沿檢測電路 通過編號 3的或門進入中斷掛起請求暫存器 最後經過編號 4的與...
STM32之中斷與事件 中斷與事件的區別
這張圖是一條外部中斷線或外部事件線的示意圖 圖中訊號線上劃有一條斜線 旁邊標誌 19字樣的注釋 表示這樣的線路共有19套 圖中的藍色虛線箭頭 標出了外部中斷訊號的傳輸路徑 首先外部訊號從編號 1的晶元管腳進入 經過編號 2的邊沿檢測電路 通過編號 3的或門進入中斷掛起請求暫存器 最後經過編號 4的與...
stm32之中斷系統
前言 這一節以及後面的定時器部分都是學習所有的微控制器時的最重要的部分,我也花了很多時間去理解手冊和程式,我爭取盡量全面並且細緻的記錄我的體會。這裡就省略了,相信你學過微控制器就會懂。nvic的中文意思是巢狀向量中斷控制器,控制著中斷的相關功能 其中包括中斷源 搶占優先順序 響應優先順序 中斷的使能...