1、第第7章章 I/O接口与中断技术接口与中断技术 7.1 I/O接口接口7.2 中断的基本原理中断的基本原理7.3 8086/8088的中断系统的中断系统7.4 可编程中断控制器可编程中断控制器8259A7.5 IBM PC-XTAT中的外部中断逻辑中的外部中断逻辑7.1 I/O接口接口l7.1.1 I/O接口的重要作用接口的重要作用l输入和输出设备是计算机系统的重要组成部分。输入和输出设备是计算机系统的重要组成部分。计算机所处理的信息,包括程序与数据均要由计算机所处理的信息,包括程序与数据均要由输入设备提供;而处理后的结果数据,则要送输入设备提供;而处理后的结果数据,则要送给输出设备。给输出设
2、备。给计算机与外设间交换信息带来以下一些问题:给计算机与外设间交换信息带来以下一些问题:1 速度不匹配速度不匹配2 信号电平不匹配信号电平不匹配3 信号格式不匹配信号格式不匹配4 时序不匹配时序不匹配图图7.1 I/O接口在系统中的位置接口在系统中的位置 总线总线主设备主设备(CPU)总总线线I/OI/O接口接口外外设设数据数据状态状态命令命令/控制控制图图7.2 微机系统各种微机系统各种I/O接口示意图接口示意图 内存CPU内存接口电源输入接口输出接口通信接口过程控制接口外存接口智能仪器接口 键盘 光笔数字化仪声音输入图形输入打印机显示器绘图仪记录仪 终端 MODEM 电传机通信仪表 ADC
3、 DAC 开关量输入/输出磁带机磁盘机光存储器 各种 数字化仪器系统总线7.1.2 I/O接口的主要功能接口的主要功能1.数据缓冲功能数据缓冲功能2.设备选择功能设备选择功能3.信号转换功能信号转换功能4.对外设的控制和监测功能对外设的控制和监测功能5.中断请求与管理功能中断请求与管理功能6.可编程功能可编程功能7.1.3 I/O端口的编址方式端口的编址方式1.与存储器统一编址方式(存储器映射方式)与存储器统一编址方式(存储器映射方式)2.I/O单独编址方式(单独编址方式(I/O映射方式)映射方式)7.1.4 CPU与与I/O接口之间传送信息的方式接口之间传送信息的方式图图7.3 无条件传送的
4、输入方式无条件传送的输入方式 来自外设来自外设 数据数据 三态三态缓冲器缓冲器 地址地址译码器译码器数据总线数据总线地址总线地址总线AENIORA0A9Y 图图 7.4 查询输入的接口电路和输入程序流程图查询输入的接口电路和输入程序流程图 读读状状态态信信息息READY=1?NY输输入入数数据据输入设备锁存器(8)三态缓冲器(8)缓冲器(1)地址译码器状态信息A0A9IORAENAENIOR(读状态)(读数据)到数据总线ReadyDRQ+5V查询传送方式下查询传送方式下CPU与外设工作过程示意图与外设工作过程示意图 传 送查 询 等 待I/O 工 作传 送查 询 等 待I/O 工 作传 送tC
5、 P U外 设中断传送方式下中断传送方式下CPU与外设工作过程示意图与外设工作过程示意图 C P U C P U 做其 他 工 作I/O 工 作 C P U 做其 他 工 作I/O 工 作外 设中 断处 理中 断处 理中 断处 理t 图图7.7 DMA传送原理示意图传送原理示意图 系系统统总总线线CPU存存储储器器输输出出设设备备 DMA控控制制器器HOLDHLDA7.1.5 I/O端口的地址分配端口的地址分配l不同的微机系统对不同的微机系统对I/O端口地址的分配是不同的。端口地址的分配是不同的。8086微机系统本来可寻址微机系统本来可寻址I/O地址空间为地址空间为64K字字节节。7.1.6
6、I/O端口地址译码端口地址译码lI/OI/O端口地址译码电路的作用是把地址信号和控端口地址译码电路的作用是把地址信号和控制信号进行逻辑组合,从而产生对接口芯片的制信号进行逻辑组合,从而产生对接口芯片的选择信号。选择信号。1.利用门电路进行地址译码利用门电路进行地址译码 AENA3A4A5A6A7A8A974LS32IORCS口地址:348H34FHIORAENA0A1A2A3A4A5A6A7A8A9Y74LS3274LS3074LS20口地址2F4H图图7.87.8(a a)I/O I/O端口译码电路示意图端口译码电路示意图 图图7.87.8(b b)I/O I/O端口全译码电路示意图端口全译
7、码电路示意图 2.利用译码器进行地址译码利用译码器进行地址译码 l利用译码器芯片(例如利用译码器芯片(例如74LS138译码器)对地译码器)对地址信号进行译码,译码器芯片有址信号进行译码,译码器芯片有2:4,3:8,4:16等各种规格。等各种规格。图图7.9 利用译码器进行译码的全译码电路利用译码器进行译码的全译码电路 A3A4A6A8A9A5A7AENA0A1A2ABCG2AG2BG174LS138Y0Y1Y2Y3Y4Y5Y6Y7358H359H35AH35BH35CH35DH35EH35FH3.3.利用开关和比较器进行地址译码利用开关和比较器进行地址译码 l若用户要求扩展板的口地址能够适应
8、不同的地若用户要求扩展板的口地址能够适应不同的地址分配,利用开关式地址可选译码器。图址分配,利用开关式地址可选译码器。图7.10是一开关式可选译码电路。是一开关式可选译码电路。图图7.10 开关式可选择译码电路开关式可选择译码电路IORIOWA0A1A2A3A4A5A6A7A8A9AEN+5VDIP+5VQ7Q6Q5Q0Q1Q2Q3Q4P0P1P2P3P4P5P6P7P=QLS688LS138+5VG1G2BG2AABCG1G2BG2AABCLS138Y0Y1Y2Y3Y4Y5Y6Y7Y0Y1Y2Y3Y4Y5Y6Y74.4.利用利用GAL芯片进行地址译码芯片进行地址译码 lGAL采用电擦除工艺,
9、门阵列的每个单元可以采用电擦除工艺,门阵列的每个单元可以反复改写。反复改写。GAL中的逻辑关系还可加密,以防中的逻辑关系还可加密,以防止外人抄袭电路和非法复制。止外人抄袭电路和非法复制。7.2 中断的基本原理中断的基本原理l所谓中断,就是当所谓中断,就是当CPU正常运行程序时,由于正常运行程序时,由于随机的事件(包括内部事件和外部请求),引随机的事件(包括内部事件和外部请求),引起起CPU暂时中止正在运行的程序,转去执行请暂时中止正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务程序,求中断的外设(或内部事件)的中断服务程序,中断服务结束后再返回被中止的程序,这一过中断服务结束后再
10、返回被中止的程序,这一过程称为中断。程称为中断。7.2.1 中断请求中断请求 l外设需要外设需要CPU服务时,首先要发出中断请求。服务时,首先要发出中断请求。发出中断请求的外设就是中断源。广义地说,发出中断请求的外设就是中断源。广义地说,中断源就是能引起中断源就是能引起CPU产生程序中断的随机事产生程序中断的随机事件。件。l外设及其接口的中断请求分为边沿请求和电平外设及其接口的中断请求分为边沿请求和电平请求。请求。7.2.2 中断判优中断判优l1 软件判优软件判优l软件判优采用软件查询方式,将多个外设的中软件判优采用软件查询方式,将多个外设的中断请求信号通过或门相断请求信号通过或门相“或或”后
11、,送到后,送到CPU的的INTR端,同时把几个外设的中断请求状态位组端,同时把几个外设的中断请求状态位组成一个端口,赋予端口号。成一个端口,赋予端口号。图图7.11 软件判优电路软件判优电路 IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7D0D1D2D3D4D5D6D7INTR(到CPU)IORY中断请求F/F 2.2.硬件判优硬件判优(1)并行判优网络)并行判优网络(2)链式判优电路)链式判优电路IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7中断屏蔽寄存器IMR中断在服务寄存器ISR优先级判别器中断请求寄存器中断控制逻辑中断矢量寄存器由中断请求决定INTA
12、 INTR图图7.12 矢量矢量优先优先级控级控制器制器原理原理框图框图 图图7.13 链式判优链式判优+5VINT到CPUINT0INT1INT2EIEOEIEOEIEO中断源中断源中断源0#1#2#7.2.3中断响应中断响应 l中断响应就是中断响应就是CPU“中断中断”现在正在进行的处理现在正在进行的处理任务,转向中断请求相对应的处理程序的过程。任务,转向中断请求相对应的处理程序的过程。这相当于这相当于CPU的使用权(或称控制权)由一种的使用权(或称控制权)由一种任务(被中断的程序)转移到另一任务(相应任务(被中断的程序)转移到另一任务(相应的中断处理程序)。的中断处理程序)。7.2.4中
13、断处理中断处理 l中断处理就是执行中断服务程序,以完成中断中断处理就是执行中断服务程序,以完成中断源提出的处理要求。这实际上是软件编源提出的处理要求。这实际上是软件编程的问程的问题。与子程序的编写原则差不多。题。与子程序的编写原则差不多。7.2.5 中断返回中断返回l中断返回就是中断返回就是CPU控制权由中断服务程序转移控制权由中断服务程序转移到被中断程序的过程。与一般的到被中断程序的过程。与一般的“返回主程序返回主程序”指令类似。指令类似。7.3 8086/8088的中断系统的中断系统l7.3.1 8086/8088的中断源的中断源 l 8086/8088的中断源分为内部终端和外部中断的中断
14、源分为内部终端和外部中断两种两种 图图7.14 8086的中断源的中断源 可 屏 蔽中 断 源的 中 断请 求INTR单 步除 法 错INTnINTO非 屏 蔽 中 断 请 求中 断 逻 辑NMI ICPU8259A7.3.2 8086/8088响应中断的过程响应中断的过程l8086/8088CPU对对INTR、NMI与软中断的响应与软中断的响应过程是不同的,正如前面所介绍的那样,过程是不同的,正如前面所介绍的那样,INTR是可屏蔽中断请求,受是可屏蔽中断请求,受IF标志位的影响,而标志位的影响,而NMI和软中断不受和软中断不受IF的影响。的影响。图图7.15 8086/8088的的中断中断处
15、理处理流程流程7.3.3 中断向量表与中断向量号中断向量表与中断向量号l中断向量表又称中断服务程序入口地址表。中断向量表又称中断服务程序入口地址表。l各个中断处理程序的段地址与偏移量按中断向各个中断处理程序的段地址与偏移量按中断向量号顺序存入中断向量表中。量号顺序存入中断向量表中。图图7.16 中断操作流程中断操作流程 INT 72HMOV AX,BX向量地址=72H4=1C8H1C8H1C9H1CAH1CBH1CCH1C4HMEMORYMEMORY502000A0向量73H入口地址向量71H入口地址2050A000IPCSA000:2050中断服务程序IRET7.3.4 对中断请求对中断请求
16、INTR的响应时序的响应时序第一个中断响应周期第二个中断响应周期T1T1T2T2T3T3T4T4T1T1T2T2T3T3T4T4CLKALELOCKINTAD7-D0向量号 n图图7.17 8086/8088对对INTR的中断响应周期时序的中断响应周期时序7.3.5 中断服务程序中断服务程序l中断服务程序的功能各不相同,用户根据外设中断服务程序的功能各不相同,用户根据外设或外设接口需要来编程,但所有的中断服务程或外设接口需要来编程,但所有的中断服务程序都有相同的结构形式。序都有相同的结构形式。7.4 可编程中断控制器可编程中断控制器8259Al8259A是一种功能强、使用灵活方便的可编程是一种
17、功能强、使用灵活方便的可编程中断控制器(中断控制器(PIC)。)。它可以直接与它可以直接与Intel8085或或8086/8088CPU相连而不需要附加其他逻辑电相连而不需要附加其他逻辑电路;它可实现路;它可实现8级矢量优先中断,并可扩展至级矢量优先中断,并可扩展至64级矢量优先中断而不需附加逻辑。级矢量优先中断而不需附加逻辑。7.4.1 8259A基本构成与引脚信号基本构成与引脚信号l8259A是是28脚封装的脚封装的NMOS芯片,其管脚和内部芯片,其管脚和内部框图如图框图如图7.18所示。所示。图图7.18 8259A的内部结构与引脚图的内部结构与引脚图 图图7.19 82597.19 8
18、259A A级联的级联的1515级中断连接级中断连接 8259A的内部结构的内部结构(1)中断请求寄存器()中断请求寄存器(IRR)(2)在服务(在服务(IS:In-service)寄存器寄存器(3)中断屏蔽寄存器()中断屏蔽寄存器(IMR)(4)中断判优电路中断判优电路 7.4.2 8259A的工作原理的工作原理l1中断矢量中断矢量l8259A可在中断响应中自动提供当前响应的中断可在中断响应中自动提供当前响应的中断源的矢量字以便把程序自动引导到相应的服务源的矢量字以便把程序自动引导到相应的服务程序。根据程序。根据8259A所用的处理器的类型,它有两所用的处理器的类型,它有两种不同的处理方式。
19、即种不同的处理方式。即8085方式和方式和80868088方式。方式。图图7.20 中断矢量字格式中断矢量字格式 T3T7T6T5T4D3D7D6D5D4D2D1D00 0 0 1 1 1 IR0IR7 由由IR2提供的矢量号提供的矢量号72H到中断处理程序入口地址到中断处理程序入口地址的引导示例的引导示例 2触发方式触发方式l为了方便用户将为了方便用户将8259A用于各种中断源,在用于各种中断源,在8259A中对中断请求中对中断请求IR0IR7提供了两种可供提供了两种可供选择的中断触发方式,沿触发方式和电平触发选择的中断触发方式,沿触发方式和电平触发方式。方式。3中断优先方式及中断嵌套中断优
20、先方式及中断嵌套(1)(1)优先方式优先方式固定优先循环优先8259A的EOI命令特殊全嵌套方式特殊屏蔽方式循环控制方式(2)中断嵌套中断嵌套 4中断状态及多级级联查询方式中断状态及多级级联查询方式lCPU可以查询的可以查询的8259A中断状态寄存器包括:中断状态寄存器包括:中断屏蔽寄存器(1MR:Interrupt Mask Register)。中断请求寄存器(1RR:Interrupt Request Register)。在服务寄存器(1SR:In-Service Register)。lIMR的内容可以在的内容可以在8259A工作中随时读取,但对工作中随时读取,但对于于IRR和和ISR的读
21、取,只有向的读取,只有向8259A发出读寄存发出读寄存器命令后,才可读取器命令后,才可读取(详见编程部分详见编程部分OCW3的说的说明明)。l此外,此外,8259A提供了一个专门的查询命令。提供了一个专门的查询命令。5缓冲方式缓冲方式l若因系统数据总线上的负载很重,以致于若因系统数据总线上的负载很重,以致于8259A D0D7的驱动能力不够而需扩大总线的驱动能的驱动能力不够而需扩大总线的驱动能力,力,8259A提供了缓冲方式,并提供了外加双提供了缓冲方式,并提供了外加双向总线驱动器的控制信号输出。向总线驱动器的控制信号输出。图图7.28 8259A的级联缓冲方式的级联缓冲方式 数据总线从PIC
22、主PIC74LS24574LS24574LS245CAS2CAS0INTAINTAINTAIRIR从PICENENEND7D0D7D0D7D0D7D0INTINTINT+5V+5V+5VDENBBBDGDAAGGADIRDDIRINTA7.4.3 8259A编程方法编程方法 18259A内部寄存器的寻址内部寄存器的寻址(1)ICW1 (2)ICW2(3)ICW3(4)ICW4(1)OCWl(IMR编程编程)(2)OCW2(3)OCW32初始化命令寄存器初始化命令寄存器3操作命令寄存器操作命令寄存器(OCW)l8259APIC只有在写入只有在写入ICW字后,才可写字后,才可写OCW寄存器,且寄存
23、器,且ICW寄存器一般只一次写入,而寄存器一般只一次写入,而OCW寄存器可在操作中随时存取。寄存器可在操作中随时存取。7.4.4 8259A的初始化命令序列和各的初始化命令序列和各命令寄存器初始状态命令寄存器初始状态写ICW1写ICW2写ICW3写ICW4SNGL=0?IC4=1?PIC可以接受中断请求A0=0,D4=1(CS=0,WR=0)A0=1,且在ICW1写入后写入A0=1,且ICW1的D1=0(级联方式)A0=1,且ICW1的D0=1图图7.33 8259A的初始的初始化命令化命令序列序列7.5 IBM PC-XTAT中的外部中断逻辑中的外部中断逻辑1.NMI中断中断2.INTR中断中断
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。