第7章 中斷系統.

Slides:



Advertisements
Similar presentations
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
Advertisements

第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
第一章 声现象 第二节声音的特征.
微型计算机原理及应用.
南山中學 102學年度 性別平等教育週性別教育 性騷擾防治.
上海交通大学附属中学 李由 晏敏宽 刘华典 指导老师:朱乔荣 徐忠惠 制作:李由
朝鲜.
健康檢查簡介 新湖國小健康中心 王淑華護理師 99/11/17.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
第8章 机床操作 主讲:臧红彬 博士.
第七章 异常控制流 CPU控制流的概念 进程上下文切换 异常和中断的基本概念 异常和中断的响应和处理
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
客户端入门十二小时 FOOLFLY DEMO DESIGN 讲师:林伟.
Chapter 13 輸入/輸出系統 (I/O Systems)
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
證券商新種業務增修訂法令介紹 交易部 101年6月.
第5章 输入输出与接口技术.
Xen基础架构安全性分析 云朋
第五章 总线 及其形成 本节课之前,大家学习了:
題目:LED電子數位時鐘 第 二組 組員: 陳柏霖 李育昇.
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
汇编语言与接口技术 教师:范新民.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
第一章 概述.
第7章 中断与异常.
數位邏輯的基礎.
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
Timer & KEYPAD 11/24.
作 業 系 統 第三組 楊育翰 顏瑞霖.
微 電 腦 實 驗 Megawin MPC82G516 操作與環境設定.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
5 Computer Organization (計算機組織).
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
Operating System Internals and Design principles
第五章 MSP430中斷式數位I/O.
HOLTEK 产品 在小家电的应用.
Ch 9: Input/Output System 输入/输出系统
第七章设备管理 7. 1 概述 7. 2 I/O软件的组成 7. 3 I/O硬件特点 7. 4 有关技术 7. 5 网络设备 7
… 第一节 外设的定时方式与信息交换 一、外围设备的定时方式 CPU 1、速度极慢或简单的外围设备 2、慢速或中速的外围设备
微机原理及应用 主讲:郑海春.
TMS320C6000系列DSPs简介 使用DSPs的必要性 实时DSP系统的构成 DSPs针对DSP算法的结构特点
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
1.3 微型计算机的结构和工作原理.
第五章 中断与异常 中断的基本知识 中断描述符表的初始化 中断处理 中断的下半部处理机制 中断的应用-时钟中断.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
第 18 讲 一、第七章主要内容回顾 1、 计算机硬件产生故障的原因 2、 计算机硬件维修的方法 3、 计算机硬件故障检修实例分析
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
作業系統 第三章 作業系統結構.
RTOS.
第一章.
第5章 存储器 5.1 存储器概述 5.2 半导体存储芯片结构及使用 位系统的存储器接口.
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
实验2 中断模拟实验.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
实验三 键盘软加锁实验 2019/5/9.
微處理機 Microprocessor (100上) ARM 內核嵌入式SOC原理
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
步進階梯應用 步進階梯指令(STL) 、(RET) STL [S1] :步進階梯開始 ( ) 指令長度: 1 Step
微型计算机系统.
Presentation transcript:

第7章 中斷系統

CPU與I/O溝通方式 程式I/O (Programmed I/O) 中斷I/O (Interrupt I/O) 直接記憶體存取 (Direct Memory Access, DMA)

程式I/O (Programmed I/O) 當CPU 與 I/O要連繫時, CPU詢問或測試週邊裝置是否備妥(ready),若尚未則CPU等待(wait)一段時間後,再向週邊裝置測試是否備妥;若備妥,則CPU執行所要I/O動作,完畢後再繼續原工作。 優點:完全軟體方式進行,程式簡單易寫 ,不需額外硬體,成本低。 缺點:無效率,浪費CPU時間。

中斷定義 中斷是指電腦在執行某一程式的過程中,由於電腦系統內、外的某種原因,而必須終止原程式的執行,轉去執行相應的處理程式,待處理結束之後,再回來繼續執行被終止的原程式過程。

中斷I/O (Interrupt I/O) CPU 執行原工作,若週邊裝置有需求,則發出中斷信號通知CPU ,待CPU知道後,暫停目前工作(依中斷信號種類,CPU可以不理會,請看下節說明),對週邊發出中斷認可(INTA),並依中斷來源種類,跳至中斷服務常式(Interrupt Service Routine,ISR)執行I/O動作,完畢後,CPU再繼續原工作。 優點:1.有效率,CPU執行原工作,只有週邊有需求時,才對週邊服務。 2.能做即時控制。 缺點:1.需額外電路來處理多週邊同時需求。 2.程式複雜度與成本較高。

中斷處理流程 Step1: CPU 執行原工作 Step2:若週邊裝置(I/O)有需求,則對CPU 發出中斷信號 Step3:待CPU知道後,暫停目前工作,對週 邊發出中斷認可信號(INTA) Step4: CPU將目前PC值壓入stack,依中 斷來源種類,跳至適當中斷服務常式 (Interrupt Service Routine, ISR ) Step5: CPU執行I/O動作 Step6:完畢後,從stack取出舊的PC值,繼續原來 工作。

中斷處理流程示意圖

直接記憶體存取(Direct Memory Access,DMA) 第一與第二種方式,須藉助CPU介入彼此間連繫。所謂DMA,即允許週邊與記憶體兩者直接傳送,不必CPU介入,完全交給DMA控制器處理。 優點:資料傳送速度快,一般用在大量資料 傳送,如磁碟機與記憶體或記憶體與 記憶體之間。 缺點:1.需額外電路、成本高。 2.程式規劃複雜。

中斷種類(依來源分) 外部中斷(external interrupt) 內部中斷(internal interrupt) 由外界電路所產生中斷,例如鍵盤、計時器等。 內部中斷(internal interrupt) 有時也稱程式中斷(program interrupt),又稱陷(trap)。當程式中的指令或資料不合法或錯誤等產生,例如除以零、堆疊溢位、保護入等。 軟體中斷(software interrupt) 本中斷來自執行程式中的一種特殊呼叫指令,例如當程式要求系統OS做某些工作,執行某些監督者呼叫(supervisor call)。如同在個人電腦上呼叫BIOS(基本輸入輸出系統)或DOS。

中斷與副程式呼叫之不同 來源不同 發生時間不同 處理事項不同 服務位址不同

中斷種類(依CPU是否需處理分) 不可遮罩中斷(NonMaskable Interrupt,NMI) 可遮罩中斷(Maskable Interrupt Request,INT,IRQ) 可以藉助軟體(例如8088之CLI,STI指令),控制 CPU是否要處理中斷信號。 註:在CPU內有一旗號暫存器,其中有一中斷旗號(Interrupt FLAG ,IF),若IF=1,則當INT 中斷信號觸發,CPU才會處理。CLI指令即清除IF=0,STI指令即設定IF=1。

中斷服務常式(ISR)位址決定 非向量式中斷(non vectored interrupt) ISR寫在固定位址,例如Z-80 CPU,模式1(IM1)中斷,固定跳至0038H位址執行。8048之外界中斷,固定跳至0003H位址執行。Z-80 CPU之NMI中斷,跳至0066 H。例如8051 CPU,INT0中斷跳至0003H位址 向量式中斷(vectored interrupt) ISR可寫在任意位址,在中斷過程中,不僅送中斷信號給CPU,並將一組辨識碼(identifier)或中斷向量傳給CPU,而CPU則藉此找到適當的中斷服務程式(ISR)。

微處理機對I/O介面定址方式 隔離式I/O(isolated I/O)又稱I/O對映I/O(I/O mapped I/O)。即I/O空間(I/O space)與記憶體空間(memory space)互相獨立。 優點: 1.I/O不佔用memory空間,memory真正可用空間較大。 2.有專屬輸出入指令,如IN,OUT指令,程式容易區別I/O動作。 3.一般I/O空間較小,所以I/O解碼定址較簡單,快速。 缺點: 1.一般CPU中必須有一支接腳,以資區別是要存取I/O,或 memory(在8088中即IO/M接腳)。 2.程式較無效率,在I/O埠上只能做簡單IN,OUT動作,不能 處理,必須將資料讀入後,再做處理(例如,測試某一位元, 與某暫存器相加),再將結果OUT到I/O上。 記憶體對映I/O(memory mapped I/O)即I/O佔用memory space一部份,利用記憶體來對映I/O埠位址。 1.I/O位址即一記憶體位址,凡是在記憶體上可做的運算, 在I/O上也可以,所以所寫程式較有效率。 2.不必M/IO區別接腳。 1.無IN,OUT指令,程式中不易區別何者在執行I/O動作。 2.解碼較慢 3.全部可用的記憶空間減少。

SPCE061A中斷類型 軟體中斷 :軟體中斷是由軟體指令break產生的中斷。軟體中斷的向量位址為FFF5H 異常中斷 :異常中斷表示為非常重要的事件,一旦發生,CPU必須立即進行處理。目前SPCE061A定義的異常中斷只有‘重置Reset’一種。通常,SPCE061A系統重置可以由以下三種情況引起:上電、看門狗計數器溢位以及系統電源低於電壓低限。不論什麼情況引起重置,都會使重置腳的電位變低,進而使程式指標PC指向由一個重置向量(FFF7H)所指的系統重置程式入口位址。 事件中斷:事件中斷(可簡稱“中斷”,以下提到的“中斷”均為事件中斷)一般產生於片內部元件或由外部中斷輸入腳引入的某個事件。這種中斷的開通/禁止,由相應獨立使能和相應的IRQ或FIQ總致能控制。

事件中斷 SPCE061A的事件中斷可採用兩種方式:快速中斷請求即FIQ中斷和中斷請求即IRQ中斷。這兩種中斷都有對應的致能控制。

SPCE061中斷來源 中斷系統有14個中斷源分為 兩個計時器溢出中斷、 兩個外部中斷、 一個串列口中斷、 一個觸鍵喚醒中斷、 7個時基信號中斷、 一個PWM輸出中斷。

中斷控制指令 FIQ ON FIQ OFF IRQ ON(IRQ的總中斷允許開) IRQ OFF INT

中斷源表 中斷源 中斷優先順序 中斷向量 保留字 Fosc/1024 溢出信號 PWM INT FIQ/IRQ0 FFF6H/ FFF8H TimerA 溢出信號 FIQ /IRQ1 FFF6H/ FFF9H _FIQ/_IRQ1 TimerB 溢出信號 FIQ /IRQ2 FFF6H/ FFFAH _FIQ/_IRQ2 外部時脈源輸入 信號 EXT2 IRQ3 FFFBH _IRQ3 信號 EXT1 觸鍵喚醒信號 4096Hz 時基信號 IRQ4 FFFCH _IRQ4 2048Hz 時基信號 1024Hz 時基信號 4Hz 時基信號 IRQ5 FFFDH _IRQ5 2Hz 時基信號 選頻信號 TMB1 IRQ6 FFFEH _IRQ6 選頻信號 TMB2 UART 傳輸中斷 IRQ7 FFFFH _IRQ7 BREAK 軟體中斷

中斷優先順序和中斷向量 中斷向量 中斷優先順序別 FFF7H(重置向量) RESET FFF6H FIQ FFF8H IRQ0 FFF9H FFFAH IRQ2 FFFBH IRQ3 FFFCH IRQ4 FFFDH IRQ5 FFFEH IRQ6 FFFFH IRQ7

相關SFR P_INT_Ctrl暫存器 P_INT_Clear暫存器

P_INT_Ctrl暫存器 b7 b6 b5 b4 b3 b2 b1 b0 IRQ3_KEY IRQ4_4KHz IRQ4_2KHz IRQ5_4Hz IRQ5_2Hz IRQ6_TMB1 IRQ6_TMB2 b15 b14 b13 b12 b11 b10 b9 b8 FIQ_Fosc/ 1024 IRQ0_Fosc/ FIQ_TMA IRQ1_TMA FIQ_TMB IRQ2_TMB IRQ3_EXT2 IRQ3_EXT1

P_INT_Clear暫存器 b7 b6 b5 b4 b3 b2 b1 b0 IRQ3_KEY IRQ4_4KHz IRQ4_2KHz IRQ5_4Hz IRQ5_2Hz IRQ6_TMB1 IRQ6_TMB2 b15 b14 b13 b12 b11 b10 b9 b8 FIQ_Fosc/ 1024 IRQ0_Fosc/ FIQ_TMA IRQ1_TMA FIQ_TMB IRQ2_TMB IRQ3_EXT2 IRQ3_EXT1

中斷服務副程式流程(ISR寫法)

中斷控制的內建常數 C_IRQ6_TMB2 Timer B IRQ6 (b0) C_IRQ6_TMB1 Timer A IRQ6 (b1) C_IRQ5_2Hz IRQ5 2 Hz (b2) C_IRQ5_4Hz IRQ5 4 Hz (b3) C_IRQ4_1KHz 1024Hz IRQ4 (b4) C_IRQ4_2KHz 2048Hz IRQ4 (b5) C_IRQ4_4KHz 4096Hz IRQ4 (b6) C_IRQ3_KEY Key Change IRQ3 (b7) C_IRQ3_EXT1 Ext1 IRQ3 (b8) C_IRQ3_EXT2 Ext2 IRQ3 (b9) C_IRQ2_TMB Timer B IRQ2 (b10) C_FIQ_TMB Timer B FIQ (b11) C_IRQ1_TMA Timer A IRQ1 (b12) C_FIQ_TMA Timer A FIQ (b13) C_IRQ0_PWM PWM IRQ0 (b14) C_FIQ_PWM PWM FIQ (b15)

規劃允許2Hz時基中斷 asm("INT OFF"); // 關閉所有中斷 *P_INT_Ctrl = C_IRQ5_2Hz; asm("INT IRQ"); //允許所有IRQ中斷

規劃允許外部中斷1 asm("INT OFF"); // 關閉所有中斷 Init_B_Port(); //規劃B Port bit 2為具上拉電阻的輸入 *P_INT_Ctrl = C_IRQ3_EXT1; //允許 EXT1 中斷 asm("INT IRQ"); //允許所有IRQ中斷

規劃允許外部中斷1與2 asm("INT OFF"); // 關閉所有中斷 //允許 EXT1及EXT2 中斷 *P_INT_Ctrl = C_IRQ3_EXT1 | C_IRQ3_EXT2; //允許 EXT1及EXT2 中斷 asm("INT IRQ"); //允許所有IRQ中斷

規劃計時器A定時2秒中斷 asm("INT OFF"); // 關閉所有中斷 *P_TimerA_Ctrl = C_SourceA_8192Hz+C_SourceB_1; //TimerA:8192Hz *P_TimerA_Data = 0xffff -0x4000 ; //2sec時間常數 *P_INT_Ctrl=C_IRQ1_TMA; //允許TimerA_IRQ1中斷 __asm("INT IRQ"); //允許所有IRQ中斷

中斷副程式 void IRQ5(void) __attribute__ ((ISR)); void IRQ5(void) { if ( *P_INT_Ctrl & 0x0004 ) { //IRQ5_2Hz *P_IOA_Data = data; data ^= 0xffff; *P_INT_Clear = 0x0004; // 清除中斷旗號 } else { //IRQ5_4Hz *P_INT_Clear=0x0008; // 清除中斷旗號

範例 7-1 2Hz時基中斷 7-2 外部1中斷 7-3 外部1及外部2中斷 7-4 外部1及外部2中斷與上下數 7-5 觸鍵喚醒中斷 7-6 TimerA—IRQ1中斷 7-7 多來源—相同進入點 7-8 多來源—不同進入點