已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章输入输出系统及中断的使用方法 8 1输入输出接口概述 8 1 1输入输出接口的一般结构作为接口电路 通常必须为外部设备提供几个不同地址的寄存器 每个寄存器称为一个I O端口 Port 通常的I O接口结构示意图如下图所示 I O接口内部通常由数据 状态 控制三类寄存器组成 CPU可分别对数据 状态 控制三种端口寻址 并与之交换信息 这三种端口被简称为数据口 状态口 控制口 数据寄存器可分为输入缓冲寄存器和输出缓冲寄存器两种 输入时 由输入缓冲寄存器保存外设发往CPU的数据 输出时 由输出缓冲寄存器保存CPU发往外设的数据 有了输入 输出缓冲寄存器 就可以在高速工作的CPU与慢速工作的外设之间起协调与缓冲作用 状态寄存器主要用来保存外设现行的各种状态信息 从而让CPU了解数据传送过程中正在发生或最近已发生的状况 控制寄存器用来存放处理器发来的控制命令与其它信息 确定接口电路的工作方式和功能 接口电路主要实现如下一些基本功能 1 作为微机与外设间传递数据的中间缓冲器2 正确寻址与微机交换数据的外设3 提供微机与外设间交换数据所需的控制逻辑与状态信号 8 1 2I O端口及其寻址方式1 内存和I O端口统一编址内存和I O端口统一编址的方式是将I O端口地址与内存地址统一分配 同等看待 也可以认为是在内存中给I O端口分配了一个内存地址 这种编址方式的主要优点是 端口寻址手段丰富 对其数据进行操作可与对存储器操作一样灵活 且不需要专门的I O指令 这有利于I O程序的设计 I O寄存器数目与外设数目不受限制 而只受总存储容量的限制 另外 这种I O寻址方式读写控制逻辑比较简单 主要缺点是I O端口要占用存储器的一部分地址空间 使可用的内存空间减少 2 内存和I O端口独立编址内存和I O端口独立编址是将I O端口和内存分开编址 如图8 2所示 由于它们编址的独立性 所以微处理器需要提供两类访问指令 一类用于内部存储器访问 它具有多种寻址方式 另一类专用于I O端口的访问 这类指令往往比较简单 在这种寻址方式中 CPU访问I O端口必须采用专用I O指令 故也叫专用I O指令方式 这些专用的I O指令通常有两类 即输入指令IN 输出指令OUT及其相关指令组 这种编址方式的优点是 I O端口地址空间不占用内存地址空间 其端口地址线较少 对于硬件寻找I O端口的译码电路可以较简单 寻址速度较快 使用专用的I O指令使编制的程序更加清晰 便于理解和检查 缺点是 专用的I O指令类型少 程序设计灵活性较差 需要存储器和I O端口两套控制逻辑 增加了控制逻辑的复杂性 8 1 3CPU与外设之间的数据传送方式1 无条件传送方式无条件传送是一种最简单的程序控制传送方式 也称同步传送方式 当程序执行到输入输出指令时 CPU无需了解端口的状态 直接进行数据的传送 这种信息传送方式 主要用于对简单外设 或定时为已知且固定不变的低速I O接口 或不需要等待时间的I O设备进行操作 当CPU与外部设备交换数据时 总认为它们处于 就绪 状态 随时可进行数据传送 按这种方式传送信息时 外部设备必须已准备好 系统不需要查询外设的状态 即在输入时 只给出IN指令 而在输出时 仅给出OUT指令 这种传送方式的输入输出接口电路最简单 一般只需要设置数据缓冲寄存器和外设端口地址译码器就可以了 2 查询传送方式程序控制下的查询传送方式 又称异步传送方式 它在执行输入输出操作之前 需通过测试程序对外部设备的状态进行检查 当所选定的外设已准备 就绪 后 才开始进行输入输出操作 其工作流程包括查询和传送两个基本工作环节 在查询环节中 通过读取状态寄存器的标志位来检查外设是否 就绪 若没有 就绪 则程序不断循环 直至 就绪 后才继续进行下一步工作 在传送环节中 当查询环节完成后 将对数据口实现寻址 并通过输入指令从数据端口输入数据 或利用输出指令从数据端口输出数据 在查询传送方式中CPU与I O设备的关系是CPU主动 I O被动 即I O操作由CPU启动 其优点是 比无条件传送方式更容易实现数据的有准备传送 控制程序也容易编写 且工作可靠 适应面宽 但由于需要不断测试状态信息 使大量CPU工作时间被查询环节消耗掉 导致传送效率较低 在CPU负担不重 所配外设对象不多 实时性要求不太高的情况下可使用这种传送方式 1 查询式输入由于CPU与I O设备的工作往往不同步 故当CPU执行输入操作时 很难保证外设已经准备好输入信息 同样 CPU在执行输出操作时 也很难保证外设已准备好接收输出信息 所以 在程序控制下的传送方式 必须在传送前先检查外设的状态 对查询传送方式 接口部分除了有数据传送的端口外 还必须有传送状态信息的端口 其输入接口电路如图8 5所示 8位锁存器与8位三态缓冲器构成数据寄存器 该接口的输入端连接输入设备 输出端直接与系统的数据总线相连 状态寄存器由1位锁存器和1位三态缓冲器构成 输入设备可通过控制信号对该状态口进行控制 CPU也可通过数据线D0访问该状态口 具体工作过程如下 当输入设备的数据已经准备好后 一方面将数据送入8位锁存器 另一方面对D触发器触发 使状态信息标志位D0为1 当CPU要求外设输入信息时 先检查状态信息 若数据已经准备好 则输入相应数据 并使状态信息清0 否则 等待数据准备 就绪 查询式输入的相应程序段为 NEXTIN INAL STATUS PORT 从状态口输入状态信息TESTAL 01H 测试标志位是否为1JZNEXTIN 未就绪 继续查询INAL DATA PORT 从数据端口输入数据 2 查询式输出当有信息输出时 与查询输入一样 CPU必须了解外设此时的状态 若外设有空 则执行输出指令 否则就继续查询 直至有空为止 因此 查询式输出方式的接口电路同样必须包含状态信息端口 具体接口电路如图8 7所示 8位锁存器作为数据寄存器 其输入端与数据总线相连 输出端连接输出设备 与查询式输入一致 状态寄存器同样由1位锁存器和1位三态缓冲器构成 输出设备可通过另外的信号线对该状态口进行控制 CPU则可利用数据线D7输入该状态口的信息 具体工作过程如下 当输出设备将数据输出后 会发出一个ACK信号 使D触发器翻转为0 CPU查询到这个状态信息后 便知道外设空闲 可以执行输出指令 将新的输出数据发送到数据总线上 同时把数据口地址发送到地址总线上 由地址译码器产生的译码信号和相 与 后 发出选通信号 将输出数据送至8位锁存器 同时 将D触发器置为1 并通知外设进行数据输出操作 查询式输出的相应程序段为 WAIT1 INAL STATUS PORT 从状态口输入状态信息TESTAL 80H 测试标志位D7JNEWAIT1 忙 继续查询MOVAL BUF 从缓冲区BUF取数据OUTDATA PORT AL 从数据端口输出 3 中断传送方式在程序查询传送方式中 由于CPU要等待I O系统完成数据传输任务 故在此期间 CPU需不断查询输入输出系统的状态 若外设没有准备好 CPU就必须等待 且不能干其他工作 大大降低了工作效率 这对CPU资源的使用造成很大浪费 使整个系统性能下降 为弥补这种缺陷 提高CPU的使用效率 在I O传输过程中 可采用中断传输机制 即CPU平时可以忙于自己的事务 当外设有需要时向CPU提出服务请求 CPU响应后 转去执行中断服务子程序 待中断服务程序执行完毕后 CPU重新回到断点 继续处理被临时中断的事务 在这种情况下 CPU与外设可同时工作 大大提高其使用效率 4 DMA方式在前几种程序控制的传送方式中 所有传送均通过CPU执行指令来完成 而每条指令均需要取指时间和执行指令时间 无形中降低了数据交换速度 况且CPU的指令系统仅支持CPU与存储器 或者CPU与外设间的数据传送 当外设需要与存储器交换数据时 需要利用CPU做中转 使得传输速度降低 为解决这个问题 减少不必要的中间步骤 可采用DMA DirectMemoryAccess 传送方式 DMA方式又叫直接存储器存取方式 即在外设与存储器间传送数据时 不需要通过CPU中转 由专门的硬件装置DMA控制器 DMAC 即可完成 由于这种传送是在硬件控制下完成 无需CPU的介入 故具有较高的工作效率 伴随着大规模集成电路技术的发展 DMA传送可以应用于存储器与外设间的信息交换 并扩展到两个存储器之间 或者两种高速外设之间进行信息交换 1 DMA传送的工作原理DMA方式的工作流程如下 当外设把数据准备好以后 通过接口向DMA控制器发出一个请求信号DMARQ DMA申请 DMA控制器收到此信号后 便向CPU发出总线请求 BUSRQ 信号 CPU完成现行的机器周期后相应发出BUSAK信号 交出对总线的控制权 DMA控制器收到此信号后便接管总线 并向I O设备发出DMA请求的响应信号 DMAAK 完成外设与存储器的直接连接 而后按事先设置的初始地址和需传送的字节数 在存储器和外设间直接交换数据 并循环检查传送是否结束 直至数据全部传送完毕 2 DMA操作方式 1 单字节方式在这种操作方式下 DMA控制器操作每次均只传送一个字节 即获得总线控制权后 每传送完一个字节的数据 便将总线控制权还给CPU 按这种工作方式 即使有一个数据块要传送 也只能传送完一个字节后 由DMA控制器重新向CPU申请总线 2 成组传输方式成组传输操作方式也叫请求方式或查询方式 这种方式以有DMA请求为前提 能够连续传送一批数据 在此期间 DMA控制器一直保持总线控制权 直至全部数据块传输完才释放总线 显然 这种方式传输数据时 CPU实际上是处于停止状态 为了不影响CPU的使用效率 该方法仅适用于数据传输率较高的I O设备 3 交替访存方式如果系统采用高速缓冲存储器 使CPU的工作周期比主存长得多 则可采用CPU与DMA交替访存的方式 在这种方式下 CPU与DMA各自有自己的主存地址寄存器 数据缓冲寄存器和读写信号控制寄存器 此时 DMA传输对CPU的工作无任何影响 是最高效的方式 8 2 1中断系统的基本概念1 中断的基本概念中断是这样一个过程 CPU正在执行程序的过程中 在CPU内部或外部出现某种事件 中断源 需要处理时 中止正在执行的程序 断点 转去执行请求中断的那个事件的处理程序 中断服务子程序 执行完后 再返回被暂时中止执行的程序 中断返回 从断点处继续执行 8 2中断处理技术 2 中断系统及其作用 功能中断系统是实现中断功能的软 硬件的集合 整个中断过程由计算机的中断系统配合用户设计的中断服务子程序来实现 中断系统在微机中可以实现并行 实时 故障等处理 微机的中断系统具有以下功能 1 中断响应 当中断源有中断请求时 CPU能决定是否响应该请求 接电话的例子中 即使电话响 人也可以决定是否接电话 2 断点保护和中断处理 在中断响应后 CPU能保护断点 并转去执行相应的中断服务子程序 3 中断优先权排队 当有两个或两个以上中断源同时申请中断时 应能给出处理的优先顺序 保证先执行优先级高的中断 4 中断嵌套 在中断处理过程中 若发生新的中断请求 CPU应能识别中断源的优先级别 在高级的中断源申请中断时 能中止低级中断源的服务程序 而转去响应和处理优先级较高的中断请求 处理结束后再返回较低级的中断服务了程序 这一过程称中断嵌套或多重中断 3 中断源及其分类在中断源 如中断传送接口外设 实时时钟等 1 外部设备故障中断源 如电源掉电 2 硬件中断系统中能引起中断的事件称为中断源 中断源可以是外部事件 从CPU的中断请求信号引脚输入 对80X86芯片来说 即从NMI INTR引脚引入 也可以是CPU内部事件 由软件引起 根据其用途分 一般包括以下几种 3 软件中断源 如运算错 程序错 中断指令等 根据是否可屏蔽分为以下两种 可屏蔽中断源 可通过指令确定CPU当前是否响应的 外部 中断源 非屏蔽中断源 一旦发生 CPU必须响应的 外部 中断源 4 中断优先权与中断嵌套微机系统中有两个或两个以上中断源时 要按轻重缓急的顺序进行排列 分别给予不同的优先等级 在中断响应时按优先权排队次序进行处理 除了多个中断源同时申请中断需要排队外 中断嵌套时 也需要进行优先权排队 只有高一级的中断才可以中断较低级的中断服务子程序 1 软件查询方式采用软件查询中断方式时 中断优先权由查询顺序决定 最先查询的中断源具有最高的优先权 如图8 11所示 2 简单硬件方式 菊花链式中断优先权电路其原理是在每个中断设备的接口电路中增加一个称为菊花链的逻辑电路 用于控制中断响应信号的传递 排在前面 靠近CPU 的设备优先权最高 其余依次降低 3 专用硬件方式目前 微机系统中解决中断优先权最常用的方法是采用可编程的中断控制器8259A 8 2 280X86CPU的中断系统1 内部中断内部中断是由CPU内部事件引起的中断 1 溢出中断 2 除法出错中断 3 单步中断 4 断点中断 5 指令中断 2 外部中断外部中断也叫硬件中断 是CPU的外部中断请求信号引脚上输入有效的中断请求信号引起的 1 非屏蔽中断NMI 2 可屏蔽中断INTR3 中断向量表8086中断系统采用的是向量型中断方式 每个中断源都有一个为它服务的中断服务子程序 8086最多能管理256个中断 统一编号为0 255 称为中断类型号或中断向量号 是识别中断源的惟一标志 每一个中断服务子程序都有一个确定的入口地址 该地址称为中断向量 把系统中所有中断向量集中起来 按中断类型号从小到大的顺序存放到存储器的某一区域内 这个存放中断向量的存储区叫做中断向量表 亦即中断入口地址表 4 CPU响应中断的流程 1 中断请求与响应阶段 2 中断自动处理阶段 3 中断服务阶段 4 中断返回 5 中断服务子程序1 外部中断服务子程序外部中断是随机发生的 其中断服务的主要步骤如下 1 保护现场 2 开放中断 3 中断处理 4 关闭中断 5 发中断结束命令 向中断控制器写中断结束命令字 以通知中断控制器中断已结束 6 恢复现场 依次将被保护的寄存器内容从堆栈中弹出 7 中断返回 用IRET指令 即实现中断返回 2 内部中断内部中断服务的主要步骤如下 1 考虑切换堆栈 由于内部中断服务子程序往往在开放中断状态下执行 并且可能要占用大量的堆栈空间 所以考虑切换堆栈 切换堆栈对实现中断嵌套等较为有利 2 开放中断 开放中断后 CPU就可响应可屏蔽的外部中断请求 进行中断嵌套 要注意嵌套的合理性 3 保护现场 4 中断处理 5 恢复现场 6 堆栈切换 如果在开始时 切换了堆栈 那么也要重新切换回原堆栈 7 中断返回 用IRET指令返回 8 2 38259A可编程中断控制器1 8259A的功能8259A具有强大的中断管理功能 主要体现在 具有8级优先权 并可通过级联扩展至64级 可通过编程屏蔽或开放接于其上的任意一个中断源 在中断响应周期能自动向CPU提供可编程的标识码 如8086的中断类型号 可编程选择各种不同的工作方式 2 8259A的内部结构与引脚信号1 8259A的内部结构8259A的内部结构框图如图8 15所示 由以下8个功能模块组成 1 中断请求寄存器 IRR 2 中断屏蔽寄存器 IMR 3 优先级分析器 PR 4 中断服务寄存器 ISR 5 控制逻辑 6 读 写逻辑 7 数据总线缓冲器 8 级联缓冲 比较器 2 8259A的引脚信号8259A是28脚DIP封装的芯片 引脚信号可分为4组 1 与CPU总线相连的信号 2 与外部中断设备相连的信号 3 级联信号 4 其他 3 8259A的工作流程8259A的工作流程如下 1 中断源产生中断请求 使8259A的IRR相应位置1 2 经IMR屏蔽电路处理后 IRRAND 送PR 3 PR检测出最高的中断请求位 并经过嵌套处理 决定是否发出INT信号 4 若可以发出INT信号 则控制逻辑将INT信号送CPU的INTR引脚 5 若CPU开放中断 则在执行完当前指令后 CPU进入中断响应周期 发出两个中断响应信号 6 8259A在收到第一个中断响应信号后 控制逻辑使相应的ISR位置1 相应的IRR位清0 7 8259A在收到第二个中断响应信号后 控制逻辑将中断类型号送数据总线 若8259A工作在AEOI 自动中断结束 模式 则使相应的ISR位清0 8 CPU读取该中断类型号后 查中断向量表 转去执行相应的中断服务子程序 3 8259A的工作方式1 中断触发方式 1 上升沿触发方式 2 电平触发方式2 中断屏蔽方式 1 普通屏蔽方式 2 特殊屏蔽方式3 优先级设置方式 1 一般全嵌套方式 2 特殊全嵌套方式 3 优先权自动循环方式 4 优先权特殊循环方式4 中断结束处理方式 1 自动结束方式 AEOI 2 一般的中断结束方式 3 特殊的中断结束方式5 连接系统总线方式 1 缓冲方式 2 非缓冲方式6 程序查询方式 4 8259A的级联微机系统中 可以使用多片8259A级联 使中断优先级从8级扩大到最多64级 级联时 只能有一片8259A为主片 其余都是从片 从片最多为8片 主片8259A的CAS2 CAS0作为输出线 可直接或通过驱动器连接到从片的CAS2 CAS0 每个从片的INT连接到主片的IR7 IR0中的一个 主片的INT端连接CPU的INTR端 在主从式级联系统中主片和从片都必须通过设置初始化命令字进行初始化 通过设置工作方式命令字设置工作方式 5 8259A的控制字与初始化编程8259A有两种控制字 初始化字和操作命令字 可对它进行初始化及工作方式设定 8259A的编程也可分为两部分 即初始化编程和工作方式编程 8259A的初始化流程如图8 17所示 1 8259A初始化与初始化命令字 ICW 1 初始化字ICW1 2 中断向量字ICW2 3 级联控制字ICW32 工作方式编程与操作命令字OCW 1 屏蔽控制字OCW1 2 优先级循环和非自动中断结束方式控制字OCW2 3 屏蔽方式和读状态控制字OCW3 3 8259A编程举例例8 1设8259A应用于8088系统 中断类型号为08H 0FH 它的偶地址为20H 奇地址为21H 设置单片8259A按如下方式工作 电平触发 一般全嵌套 普通EOI 非缓冲工作方式 试编写其初始化程序 分析 根据8259A应用于8088系统 单片工作 电平触发 可得 ICW1 00011011B 根据中断类型号08H 0FH ICW2 00001000B 根据一般全嵌套 普通EOI 非缓冲工作方式 ICW4 00000001B 写入此三字 即可完成初始化 程序如下 MOVAL 1BH 00011011B 写入ICW1OUT20H ALMOVAL 08H 00001000B 写入ICW2OUT21H ALMOVAL 01H 00000001B 写入ICW4OUT21H AL 例8 2设8259A应用于8086系统 采用主从两片级联工作 主片偶地址为20H 奇地址为22H 这里的偶地址和奇地址是相对于8259A的片内地址而言的 中断类型号为08H 0FH 从片偶地址为0A0H 奇地址为0A2H 中断类型号为70H 77H 主片IR3和从片级联 要实现从片级全嵌套工作 试编写其初始化程序 分析 根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 干眼症药物治疗后的护理方法
- 护理学药理学中药与西药协同应用护理
- 危险源辨识及风险评价表(建筑施工)
- 基于质量指标的护理绩效提升方法
- 生鲜超市收购协议书
- 企业正式员工劳务合同
- 绍兴大型仓库租赁合同
- 支撑梁破除合同范本
- 报废轮胎收购协议书
- 物流公司禁毒协议书
- 2025年司法考试-行政诉讼法试题及答案
- 新加坡建筑安全考试题库及答案解析
- 小儿佝偻病课件限时
- Unit 1 Making friends Part C Reading time(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 河道消防应急预案
- 员工离职与法律风险防范
- 2025-2026学年北京版四年级数学上册期中素养综合测试卷(试题)(含答案)
- 期中家长会课件:见证成长 英你精彩(英语科目)
- 德国宝马品牌介绍
- 应聘地铁站务员考试题库及答案
- 钢结构工期延误应对方案
评论
0/150
提交评论