导图社区 6.输入输出与中断技术
这是一篇关于6.输入输出与中断技术的思维导图
编辑于2022-02-27 17:18:32输入输出与中断技术
I/O接口的概述
I/O接口电路介于主机与外部设备之间,是微处理器与外部设备信息交换的桥梁,实现计算机与外部设备之间交换信息的重要工作
并行接口:一次传送一个字节或多个字节的所有位
串行接口:一次传送一位,数据的所有位逐位传送
接口的功能:1.提供时序的控制,协调快速的CPU与慢速的外设的时序差异;2.进行信息格式的转换;3.实现信号电平转换;4.地址的译码;5.数据的传送
I/O接口的结构
通常包括数据寄存器,控制寄存器,状态寄存器,数据缓冲器和读/写控制单元
数据寄存器是可读可写的寄存器,用来存放CPU与I/O设备交换的数据信息
控制寄存器只能写不能读,用来存放CPU向外部设备发送的控制命令和工作方式命令字
状态寄存器能读不能写,CPU用来查询外部设备的当前的工作状态信息
数据缓冲器是CPU与I/O设备数据信息交换的通道,与CPU的数据总线DB连接
读/写控制逻辑单元与CPU的地址总线AB,控制总线CB连接,接收CPU发送到 I/O接口的读/写控制信号和端口选择信号,选择接口内部的寄存器进行读/写操作
I/O端口
I/O接口电路需要设置若干专用寄存器,缓冲输入输出数据,设定控制方式,保存状态信息,这些寄存器可被CPU直接访问,常被称为端口
端口的编址方式
统一编址
定义:统一编址方式是指把 I/O端口和存储单元统一编址,即把I/O端口看出存储器的一部分,一个I/O端口的地址就是一个存储单元的地址
优点:CPU访问存储单元的所有指令都可用于访问 I/O端口,CPU访问存储单元的所有寻址方式就是CPU访问 I/O端口的寻址方式
缺点:占有了内存的空间,是访问存储器还是访问 I/O端口在程序中不能一目了然
独立编址
定义:把 I/O端口和存储单元各自编址,即地址编号相同也无妨
优点:端口地址不占用内存空间,访问 I/O端口指令仅需要两个字节,执行速度快;
缺点:要求CPU有独立的I/O指令,CPU访问 I/O端口的寻址方式少
数据传送控制方式
无条件传送方式
在数据传送时,CPU直接与外设传送数据,而不必预先查询外设的状态
适用场合:外部控制过程的各种动作时间是固定的且是已知的场合
优点:无条件传送是最简便的传送方式,所需的硬件和软件都很少,且硬件接口电路简单
缺点:这种传送方式必须在已知且确信外设已准备就绪的情况下才能使用,否则出错
程序查询传送方式
在进行 数据传送前,程序首先检测外设状态端口的状态,只有在状态信息满足条件时,才能通过数据端口进行数据传送,否则程序只能循环等待
适用场合:适合外部设备数量不多,设备相对简单,对实时性要求不高的情况
缺点:CPU要不断地查询外设,当外设没有准备好,CPU要等待,而许多外设的速度比CPU要慢的多,CPU的利用率不高
中断传送方式
当外设完成数据传送的准备后,向CPU发出中断请求信号,CPU收到请求后响应中断转去执行中断服务程序,当完成CPU与外设之间的数据传送,传送完成后立即返回,继续执行原来的程序
特点:中断控制方式是该CPU的主动查询为CPU的被动响应
优点:中断传送方式实时性好,节省CPU时间,外设具有申请服务的主动权,并且在一定程度上实现设备与CPU的并行工作
缺点:中断方式仍需要通过CPU执行程序来实现外设与CPU之间的信息传送;CPU每次中断都需要花费时间保护断点和现场,无法满足高速I/O的速度要求
DMA方式
直接存储器传输方式,即DMA方式,在DMA方式下,外部设备利用专用的接口电路直接和存储器进行高速数据传送,而不经过CPU,整个传送过程由硬件来完成而不需要软件介入
在DMA方式中,对数据传送过程进行控制的硬件称为DAM控制器(DMAC)
DMAC的功能:接收外设的DMA请求信号,向CPU发出使用总线的总线请求信号
DMA过程:向地址总线发送内存地址信号,并且能够生成读写控制信号,控制数据传送的字节数
DMA过程结束,DMAC能向CPU发出DMA结束信号,并将总线的控制权交还给CPU
中断
中断的基本概念
指CPU在正常运行程序时,由于内部或外部事件引起CPU暂时中止执行现行程序,转去执行请求CPU为其服务的中断服务程序,待中断服务程序完毕后返回到被中止的程序
中断源:引起中断的原因,或者说发出中断申请的来源,中断源的分类:外部中断源(硬件中断)和内部中断源(软件中断)
外部中断(硬件中断)
由外部硬件触发,外部中断包括可屏蔽中断(INTR)和不可屏蔽中断(NMI)
可屏蔽中断(INTR):是指可以延时处理的事件,如CPU有更紧急的任务,可以先暂时屏蔽可屏蔽中断,处理完事件后,再响应中断
不可屏蔽中断(NMI):是指事件异常紧急,必须马上处理,不受IF的影响
CPU对外部中断的响应时机是在一条指令执行完之后,中断处理后返回到被中断程序的下一条指令继续执行
内部中断(软件中断)
内部中断来自CPU内部,是在程序中使用INT指令引起的中断,其特点不需要外部硬件支持,不受中断标志位IF的影响,不执行中断响应周期
常见的内部中断的中断类型号:1.分母0中断(INT 0);2.单步中断(INT 1);3.溢出中断(INTO,INT 4);4.断点中断(INT 3); 5.指令中断(INT N)
内部中断的特点
由一条指令INT N产生中断类型码,或由指令规定,或是预定的,软件中断无随机性
不执行中断响应总线周期,CPU也不发出响应信号 INTA
不受中断允许标志IF的影响
除单步中断外,软件中断无法用软件禁止
除单步中断外,软件中断比硬件中断具有更高的优先级别
8086中断系统
中断类型号
由于中断源有多个,需要给每一个中断源编一个号,INT N,N就是中断号
中断类型号的获取
对于系统专用中断,系统将自动提供0~4中断类型号:0号除数0中断,1号单步中断,2号NMI中断,3号断点中断,4号溢出中断
对于可屏蔽中断INTR,需要外接接口电路,利用8259A中断控制器来产生外设的中断类型号
中断向量和中断向量表
中断向量:存储了中断处理子程序的入口地址,每个中断向量占连续的4个字节,两个高字节单元存放入口地址的段地址CS,两个低字节单元存放入口地址的段内偏移量IP
中断向量表:所有的中断向量的集中起来,按中断类型号从小到大顺序存放存储器的0000H~03FFH中
中断响应的步骤
取中断类型号;计算中断向量地址;取中断向量:偏移地址送IP,段地址送CS;转入中断处理程序;中断返回到INT指令的下一条指令
CPU响应外部中断的条件
设置中断请求触发器
设置中断屏蔽触发器
CPU开中断
CPU执行完当前指令,满足上述条件,CPU响应中断
中断优先权的顺序
内部中断-->NMI中断-->INTR中断-->单步中断
中断处理过程
执行步骤:中断请求,中断判优,中断响应,中断处理和中断返回
中断请求
注:内部中断,不需要中断请求,CPU内部的中断控制逻辑直接接收处理
外部中断请求由中断源提出。外部中断源利用CPU的中断输入引脚输入中断请求信号,CPU设有两个中断请求输入引脚:可屏蔽中断请求输入引脚和不可屏蔽中断请求输入引脚
中断判优
按规定的优先级次序对各中断源进行优先级判定,通常由硬件完成
中断响应
取中断类型号N
保护现场
标志寄存器入栈,将flags的内容入栈
关中断
清除IF和TF标志
保护断点
CS和IP入栈
获得中断服务程序的入口地址
获取中断向量;在中断向量表中的N*4开始的单元取两个字分别送IP和CS,获取中断处理程序的入口地址。CPU从CS:IP值的开始执行中断服务程序
中断处理
执行中断处理程序,程序一开始可以根据需要开中断,以允许中断嵌套
入栈指令将用到的寄存器,以保护现场,待中断处理完毕,再把寄存器的内容从堆栈中弹出,恢复现场
中断返回
返回程序的断点处,恢复硬件现场,继续执行原程序。
8259A可编程中断控制器
8259A的内部结构
数据总线缓冲器
是CPU与8259A交换数据信息的接口
通过数据总线D7~D0把CPU传送给8259A的初始化控制字和操作命令字接收下来,通过8259A的内部总线传送到相应的寄存器中,也用来把8259A的状态通过数据总线D7~D0传送至CPU
读/写控制逻辑
是CPU与8259A进行控制信息交换的接口
CS:片选信号线
A0:奇/偶地址选择信号线,与WR或RD信号配合,作为访问的控制寄存器的端口地址
WR/RD:读写信号线
级联控制/比较器
级联缓冲/比较器用于多块8259A的连接
主8259A:与CPU相连的8259A
从8259A:与主8259A相连的8259A
CAS0~CAS2:级联信号线,对于主8259A输出选择从8259A,对于从8259A输入
SP/EN:此信号线为双向,当为输入时,用于选择本片是主片还是从片,SP/EN=1,该片为主片,SP/EN=0,该片为从片,当为输出时,SP/EN可作为启动数据总线驱动器的启动信号。
中断请求寄存器IRR
为8位寄存器,是8259A与外设中断源相接的接口,IR7~IR0与8个中断源相接,当有中断源申请中断时,使相应位置1
中断屏蔽寄存器IMR
为8位寄存器,当中断源的中断申请被屏蔽,中断屏蔽寄存器的相应位置1,禁止该位对应的中断源申请中断
中断服务寄存器ISR
为8位寄存器,用8位的某位置1,记录CPU当前正为那个中断源服务,该信号一直保持CPU处理完该中断服务程序为止。如果有多位置1,表示发生了中断嵌套
优先级判别器PR
用来识别中断请求信号的优先级别
控制逻辑
ICW1~ICW4用来存放初始化程序设定的工作方式字,管理8259A的工作方式,OCW1~OCW3用来存放操作命令字,对中断处理过程进行动态的控制
8259A的引脚
D0~D7:双向数据输入/输出引脚
IR0~IR7:中断请求输入引脚
INT:中断请求输出引脚,高电平有效
INTA:中断响应信号输入引脚,低电平有效
RD:读控制信号输入引脚,低电平有效
WR:写控制信号输入引脚,低电平有效
CS:片选信号输入引脚,低电平有效
A0:当A0=0 ICW1,OCW2,OCW3; A0=1 ICW2,ICW3,ICW4,OCW1
CAS0~CAS2:级联信号引脚,用来选择从片,当8259A为主片时输出,当8259A为从片时,输入
SP/EN:从片编程/允许缓冲器,双功能引脚
8259A的中断工作过程
1.当中断请求输入线IR0~IR7中有一条或多条变高时,则中断请求寄存器IRR的相应位置 1
2.若对中断源的中断申请不屏蔽的情况下,向中断控制器发中断申请信号,中断控制器把该信号转发给优先级判别器
3.优先级判别器根据中断申请寄存器的内容决定处理哪个中断源申请的中断,在根据中断服务寄存器的内容决定CPU正响应哪一级中断源,经过优先级判别器决定该中断源是否高于CPU正在服务的中断源,若高于,通过控制逻辑的INT线向CPU申请中断
4.如果CPU处于开中断状态,则在当前指令执行完后,用INTA信号作为响应
5.8259A接收到INTA信号后,使中断服务寄存器ISR相应位置1,使中断请求寄存器IRR的相应位置0,以避免该中断源再次发生中断申请
6.CPU输出第二个INTA信号启动第二个中断响应周期。8259A向CPU发送中断向量码,CPU转入中断服务程序
7.8259A工作在AEOI模式,则在第二个INTA脉冲信号结束时,将使被响应的中断源在ISR中的对应位清0;否则,直到中断服务程序结束,发出EOI命令,才使ISR中的对应位清0
8259A的工作方式
中断请求方式
边沿触发方式
是中断源IR7~IR0出现由低电平向高电平的跳变时请求中断信号
优点:申请中断IRi端可以一直保持高电平
电平触发方式
是中断源IR7~IR0的中断申请端置为高电平,作为请求中断信号
优点:可靠,不会因IRi端引入干扰信号而引起误操作
中断查询方式
CPU的IF=0,CPU处于关中断状态,CPU对IR7~IR0端上的中断请求采用查询方式,使CPU了解哪一个中断源有中断申请并为它服务
中断屏蔽方式
普通屏蔽方式
CPU执行某一级中断服务程序时,只允许比该优先级高的中断源申请中断
特殊屏蔽方式
CPU执行某一级中断服务程序时,只对本级中断屏蔽,允许级别比它高或低的中断源提出中断申请
中断嵌套方式
全嵌套方式
中断优先级IR0最高,IR7最低,高级中断源可以中断低级中断源
特殊全嵌套方式
可以响应同级别的中断请求,从而实现对同级中断请求的特殊嵌套
中断优先级设置方式
自动循环优先级方式
一个中断源被服务后,其优先级自动排到最低
特殊循环优先级方式
初始优先级是由编程设定的
中断结束方式
自动中断结束
只能用于不要求中断嵌套的场合
中断服务寄存器的相应位清零是由硬件自动完成的
非自动中断结束
一般中断结束方式
通过软件方法发出一中断结束命令,使当前中断服务寄存器中级别最高的置1位清零
只能应用于全嵌套方式下
特殊的中断结束方式
通过软件方法发出一中断结束命令,同时给出结束中断的中断源是哪一级,使该中断源的中断服务寄存器的相应位置0
连接系统总线的方式
缓冲方式。8259A通过总线驱动器和数据总线相连,适用于多片8259A级联的大系统中
非缓冲方式。8259A直接和数据总线相连。用于单片8259A或片数不多的系统中
8259A的编程
初始化命令字编程
ICW1为偶地址A0 = 0 ;ICW2,ICW3,ICW4为奇地址 A0 = 1
ICW1
D0位:是否设置ICW4,对于8086/8088必须设置; D0=1
D1位:表示有一片,还是级联方式;D1 = 0 表示级联,D1 = 1表示单片
D2位:对8086/8088系统不起作用,默认为 0
D3位:中断请求触发方式,D3 = 0 表示上升沿触发;D3 = 1 表示电平触发
D4位:特征位;表示当前设置的是初始化控制字ICW1, 为 1
D7~D5位:在8086/8088系统中不用,设为0
ICW1可能的值
单片上升沿 = 13H
单片电平触发 = 1BH
级联上升沿 = 11H
级联电平触发 = 19H
ICW2
ICW2为设置中断类型号的初始化控制字
D7~D3:由用户决定
D2~D0:按中断请求引脚IR0~IR7的编码自动填充
ICW3
ICW3用于级联方式,ICW1的D1位为0,才需要对ICW3设置
D7~D0: 为1表示对应的IRi的引脚有从片,为0表示对应的IRi的引脚没有从片
ICW4
D0:系统选择位,8086/8088系统 D0 = 1
D1:中断结束方式位。D1 = 0 非自动EOI方式;D1=1 自动EOI方式
D3D2:D3D2 = 00 非缓冲方式工作;D3D2 = 10 缓冲方式从片; D3D2= 11 缓冲方式主片
D4:嵌套方式选择位;D4 = 0 正常全嵌套方式;D4 = 1 特殊全嵌套方式
D7~D5:特征位,为000,表示现在送出的控制字为ICW4
操作命令字编程
OCW2,OCW3为偶地址 A0 = 0 ;OCW1为奇地址 A0 = 1 ;
OCW1
中断屏蔽操作控制字,写入中断屏蔽寄存器IMR中,对外部中断请求信号进行屏蔽
D7~D0:当某位为0时,对应IRi中断请求被允许,当为1时,对应的IRi中断请求被屏蔽
OCW2
OCW2用来设置优先级循环方式和中断结束方式
当中断结束方式为非自动EOI时才需要设置
OCW3
OCW3设置屏蔽方式和读状态控制字
D1D0:当D1D0 = 10 读中断请求寄存器的内容;D1D0 = 11 读中断服务寄存器的内容
D2:查询工作设置位;D2=0 设置正常中断方式,D2=1 设置查询工作方式
D4D3:特征位,为01
D5:设置或取消特殊屏蔽位,D5=0取消特殊屏蔽方式,D5=1设置特殊屏蔽方式
D6:特殊的屏蔽模式允许位,D6=1,允许D5设置或取消特殊屏蔽位,D6=0,禁止D5设置
D7:为0