第7章 输入输出和中断.ppt_第1页
第7章 输入输出和中断.ppt_第2页
第7章 输入输出和中断.ppt_第3页
第7章 输入输出和中断.ppt_第4页
第7章 输入输出和中断.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章输入 输出和中断 7 1外设接口的一般结构 CPU AB DB CB 数据 状态 控制 7 1 1数据信息 在微型机中 数据大致为三种基本类型 7 1 2状态信息 READY 准备好信号 表示输入设备已经准备好信息 CPU可执行输入指令从该外设输入数据 BUSY 忙信号 表示输出设备正在输出信息 即在 忙 着 同时也等于指示CPU等待 状态信息表示外设当前所处的工作状态 7 1 3控制信息 控制信息是由CPU发出的 用于控制I O接口的工作方式以及外设的启动和停止等等 状态信息和控制信息以及数据信息 通常都以数据形式通过数据总线传送 这些信息在I O接口中分别存放在不同的端口中 7 2CPU与外设交换数据的方式 7 2 1程序控制传递方式 这类传送方式的特点是 以CPU为中心 数据传送的控制来自CPU 通过预先编制好的输入或输出程序 传送指令和I O指令 实现数据的传送 无条件传送方式 无条件传送方式又称同步传送方式 主要用于外设工作的时间已知的场合 外设必须在微处理器限定的指令时间内准备就绪 并完成数据的接收或发送 通常采用的办法是 把I O指令插入到程序中 当程序执行到该I O指令时 外设必定已为传送数据作好了准备 于是在此指令时间内完成数据传送任务 0 使线圈P电流 断 1 使线圈P电流 通 START MOVDX 0100HLEABX DSTORXORAL ALAGAIN MOVAL DLOUT20H ALCALLNEARDELAY1MOVAL DHOUT20H ALCALLNEARDELAY2INAX 10HMOV BX AXINCBXINCBXRCLDH 1JNCAGAIN 查询传送方式 查询传送方式又称异步传送方式 完成一次传送过程的步骤如下 U4 b2b1b0 000 IN0选通 b2b1b0 111 IN7选通b4 1 启动A D b4 0 停止A D U2 b0 1 转换结束 b0 0 转换未结束 START MOVDL 0F8HMOVDI OFFSETDSTORAGAIN MOVAL DLANDAL 0EFHOUT4 ALCALLDELAYMOVAL DLOUT4 ALPOLL INAL 2 查询过程开始SHRAL 1JNCPOLLINAL 3STOSBINCDLJNZAGAIN 7 3中断 7 3 1概述 中断是外设随机地 指主程序运行到任何一条指令时 或程序预先安排产生中断请求信号 暂停CPU正在运行的程序 转入执行称为中断服务的子程序 中断服务完毕后 返回到主程序被中断处继续执行的过程 中断源 引起中断的事件称为中断源 通常中断源有以下几种 输入 输出设备 如键盘 显示器和打印机等 数据通道 如磁带等 实时控制过程中的各种参数 故障源 如掉电保护等 5 控制系统的现场测试信号以及软件中断 为了满足上述各种条件下的要求 中断系统应具有以下功能 1 能实现中断响应 中断服务和中断返回2 能实现中断优先级排队3 能实现中断嵌套 7 3 2中断过程与中断管理 1 中断过程 对于不同的微机系统 CPU中断处理的具体过程不尽相同 但是一个完整的中断基本过程应包括 中断请求 中断判优 中断响应 中断处理及中断返回等五个基本过程 中断请求 中断判优 中断响应 中断处理 1 软件查询方式 软件查询优先方式是最简单的中断优先处理方式 2 中断优先权 0 7 INTR 磁盘 磁带 CRT 键盘 打印 或 中断请求触发器 纸带 电源 开关 1 软件查询方式流程图 保留现场 A申请服务 B申请服务 C申请服务 恢复现场 外设A中断服务程序 外设B中断服务程序 外设C中断服务程序 Y Y Y N N N 硬件优先权排队方式常用的有两种 专用硬件方式 可编程的中断控制器 采用可编程中断控制器 是当前微型计算机系统中解决中断优先权管理的常用办法 2 硬件优先权排队电路 简单硬件方式 菊花链法或链式优先权排队电路 7 48086 8088的中断系统 7 4 1中断结构 1 中断分类 8086 8088CPU可以处理256种类型的中断源 000CH 000FH Type4 Type3 0008H 2 中断向量表 03FCH 007FH 03FFH Type255 0083H Type32 0080H Type31 007CH Type5 0014H 0013H 0010H 000BH 0007H 0004H 0003H 0000H Type2 Type1 Type0 0017H 在8086系统中 允许引入256种类型中断源 类型码为0 255 相应有256个中断服务程序首址 存放中断地址的一段内存空间称中断向量表 内存空间地址为 0000 0000 0000 03FF 30 8086 8088系统中 设中断向量表中0005CH 0005FH单元的内容依次为90H 78H 40H 23H 则对应的中断向量号和中断服务子程序的入口地址分别为 A 5CH 7890H 2340HB 17H 4023H 9078HC 17H 2340H 7890HD 5CH 2340H 7890H 7 4 2内部中断 软中断 在8086 8088系统中 通过执行中断指令或由CPU本身启动的中断称为内部中断 也称软件中断 除单步中断外 内部中断无法用软件禁止 即不受中断允许标志IF的影响 1 内部中断的类型 8086 8088中的各种中断的响应和处理过程是不相同的 主要区别在于如何获取相应的中断类型码 2 内部中断的处理过程 中断操作的7个步骤 读取中断类型码 计算中断向量地址 中断类型码 4 将CPU标志寄存器入栈 清除IF和TF 屏蔽新的INTR中断和单步中断 保存断点 将偏移地址放IP 段地址放CS压栈 从中断向量表中取出中断服务程序入口地址送入IP和CS 转入中断服务程序 中断返回到INT指令或中断点的下一条指令 1 外部中断的响应及中断响应周期时序 CPU采样到非屏蔽中断请求时 自动提供中断类型号2 然后根据中断类型号 查找中断向量表指针 其后的处理与内部中断一样 8086 8088CPU为外部设备提供了两条硬件中断信号线 即NMI和INTR中断请求信号 7 4 3外部中断 硬中断 IF 1 开中断 时 当INTR端加入中断请求信号 高电平有效 时 待当前指令结束后 CPU产生两个连续的中断响应总线周期 其时序关系如图 2 外部中断处理过程 如果把CPU中断响应周期的动作和前面讲到的中断响应过程结合起来 当一个可屏蔽中断被响应时 CPU实际执行了7个总线周期 1 执行第一个INTA周期 2 执行第二个INTA周期 3 执行一个总线写周期 将FR压栈 清IF和TF 4 执行一个总线写周期 将CS压栈 5 执行一个总线写周期 将IP压栈 6 执行一个总线读周期 读中断服务程序入口地址的偏移量地址送IP 7 执行一个总线周期 从中断向量表中取出中断服务程序入口地址的段地址值送CS 对于非屏蔽与软中断跳过第 1 2 步 从第 3 步开始执行到第 7 步 CPU实际执行了7个总线周期 8086 8088系统中 中断优先权排队次序从高到低为 除法出错 INTn INTO NMI INTR 单步中断 除单步之外的内部优先权最高 其次是非屏蔽中断 再次是可屏蔽中断 而单步最低 7 4 4各类中断的优先权及中断响应 8086的中断系统 IP CS出栈 标志寄存器出栈 返回被中断的主程序 IRET 当前指令结束否 软件中断 INTR TF 1 IF 1 执行下一条指令 形成中断类型码 进入中断响应取中断类型码 Y NMI Y Y Y Y Y N N N N N N 中断处理全过程 7 58259A可编程中断控制器 1 功能 Intel8259A是与8086系列CPU兼容的可编程中断控制器 它的主要功能为 1 具有8级优先权控制 通过级连可扩展至64级优先权控制 2 每一级中断都可以屏蔽或允许 3 在中断响应周期 8259A可提供相应的中断向量号 中断类型号 4 8259A的工作方式 可通过编程来进行选择 单片 IR0 IR7 8259A 中断请求 8259A IR0 IR7 级联 主 8259A IR0 从 IR7 8259A IR0 从 IR7 数据总线缓冲器 读写逻辑 控制逻辑 中断服务寄存器ISR 优先权电路 中断请求寄存器IRR 中断屏蔽寄存器IMR 级联缓冲器 比较器 内部总线 INT D0 D7 A0 IR0 IR7 CS 片选信号线 当该脚为低电平时 8259A被选中 WR 写控制信号线 当为低电平时 CPU向8259A写入控制信号 RD 读控制信号线 当为低时 可将8259A内部寄存器的信息读至数据总线 D7 D0 双向三态数据线 它可直接与数据总线连接 IR0 IR7 中断请求输入线 其中IR 优先权最高 IR7最低 INT 中断请求输出 接CPU的中断请求线INTR SP EN从程序 缓冲器允许信号 是一个双功能信号 单片 IR0 IR7 INTINTA 8259A INTR INTA CPU 中断请求 CPU 8259A IR0 IR7 级联 主 8259A IR0 从 IR7 8259A IR0 从 IR7 INTA INTR INT INTA 工作方式编程 7 5 38259A的编程 8259A的编程分两部分 初始化编程 初始化 是由CPU执行一段程序 向可编程的芯片写入若干命令字 规定其工作状态 使其处于准备就绪的状态 工作方式编程 CPU向8259A送3个OCW 8259A初始化编程 CPU向8259A送2 4个ICW ICW2 A0 1 ICW1 A0 0 级联方式 ICW3 N Y A0 1 ICW4 初始化完 需ICW4 Y N A0 1 ICW1的格式 A0D7D6D5D4D3D2D1D0 ICW2的格式 中断类型码高5位 自动填入 IR0000 IR1001 IR7111 A0 0000000H 07H0000108H 0FH0001010H 17H 11111F8H FFH ICW3级联控制字 D7 D6 D5 D4 D3 D2 D1 D0 Sx 1表示IRX接从片8259Sx 0表示IRX不接从片8259 主8259AICW3 A0 IDi为从片的标识 与主8259A的对应IRI的编号相同 从8259AICW3 IR7 111IR6 110IR5 101IR4 100IR3 011IR2 010IR1 001IR0 000 A0 ICW3级联控制字 D7 D6 D5 D4 D3 D2 D1 D0 BUF 0 0 0 AEOI PM M S SFNM ICW4方式控制字 A0 1 全嵌套方式 特点 在全嵌套方式中 中断请求按优先级IR0 IR7级进行处理 IR0级中断的优先级最高 2 特殊全嵌套方式 用于级联情况 特点 和全嵌套方式基本相同 不同的是 1 处理中断时 可响应该从片上优先级更高的中断请求 7 5 68259A的编程实例 1 初始化编程 对IBMPC XT机中使用的8259A初始化编程 例7 1 在IBMPC机中 只有一片8259A 可接外部8级中断 在I O地址空间中分配给8259A的端口地址为20H和21H 对8259A的初始化规定 边沿触发方式 缓冲方式 中断结束为EOI命令方式 中断优先权管理采用全嵌套方式 8级中断源的类型码为08H 0FH 初始化编程 MOVAL 13HOUT20H AL 设置ICW1 MOVAL 08HOUT21H AL 设置ICW2 MOVAL 0DHOUT21H AL 设置ICW4 2 8259A的操作命令字 A0D7D6D5D4D3D2D1D0 1 操作命令字OCW1 屏蔽操作命令字 2 操作命令字OCW2 中断方式命令字 A0 3 操作命令字OCW3 状态操作命令字 A0 2 8259A的操作命令字 1 操作命令字OCW1 屏蔽操作命令字 中断屏蔽1 置屏蔽0 复位屏蔽 A0D7D6D5D4D3D2D1D0 如果允许时钟 键盘 异步通信卡中断 则设置OCW1为0ECH 命令如下 MOVAL OECHOUT21H AL 2 操作命令字OCW2 中断方式命令字 D7 D6 D5 D4 D3 D2 D1 D0 SL R L2 EOI 0 L1 L0 OCW 标志 0 A0 1 用优先级循环方式0 用非循环方式 中断结束命令位 1 使中断服务器中对应的ISn复位 当ICW4中的AEOI为0 1 L2 L1 L0有效0 L2 L1 L0无效 2 中断优先级循环方式 ISR 优先权 最高 最低 ISR 优先权 最高 最低 自动循环方式 R 1 SL 0 特殊循环方式 可根据需要改变中断源的优先权 R 1 SL 1 若L2L1L0 011 则IR3的优先权最低即优先权从高到低依次为 IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3 R 0 SL 0 EOI 1 则OCW2成为一个一般的中断结束命令 它使当前中断处理子程序对应的ISn被清除 并使系统工作在非循环状态 一般用于全嵌套和特殊全嵌套情况 R 0 SL 1 EOI 1 若L2L1L0 011 则IR3在当前中断服务寄存器中的对应为IS3被清除 由于设置的是正常EOI 因此在中断服务程序结束后 返回断点前必须对OCW2写入20H做结束中断操作命令 命令如下 MOVAL 20HOUT20H ALIRET INT PROPROCNEARMOVDX OFFSETMESSMOVAH 09HINT21HMOVDX INTA0MOVAL 20HOUTDX ALIRETINT PROENDP 3 操作命令字OCW3 状态操作命令字 特殊屏蔽方式选择ESMMSMM10 普通屏蔽方式11 特殊屏蔽方式 A0 3 中断屏蔽 1 普通屏蔽方式 用OCW1将IMR寄存器某一位或几位置1 即可将相应的中断请求屏蔽掉 2 特殊屏蔽方式 除被OCW1屏蔽的中断外 其它中断不管优先权如何 在任何情况下都可申请中断 7 5 4由多片8259A组成的主从式中断系统 7 5 58259A的编程实例 1 初始化编程 对IBMPC XT机中使用的8259A初始化编程 例7 1 例7 2 用PC XT微机中的8259A产生中断 在每次主机响应外部中断IR2时 显示出字符串 THISISA8259AINTERRUPT 中断10次后退出 设8259A的偶地址为20H 奇地址为21H 5 调用系统21H号中断的35H号功能 将系统中原0AH号中断向量取出保存于ES BX中 MOVAL 0AHMOVAH 35HINT21HPUSHESPUSHBX 000CH 0008H 2 中断向量表 03FCH 002BH CS 03FFH Type255 CS IP CS IP CS Type0AH IP 0028H CS Type5 IP 0014H 0013H CS Type4 IP Type3 IP IP IP IP CS CS CS 0010H 000BH 000FH 0007H 0004H 0003H 0000H Type2 Type1 Type0 6 调用系统21H号中断的25H号功能将新的中断向量装入 MOVDX SEGINT PROMOVDS DXMOVDX OFFSETINT PROMOVAL 0AHMOVAH 25HINT21H INT PROPROCNEARMOVDX OFFSETMESSMOVAH 09HINT21HMOVDX INTA0MOVAL 20HOUTDX ALIRETINT PROENDP 7

温馨提示

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

评论

0/150

提交评论