-
外部中斷
鎖定
- 中文名
- 外部中斷
- 外文名
- external interrupt
外部中斷產生機理
單片機在自主運行時一般是在執行一個死循環程序,在沒有外界干預(輸入信號)時它基本處於一個封閉狀態。比如一個電子時鐘,它會按時、分、秒的規律自主運行並通過輸出設備(如液晶顯示屏)把時間顯示出來。在不需要對它進行調校時它不需要外部干預,自主封閉地運行。如果這個時鐘足夠準確而又不掉電的話,它可能一直處於這種封閉運行狀態。但事情往往不會如此簡單,在時鐘剛剛上電或時鐘需要重新校準.甚至時鐘被帶到不同時區的時候,就需要重新對時鐘進行調校,這時就要求時鐘必須具有調校功能。因此單片機系統往往又不會是一個單純的封閉系統.它有些時候恰恰需要外部的干預,這也就是外部中斷產生的根本原因。
在沒有干預的情況下,單片機的程序在封閉狀態下自主運行,如果在某一時刻需要響應一個外部事件(比如有按鍵按下),這時就會用到外部中斷。具體來講,外部中斷就是在單片機的一個引腳上,由於外部因素導致了一個電平的變化(比如由高變低),而通過捕獲這個變化,單片機內部自主運行的程序就會被暫時打斷,轉而去執行相應的中斷處理程序,執行完後又回到原來中斷的地方繼續執行原來的程序。這個引腳上的電平變化,就申請了一個外部中斷事件,而這個能申請外部中斷的引腳就是外部中斷的觸發引腳。
[2]
外部中斷操作説明
要產生中斷,必須先配置好並使能中斷線。根據需要的邊沿檢測設置兩個觸發寄存器,同時在中斷屏蔽寄存器的相應位寫“1”允許中斷請求。當外部中斷線上發生了期待的邊沿時,將產生一箇中斷請求,對應的掛起位也隨之被置“1”。
[6]
在掛起寄存器的對應位寫“1”,將清除該中斷請求。如果需要產生事件,必須先配置好並使能事件線。根據需要的邊沿檢測通過設置兩個觸發寄存器,同時在事件屏蔽寄存器的相應位寫“1”允許事件請求。當事件線上發生了需要的邊沿時,將產生一個事件請求脈衝,對應的掛起位不被置“1”。通過在軟件中斷/事件寄存器寫“1”,也可以通過軟件產生中斷/事件請求。
[3]
外部中斷觸發方式
外部中斷的觸發有兩種觸發方式:電平觸發方式和跳沿觸發方式。
外部中斷電平觸發方式
若外部中斷定義為電平觸發方式,外部中斷申請觸發器的狀態隨着CPU在每個機器週期採樣到的外部中斷輸入線的電平變化而變化,這能提高CPU對外部中斷請求的響應速度。當外部中斷源被設定為電平觸發方式時,在中斷服務程序返回之前,外部中斷請求輸入必須無效(即變為高電平),否則CPU返回主程序後會再次響應中斷。所以電平觸發方式適合於外部中斷以低電平輸入而且中斷服務程序能清除外部中斷請求源(即外部中斷輸入電平又變為高電平)的情況。
外部中斷跳沿觸發方式
外部中斷若定義為跳沿觸發方式,外部中斷申請觸發器能鎖存外部中斷輸入線上的負跳變。即便是CPU暫時不能響應,中斷申請標誌也不會丟失。在這種方式裏,如果相繼連續兩次採樣,一個機器週期採樣到外部中斷輸入為高,下一個機器週期採樣為低,則置“1”中斷申請觸發器,直到CPU響應此中斷時才清’0’。這樣不會丟失中斷,但輸入的負脈衝寬度至少保持12個時鐘週期(若晶振頻率為6MHz,則為21xs),才能被CPU採樣到。外部中斷的跳沿觸發方式適合於以負脈衝形式輸入的外部中斷請求。
[4]
外部中斷功能
(1)實時處理功能:在實時控制中,現場的各種參數、信息均隨時問和現場而變化。這些外界變量可根據要求隨時向CPU發出中斷申請.請求CPU及時處理中斷請求,如中斷條件
(2)故障處理功能:針對難以預料的情況或故障,如掉電、存儲出錯、運算溢出等,可通過中斷系統由故障源向CPU發出中斷請求,再由CPU轉到相應的故障處理程序進行處理。
(3)分時操作:中斷可以解決快速的CPU與慢速的外設之問的矛盾,使CPU和外設同時工作。CPU在啓動外設工作後繼續執行主程序,同時外設也在工作。每當外設做完一件事就發出中斷申請,請求CPU中斷它正在執行的程序,轉去執行中斷服務程序(一般情況是處理輸入/輸出數據),中斷處理完之後,CPU恢復執行主程序,外設也繼續工作。這樣,CPU可啓動多個外設同時工作,大大地提高其效率。
[5]
- 參考資料
-
- 1. 彭霞編著.51菜鳥到ARM(STM32)高手進階之旅:北京航空航天大學出版社,2014.08
- 2. 馮迅,周屹,肖飛編著.AVR單片機與傳感器模塊設計 IAR版:清華大學出版社,2015.12
- 3. 鄭亮,鄭士海主編;袁健男,李丹副主編.嵌入式系統開發與實踐:基於STM32F10X系列:北京航空航天大學出版社,2015.04
- 4. 張威,李洪蘭,葛琳琳主編.MCs-53 嵌入式系統原理及應用:中國石化出版社,2015.08
- 5. 周文軍主編;謝祥強,付濟林副主編.單片機仿真及製作項目教程 基於Proteus ISIS:華南理工大學出版社,2015.04
- 6. 蘇渤力主編. STM32庫開發與物聯網編程實戰[M]. 北京:中國鐵道出版社, 2021.12.P59