1、第六章 输入输出和中断技术,输入输出系统概述 简单接口电路 基本输入输出方法 中断技术 中断芯片8259A,6.1 输入输出系统概述,微型计算机系统可通过系统总线与外设相连,进行系统的扩展与开发,而外设必须通过接口才能与CPU交换信息。,把外设和I/O接口叫做输入输出系统,作为接口电路,通常必须为外部设备提供几个不同地址的寄存器,每个寄存器称为一个I/O端口。通常的I/O接口示意图如下图所示:,I/O接口内部一般由数据(I、O) 、状态(O) 、控制(I)三类寄存器组成。,状态寄存器保存状态信息,CPU可从状态口读取当前状态; 控制寄存器用来保存CPU写入的控制字。设定接口功能、工作参数和工作
2、方式。,1、接口的用途(功能),设备选择 把选中的与总线相接,未选中的与总线隔离(高阻态) 外设管理。对进行监测、控制与管理,中断处理 数据缓冲 缓解接口与CPU工作速度的差异 信号转换 形式、格式、电平、功率、码制等,2、I/O 端口的寻址方式,I/O端口:I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。 不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号称为端口地址(或端口号)。 端口有两种编址方式:统一编址和独立编址。,(1). 统一编址 存储映像的I/O寻址 把外设接口与内存统一进行编址。各占据
3、统一地址空间的不同部分。,FFFFFH,优点 指令统一,灵活,强大;,缺点 内存可用地址空间减小; 阅读困难。,(2). 独立编址 外设地址空间和内存地址空间相互独立。 优点:不影响内存地址空间;易阅读。 缺点:I/O指令功能较弱,使用不同的读写控制信号,00000H,内存地址空间,内存空间 (1MB),I/O空间 (64KB),FFFFH,FFFFFH,I/O地址空间,0000H,(3)8088/8086 CPU的I/O编址方式 采用I/O独立编址方式(但地址线与存储器共用) 地址线上的信号是内存地址还是IO地址,取决于IO/M管脚的状态。 I/O操作只使用20根地址线中的16根: A15
4、A0,或者8根. 可寻址的I/O端口数为64K(65536)个 I/O地址范围为0FFFFH,3、 8086CPU的输入/输出 1、8086CPU的IO指令 (1) 直接寻址输入输出指令(八位端口地址)IN AL,n (字节输入)IN AX,n (字输入)OUT n,AL (字节输出)OUT n,AX (字输出),(2)DX寄存器间接寻址输入(十六位端口地址)IN AL,DX (字节输入)IN AX,DX (字输入)OUT DX,AL (字节输出)OUT DX,AX (字输出),6.2 CPU与外设通信的接口(简单) 简单接口电路基本构成不查询外设状态、不进行IO控制,认为外设已经准备就绪,直
5、接与外设传送数据。输入:缓冲器(如:74LS244)输出:锁存器(如:74LS273),输入用缓冲器/输出用锁存器,74LS244 输入缓冲器单向数据输入 INTER 8286 双向数据收发器。LS245,简单的输入接口举例,接口电路图如下:,83FCH 83FFH,译码器,+,+,外设具有数据保持能力,74LS273 输出锁存器,LS374 INTER8282具有三态输出的锁存器,LS373,不能作为输入接口,没有三态门,+5V,F0H = 0000 0000 1111 0000 F1H = 0000 0000 1111 0001,F0H = 0000 0000 1111 0000 F1H
6、= 0000 0000 1111 0001,例1:发光二级管由低位向高位循环显示,显示时间隔1s(彩灯显示),MOV AL,01HMOV DX,00F0H ;输出接口地址为00F0H NEXT : OUT DX,ALMOV CX,100 DELAY: CALL DELAY_10 ;调用10ms延时程序100次LOOP DELAYROL AL,1JMP NEXT,例2:当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。,相应程序段如下:NEST: MOV DX, 0F1H ;状态接口的地址为F1HIN AL, DX ;读入开关状态TEST AL, 01 ;测试位MOV
7、AL, 0F0HJz DISP ;断开显示1 MOV AL, 06 ;闭合显示0 DISP:MOV DX, 0F0H ;数据接口的地址为F0HOUT DX, ALJMP NEST,相应程序段如下: Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,39H,5EH,79H,71HLEA BX, Seg7 ;取7段码表基地址 GO: MOV DX, 0F1H ;开关接口的地址为F1HIN AL, DX ;读入开关状态AND AL, 0FH ;保留低4位MOV AH, 0MOV SI, AX ;作为7段码表的表内位移量 MOV AL,
8、 BX+SI ;取7段码MOV DX, 0F0H ;7段数码管接口的地址为F0HOUT DX, ALJMP GO,显示开关状态的编码!,6.3 输入/输出方式 1、程序控制传送方式(1)无条件传送方式(2) 查询传送方式(3) 中断方式 2、直接存储器存取方式DMA,1、程序控制传送方式 (1)无条件传送方式CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据 。 由于不查询外设状态,接口电路不需要状态寄存器 开关 发光器件(如发光二极管、7段数码管、灯泡等) 继电器 步进电机 优点:软件及接口硬件简单 缺点:只适用于简单外设,适应范围较窄,必须查询外设状态,
9、然后再决定是否与外设传送数据。,(1)查询状态口,通过读取状态寄存器的标志位来检查外设是否“就绪”。,(2)数据口,通过输入/输出指令从数据端口输入/输入数据,(2)查询传送方式,查询式输入时的数据和状态信息,查询式输入程序流程图,TEST1:IN AL,S-PORT ; 从状态口输入状态信息 TEST AL,01H ;测试标志位是否为1 JZ TEST1 ;未就绪,继续查询IN AL,D-PORT ;从数据端口输入数据,在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;“你准备好没有?”输出时,状态寄存器的状态指示输出设备是否空闲。
10、“你是否空闲?”适用于外设并不总是准备好,而且对传送速 率、传送效率要求不高的场合。如打印机、猫。 优点:软件比较简单(控制方式) 缺点:CPU效率低,数据传送的实时性差,速度较慢,(3)中断方式 当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。在中断未发生时,CPU可以执行其他程序,这样可以提高CPU的利用率。优点:CPU效率高,实时性好,速度快。 缺点:程序编制较为复杂。(控制方式),分时传送,并行处理,2、直接存储器存取方式 (DMA) (Direct Memory Access) 。,前面三种I/O方式都需要CPU作为中介:外设 CPU 内存需要程序控制1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的;2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)解决:DMA传输,DMA传输:外设 内存 外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者; 总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。 优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒) 缺点:硬件复杂。,