输入输出及中断

上传人:仙*** 文档编号:164500599 上传时间:2022-10-24 格式:PPT 页数:71 大小:1.31MB
收藏 版权申诉 举报 下载
输入输出及中断_第1页
第1页 / 共71页
输入输出及中断_第2页
第2页 / 共71页
输入输出及中断_第3页
第3页 / 共71页
资源描述:

《输入输出及中断》由会员分享,可在线阅读,更多相关《输入输出及中断(71页珍藏版)》请在装配图网上搜索。

1、12lI/OI/O接口:接口:将外设连接到总线上的一组逻辑电路的总称。将外设连接到总线上的一组逻辑电路的总称。用以实现外设与主机之间的信息交换用以实现外设与主机之间的信息交换lI/OI/O端口:端口:接口中的寄存器,可以由接口中的寄存器,可以由CPUCPU读或写读或写数据端口数据端口状态端口状态端口控制端口控制端口端端 口口374CPU同外设间交换的信息由三类:同外设间交换的信息由三类:1.数据信息数据信息三种类型三种类型数字量数字量模拟量模拟量开关量开关量二进制二进制数数ASCII码表示的数或字符码表示的数或字符2.2.状态信息状态信息:表示外设当前所处的工作状态。表示外设当前所处的工作状态

2、。3.3.控制信息控制信息:由由CPUCPU发出的,用于控制发出的,用于控制I/OI/O接口的工作接口的工作方式以及外设的启动和停止等。方式以及外设的启动和停止等。57.2.1 7.2.1 程序控制传递方式程序控制传递方式无条件传送方式无条件传送方式查询传送查询传送方式方式中断传送方式中断传送方式特点特点:(:(1)以以CPU为中心,控制来自为中心,控制来自CPU,通过预,通过预先编写好的先编写好的I/O程序实现数据的传送。程序实现数据的传送。(2)速度较低,传送路径经过)速度较低,传送路径经过CPU内部寄存器内部寄存器同时数据同时数据I/O响应也比较慢。响应也比较慢。61.1.无条件传送方式

3、无条件传送方式 (同步传送方式)(同步传送方式)外设的工作时间已知,必须在外设的工作时间已知,必须在CPU限定的指令限定的指令时间内准备就绪,并完成数据的接收或发送。时间内准备就绪,并完成数据的接收或发送。方法:方法:把把I/OI/O指令插入到程序中,当程序执行到该指指令插入到程序中,当程序执行到该指 令时,外设已作好准备,于是在此指令时间内令时,外设已作好准备,于是在此指令时间内完成数据传送任务。完成数据传送任务。优点:优点:软件及接口硬件简单软件及接口硬件简单缺点:缺点:CPU效率低,只适用于简单外设,适应范围较效率低,只适用于简单外设,适应范围较窄窄 72.查询传送方式(异步传送方式)查

4、询传送方式(异步传送方式)当当CPU同外设不同步且不知道外设工作速率时,同外设不同步且不知道外设工作速率时,可采用此方式传送。传送前,可采用此方式传送。传送前,CPU必须先对外设进行必须先对外设进行状态检测。状态检测。适用场合:适用场合:l外设并不总是准备好外设并不总是准备好l对传送速率和效率要求不高对传送速率和效率要求不高对外设及接口的要求:对外设及接口的要求:l外设应提供设备状态信息外设应提供设备状态信息l接口应具备状态端口接口应具备状态端口8完成一次传送过程的步骤如下:完成一次传送过程的步骤如下:(1)通过执行一条输入指令,读取所选外设的当前状态通过执行一条输入指令,读取所选外设的当前状

5、态(2)根据该设备的状态决定程序去向根据该设备的状态决定程序去向外设外设“忙忙”或或“未准备就绪未准备就绪”重复检测外设重复检测外设状态状态外设外设“空空”或或“准备就绪准备就绪”发出发出I/O指令,进指令,进行一次数据传送。行一次数据传送。9优点:软件比较简单优点:软件比较简单缺点:缺点:CPU效率低,数据传送的实时性差,速效率低,数据传送的实时性差,速 度较慢度较慢103 3中断传送方式中断传送方式 无条件传递和查询传送的缺点是:无条件传递和查询传送的缺点是:CPU和外设只和外设只能串行工作。能串行工作。为提高系统的工作效率,充分发挥为提高系统的工作效率,充分发挥CPU的高速运的高速运算能

6、力,引入了算能力,引入了“中断中断”系统,利用中断来实现系统,利用中断来实现CPU与外设之间的数据传送,这就是中断传送方式。与外设之间的数据传送,这就是中断传送方式。特点:外设在需要时向特点:外设在需要时向CPU提出请求,提出请求,CPU再去为再去为 它服务。服务结束后或在外设不需要时,它服务。服务结束后或在外设不需要时,CPU可执行自己的程序。可执行自己的程序。中断使中断使CPU和外设以及外设之间能并行工作。和外设以及外设之间能并行工作。11工作过程:工作过程:在中断传送方式中,通常在程序中安排好某一时在中断传送方式中,通常在程序中安排好某一时刻启动某一台外设,然后刻启动某一台外设,然后CP

7、U继续执行其主程序,当继续执行其主程序,当外设完成数据传送的准备后,向外设完成数据传送的准备后,向CPU发出中断请求信发出中断请求信号,在号,在CPU可以响应中断的条件下,现行主程序被可以响应中断的条件下,现行主程序被“中断中断”,转去执行,转去执行“中断服务程序中断服务程序”,在,在“中断服中断服务程序务程序”中完成一次中完成一次CPU与外设之间的数据传送,传与外设之间的数据传送,传送完成后仍返回被中断的主程序,从断点处继续执行。送完成后仍返回被中断的主程序,从断点处继续执行。优点:优点:CPUCPU效率高,实时性好,速度快效率高,实时性好,速度快缺点:程序编制较为复杂缺点:程序编制较为复杂

8、12均需均需CPU作为中介:作为中介:l软件:软件:外设与内存之间的数据传送是通过外设与内存之间的数据传送是通过CPU执行执行 程序来完成的程序来完成的l硬件:硬件:I/O接口和存储器的读写控制信号、地址信号接口和存储器的读写控制信号、地址信号 都是由都是由CPU发出的发出的l 缺点:程序的执行速度限定了传送的最大速度缺点:程序的执行速度限定了传送的最大速度137.2.2 DMA7.2.2 DMA(直接存储器存取)传递方式(直接存储器存取)传递方式 外设和内存之间直接传送数据的方式,即外设和内存之间直接传送数据的方式,即DMA传传送方式。送方式。在在DMA传送方式中,对这一数据传送过程进传送方

9、式中,对这一数据传送过程进行控制的硬件称为行控制的硬件称为DMA控制器(控制器(DMAC)。)。特点:特点:l外设直接与存储器进行数据交换外设直接与存储器进行数据交换,不需要,不需要CPU干预干预也不需软件介入。也不需软件介入。l总线由总线由DMA控制器(控制器(DMAC)进行控制()进行控制(CPU要放要放弃总线控制权),内存弃总线控制权),内存/外设的地址和读写控制信号均外设的地址和读写控制信号均由由DMAC提供。提供。141.DMA1.DMA操作的基本方法操作的基本方法(1 1)周期挪用(周期挪用(Cycle StealingCycle Stealing)(2 2)周期扩散周期扩散(3

10、3)CPUCPU停机方式停机方式 最常用,最简单的传送方式最常用,最简单的传送方式152.DMA2.DMA的传送方式的传送方式(1)(1)单字节传送方式单字节传送方式 每次每次DMA传送传送只传送一个字节就立即释放总线。只传送一个字节就立即释放总线。(2)(2)成组传送方式成组传送方式 DMAC在申请到总线后,将一组数据传送完后才在申请到总线后,将一组数据传送完后才释放总线,而不管中间释放总线,而不管中间DREQ是否有效。是否有效。(3)(3)请求传送方式请求传送方式(查询传送方式)(查询传送方式)成组传送,但每传送一个字节后,成组传送,但每传送一个字节后,DMAC查查DREQ,有效传,无效挂

11、起。,有效传,无效挂起。16.DMAC(DMA控制器)的基本功能控制器)的基本功能(1)能接收外设的请求,向)能接收外设的请求,向CPU发出发出DMA请求信号。请求信号。(2)当接到)当接到CPU发出发出DMA响应信号后,响应信号后,DMAC接管接管对总线的控制,进入对总线的控制,进入DMA方式。方式。(3)能寻址存储器,即能输出地址信息和修改地址。)能寻址存储器,即能输出地址信息和修改地址。(4)能向存储器和外设发相应的读)能向存储器和外设发相应的读/写控制信号。写控制信号。(5)能控制传送的字节数,判断)能控制传送的字节数,判断DMA是否结束。是否结束。(6)在)在DMA传送结束后,能结束

12、传送结束后,能结束DMA请求信号,请求信号,释放总线,使释放总线,使CPU恢复正常工作。恢复正常工作。17 7.3 7.3 中断技术中断技术 7.3.1 7.3.1 概述概述中断中断外设随机地(指主程序运行到任何一条指令外设随机地(指主程序运行到任何一条指令时)或程序预先安排产生中断请求信号,暂停时)或程序预先安排产生中断请求信号,暂停CPUCPU正在运行的程序,转入执行称为中断服务的正在运行的程序,转入执行称为中断服务的子程序,中断服务完毕后,返回到主程序被中子程序,中断服务完毕后,返回到主程序被中断处继续执行的过程。断处继续执行的过程。中断源中断源引起中断的事件引起中断的事件18通常中断源

13、有以下几种:通常中断源有以下几种:(1 1)输入、输出设备输入、输出设备:如键盘、显示器和打印机等如键盘、显示器和打印机等;(2 2)数据通道数据通道;(3 3)实时控制过程中的各种参数实时控制过程中的各种参数;(4 4)故障源故障源:如掉电保护等如掉电保护等;(5 5)控制系统的现场测试信号以及软件中断。控制系统的现场测试信号以及软件中断。中断系统应具有以下功能中断系统应具有以下功能:1.1.能实现中断响应、中断服务和中断返回能实现中断响应、中断服务和中断返回 2.2.能实现中断优先级排队能实现中断优先级排队 3.3.能实现中断嵌套能实现中断嵌套 197.3.2 7.3.2 中断过程中断过程

14、 1.中断过程中断过程 一个完整的中断基本过程包括:一个完整的中断基本过程包括:中断请求、中断中断请求、中断判优、中断响应、中断处理及中断返回判优、中断响应、中断处理及中断返回等五个基本过等五个基本过程。程。(1)中断请求)中断请求 当某一外部中断源要求当某一外部中断源要求CPU中断时,首先要向中断时,首先要向CPU发出中断请求,该请求信号被存放在中断源接口发出中断请求,该请求信号被存放在中断源接口电路的中断请求触发器中暂存,并通过电路的中断请求触发器中暂存,并通过INTR或或NMI信号线引入信号线引入CPU。20(2)中断判优)中断判优 由于中断请求是随机的,在某一瞬间有可能出现由于中断请求

15、是随机的,在某一瞬间有可能出现两个或两个以上中断源同时提出请求的情况。这时必两个或两个以上中断源同时提出请求的情况。这时必须根据中断源的轻重缓急,给每个中断源确定一个中须根据中断源的轻重缓急,给每个中断源确定一个中断级别断级别 中断优先权中断优先权。另一个作用能实现中断嵌套另一个作用能实现中断嵌套。21(3)中断响应)中断响应 CPU每执行完一条指令后,查询是否有中断请求。每执行完一条指令后,查询是否有中断请求。当查询到有中断请求且此时当查询到有中断请求且此时CPU允许中断(即允许中断(即IF=1,开中断),开中断),CPU响应中断。响应中断。响应中断后系统做的工作:响应中断后系统做的工作:自

16、动关中断;自动关中断;通过使通过使IF清零来实现清零来实现保存保存FR和断点;和断点;形成中断入口地址。形成中断入口地址。通过中断矢量,查询中断地址通过中断矢量,查询中断地址表实现。表实现。22(4 4)中断处理)中断处理 执行中断服务程序执行中断服务程序 中断服务开始要用压栈指令(中断服务开始要用压栈指令(PUSHPUSH)将要用到的)将要用到的寄存器内容压入堆栈,以便返回到主程序时能寄存器内容压入堆栈,以便返回到主程序时能正确运行。正确运行。保护现场保护现场 中断服务程序结束后,用中断服务程序结束后,用POPPOP指令把所保存的有指令把所保存的有关寄存器的内容从堆栈弹出,以便恢复到中断关寄

17、存器的内容从堆栈弹出,以便恢复到中断前的状态。前的状态。恢复现场恢复现场23(5 5)中断返回)中断返回 通常在通常在中断返回前中断返回前,要用指令,要用指令开中断开中断,以便再,以便再次响应中断,然后执行中断返回指令次响应中断,然后执行中断返回指令242.中断优先权中断优先权(1)软件查询方式)软件查询方式7725(2)硬件优先权排队电路。)硬件优先权排队电路。简单硬件方式简单硬件方式菊花链法或链式优先权排队电路。菊花链法或链式优先权排队电路。专用硬件方式专用硬件方式可编程的中断控制器可编程的中断控制器726 7.4 8086/8088的中断系统的中断系统 7.4.1 中断结构中断结构1.中

18、断分类中断分类 硬件中断硬件中断(外部中断)(外部中断)软件中断软件中断(内部中断)(内部中断)除法错中断除法错中断溢出中断溢出中断断点中断断点中断单步中断单步中断INT n指令中断指令中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断256种中断源种中断源类型码类型码025527硬件中断硬件中断由外部硬件产生的,也称由外部硬件产生的,也称外部中断外部中断。软件中断软件中断CPU根据软件的某些指令或者软件对标根据软件的某些指令或者软件对标志寄存器某个标志位的设置而产生的,志寄存器某个标志位的设置而产生的,由于它与外部中断电路完全无关,故称由于它与外部中断电路完全无关,故称为为内部中断内部中断。非屏蔽

19、中断:通过非屏蔽中断:通过CPU的的NMI引入,它不受内部中断允引入,它不受内部中断允许标志位许标志位IF的屏蔽,一般在一个系统中只的屏蔽,一般在一个系统中只允许有一个非屏蔽中断。允许有一个非屏蔽中断。可屏蔽中断:通过可屏蔽中断:通过CPU的的INTR引入引入,它受,它受IF的控制。的控制。只有在只有在IF=1时,时,CPU才能响应中断源的请才能响应中断源的请求。当求。当IF=0时,中断请求被屏蔽。时,中断请求被屏蔽。282中断向量表中断向量表 存放中断地址的一段内存空间称中断向量表存放中断地址的一段内存空间称中断向量表。l存放各类中断的中断服务程序的入口地址存放各类中断的中断服务程序的入口地

20、址l位于内存的位于内存的0000 00000000 03FFH(即(即00000003FFH)大小为)大小为1KB,共,共256个入口地个入口地址址l每个入口地址占用每个入口地址占用4个单元,依次为个单元,依次为IP:CS,低低字为段内偏移,高字为段基址字为段内偏移,高字为段基址2900000H003FFH1KB30IPCS 中断类型码与中断向量所在位置(中断向量地址指针)中断类型码与中断向量所在位置(中断向量地址指针)之间的对应关系为:之间的对应关系为:中断向量地址指针中断向量地址指针=4*中断类型码中断类型码331例:中断类型码为例:中断类型码为20H(32)的中断源所对应的中断服的中断源

21、所对应的中断服务程序首址存放在务程序首址存放在0000 0080H(4*20H=80H)开始)开始的的4 个单元中。若在个单元中。若在0080H至至0083H这这4个单元中存放个单元中存放的值分别为的值分别为10H、20H、30H、40H,则该系统中,则该系统中20H号中断所对应的号中断所对应的中断处理(服务)程序入口地址为中断处理(服务)程序入口地址为4030 2010H0080H10H20H30H40H0083H0082H0081H327.4.2 内部中断内部中断软中断软中断 在在8086/8088系统中,通过执行中断指令或由系统中,通过执行中断指令或由CPU本身启动的中断称为内部中断(也

22、称软件中断)。本身启动的中断称为内部中断(也称软件中断)。除单步中断外,内部中断无法用软件禁止,即不除单步中断外,内部中断无法用软件禁止,即不受受IF的影响。的影响。1、内部中断的类型、内部中断的类型(1)0型中断型中断除法出错中断除法出错中断(2)1型中断型中断单步中断单步中断(3)3型中断型中断断点中断断点中断(4)4型中断型中断溢出中断溢出中断(5)INT n指令中断指令中断 332内部中断的处理过程内部中断的处理过程 如何获取相应的中断类型码如何获取相应的中断类型码 专用中断:中断类型码是自动形成的。专用中断:中断类型码是自动形成的。几种类型码为:类型几种类型码为:类型0、1、3、4。

23、对于对于INT n指令,其类型码为指令中给定的指令,其类型码为指令中给定的n。34取得了类型码后的处理过程:取得了类型码后的处理过程:类型码类型码*4 向量表指针。向量表指针。标志寄存器标志寄存器FR入栈,保护各个标志。入栈,保护各个标志。清除清除IF和和TF标志,屏蔽新的标志,屏蔽新的INTR中断和单步中断。中断和单步中断。保存断点(断点处保存断点(断点处IP和和CS压栈,先压压栈,先压CS后压后压IP)。)。从中断向量表中取出中断服务程序入口地址分别送从中断向量表中取出中断服务程序入口地址分别送入入IP和和CS中。中。按新的地址执行中断服务程序。按新的地址执行中断服务程序。357.4.3

24、外部中断外部中断硬中断硬中断非屏蔽中断非屏蔽中断NMI引脚产生的中断,不受引脚产生的中断,不受IF控制,控制,类型号为类型号为2。可屏蔽中断可屏蔽中断由由CPU的的INTR端接收可屏蔽中断。受端接收可屏蔽中断。受IF控制,只有当控制,只有当IF=1,在一条指令执行在一条指令执行结束后,结束后,CPU才能响应可屏蔽中断的才能响应可屏蔽中断的请求。请求。361.外部中断的响应外部中断的响应 CPU采样到非屏蔽中断请求时,自动提供中断类采样到非屏蔽中断请求时,自动提供中断类型号型号2,然后根据中断类型号,查找中断向量表指针,然后根据中断类型号,查找中断向量表指针,其后的处理与内部中断一样。其后的处理

25、与内部中断一样。当当INTR信号有效,如信号有效,如IF=1,则,则CPU执行完一条执行完一条指令后,进入可屏蔽中断响应周期。在中断响应周期指令后,进入可屏蔽中断响应周期。在中断响应周期中中CPU从数据线中获取外部设备的中断类型码。从数据线中获取外部设备的中断类型码。372.外部中断处理过程外部中断处理过程 在外部中断响应周期中,在外部中断响应周期中,CPU获取了外部中断类型获取了外部中断类型码之后的中断处理过程,与前述的软中断过程顺序是码之后的中断处理过程,与前述的软中断过程顺序是一样的,不再赘述。一样的,不再赘述。如果把如果把CPU中断响应周期的动作和前面讲到的中中断响应周期的动作和前面讲

26、到的中断响应过程结合起来,当断响应过程结合起来,当一个可屏蔽中断被响应时,一个可屏蔽中断被响应时,CPU实际执行了实际执行了7个总线周期个总线周期,即:,即:38 执行第一个执行第一个INTA周期。周期。执行第二个执行第二个INTA周期,被响应的外设通过周期,被响应的外设通过D0D7的的8位数据线提供中断类型码位数据线提供中断类型码n(由(由8259A提提供),供),CPU接到类型码后,将它左移两位,形成接到类型码后,将它左移两位,形成向量表指针存入暂存器。向量表指针存入暂存器。执行一个总线写周期,把执行一个总线写周期,把FR压栈。同时压栈。同时IF和和TF为为0,以禁止中断响应过程中其他可屏

27、蔽中断的进入,以禁止中断响应过程中其他可屏蔽中断的进入,同时也禁止了中断过程中出现单步中断。同时也禁止了中断过程中出现单步中断。39 执行一个总线写周期,执行一个总线写周期,CS压栈。压栈。执行一个总线写周期,执行一个总线写周期,IP压栈。压栈。执行一个总线读周期,从中断向量表中取出中断执行一个总线读周期,从中断向量表中取出中断服务程序入口地址的偏移量送服务程序入口地址的偏移量送IP中。中。执行一个总线周期,从中断向量表中取出中断服执行一个总线周期,从中断向量表中取出中断服务程序入口地址的段值送务程序入口地址的段值送CS。对于非屏蔽与软中断跳过第对于非屏蔽与软中断跳过第、步,从第步,从第步步开

28、始执行到第开始执行到第步。步。407.4.4 各类中断的优先权及中断响应各类中断的优先权及中断响应 8086/8088系统中,系统中,中断优先权次序从高到低为:中断优先权次序从高到低为:除法出错、除法出错、INTn、INTO、NMI、INTR、单步中断。、单步中断。除单步之外的内部优先权最高,其次是非屏蔽中除单步之外的内部优先权最高,其次是非屏蔽中断,再次是可屏蔽中断,而单步最低。断,再次是可屏蔽中断,而单步最低。41 7.5 8259A可编程中断控制器可编程中断控制器 7.5.1 8259A的功能的功能 1.功能功能 Intel 8259A 是与是与8086系列系列CPU兼容的可编程中断兼容

29、的可编程中断控制器,它的主要功能为:控制器,它的主要功能为:(1)具有)具有8级优先权控制,级连可扩展至级优先权控制,级连可扩展至64级。级。(2)每一级中断都可以屏蔽或允许。)每一级中断都可以屏蔽或允许。(3)在中断响应周期,)在中断响应周期,8259A可提供相应的中断向可提供相应的中断向量号(中断类型号)。量号(中断类型号)。(4)8259A的工作方式,可通过编程来进行选择。的工作方式,可通过编程来进行选择。7.5.2 8259A的结构及工作原理的结构及工作原理742(1)8259A的内部结构的内部结构 8位寄存器,是位寄存器,是8259A与外设中断源的接口。与外设中断源的接口。通过通过I

30、R7IR0与与8个中断源相接。当有某个个中断源相接。当有某个中断源申请中断时,使中断源申请中断时,使IRR的相应位置的相应位置1。最。最多可同时接收多可同时接收8个中断源的中断申请。个中断源的中断申请。8位寄存器,用于设置位寄存器,用于设置中断请求的屏蔽信号。中断请求的屏蔽信号。第第i位被置位被置1时,与之对时,与之对应的应的IRi被屏蔽,不能向被屏蔽,不能向CPU发发INT信号。可通信号。可通过软件设置其内容,确过软件设置其内容,确定每个中断请求的屏蔽定每个中断请求的屏蔽状态。设置状态。设置IMR也可起也可起到改变中断请求优先级到改变中断请求优先级的效果。的效果。8位寄存器,寄存所有正在被服

31、务的中断级。第位寄存器,寄存所有正在被服务的中断级。第i位置位置1表示表示CPU正为正为IRi中断源服务,该信号一直保持到中断源服务,该信号一直保持到CPU处理完该中断服务程序为止。该中断处理结束前,处理完该中断服务程序为止。该中断处理结束前,要使用要使用指令指令清除这一位。清除这一位。ISR可被可被CPU读出。当有多读出。当有多位置位置1时,表示发生了中断嵌套。时,表示发生了中断嵌套。对在对在IRR中的中断请求,经判断确定最高的优先权,中的中断请求,经判断确定最高的优先权,并在中断响应用周期把它选通送至并在中断响应用周期把它选通送至ISR8位双向三态缓冲器,是位双向三态缓冲器,是8259A与

32、系统数与系统数据总线的接口。据总线的接口。8259A通过它接收通过它接收CPU发发来的控制字,也通过它向来的控制字,也通过它向CPU发送中断类发送中断类型代码和状态信息。型代码和状态信息。接收接收CPU的读的读/写命令。写命令。CS和地址线和地址线A0决定访问决定访问8259A的哪个寄存器。的哪个寄存器。用于多块用于多块8259A的连的连接,使中断可由接,使中断可由8级级扩展到扩展到64级级743 8259A的引脚的引脚双功能信号。当双功能信号。当8259A工作与缓冲器方工作与缓冲器方式时,它作为控制缓冲器传送方式的输式时,它作为控制缓冲器传送方式的输出信号;当工作于非缓冲方式时,用于出信号;

33、当工作于非缓冲方式时,用于规定其是主规定其是主8259A还是从还是从8259A448259A的工作原理的工作原理 当系统通电后,首先应对当系统通电后,首先应对8259A初始化。(由初始化。(由CPU执行一段程序,向可编程芯片写入若干命令字,规定执行一段程序,向可编程芯片写入若干命令字,规定其工作状态,使其处于准备就绪的状态。)其工作状态,使其处于准备就绪的状态。)8259A对外部中断请求处理过程如下:对外部中断请求处理过程如下:(1)当有当有IR0IR7变变 高,则高,则IRR的相应位置的相应位置1。(2)若中断请求线中至少有一条是中断允许的,则若中断请求线中至少有一条是中断允许的,则由由 I

34、NT 引脚向引脚向CPU发出中断请求。发出中断请求。(3)若若CPU处于开中断状态,则在当前指令执行完后,处于开中断状态,则在当前指令执行完后,用用INTA信号作为响应。信号作为响应。45(4)8259A接到接到INTA后,使最高优先权的后,使最高优先权的ISR位置位置1,而相应的而相应的IRR位复位。在此周期中,位复位。在此周期中,8259A不向系不向系统数据总线送任何内容。统数据总线送任何内容。(5)在中断响应周期的第二个信号期间在中断响应周期的第二个信号期间8259A向数据总向数据总线输送一个线输送一个8位指针(向量号或类型号),位指针(向量号或类型号),CPU读读取此类型号,类型号取此

35、类型号,类型号*4作为地址就可从中断向量作为地址就可从中断向量表中取出中断服务程序入口地址。表中取出中断服务程序入口地址。(6)若若8259A工作在自动结束中断工作在自动结束中断AEOI方式方式(Automatic End Of Interrupt),在第二个在第二个INTA结结束时,使中断源在束时,使中断源在ISR的相应位复位。否则,直至的相应位复位。否则,直至中断服务程序执行到中断服务程序执行到EOI命令,才使命令,才使ISR的相应位的相应位复位。复位。467.5.3 8259A的编程的编程 8259A的编程分两部分:的编程分两部分:(1)初始化编程)初始化编程 由由CPU向向8259A送

36、送24字节的初始化命令字字节的初始化命令字ICW(2)工作方式编程)工作方式编程 由由CPU向向8259A送三个字节的工作命令字送三个字节的工作命令字OCW,以,以规定规定8259A的工作方式。该命令字可在的工作方式。该命令字可在8259A初始化命初始化命令字令字ICW后的任何时间写入。后的任何时间写入。47 1.8259A的初始化编程的初始化编程 8259A的初始化命令字共的初始化命令字共4个(个(ICW1ICW4)设置过程如图:设置过程如图:748 写初始化命令字写初始化命令字ICW1芯片控制字芯片控制字 对对8086/8088无效无效ICW1 识识 别别 位位偶偶地地址址74000049

37、(2)写初始化命令字)写初始化命令字ICW2中断类型控制字中断类型控制字 (中断类型码中断类型码)用来定义中断类型码的高用来定义中断类型码的高5位位 T7T6T5T4T3中断类型码的高中断类型码的高5位位自动填入自动填入 IR0 000 IR1 001 IR2 010 IR7 111奇奇地地址址7450(3)写初始化指令字写初始化指令字ICW3主主/从片初始化从片初始化 (级连控制字)(级连控制字)奇奇地地址址奇奇地地址址51(4)写初始化命令字写初始化命令字ICW4方式控制字方式控制字 对于对于8086/8088系统是必须设置的初始化命令字系统是必须设置的初始化命令字 奇奇地地址址74152

38、2.8259A的操作命令字的操作命令字 三个操作命令字三个操作命令字OCW1OCW3。在设置操作命令字时,顺序上没有严格的要求,但端在设置操作命令字时,顺序上没有严格的要求,但端口地址上有严格的规定。口地址上有严格的规定。OCW1必须写入奇地址端口(必须写入奇地址端口(A0=1)OCW2和和OCW3必须写入偶地址端口(必须写入偶地址端口(A0=0)53 操作命令字操作命令字OCW1 屏蔽操作命令字屏蔽操作命令字 用来设置或清除对中断的屏蔽(设置用来设置或清除对中断的屏蔽(设置IMR的值)的值)75奇奇地地址址54(2)操作命令字操作命令字OCW2中断方式命令字中断方式命令字 设置优先级循环和中

39、断结束方式设置优先级循环和中断结束方式偶偶地地址址6475若若ICW4设置正常结束访问,设置正常结束访问,则在则在IRET前写前写OCW2,使使EOI=1,ISR复位复位 1.若若OCW2中设置特殊优先级循环方式时,中设置特殊优先级循环方式时,最低优先级编码。最低优先级编码。2.OCW2中设置特殊中断命令结束,指具中设置特殊中断命令结束,指具体清除哪一位。体清除哪一位。55(3)操作命令字操作命令字OCW3状态操作命令字状态操作命令字 设置和撤销特殊屏蔽方式、设置中断查询方式、设置和撤销特殊屏蔽方式、设置中断查询方式、设置对设置对8259A内部寄存器的读出命令内部寄存器的读出命令 允许特殊屏蔽

40、模式允许特殊屏蔽模式撤销特殊屏蔽模式撤销特殊屏蔽模式756注意:注意:1.如何区分如何区分OCW2,OCW3?用用D3位,即两个操作命令字的标识位位,即两个操作命令字的标识位2.如何区分如何区分ICW1,OCW2,OCW3?D3=0 OCW2 D3=1 OCW3 D3D4=1 ICW1D4=0 OCW2,OCW3 用用D4位位577.5.4 8259A的工作方式的工作方式 1中断嵌套方式中断嵌套方式(1)全嵌套方式)全嵌套方式 当工作在全嵌套方式时,当工作在全嵌套方式时,8259A写入初始化命令写入初始化命令字后,中断优先权是固定的,即字后,中断优先权是固定的,即IR0优先权最高,优先权最高,

41、IR7优先权最低。当优先权最低。当CPU响应中断时,申请中断的优先权响应中断时,申请中断的优先权最高的中断源在最高的中断源在ISR中相应位置位,而且把它的中断中相应位置位,而且把它的中断向量号(类型码)送到数据总线,在此中断源的中断向量号(类型码)送到数据总线,在此中断源的中断服务程序完成前,与它同级或优先权更低的中断源申服务程序完成前,与它同级或优先权更低的中断源申请被屏蔽,只有优先权比它高的中断源的申请才允许。请被屏蔽,只有优先权比它高的中断源的申请才允许。58(2)特殊全嵌套方式)特殊全嵌套方式级连情况级连情况与全嵌套方式不同之处与全嵌套方式不同之处:当某一从片中断请求被响应后,主片不封

42、锁从片的当某一从片中断请求被响应后,主片不封锁从片的INT输入端,使该从片优先级更高的中断源的请求输入端,使该从片优先级更高的中断源的请求能得到响应。能得到响应。当从片中断处理快要结束时,用软件检查从片中断当从片中断处理快要结束时,用软件检查从片中断服务寄存器服务寄存器ISR的内容是否为的内容是否为0,若为,若为0,则这个从,则这个从片的中断请求是唯一的,此时连发两个中断结束命片的中断请求是唯一的,此时连发两个中断结束命令令EOI,使主片、从片都结束中断。若只发一个,使主片、从片都结束中断。若只发一个EOI命令则只结束从片,不结束主片中断。命令则只结束从片,不结束主片中断。592中断优先级循环

43、方式中断优先级循环方式 8259A中有两种改变优先权的办法中有两种改变优先权的办法 自动循环方式自动循环方式 当某一个中断源服务当某一个中断源服务完以后,它的优先级完以后,它的优先级变成最低的变成最低的。760(2)特殊循环方式特殊循环方式 如果中断源的优先权需要任意改变,就必须工作如果中断源的优先权需要任意改变,就必须工作在特殊循环方式下。此时,可用程序通过写在特殊循环方式下。此时,可用程序通过写OCW2来改变优先权。来改变优先权。例如例如:设置设置IR5为最低优先权,则为最低优先权,则IR6的优先权就变的优先权就变为最高。这时为最高。这时OCW2最高三位为最高三位为110,而最低三位,而最

44、低三位L2L0应为应为101(最低优先权编码)。(最低优先权编码)。OCW2:1 1 0 0 0 1 0 1613.中断屏蔽中断屏蔽 8259A的的8条中断请求线的每一条都可根据需要单独条中断请求线的每一条都可根据需要单独屏蔽,可通过屏蔽,可通过写入写入OCW1的命令字的命令字来实现。来实现。8259A有两种屏蔽方式:有两种屏蔽方式:(1)普通屏蔽方式普通屏蔽方式特点:当执行某一级中断服务程序时,只允许比该级特点:当执行某一级中断服务程序时,只允许比该级优先级高的中断源申请中断,不允许同级或低优先级高的中断源申请中断,不允许同级或低级的中断源申请中断。级的中断源申请中断。方法:用方法:用OCW

45、1将将IMR寄存器某一位或几位置寄存器某一位或几位置1,即可,即可将相应的中断请求屏蔽掉。将相应的中断请求屏蔽掉。使用情况:当使用情况:当CPU执行主程序时,可将不希望响应的执行主程序时,可将不希望响应的中断源屏蔽;当中断源屏蔽;当CPU执行某中断服务程序时,执行某中断服务程序时,可将不希望响应的比此优先级高的中断源屏蔽。可将不希望响应的比此优先级高的中断源屏蔽。62(2)特殊屏蔽方式特殊屏蔽方式特点:特点:CPU正在处理某一级中断时,只可对本级中断进行正在处理某一级中断时,只可对本级中断进行屏蔽,允许级别比它高的或比它低的中断源申请中屏蔽,允许级别比它高的或比它低的中断源申请中断。断。方法:

46、在某级中断服务程序中首先用方法:在某级中断服务程序中首先用OCW3设置该方式设置该方式(即(即D6D5=11),然后设置),然后设置OCW1使该级的中断申请使该级的中断申请被屏蔽,只有写入这两个控制字之后,才能使中断被屏蔽,只有写入这两个控制字之后,才能使中断屏蔽寄存器屏蔽寄存器IMR中该级中断位被屏蔽(中该级中断位被屏蔽(=1),不允),不允许发生同级中断,同时使中断服务寄存器许发生同级中断,同时使中断服务寄存器ISR相应位相应位置置0,允许比该级低级别的中断源申请中断。,允许比该级低级别的中断源申请中断。若想退出此方式,通过设置若想退出此方式,通过设置OCW3的的D6D5=10,再,再执行

47、输出指令即可。执行输出指令即可。使用情况:在中断处理过程中,需要动态改变系统的优先使用情况:在中断处理过程中,需要动态改变系统的优先级结构时。级结构时。63 4.程序查询方式程序查询方式 CPU利用查询命令(利用查询命令(OCW3中中D2=1)获得当前请)获得当前请求服务的优先级。此时求服务的优先级。此时8259A内部仍进行内部仍进行8级中断请求级中断请求的判优和屏蔽管理。查询命令发出后,执行一条输入的判优和屏蔽管理。查询命令发出后,执行一条输入指令,可得到查询字。指令,可得到查询字。D7=1 有中断请求有中断请求D7=0 无中断请求无中断请求当前发出中断请求级别当前发出中断请求级别最高的中断

48、信号最高的中断信号645.中断结束命令中断结束命令 根据不同的工作方式根据不同的工作方式8259A可以有几种不同的结可以有几种不同的结束方法。束方法。(1)自动中断结束方式()自动中断结束方式(AEOI)特点:中断服务寄存器特点:中断服务寄存器ISR的相应位清零是由硬件自的相应位清零是由硬件自动完成的。当某一级中断被动完成的。当某一级中断被CPU响应后,响应后,CPU送回第一个送回第一个INTA中断响应信号,使中断响应信号,使ISR的相应的相应位置位置1,当第二个,当第二个INTA负脉冲结束时,自动将负脉冲结束时,自动将ISR的相应位置的相应位置0。实现方法:通过将实现方法:通过将ICW4的的

49、D1位设置为位设置为1实现。实现。使用环境:适用不要求中断嵌套的情况。使用环境:适用不要求中断嵌套的情况。65(2)非自动中断结束方式()非自动中断结束方式(EOI)特点:中断返回前,必须用指令向特点:中断返回前,必须用指令向8259A发中断结束命发中断结束命令,即使令,即使ICW4的的D1=0。若级连,发。若级连,发2个。个。方法:首先将方法:首先将ICW4的的D1=0,定为正常中断结束方式,定为正常中断结束方式,然后用然后用OUT向向8259A的偶地址端口输出的偶地址端口输出OCW2操作操作控制字(控制字(OCW2的的D7D6D5=001),实现自动结束),实现自动结束命令。命令。使用环境

50、:一般的中断结束方式只能应用于全嵌套方式使用环境:一般的中断结束方式只能应用于全嵌套方式下,不能用于优先级自动循环方式和优先级特殊循下,不能用于优先级自动循环方式和优先级特殊循环方式。因为一般中断结束方式结束的中断是尚未环方式。因为一般中断结束方式结束的中断是尚未处理完的级别最高的中断。若中断级别改变,会使处理完的级别最高的中断。若中断级别改变,会使整个中断过程混乱。整个中断过程混乱。66(3)特殊中断结束方式)特殊中断结束方式特点:通过用指令发一中断结束命令,同时给出结束中特点:通过用指令发一中断结束命令,同时给出结束中断的中断源是哪一级,使该中断源的中断服务寄存断的中断源是哪一级,使该中断

51、源的中断服务寄存器器ISR的相应位置的相应位置0。使用环境:可应用在任何情况下,但要在中断处理中给使用环境:可应用在任何情况下,但要在中断处理中给出中断结束命令。出中断结束命令。使用方法:首先将使用方法:首先将ICW4的的D1=0,定为正常中断结束方,定为正常中断结束方式,然后通过将式,然后通过将OCW2的的D7D6D5=011或或111,D2D1D0位指出结束中断处理的中断源号,使该中位指出结束中断处理的中断源号,使该中断源在中断服务寄存器断源在中断服务寄存器ISR中的相应位清零。中的相应位清零。676.读读8259A 的状态的状态 8259A的的IRR、ISR、IMR的状态,可通过读命令读

52、的状态,可通过读命令读入入CPU,供用户了解,供用户了解8259A的工作情况。的工作情况。(1)在读命令之前,输出一个在读命令之前,输出一个OCW3,令其,令其RR=1,RIS=0(D1D0=10),可利用读命令读入中断请求寄存),可利用读命令读入中断请求寄存器器IRR的状态。若的状态。若RR=1,RIS=1(D1D0=11),可利用),可利用读命令读入中断服务寄存器读命令读入中断服务寄存器ISR的状态。的状态。(2)对奇地址端口(对奇地址端口(A0=1)进行读操作,可读得中)进行读操作,可读得中断屏蔽寄存器断屏蔽寄存器IMR的值。的值。687.5.5 由多片由多片8259A组成的主从式中断系

53、统组成的主从式中断系统 在一个系统中若中断源多于在一个系统中若中断源多于8个,必须采用多片个,必须采用多片8259A进行级连。其中有一片主进行级连。其中有一片主8259A,若干片从,若干片从8259A,可把,可把中断源扩展到中断源扩展到64个。个。769 7.5.6 8259A的编程实例的编程实例 1.初始化编程初始化编程 例例7-1:对:对IBM PC/XT机中使用的机中使用的8259A初始化编程。硬件连初始化编程。硬件连接如图。接如图。770设置设置ICW1为边沿触发,单片为边沿触发,单片8259A需要需要ICW4。方式字:方式字:00010011MOV AL,13HOUT 20H,AL设

54、置设置ICW2 类型码为类型码为 00001000(IR0)MOV AL,08HOUT 21H,AL设置设置ICW4,全嵌套方式,缓冲方式,全嵌套方式,缓冲方式,正常正常EOI。方式字:方式字:00001101MOV AL,0DHOUT 21H,AL根据系统要求根据系统要求初始化编程初始化编程如下:如下:在在IBM PC机中,只有一片机中,只有一片8259A,可接外部,可接外部8级中断,级中断,8259A的端口地址为的端口地址为20H和和21H。对。对8259A的初始化规定:边的初始化规定:边沿触发方式,缓冲方式,中断结束为沿触发方式,缓冲方式,中断结束为EOI命令方式,中断优命令方式,中断优

55、先权管理采用全嵌套方式。先权管理采用全嵌套方式。8级中断源类型码为级中断源类型码为08H-0FH。71 初始化完成后,初始化完成后,8259A处于全嵌套工作方式,可以响应外处于全嵌套工作方式,可以响应外部中断。根据要求部中断。根据要求设置设置8259A的操作命令字的操作命令字OCW1OCW2(1)如允许时钟,键盘,异步通信卡)如允许时钟,键盘,异步通信卡(COM1)中断,设置中断,设置OCW1为为0ECH(屏蔽字)。(屏蔽字)。11101100 MOV AL,0ECH OUT 21H,AL(2)由于)由于正常正常EOI,因此在中断服务程序结束后,返回断,因此在中断服务程序结束后,返回断点前必须点前必须对对OCW2写入写入00100000即即20H作结束中断操作命令。作结束中断操作命令。MOV AL,20H ;设置;设置OCW2的值为的值为20H OUT 20H,AL IRET ;中断返回;中断返回

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!