七章中断控制器工作原理与程式设计.ppt
《七章中断控制器工作原理与程式设计.ppt》由会员分享,可在线阅读,更多相关《七章中断控制器工作原理与程式设计.ppt(37页珍藏版)》请在三一文库上搜索。
1、第七章 中斷控制器工作原理與程式設計,Ping-Liang Lai (賴秉樑),中斷控制器工作原理,中斷向量表,中斷控制器工作原理,中斷基本概念與特性 S3C4510B支援多達21個中斷源,且中斷請求可由內部功能模組或外部引腳信號產生 兩種類型的中斷 正常中斷請求(Normal Interrupt Request, IRQ) 快速中斷請求(Fast Interrupt Request, FIQ) 每個中斷源都有一個中斷懸置位元( Interrupt Pending Bit) 由四個暫存器來控制中斷的產生以及中斷進行處理 中斷優先順序暫存器 (Interrupt Priority Registe
2、r) 中斷模式暫存器 (Interrupt Mode Register) 中斷懸置暫存器 (Interrupt Pending Register) 中斷遮罩暫存器(Interrupt Mask Register),中斷控制器工作原理,中斷優先順序暫存器 (Interrupt Priority Register) 每一個中斷源的索引號寫入一個預定義的中斷優先順序暫存器,以獲得特定的優先順序。 中斷優先順序預定義為020,中斷控制器工作原理,中斷優先順序暫存器 (Interrupt Priority Register),中斷控制器工作原理,中斷優先順序暫存器 (Interrupt Priority
3、 Register),中斷控制器工作原理,中斷模式暫存器 (Interrupt Mode Register) INTMOD會透過對每一位元的設定來決定每一種中斷是按照快速中斷(FIQ)還是按照正常中斷(IRQ)加以回應 20:0中斷模式位元元, 當中斷模式位元元被置為 “1”: FIQ方式處理中斷 “0”: IRQ方式處理中斷,中斷控制器工作原理,中斷懸置暫存器 (Interrupt Pending Register) INTPND是用來保持每一個中斷源的中斷懸置位元 指示中斷請求是否處於懸置狀態(未處理)。 如果中斷懸置位元被設定的話,則中斷懸狀態會一直保存著,直到CPU透過寫入 1 到中斷
4、懸置暫存器的相對應位元來加以清除 (注意,是寫 1 來清除,而不是寫 0 ) 當中斷懸置位元被設定時,無論中斷遮罩暫存器是否為 0,中斷服務程式都會開始執行。,中斷控制器工作原理,在中斷服務程式中,必須透過向中斷懸置暫存器的相對應位元寫入 1 來清除中斷懸置旗標,以避免由於同一個中斷懸置位元導致了中斷服務程式的反覆執行。,中斷控制器工作原理,中斷遮罩暫存器(Interrupt Mask Register) 當中斷遮罩位元被置為 1 時,對應的中斷請求不能被CPU回應,當中斷遮罩位元為 0 時,中斷請求會被回應 全局遮罩位(位元21)為 1時,所有的中斷請求都不能被回應,但只要中斷請求產生,對應
5、的中斷懸置位元會被設定為1,當全域遮罩位元被清除時,中斷請求會得到回應。 當有中斷請定產生時,對應的中斷懸置位元會被設定為 1 ,且在整體中斷遮罩位元和對應的中斷遮罩位元為 0時,中斷請求就會被加以回應,計時器工作原理,S3C4510B提供兩個32位元的計時器T0和T1 可工作在間隔模式(Interval Mode)或觸發模式(Toggle Mode),對應的信號輸出為 TOUT0 和 TOUT1。 間隔模式(Interval Mode) 當計時器計數溢位時產生一個脈衝輸出,該脈衝輸出產生定時中斷請求,同時從計時器配置輸出接腳(TOUTn)Pin196、Pin199輸出。 接腳的輸出脈衝頻率可
6、按下式計算: fOUT = fMCLK/計時器的數據值 ; fMCLK = 50MHz 觸發模式(Toggle Mode) 計時器的輸出電位會持續到下一次的計數溢位時觸發產生翻轉 發生計時器計數溢位時,會產生計時器中斷請求,同時由配置接腳輸出電位狀態。 計時器輸出接腳輸出工作週期為50的Clock信號。 接腳的輸出脈衝頻率可按下式計算: fOUT = fMCLK/(2計時器的數據值),計時器工作原理,計時器輸出信號時序,計時器工作原理,計時器的工作描述 當致能計數器時,會向計數器的計數暫存器填入一個資料值,然後計數暫存器開始遞減。 當計時器計數溢位時,會產生相對應的中斷請求,同時重新填入原來的
7、資料值並開始加以遞減。 在禁用計時器的情況下,可以向計時器的暫存器寫入一個新的資料 如果計時器在執行時暫停,且原來的資料值不會被自動重新填入。,計時器工作原理,通過設置計時器控制暫存器TCON中的控制位元可以禁止或致能T0和T1。 計時器模式暫存器 (Timer Mode Register, TMOD) TMOD是用於控制兩個32位元計時器的操作。 0計時器0致能(TE0) 1計時器模式選擇(TMD0) 0 = 禁止計時器0 0 = 間隔模式 1 = 致能計時器0 1 = 觸發模式,計時器工作原理,2計時器0初始化TOUT0的值(TCLR0) 0 = 在觸發模式下,初始化TOUT0為0 1 =
8、 在觸發模式下,初始化TOUT0為1 3計時器1致能(TE1) 0 = 禁用計時器1 1 = 致能計時器1 4計時器1模式選擇(TMD1) 0 = 間隔模式 1 = 觸發模式 5計時器1初始化TOUT1的值(TCLR1) 0 = 在觸發模式下初始化TOUT1為0 1 = 在觸發模式下初始化TOUT1為1,計時器工作原理,計時器資料暫存器(Timer Data Registers,TDATA0,TDATA1): 其值決定計時器的計數溢位時間的長短。 該時間的計算公式為: (計時器資料1)個Clock週期 31:0計時器0或計時器1 的數據值,計時器工作原理,計時器計數暫存器(Timer Coun
9、t Register): 保存計時器0或計時器1在正常工作情況下的當前計數值 31:0計時器0或計時器1 的計數值,計時器工作原理,計時器的工作過程描述 當致能計數器時,向計數器的計數暫存器寫入資料值,然後計數暫存器開始遞減。 計時器計數溢位產生相應的中斷請求,同時重新裝入原來的資料值並開始遞減。 在禁用計時器的情況下,可以向計時器的暫存器寫入一個新的資料。 如果計時器在執行時暫停,原來的資料值不會被自動重新裝入。 中斷控制器的工作過程描述 當中斷遮罩暫存器的整體遮罩位元與相對應的中斷遮罩位元清除為0時,對應的中斷請求被打開 當中斷條件發生時,PC指標會跳躍到例外事件處理程式中,執行相對應的操
10、作,程式設計原理,一般中斷服務常式可以由三種方式來建立 跳躍指令 程式計數器傳輸指令 使用C語言建立中斷向量表 跳躍指令 使用跳躍指令設計中斷向量表是比較簡單的方式,但跳躍空間只有32M位內 B Reset_Handler B Underfined_Handler B SWI_Handler B Prefetch_Handler B Abort_Handler NOP B IRQ_Handler B FIQ_Handler,程式設計原理,程式計數器傳輸指令 此一方式主要是將程式計數器直接指到中斷服務常式的位址。 LDR PC, Reset_Addr LDR PC, Undefined_Addr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 控制器 工作 原理 程式 设计
链接地址:https://www.31doc.com/p-2589307.html