《输入输出和中断技术课件》由会员分享,可在线阅读,更多相关《输入输出和中断技术课件(60页珍藏版)》请在金锄头文库上搜索。
1、I/O接口概述,I/O端口与其寻址方式,CPU与外设之间的数据传送方式, 有关中断的基本概念, 8086中断系统, 8086CPU中断响应流程, 掌握微型计算机接口技术的基本概念, 了解主机与外设之间的各种数据传送方式, 了解I/O端口的寻址方式, 掌握中断技术的基本概念, 了解8086中断系统及其对各种类型中断的响应流程,6.1 I/O接口概述,输入输出设备通过接口电路与CPU连接,一、I/O接口的功能,接口电路须为外部设备提供几个不同地址的寄存器,每个寄存器称为一个I/O端口。通常的I/O接口示意图如下:,I/O接口示意图,I/O接口内部一般由数据、状态、控制三类寄存器组成。,状态寄存器保
2、存状态信息,CPU可从状态口读取当前状态; 控制寄存器用来保存CPU写入的控制字。,二、 CPU 与I/O之间的接口信号,CPU 与外设之间的接口信息,1. 数据信息 (DATA),(1) 数字量,二进制格式或以 ASCII 码标准,(2) 模拟量,(3) 开关量,只表示两个状态的量 (可以用0、1表示),2. 状态信息 (STATUS),输入时,输入设备是否准备好? (READY),输出时,输出设备是否空闲?(BUSY),反映当前外设工作状态的信息,例如:,3. 控制信息 (CONTROL),例如设置I/O 设备工作模式,控制I/O 设备启动或停止等。,CPU通过接口输出用以控制外设工作的信
3、息。,外部设备与微处理器进行信息交换必须通过访问该外设相对应的端口来实现。具体访问这些外设端口的过程叫做寻址。,通常有两种寻址方式:存储器映像的I/O寻址方式和I/O端口单独寻址方式。,三、 I/O 端口及其寻址方式,1、存储器映像的I/O寻址方式,端口地址与存储器地址统一编址,1). 使用相同的指令访问外设和存储器。端口寻址手段丰富,不需要专门的I/O指令。,2). I/O寄存器数目与外设数目不受限制,而只受总存储容量的限制。,3). 读写控制逻辑比较简单。,I/O端口要占用存储器的一部分地址空间,使可用的内存空间减少。,2、I/O端口单独寻址方式,I/O端口和存储器分开寻址,1). I/O
4、口的地址空间独立,不占用存储器地址空间。,2).地址线较少,寻址速度相对较快 。,3).专门I/O指令的使用,使编制的程序清晰,便于理解和检查。,1). I/O指令较少,导致程序设计的灵活性较差;,2).需要存储器和I/O端口两套控制逻辑,增加了控制逻辑的复杂性。,CPU访问I/O端口必须采用专用I/O指令,包括输入指令IN、输出指令OUT及其相关指令组。硬件上要有控制线来区分是存储器还是外设访问。,80X86系列微处理器采用I/O端口单独寻址方 式。 指令包含直接寻址和寄存器间接寻址两种类型。,采用直接寻址时指令格式为: 输入指令: IN AL,PORT 输出指令: OUT PORT, AL
5、 这种直接寻址方式的端口地址为一个字节长,可寻址256个端口,采用间接寻址时指令格式为: 输入指令:IN AL,DX 输出指令:OUT DX,AL 这种间接寻址方式的端口地址为两个字节长,由DX寄存器间接给出,可寻址64K个端口地址。,18,6.2 简单接口电路,掌握:,两类简单接口芯片的应用,19,一、三态门接口,高电平、低电平、高阻态,20,74LS244,含8个三态门的集成电路芯片 在外设具有数据保持能力时用作输入接口 74LS244应用例(教材p239),21,二、锁存器接口,通常由D触发器构成; 特点: 具有对数据的锁存能力; 不具备对数据的控制能力,22,常用锁存器芯片,74LS2
6、73 8D触发器,不具备数据的控制能力(p240图),74LS373 含三态的8D触发器,具有对数据的控制能力(OE)。 既可以做输入接口,也可以做输出接口。,74LS373在CP高电平锁存,374在CP上升沿锁存,23,I/O接口综合应用例,根据开关状态在7段数码管上显示数字或符号 设输出接口的地址为F0H 设输入接口地址为F1H 当开关的状态分别为00001111时,在7段数码管上对应显示0F (见p242),O1 I1 O2 I2 O3 I3 O4 I4 E1,K0K3,+5V,G G2A G2B C B A,1,74LS244,D0 Q0 | Q1 D7 Q2 Q3 Q4 CP Q5
7、Q6 Q7,a b c d e f g DP,7406,反相器,74LS273,Rx8,1,74LS138,D0D7,IOW,IOR,Y0,Y1,F0H = 1111 0000 F1H = 1111 0001,&,A6A4,A3,A2,A1,A0,D0,D1,D2,D3,译码器,A7,A0,1,26,I/O接口综合应用例 程序段, Seg7 DB 3FH,06H,5BH,4FH, 66H,6DH, 7DH,07H, 7FH,67H,77H,7CH, 39H,5EH,79H,71H ,LEA BX, Seg7 MOV AH, 0 GO:INAL, 0F1H AND AL, 0FH MOV SI,
8、 AX MOV AL, BX+SI OUT 0F0H, AL JMP GO,6.3 CPU与外设之间的数据传送方式,一、无条件传送方式,无条件传送适合于数据传送不太频繁的情况,如对开关、数码显示器等一些简单外设的操作。所谓无条件,就是假设外设已处于就绪状态,数据传送时,程序就不必再去查询外设的状态,而直接执行I/O指令进行数据传输。,无条件传送接口示意图,输出操作:OUT PORT, AL,输入操作:IN AL,PORT,无条件传送的接口电路举例,二、查询传送方式,查询传送方式流程图,查询传送方式工作流程包括两个基本环节,(1)查询环节,通过读取状态寄存器的标志位来检查外设是否“就绪”。,(2
9、)传送环节,当上一环节完成后,将对数据口实现寻址,并通过输入指令从数据端口输入数据,或利用输出指令往数据端口输出数据。,查询式输入时的数据和状态信息,查询式输入程序流程图,NEXT:INAL,STATUS-PORT;从状态口输入状态信息 TESTAL,01H ;测试标志位D0是否为1 JZNEXT ;未就绪,继续查询 INAL,DATA-PORT ;从数据端口输入数据,1.查询式输入,查询式输出的端口信息,查询式输出程序流程图,NEXTOUT: IN AL, STATUS_PORT ;从状态口输入状态信息 TEST AL, 80H ;测试标志位D7是否为0 JNZ NEXTOUT ;未就绪,继
10、续查询 MOV AL, BUF ;从缓冲区BUF取数据 OUT DATA_PORT, AL ;从数据端口输出,2.查询式输出,三、 中断传送方式,为了进一步提高CPU的效率和系统实时性,可以采用中断传送方式。在中断传送方式下,当外设准备好时,主动向CPU发出中断请求,请求CPU进行数据的输入输出。,中断方式的数据输入,采用中断传送方式时,外设处于主动地位,无需CPU花费大量时间去查询外设的工作状态。与程序方式相比,大大提高了CPU的效率。,四、DMA方式,DMA (Direct Memory Access): 是存储器与外设或存储器之间进行大量数据传送的方法,是在DMA控制器(DMAC)的控制
11、下进行的。,通过DMA控制器实现的一种高速数据传送方式;典型应用是磁盘与内存的数据交换。 完全由硬件实现,不需要CPU干预,也不需要软件介入。 常用的DMA控制器是Intel 8237。,DMA与程序控制数据传送路径比较,DMA与程序控制数据传送路径的比较,1.DMA传送的工作原理,DMA传送原理图,DMA工作流程,(1) 能向CPU 发出 BUSRQ 请求信号。,2.DMA 控制器的基本功能,(5)决定数据传送的地址和数据传送的长度。,(4)发出读、写控制信号。,3. DMA操作方式,(1)单字节方式,DMA控制器操作每次均只传送一个字节。,(2)字组方式,也叫请求方式或查询方式。这种方式以
12、有DMA请求为前提,能够连续传送一批数据。,(3)连续方式,连续操作方式是指在数据块传送的整个过程中, 不管DMA请求是否撤消,DMA控制器始终控制着 总线。除非传送结束或检索到“匹配字节”, 才把总线控制权交回CPU。,从DMA操作角度来看,以连续方式最快,字组方式次之,单字节方式最慢。,从CPU的使用效率来看,则正好相反,以单字节方式最好,连续方式最差,字组方式居中。,6.4 8086CPU的中断系统,一、中断类型,8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图,8086的中断分类,1. 外部中断 (硬件中断),(1) 非屏蔽中断 NMI (类型号为2),(2
13、) 可屏蔽的中断INTR,高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。,2. 内部中断 (软件中断),通常由三种情况引起:,(1) INT n 指令中断 (n 为中断类型号),(2) 处理CPU 某些错误的中断, 除法错中断 (中断类型号为0) 溢出中断 (INTO) (中断类型号为4),(3) 为调试程序设置的中断,a 单步中断,当FR 中TF = 1时,每执行一条指令,CPU 产生类型为1 的单步中断。,b 断点中断,设置断点实际上是把指令“INT 3” 插入到程序中,CPU 每执行到断点处的“INT 3” 指令,便产生类型为3 的中断。,二、中断优先级,
14、8086 系统中,中断优先级的次序为:,三、中断向量表,CPU 响应中断后,如何得到中断服务程序的入口地址 (中断向量),转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。,中断向量 (中断服务程序入口地址) 在表中的地址 = 中断类型号 4,中断向量表,1. 取类型号; 2. 计算向量地址; 3. 根据向量地址查表,将偏移地址送IP,段基址送CS; 4. 转入中断服务程序,进行中断处理。,四、8086CPU 转入中断服务程序的过程,8086转入中断处理程序的过程,五、 8086CPU中断响应流程,内部中断?,NMI?,INTR?,TF0?,执行下条指令,完成当前指令,IF1?,标志进栈,将IF、TF清0,断点地址进栈,查中断向量表,转中断服务程序,保护现场,中断服务,恢复现场,开中断,返回,中断响应流程,第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码,Y,Y,Y,Y,N,N,N,N,Y,N,内部中断?,NMI?,INTR?,TF0?,执行下条指令,完成当前指令,IF1?,第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码,A,Y,Y,Y,Y,Y,N,N,N,N,N,Y,Y,N,