第五章输入输出接口课件.ppt
5.1 输入输出及接口,5.5 输入输出的传送方式,5.2 输入输出端口及编址方式,5.4 端口译码方式,5.3 简单输入输出端口,DB AB CB,微机系统各类接口框图,为什么外设不能象内存一样直接挂在CPU上,5.1 输入输出及接口,5.1.1 I/O信息的组成,一、数据信息 要交换的数据本身1.数字量:按一定的编码标准(2#,ASCII码 )由若干位组合 所表示的数或字符。如键盘、CRT、打印机等设 备与CPU交换的信息。,2. 模拟量:现场信息(如温度、压力、流量、位移等非电量) 经过传感器而转换成电量(电压、电流),这些模 拟量经过A/D、D/A转换器在CPU与外设间交换。,3. 开关量:一位2#信息:0、1。如开关的断开与闭合;控制电 机的启、停等。通常这些开关量要经过相应的电平 转换才能与计算机连接。,数据信息、状态信息及控制信息,二、状态信息表征外设的工作状态对输入接口, CPU是否准备好接收数据,“READY” 准备好?对输出接口, 外设是否准备好接收数据,“BUSY” 外设忙吗?,三、控制信息 CPU控制外设工作的命令 CPU通过接口发出,如A/D转换器的启/停信号,设置外设的工作模式 等。, 接口(interface)与端口(port):传送这三种信息(数据、状态、控制)的接口电路中的寄存器称为数据、状态和控制端口。不同的寄存器有不同的端口地址,即用地址来访问。端口由一个或多个寄存器组成。接口由若干个端口加上相应的控制逻辑组成,地址不是对接口而言。,5.1.2 I/O接口的作用,数据缓冲或锁存 设备选择 信号转换(电平、格式) 接收、解释并执行CPU的命令 中断管理 可编程功能,一. I/0接口电路的功能,5.1.2 I/O接口的作用,二. I/0接口电路分类,数据传送方式:并行接口串行接口功能选择的灵活性:可编程接口不可编程接口通用性:通用接口(8253 定时/计数器、8259 中断控制器、8257 DMA、8250 8251 串行接口、 8255 并行接口)专用接口(软盘控制器 8271 8272、CRT 8275、键盘显示 8279),三. I/0接口电路的结构,实现对CPU数据总线速度和驱动能力的匹配,实现各寄存器端口寻址操作,实现接口电路中的各寄存器端口的读/写操作和时序控制,1端口 I/O接口通常设置有若干个寄存器,用来暂存CPU和外设之间传输的数据、状态和控制信息。 一般有三类寄存器,分别是数据寄存器、状态寄存器、控制寄存器。 接口内的寄存器通常被称为端口。根据寄存器内暂存信息的类型,分别称为数据端口、控制端口和状态端口。 每个端口有一个独立的地址,CPU可以用端口地址代码来区别各个不同的端口,并对它们分别进行读/写操作。 目前,可编程大规模集成接口芯片中都包含这些基本电路。,三. I/0接口电路的结构 端口/ 地址译码电路/数据缓冲与锁存器,2地址译码电路 它由译码器或能实现译码功能的其它芯片构成。 它的作用是进行设备选择,是接口中不可缺少的部分。这部分电路不包含在集成接口芯片中,要由用户自行设计。3数据缓冲器与锁存器 在微机系统的数据总线上,连接着许多能够向CPU发送数据的设备,如内存储器、外设的数据输入端口等。为了不使系统数据总线的信号传输发生“信息冲突”,要求所有的这些连接到系统数据总线的设备具有三态输出的功能。也就是说,在CPU选中该设备时,它能向系统数据总线发送数据信号,而在其它时刻,它的输出端必须呈高阻状态。为此,所有接口的输入端口必须通过三态缓冲器与系统数据总线相连。 另外,一些读/写操作及时序的控制电路是必不可少的。,为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为I/O端口地址,以便对它们进行寻址。I/O端口有两种编址方式:统一编址方式、I/O独立编址方式,1. 统一编址指I/O端口与存储器共享一个寻址空间,又称为存储器映像方式编址。在这种系统中,CPU可以用同样的指令对I/O端口和存储器单元的进行访问。优点:对I/O口的访问灵活方便,有利于提高端口数据的处理能力。缺点:I/O端口占用了主存地址,相对减少了主存的可用范围。,5.2 输入输出的编址方式,2. I/O独立编址 指主存地址空间和I/O端口地址空间相互独立,分别编址。CPU通过指令来区分是访问I/O口还是存储单元。 优点:主存和I/O端口的地址可用范围都比较大; 缺点:I/O指令的功能一般比较弱,在I/O操作中必须借助CPU的寄存器进行中转。, 在PC/XT中,扩展总线上用A9A0作为外设端口译码(部分译码方式),共可寻址210=1K个端口。 当A9=0时,寻址主机板上的512个端口。 当A9=1时,寻址I/0卡上的512个端口。,80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64K个字节端口或32K个字端口,I/O端口地址选用的原则自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突. 申明保留的地址,不要使用。用户可使用300H-31FH地址。,表5-1系统板上接口芯片的端口地址,表5-2扩展槽上接口控制卡的端口地址,不可编程的I/O接口属简单的I/O接口,典型的芯片是三态缓冲器和数据锁存器。 如: 74LS244,245; 74LS373,374 增强总线的负载能力并隔离,5.3 简单的输入/输出接口,逻辑门(门电路),在数字电路中实现逻辑运算的电路,简称逻辑门或门电路。,逻辑门的表示方法:, 逻辑门有两种输出状态:高电平(逻辑1)、低电平(逻辑0) 三态门比逻辑门增加了一个控制端EN(又称使能端), 当控制端有效时,三态门处于工作态,否则处于高阻态。,高阻态的特点: 处于高阻状态的三态门, 其输出端既不会有电流流出,也不会有电流流入。 如果与总线相连,此时三态门电路仍连在总线, 但电气上与总线处于断开状态,对总线上的信号无影响.,在数字电路中实现逻辑运算的电路,简称逻辑门或门电路。,在总线结构的微机系统中, 任一时刻只能有一个设备利用总线进行数据传送, 输入设备的数据线应通过三态门与系统相连。,当设备1与CPU进行数据传送时,设备2的数据信号应处于三态当设备2与CPU进行数据传送时,设备1的数据信号应处于三态,输出设备利用锁存器接受CPU输出的数据。,1. 使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器.2. 当触发信号消失,数据锁存在锁存器中, 外设侧数据不随总线侧数据的变化而变化, 使 慢速的外设有足够的时间处理数据。,1. 三态缓冲器 凡输入数据到CPU的设备须经三态缓冲器挂在CPU的数据总线上。当该设备被选通时, 占据总线并送上数据,否则让出总线(浮空), 以防总线冲突。,常用缓冲器:74LS244(单向),74LS245(双向)。,输入缓冲电路,当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线其它时间,三态门处于高阻状态,不影响总线上的其它操作,微处理,器系统,外部输,入设备,A,0,B,0,A,1,B,1,A,2,B,2,A,3,B,3,A,4,B,4,A,5,B,5,A,6,B,6,A,7,B,7,E,DIR,2,3,4,5,6,7,8,9,18,17,16,15,14,13,12,11,1,19,DIR=1,,,A,B,DIR=0,,,B,A,74LS245,输出锁存,微处理,器系统,外部输,出设备,D,0,Q,0,D,1,Q,1,D,2,Q,2,D,3,Q,3,D,4,Q,4,D,5,Q,5,D,6,Q,6,D,7,Q,7,CLK,CL,R,3,4,7,8,13,14,17,18,2,5,6,9,12,15,16,19,74LS273,11,74LS32,+5V,1,选中锁存器时,总线上的数据才能进入锁存器此后不管总线上的数据(锁存器输入端)如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来锁存的信息不变。,3. 简单接口举例,NEXT:MOVDX,PORT_IN IN AL,DX ;通过输入接口读入开关状态NOT AL OUTDX,AL ;通过输出接口控制发光二极管显示 CALLDELAY JMPNEXT,通过以下程序控制,实现发光二极管显示开关的开合状况。该例中输入接口和输出接口使用相同的口地址,不会出现矛盾。,I/O端口的地址译码将来自地址总线上的地址翻译成为所需要访问端口的选通信号I/O端口地址译码电路结构 高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口电路的片选信号CS,实现系统中的接口电路(芯片)寻址。 地址信号:由地址范围决定 低位地址线直接接到I/O接口电路(芯片)的地址引脚,进行I/O接口电路(芯片)的片内端口寻址。 端口的读写控制:输入需要缓冲,输出需要锁存,I/O接口的访问控制微机系统的每个端口都有唯一的端口地址。端口读写控制的关键:除了由译码器产生片选信号外,还必须将读/写控制信号(RD、WR、IO/M)参加接口电路的选通或控制。,5.4 端口地址译码,CPU为了对I/O端口进行读写操作,就需将来自地址总线上的地址翻译成为所需要访问端口的选通信号。1、译码电路的输入信号地址信号有关+控制信号有关。I/O地址译码电路的作用是把地址和控制信号进行逻辑组合,从而产生对接口芯片的选择信号。,5.4 端口地址译码,2、译码电路的输出信号 译码电路把输入的地址线和控制线经过逻辑组合后,所产生的输出信号线就是一根选中线,低电平有效。 若译码电路的输出线为低,则表示译码有效,若输出线为高,则表示译码无效。 当译码有效,选中一个接口芯片时,这个芯片内部的数据线打开,并与系统总线相连,从而打通了接口电路与系统总线的通路。而其他接口芯片的选中线无效,芯片内部呈高阻抗,与系统总线隔离开来,从而关闭了接口电路与系统总线的通路。,5.4.1 门电路译码 这是最基本的也是最简单的地址译码方法通常采用各种门电路,如与门、或门、非门等电路的组合。 实现为了使电路简单,可选用带有多个输入的与非门。 如8输入与非门74LS30、4输入与非门74LS20以及2输入与非门74LS00等等。,设计时首先分配好地址,然后写成二进制形式,再根据地址总线数分配各与非门输入管脚地址。 如采用与非门,则当该地址为“1”时,直接接入与非门输入端,若该位地址为“0”,则先加一个反相器再接到与非门的输入端。,例5-1使用74LS20/30/32和74LS04设计I/O端口地址为3D8H的只读译码电路。 若要产生3D8H端口地址,则译码电路的输入地址线就应具有如表5-3所示的值。,表5-3 译码电路输入地址线的值,设计:按照表5-3中地址线的值,采用门电路就可以设计出译码电路,如图5-3所示。,图5-3 简单译码电路,AEN参加译码,对端口地址译码进行控制,当AEN0时,即不是DMA操作时译码才有效;当AEN1时,即是DMA操作时,译码无效。,门电路译出的端口地址单一,接口中用到的端口地址不能更改。,5.4.2 译码器译码 若接口电路中需使用多个端口地址,则采用译码器译码比较方便。译码器的型号很多,如38译码器74LS138;416译码器74LS154;双24译码器74LS139、74LS155等。 这些译码器通常由三个部分组成:译码控制端,选择输入端,译码输出端。 例如译码器74LS138,见图5-5。 只有当满足控制信号线条件时,74LS138才能进行译码。74LS138输入/输出的逻辑关系,即输入(C,B,A)与输出(Y0Y7)的对应关系。如表5-4所示。,表5-4 74LS138的真值表,当G1=1、G2A+G2B=0时,译码器处于工作状态,否则译码器被禁止,所有的输出端被封锁在高电平。这三个控制端也叫片选输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能。,例5-2使用74LS138设计一个系统板上接口芯片的I/O端口地址译码电路,并且让每个接口芯片内部的端口数目为32个。 分析:由于系统板上的I/O端口地址分配在0000FFH范围内,故只使用低8位地址线,这意味着A9和A8两位应赋0值。为了让每个被选中的芯片内部拥有32个端口,只要留出5根低位地址线不参加译码,其余的高位地址线作为74LS138的输入线,参加译码,或作为74LS138的控制线与AEN一起,控制74LS138的译码是否有效。由上述分析,可以得到译码电路输入地址线的值,如表5-5所示。,表5-5 译码电路输入地址线的值,5.4.3 比较器译码 将比较器的A(或B)输入端输入地址信号,B(或A)端接一组DIP(Dual In-line Package)开关。当地址总线所送的地址与DIP所设置的地址相等时,产生一选通信号输出。这种译码法的特点是可以通过改变DIP开关的设置,很容易地改变接口的地址。这个优点在通用总线接口模块的设计中表现尤为突出。不但同一功能的模块在不同微型计算机应用中可以被分配不同的地址,而且即使在同一微型计算机系统中,也可通过改变DIP开关的设置而控制不同的设备,因而给设计带来极大的灵活性。 这种译码电路应用非常广泛,常用的比较器有四位比较器74LS85和八位比较器74LS688。 图5-6所示为采用四位比较器74LS85的译码电路。,5.5 输入/输出的传送方式, 程序控制的输入和输出 中断控制的输入和输出 直接存储器存取(DMA),5.5.1 程序控制的输入和输出,在程序中利用I/O指令来执行输入和输出的一种方式。 这种方式中,何时进行数据的传送是预先知道的,故I/O 指令出现在程序所需要的位置。,一、无条件传送 CPU与外设同步操作(外设始终是准备好的)。无需查询外设状态而直接进行输入输出。,特点: 简单,适用于慢速外设(CPU认为需要时,随时与外设 交换数据)。 如:LED(输出),乒乓开关(输入),接口特点 CPU的DBI/O接口(输入缓冲器)外设 CPU的DBI/O接口(输出锁存器)外设,微处理,器系统,外部输,入设备,A,0,B,0,A,1,B,1,A,2,B,2,A,3,B,3,A,4,B,4,A,5,B,5,A,6,B,6,A,7,B,7,E,DIR,2,3,4,5,6,7,8,9,18,17,16,15,14,13,12,11,1,19,DIR=1,,,A,B,DIR=0,,,B,A,74LS245,接口特点 CPU的DBI/O接口(输入缓冲器)外设 CPU的DBI/O接口(输出锁存器)外设,无条件传送方式一般适合于数据传送不太频繁的情况,如对开关、数码显示器等一些简单外设的操作无条件,就是假设外设已处于就绪状态,数据传送时,程序就不必再去查询外设的状态,而直接执行I/O指令进行数据传输这种方式是最简单的传送方式,程序编制与接口电路设计都较为简单。但必须注意,当简单外设作为输入设备时,其输入数据的保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器与系统数据总线相连。而当简单外设作为输出设备时,由于外设的速度较慢,CPU送出的数据必须在接口中保持一段时间,以适应外设的动作,因此输出采用锁存器。,DB,图5-7 无条件传送方式的接口电路,接口特点: 避免了对端口的“盲读”、“盲写” ,数据传送的可靠性高, 并且硬件接口相对简单。 缺点 是CPU工作效率低,I/O响应速度慢;,外设要求:状态口和数据口在有多个外设的系统中,CPU的查询顺序由外设的优先级确定,查询控制的程序流程,二 、查询传送 一种CPU主动、外设被动的I/O操作方式,输出:CPU对 “外设BUSY?” 进行查询,不忙,输出。 输入:CPU查 “外设数据READY?” ,若准备好,读入。,1. 查询式输入,程序查询方式的输入接口电路,数据端口(8位),状态端口(1位),状态信息占用数据线的D0位,查询程序如下:QUERY: IN AL,S_PORT ;状态口地址 SAR AL,1 JNC QUERY IN AL,D_PORT ;D_PORT是数据口地址,查询输入程序,查询方式的A/D采样,WAIT: IN AL,51H;读状态端口的值 TEST AL,10H;判断D4是否为1? JZ WAIT;不是1,等待 IN AL,50H;读数据端口的值 MOV BUF,AL;将数据送到数据缓冲单元,2. 查询式输出,程序查询输出方式接口电路,数据端口(8位),状态端口(1位),BUSY,输入状态信息,BUSY?,输出数据信息,N,Y,QUERY:INAL,S_PORT ;状态口地址 SARAL,1 JCQUERY OUTD_PORT,AL ;D_PORT数据口地址,查询输出程序,查询方式的打印机接口,WAIT:IN AL,7AH ;读状态端口 TEST AL,04H ;判断D2是否为0? JNZ WAIT;不是0,等待 MOV AL,BUF ;取数据 OUT 78H,AL ;将数据送到打印机接口,图5-8 查询传送方式输入接口电路,数据端口译码输出,DB,M/IO,例5-3 设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU读取输入设备的数据应执行下列程序段: POLL: IN AL, STATUS ; TEST AL, 80H ; JE POLL ; IN AL, DATA ;,CPU执行指令后,、M/为有效低电平,且状态端口译码输出有效,则1位的三态缓冲器选通,状态信息被读入CPU。 CPU执行、指令,对读入的状态进行测试,图中的1位状态信息位连DB的第7位即D7,所以要测试D7位是否为0。若D7为0,说明状态触发器为0,输入数据没准备好,于是CPU转至POLL继续测试状态;若D7为1,说明状态触发器为1,输入数据准备好。 于是CPU继续执行指令。CPU执行指令后,、M/为有效低电平,且数据端口译码输出有效,则8位三态缓冲器选通,数据经DB送入CPU,同时使状态触发器清“0”以标志下一个输入数据还“未准备好”。,图5-9 查询传送方式输出接口电路,例5-4 设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU将内存STORE单元的内容送至输出设备应执行下列程序段: POLL: IN AL, STATUS ; TEST AL, 80H ; JNE POLL ; MOV AL, STORE ; OUT DATA, AL ;,CPU执行指令,RD、M/IO输出有效低电平,且状态端口译码输出有效,三态缓冲器选通,状态信息经D7被读入CPU。 CPU执行、指令,当D7为1时,说明输出设备正忙,CPU继续读取状态信息,以便等待输出设备空闲;当D7为0时,则CPU顺序执行指令。CPU执行指令,将内存单元内容送AL寄存器。 CPU执行指令,WR、M/IO为有效低电平,且数据端口译码输出有效,则选通锁存器,即CPU输出的数据被锁存至锁存器中,同时标志状态的触发器置“1”,该状态信号一方面通知输出设备取走锁存器中的数据,另一方面阻止CPU输出新数据。,5.5.2 中断控制的输入和输出,CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能,中断工作过程外设需要CPU服务时 外设I/O接口向CPU发中断请求,INTR=H (中断请求有效)CPU执行完当前指令后, (注: 若IF = 1) CPU I/O接口 外设发中断响应,/INTA = LCPU执行中断服务程序, CPUI/O接口外设读写数据,接口特点:避免了CPU 反复低效率的查询,适用于CPU任务繁忙、而数据传送不太频繁的系统中。 缺点是硬件电路和处理过程都比较复杂;(中断控制芯片),中断可被响应的条件: 中断请求触发器置位;CPU内部开放中断;CPU未处理更高级中断;CPU现行指令执行完。,5.5.3 直接数据通道传送(DMA方式),中断方式虽提高了CPU的效率,但仍然是通过CPU执行程序来实现数据传送。 缺点: 大量的数据在磁盘与内存间交换需大量的时间。 高速I/O设备时或成组数据交换时,显得速度太慢。 希望在外设与内存间直接传送数据,这就是DMA方式。 DMA的速度取决于MEM的工作速度。 早期DMA仅限于外设内存间,随着大规模集成电路技术的发展,还可在外设外设间,内存内存间进行DMA传送。,流程图为:,