1 / 44

输入 / 输出和中断

输入 / 输出和中断. 第 7 章. 7.1 外设接口的一般结构 7.2 CPU 与外设交换数据的方式 7.3 中断 7.4 8086/8088 的中断系统 7.5 8259A 可编程中断控制器 6.6 8237DMA 控制器. 外设接口的一般结构. 7.1. ● 一个简单的外设接口框图如图 7-1 所示,从图中可以看出 CPU 通过一个外设接口同外设之间交换的信息主要有三类: 数据信息、状态信息、控制信息。. 7.1.1 数据信息. ● 在微型机中,数据大致为三种基本类型 :. 模拟量. 开关量. 数字量. 状态信息.

trixie
Télécharger la présentation

输入 / 输出和中断

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 输入/输出和中断 第 7 章 7.1 外设接口的一般结构 7.2 CPU与外设交换数据的方式 7.3 中断 7.4 8086/8088的中断系统 7.5 8259A可编程中断控制器 6.6 8237DMA控制器

  2. 外设接口的一般结构 7.1 ●一个简单的外设接口框图如图7-1所示,从图中可以看出CPU通过一个外设接口同外设之间交换的信息主要有三类: 数据信息、状态信息、控制信息。 7.1.1 数据信息 ●在微型机中,数据大致为三种基本类型: 模拟量 开关量 数字量

  3. 状态信息 7.1.2 ● 状态信息表示外设当前所处的工作状态 例如 ● READY(准备好信号)表示输入设备已经准备好信息,CPU可执行输入指令从该外设输入数据。 BUSY(忙信号)表示输出设备正在输出信息,即在“忙”着,同时也等于指示CPU等待。 控制信息 7.1.3 ●控制信息是由CPU发出的,用于控制I/O接口的工作方式以及外设的启动和停止等等。状态信息和控制信息以及数据信息,通常都以数据形式通过数据总线传送,这些信息在I/O接口中分别存放在不同的端口中。

  4. CPU与外设交换数据的方式 7.2 7.2.1 程序控制传递方式 ●程序控制的数据传送分为无条件传送、查询传送和中断传送。 ●这类传送方式的特点是,以CPU为中心,数据传送的控制来自CPU,通过预先编制好的输入或输出程序(传送指令和I/O指令)实现数据的传送 。 程序控制传递方式 • 1. 无条件传送方式 • 查询传送方式 • 中断传送方式

  5. 无条件传送方式 ● 无条件传送方式又称同步传送方式。主要用于外设工作的时间已知的场合,外设必须在微处理器限定的指令时间内准备就绪,并完成数据的接收或发送。 ●通常采用的办法是: 把I/O指令插入到程序中,当程序执行到该I/O指令时,外设必定已为传送数据作好了准备,于是在此指令时间内完成数据传送任务。 查询传送方式 ●查询传送方式又称异步传送方式。

  6. 中断传送方式 ●完成一次传送过程的步骤如下: • 通过执行一条输入指令,读取所选外设的当前状态。 • (2) 根据该设备的状态决定程序去向 ● 利用中断来实现CPU与外设之间的数据传送,这就是中断传送方式。 ● 采用中断传送方式时,CPU从启动外设到外设准备就绪这段时间,不像查询方式一样处于等待状态,而仅仅是在外设准备好数据传送的情况下才中止CPU执行的主程序,在一定程度上实现了主机和外设的并行工作。

  7. DMA(直接存储器存取)传递方式 7.2.2 ● 在外设和内存之间直接传送数据的方式,即 DMA传送方式。 ● DMA(Direct Memory Access)是一种不需要CPU干预也不需要软件介入的高速数据传送方式。 DMA操作的基本方法 周期挪用(Cycle Stealing) 周期扩散 CPU停机方式

  8. 周期挪用(Cycle Stealing ) ● 利用CPU不访问存储器的那些周期来实现DMA操作,此时DMAC可以使用总线而不用通知CPU也不会妨碍CPU的工作。这种方法的关键是如何识别合适的可挪用的周期,以避免同CPU的操作发生重叠。 周期扩散 ● 这种方法会使CPU的处理速度减慢,而且CPU时钟周期的加宽是有限的。因此用这种方法进行DMA传送,一次只能传送一个字节。 CPU停机方式 ● 这是最常用的、最简单的传送方式,大部分DMAC都采用这种方式。

  9. DMA的传送方式 通常,大部分DMAC都有三种DMA 传送方式: 成组传送方式 请求传送方式 单字传送方式

  10. 单字节传送方式 ● 每次DMA传送只传送一个字节的数据,传送后释放总线由CPU控制总线至少一个完整的总线周期。以后又测试DMA请求线DREQ,若有效,再进入DMA周期。 成组传送方式 ● 一个DMA请求可以传送一组信息,这一组信息的字节数由编程决定(在DMAC初始化时),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放弃总线控制权,直到整个数组传送完。 请求传送方式 ● 又称查询传送方式。

  11. DMAC(DMA控制器)的基本功能 DMAC应该具有如下功能: (1) 能接收外设的请求,向CPU发出DMA请求信号。 (2) 当CPU 发出DMA响应信号后,DMAC接管对总线的控制,进入DMA方式。 (3) 能寻址存储器,即能输出地址信息和修改地址。 (4) 能向存储器和外设发生相应的读/写控制信号。 (5) 能控制传送的字节数,判断DMA是否结束。 (6) 在DMA传送结束后,能结束DMA请求信号,释放总线,使CPU恢复正常工作。

  12. 中断 7.3 7.3.1 概述 ● 中断是外设随机地(指主程序运行到任何一条指令时)或程序预先安排产生中断请求信号,暂停CPU正在运行的程序,转入执行称为中断服务的子程序,中断服务完毕后,返回到主程序被中断处继续执行的过程。 中断源 ●引起中断的事件称为中断源,通常中断源有以下几种: • 输入、输出设备: 如键盘、显示器和打印机等; • 数据通道: 如磁带等; • 实时控制过程中的各种参数; • 故障源: 如掉电保护等; • (5) 控制系统的现场测试信号以及软件中断。

  13. 功能 ● 为了满足上述各种条件下的要求,中断系统应具有以下 : 1.能实现中断响应、中断服务和中断返回 2.能实现中断优先级排队 3.能实现中断嵌套

  14. 中断过程与中断管理 7.3.2 1.中断过程 ● 对于不同的微机系统,CPU中断处理的具体过程不尽相同,但是一个完整的中断基本过程应包括:中断请求、中断判优、中断响应、中断处理及中断返回等五个基本过程。 中断响应 中断请求 中断判优 中断处理 中断返回

  15. 中断优先权 2. (1) 软件查询方式 ●软件查询优先方式是最简单的中断优先处理方式。图7.5显示了采用软件查询方式的接口电路。 (2)硬件优先权排队电路 ●硬件优先权排队方式常用的有两种: ① 简单硬件方式——菊花链法或链式优先权排队电路。链式优先权排队逻辑电路如图7.7所示。 ② 专用硬件方式——可编程的中断控制器。采用可编程中断控制器,是当前微型计算机系统中解决中断优先权管理的常用办法。详细说明将在本章第5节介绍。

  16. 图7-6 软件查询方式流程图 保留现场 Y 外设A中断服务程序 N A申请服务? Y N 外设B中断服务程序 B申请服务? Y N 外设C中断服务程序 C申请服务? 恢复现场

  17. 8086/8088的中断系统 7.4 7.4.1 中断结构 1.中断分类 ●8086/8088CPU可以处理256种类型的中断源,这些中断源可分为硬件中断和软件中断两大类。 2.中断向量表 ●在8086系统中,允许引入256种类型中断源(类型码为0~255),相应有256个中断服务程序首址。存放中断地址的一段内存空间称中断向量表。

  18. 内部中断——软中断 7.4.2 ●在8086/8088系统中,通过执行中断指令或由CPU本身启动的中断称为内部中断(也称软件中断)。除单步中断外,内部中断无法用软件禁止,即不受中断允许标志IF的影响。 1.内部中断的类型 (1) 0型中断——除法出错中断 (2) 1型中断——单步中断 (3) 3型中断——断点中断 (4) 4型中断——溢出中断 (5) INT n指令中断

  19. 内部中断的处理过程 2. ●8086/8088中的各种中断的响应和处理过程是不相同的。主要区别在于如何获取相应的中断类型码。 ●对于专用中断,中断类型码是自动形成的。 几种类型码为:类型0、1、3、4 ●对于INT n指令,其类型码为指令中给定的n。

  20. 外部中断——硬中断 7.4.3 ●8086/8088CPU为外部设备提供了两条硬件中断信号线,即NMI和INTR中断请求信号。 1.外部中断的响应及中断响应周期时序 ●CPU采样到非屏蔽中断请求时,自动提供中断类型号2,然后根据中断类型号,查找中断向量表指针,其后的处理与内部中断一样。 2.外部中断处理过程 ● 如果把CPU中断响应周期的动作和前面讲到的中断响应过程结合起来,当一个可屏蔽中断被响应时,CPU实际执行了7个总线周期。

  21. CPU实际执行了7个总线周期 (1) 执行第一个INTA周期 (2) 执行第二个INTA周期 (3) 执行一个总线写周期 (4) 执行一个总线写周期 (5) 执行一个总线写周期 (6) 执行一个总线读周期 (7) 执行一个总线周期,从中断向量表中取出中断服务程序入口地址的段值送CS。对于非屏蔽与软中断跳过第(1)、(2)步,从第(3)步开始执行到第(7)步。

  22. 各类中断的优先权及中断响应 7.4.4 ● 8086/8088系统中,中断优先权排队次序从高到低为: 除 法出错、INTn、INTO、NMI、INTR、单步中断。除单步之外的内部优先权最高,其次是非屏蔽中断,再次是可屏蔽中断,而单步最低。 中断响应和处理流程如图7-10所示。

  23. 8259A可编程中断控制器 7.5 7.5.1 8259A的功能、结构及工作原理 1.功能 ● Intel 8259A 是与8086系列CPU兼容的可编程中断控制器,它的主要功能为: (1) 具有8级优先权控制,通过级连可扩展至64级优先权控制。 (2) 每一级中断都可以屏蔽或允许。 (3) 在中断响应周期,8259A可提供相应的中断向量号(中断类型号)。 (4) 8259A的工作方式,可通过编程来进行选择。

  24. 结构 它由 组成 2. (1) 8259A的内部结构 中断请求寄存器IRR(Interrupt Request Register) 优先权电路 中断服务寄存器ISR(INService Register) 中断屏蔽寄存器IMR(Interrupt Mask Register) 数据总线缓冲器 读写电路 控制逻辑和级连缓冲/比较器

  25. 8259A的引线 (2 ) 8259A是28个引脚的双列直插芯片,其引脚如图 7-12所示。 ●D7~D0——双向三态数据线,它可直接与数据总线连接。 ●IR0~IR7——中断请求输入线,其中IR0优先权最高,IR7最低。 ●INT——中断请求输出,接CPU的中断请求线INTR。 ●INTA—— 中断响应输入,接受CPU发来的中断响应信号。

  26. 8259A的工作原理 ● CS——片选信号线,当该脚为低电平时,8259A被选中。 ● WR——写控制信号线,当为低电平时,CPU向8259A写入控制信号。 ● RD——读控制信号线,当为低时,可将8259A内部寄存器的信息读至数据总线。 ● A0——用以选择8259A内部不同寄存器。通常与地址总线A0相连接。 ● CAS0~CAS2级连信号,对于主8259A,它们是输出线,而对于从8259A,它们是输入线。 ● SP/EN从程序/缓冲器允许信号,是一个双功能信号。 3. ●8259A的工作原理是通过其内部各处理部件的工作过程来体现的。

  27. 8259A的编程 7.5.2 8259A的编程分两部分: 初始化编程 工作方式编程 1. 8259A的初始化编程 ● 8259A的初始化命令字共4个(ICW1~ICW4)。不是任何情况下都需要设置4个命令字,可根据8259A的使用情况来选取,它们设置过程如图7.13所示。

  28. 写初始化命令字ICW1 (1) 图7-14 ICW1的格式 ——芯片控制字 (2) 写初始化命令字ICW2 ——中断类型控制字用来定义中断类型码的高5位 其格式如图7-15所示 (3) 写初始化指令字ICW3 ——主/从片初始化 图7-16 ICW3的格式 (4) 写初始化命令字ICW4 ——方式控制字 图7-17 ICW4 的格式

  29. 图7-14 ICW1的格式 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 = 需要ICW4 0 = 不需要ICW4 ICW1识 别 位 偶地址 1 = 单片 0 = 级连 调用地址间隔 1 = 间隔为4 80X86中不用 0 = 间隔为8 1 = 电平触发 0 = 边沿触发 中断向量地址 的A7~A5 (只用于MCS-80/85)

  30. 图7-15 ICW3的格式 A0 IR0 000 中断类型 自动填入 奇地址 IR1 001 . . . IR7 111

  31. 8259A的操作命令字 2. (1) 操作命令字OCW1—屏蔽操作命令字 ●该命令字用来设置或清除对中断的屏蔽称中断屏蔽命令字。 格式如图7-18所示。 (2) 操作命令字OCW2——中断方式命令字 ●该命令字用来设置优先级循环和中断结束方式。 其格式如图7-19所示。 (3)操作命令字OCW3——状态操作命令字 ●该操作命令字功能有三方面:设置和撤销特殊屏蔽方式、设置中断查询方式、设置对8259A内部寄存器的读出命令。 OCW3的具体格式如图7-20所示。

  32. 图7-18 OCW1的格式 A0 D7 D6 D5 D4 D3 D2 D1 D0 中断屏蔽 1 = 置屏蔽 0 = 复位屏蔽 奇地址

  33. 8259A的工作方式 7.5.3 ● 8259A具有非常灵活的中断管理方式,可满足用户的各种不同的要求。 ● 中断优先权的管理是中断管理的核心问题。 ●8259A中对中断优先权的管理可概括为完全嵌套方式、自动循环方式、中断屏蔽方式及查询方式。 1.中断嵌套方式 (2) 特殊全嵌套方式 (1) 全嵌套方式

  34. 中断优先级循环方式 2. 8259A中有两种改变优先权的办法 (1) 自动循环方式 (2) 特殊循环方式 3. 中断屏蔽 (1) 普通屏蔽方式 (2) 特殊屏蔽方式 4. 程序查询方式

  35. 中断结束命令 5. 根据不同的工作方式8259A可以有几种不同的结束方法 (1) 自动中断结束方式(AEOI) (2) 非自动中断结束方式(EOI) (3)特殊中断结束方式 6. 读8259A 的状态

  36. 8259A的编程实例 7.5.4 由多片8259A组成的主从式中断系统 7.5.5 1.初始化编程 例 7-1 对IBM PC/XT机中使用的8259A初始化编程 2.应用实例(略) 见课本

  37. 8237DMA控制器 7.6 ●Intel 8237A是一种高功能的可编程的DMA控制器,采用主5MHz的8237A传送速度可达到1.6Mb/s。 7.6.1 主要功能 (1) 在一个片子中有4个独立的DMA通道,每个通道均可独立地传送数据。 (2) 每个通道的DMA请求都可以分别允许和禁止。 (3) 每个通道的DMA请求有不同的优先权,优先权可以是固定的,也可以是旋转的。 (4) 每一个通道一次传送的最大长度可达64K字节。可以在存储器与外设间进行数据传送,也可以在存储器的两个区域之间进行传送。

  38. 主要功能 (5) 8237A的DMA传送有以下四种方式: ②数据块传送 ①单字节传送 ④级连方式 ③请求传送方式 (6)有一条结束处理的输入信号EOP,允许外界用此输入端来结束DMA传送或重新初始化。 (7)8237A可以级连,任意扩展通道。

  39. 8237A的结构和工作原理 7.6.2 1. 8237A的编程结构和引脚 (1)8237A的编程结构 (2)8237A的引脚信号 2. 8237A的工作原理 (1)8237A的工作模式和模式寄存器的格式 (2)控制寄存器的格式 (3)状态寄存器的格式 (4) 请求寄存器和屏蔽寄存器的格式 (5) 复位命令和清除先/后触发器命令 (6) 8237A各寄存器对应的端口地址

  40. 图7-32 屏蔽寄存器的格式 通道选择 不 用 00 = 通道0 屏蔽设置: 01 = 通道1 1 = 设屏蔽位 10 = 通道2 0 = 去除屏蔽位 11 = 通道3

  41. 8237A的编程和应用举例 7.6.3 ●为了学习8237A的编程方法,下面我们以IBM PC/XT系统中的8237A的应用为例,说明8237A的编程方法。

  42. 小结1 7.1 外设接口的一般结构 7.1.1 数据信息 ●在微型机中,数据大致为三种基本类型。 7.1.2 状态信息 ●状态信息表示外设当前所处的工作状态。 7.1.3 控制信息 ●控制信息是由CPU发出的,用于控制I/O接口的工作方式以及外设的启动和停止等等。 7.2.1 程序控制传递方式 ●程序控制的数据传送分为无条件传送、查询传送和中断传送。 7.2 CPU与外设交换数据的方式 7.2.2 DMA(直接存储器存取)传递方式

  43. 小结2 7.3 中断 7.4.3 外部中断——硬中断 7.3.1 概述 ●外部中断的响应及中断响应周期时序外部中断处理过程 ●中断的概念 7.3.2 中断过程与中断管理 7.5 8259A可编程中断控制器 7.5.1 8259A的功能、结构及工作原理 ●中断过程 ●中断优先权 ●功能 ●结构 7.4 8086/8088的中断系统 7.4.1 中断结构 7.5.2 8259A的编程 ●中断分类 ●中断向量表 ●8259A的编程分两部分 7.5.3 8259A的工作方式 7.4.2 内部中断——软中断 ●完全嵌套方式、自动循环方式、中断屏蔽方式及查询方式。 ●内部中断的类型 ●内部中断的处理过程

  44. 小结3 7.5.4 由多片8259A组成的主从式中断系统 7.5.5 8259A的编程实例 ●初始化编程 ●应用实例 7.6 8237DMA控制器 7.6.1 主要功能 ●七项 7.6.2 8237A的结构和工作原理 ●8237A的编程结构和引脚 ●8237A的工作原理

More Related