中斷系統 一、
幾個概念
① 中斷:教材p51
② 中斷源:產生中斷的請求源
③ 中斷級:根據中斷源(所發出的時時事件)的輕重緩急,規定的優先級別
④ 中斷巢狀:cpu在處理乙個中斷源請求時候,響應了更高一級中斷的請求,待處理完後,再繼續執行原來的低階中斷處理程式,這樣的過程稱為中斷巢狀。
⑤ 中斷系統:實現中斷功能的部件。 ⑥
多級中斷系統:能夠實現中斷巢狀的中斷系統。
1、 中斷源
51微控制器有5個中斷源:2個是into、int1(p3.2、p3.3)上輸入的外部中斷源;3個內部中斷源,定時器∕計數器t0、t1的溢位中斷源和序列的傳送、接受中斷。
這些中斷源分別所存在tcon、scon的相應位中。tf0、tf1、ti∕ri等內部中斷源的中斷標誌。
2、 中斷控制
中斷控制包括使能控制和優先順序控制。對應的特殊功能暫存器分別為ie和ip。
具體闡述見教材p53-54
cpu在接受到同樣優先順序的幾個中斷請求源時,乙個內部的硬體查詢序列確定優先服務於哪乙個中斷申請
中斷源 中斷優先順序
外中斷0
定時器t0中斷 降
外中斷1 低
定時器t1中斷
序列口中斷
cpu不會在同一時刻接受到幾個中斷請求(一般不會),通常中斷請求源會有乙個極短的產生的先後順序,那麼為什麼還要提出同一優先順序優先服務哪個中斷請求源的解決方法了?因為cpu相應中斷並不是及時的。
3、 中斷響應過程及中斷處理
0. 中斷處理的過程可歸納為中斷請求、中斷響應、中斷處理及中斷返回四部分
從cpu的角度考慮則為:中斷查詢、中斷響應、中斷處理、中斷返回。
① cpu在每個機器週期順序檢查每乙個中斷源,在機器週期的s6取樣並按優先順序處理所有被啟用的中斷請求,如果沒有被下述條件阻止,將在下乙個機器週期的狀態i(s1)響應啟用了的最高端中斷請求。
l cpu正在處理相同的或更高優先順序的中斷;
l 現行的機器週期不是所執行指令的最後乙個機器週期;
l 正在窒息感的指令是中斷返回指令(reti)或是對ie、ip的寫操作指令(執行這些指令後至少再執行一條指令後才會響應 )
② 中斷查詢的丟棄:上述條件有乙個存在,cpu將會丟棄中斷查詢結果;若乙個都不存在,將在緊接著的下乙個機器週期執行中斷查詢的結果
③ 中斷響應的處理:
由硬體完成的工作:置位響應優先順序狀態觸發器→執行一條硬體子程式呼叫,使控制器轉移到相應入口→請「0」中斷請求源申請標誌(ri∕ti)除外→程式計數的內容壓入堆疊(但不保護psw)→被響應的中斷服務程式的入口位址送程式計數器pc→cpu執行中斷處理程式一直到reti指令為止→清「0」響應中斷時所置位的優先順序狀態觸發器→從堆疊中彈出頂上的兩位元組到程式計數器pc→cpu重新執行被中斷的程式。
由軟體完成的工作:cpu響應中斷結束後即轉至中斷服務程式的入口。從中斷服務程式的第一條指令開始到返回指令為止,這個過程稱為中斷處理或中斷服務。不同的中斷源服務的內容及要求各不相同,其處理過程也就有所區別。一般情況下,中斷處理包括兩部分內容:一是保護現場,二是為中斷源服務。 l
關於中斷源查詢結果的執行與丟棄
l ri、ti由軟體清零的原因是:
4、 外中斷的響應時間
外中斷從產生中斷請求到開始執行中斷服務程式的第一條指令之間,最少需要三個完整的機器週期。原因:
int0和int1電平在每個機器週期的s5p2被取樣鎖存到ie0、ie1中,這個新置入的ie0、ie1狀態等到下乙個週期才被查詢電路查詢到。如果中斷被啟用且滿足響應條件,
現場通常有psw、工作暫存器、專用暫存器。如果在斷服務程式中要用到這些暫存器則在進入中斷服務之前應將它們的內容保護起來稱保護現場,同時在中斷結束,執行ret1之前恢復現場。
中斷服務程式是針對中斷源的具體要求進行處理。
其次,使用者應注意以下幾點:
a、 各中斷源的入口向量位址之間,只相隔8個單元,一般中斷服務程式是容納不下的,因而最常用的方法是在中斷入口向量位址單元存放一條無條件轉移指令,二轉至儲存器的其他任何空間。
b、 若要執行當前中斷程式前,禁止更高優先順序中斷,應用軟體關閉cpu中斷,或遮蔽更高階中斷源的中斷,在中斷返回前再開放中斷。
c、 在保護現場和恢復現場時,為了不使現場資訊收到破壞或造成混亂,一般在此情況下應關cpu中斷,使cpu暫不響應新的中斷請求。這樣就要求在編寫中斷服務程式時,應注意在保護現場之前要關中斷,在保護現場後允許高優先順序中斷打斷它,則應開中斷。同樣在恢復現場之前要關中斷,恢復之後再開中斷。
cpu接著執行一條硬體程式呼叫指令以轉到相應的服務程式入口,該呼叫指令本身需要兩個機器週期。故至少三個機器週期後才執行中斷服務程式。
外中斷響應:
①cpu在每乙個機器週期的s5p2檢查1nt0、1nt1電平→
②cpu在每乙個機器週期的s6順序檢查中斷源,取樣並按優先順序處理→
③判斷中斷請求是否被前面所列出的三個條件之一阻止→被阻止則轉⑤,沒有被阻止則轉④
④ cpu執行硬體子程式呼叫指令→①
⑤ cpu丟棄查詢結果,等待cpu下次查詢→①
△等待時間分析:
對各種請求,在沒有阻止時,一般等待三個機器週期。a 若cpu在執行同級或高階中斷,額外等待的時間明顯取決於別的中斷服務程式的處理過程。b 若正在處理的指令沒有執行到最後的機器週期,所需的額外等待時間不會多於3個機器週期。c 如果正在執行的指令為reti或訪問ie、ip的指令,額外的等待時間不會多於5個機器週期。
△ 是否存在,在某一中斷源,進行等待時又有更高階或同級中需優先完成的中斷源加入等待,那麼先等待執行的中斷是否需要等待更長的時間,以上的分析則在該情況下失去意義?因為cpu在每乙個機器週期都順序檢查每乙個中斷源
外中斷源觸發方式的選擇
by:霜月孤鳥
2016.2.23
51微控制器 中斷1 中斷整體介紹
外部中斷請求源 即外部中斷0 和1,經由外部引腳引入,在微控制器上有兩個引腳,外稱為int0 int1,也就是p3.2 p3.3這兩個引腳 mcs51 微控制器內部的中斷模組在每個cpu週期都查詢各個中斷源的狀態,當其發生預期的中斷事件時,通知cpu將程式跳轉到中斷服務程式所在的程式儲存器 rom ...
51微控制器中斷系統
1.什麼是中斷 中斷是cpu在執行程式是不需要管中斷源的狀態,當中斷源滿足中斷觸發條件時cpu再去進行終端處理 2.中斷源 80c51共五個中斷源分別是兩個外部中斷源 int0 int1,兩個定時中斷源t0 t1,乙個序列口中斷源 每個中斷源對應著乙個中斷入口位址 中斷源入口位址 外部中斷源int0...
Chapter6 中斷系統 《微控制器》筆記
中斷 cpu暫停正在執行的程式而轉去為外設服務 或處理緊急事件 處理完畢再回到原程式繼續執行的過程。中斷源 引起中斷的原因,中斷申請的 中斷源可以是i o裝置 故障 時鐘等。中斷優先順序 當有多個中斷源時,cpu優先響應最需緊急處理 優先級別高 的中斷請求。中斷的巢狀 在中斷系統中,高優先順序的中斷...