微机原理052

上传人:今*** 文档编号:107830649 上传时间:2019-10-21 格式:PPT 页数:36 大小:309.50KB
返回 下载 相关 举报
微机原理052_第1页
第1页 / 共36页
微机原理052_第2页
第2页 / 共36页
微机原理052_第3页
第3页 / 共36页
微机原理052_第4页
第4页 / 共36页
微机原理052_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《微机原理052》由会员分享,可在线阅读,更多相关《微机原理052(36页珍藏版)》请在金锄头文库上搜索。

1、第5章 输入/输出接口,本章概述了微机系统输入/输出接口的基本概念、功能、及CPU与外设的数据传送方式。 具体介绍了I/O接口的概念 I/O接口的功能 I/O端口的编址方法 I/O与CPU之间的三种数据传送方式:查询式、中断式及DMA方式,5.1 输入输出接口,1. 什么是I/O接口 输入/输出接口电路位于系统总线(或局部总线)与外设之间,用它来完成系统总线(或局部总线)与外设之间的数据传输,完成系统对外设的控制与响应。从硬件上讲,接口是介于部件与总线之间的电路,适配两者完成数据传输。 主机与外设通过接口传送信息,按所传送信息的内容和功能可分为: (1)数据信息:数字量、模拟量、开关量 (2)

2、状态信息 (3)控制信息,2. I/O接口的主要功能 (1).匹配主机与外设的速度 (2).数据格式转换(如:串并) (3).电平转换(如:RS232信号) (4).数字量与模拟量之间信号变换 (5).传送主机命令,反映设备工作状态 (6).识别和指示数据传送的地址 (7).数据输入输出,3. 接口基本结构,接口电路可以很简单,简单得可以由几个甚至一个三态门构成;以VLSI芯片为主构成的接口电路,其复杂程度有的不亚于8位CPU。接口电路通常做在一块超大规模集成电路接口芯片上,根据需要也有用中小规模集成电路芯片构成的。不同规模和功能的接口电路,其结构虽各有不同,但一般是由寄存器和控制逻辑两大部分

3、组成,每部分又包含几个基本模块,如下图所示。,(1) 端口寄存器 这部分包括输入缓冲寄存器、输出缓冲寄存器、控制寄存器和状态寄存器,它们是接口电路的核心,每个寄存器表示一个I/O端口,对应一个I/O端口地址。 数据缓冲寄存器 输入缓冲寄存器暂时存放输入设备送来的数据,供CPU读取;输出缓冲寄存器暂时存放CPU送出的数据,缓冲后送给输出设备。输入输出缓冲寄存器在高速CPU与低速外设之间起到协调、缓冲作用,实现数据传送的同步。数据缓冲寄存器通常具有三态功能。 控制寄存器 控制寄存器用来存放CPU发来的控制命令和有关信息,以规定接口电路的功能和工作方式。VLSI接口芯片一般具有可编程特性,一个接口芯

4、片具有多种不同的工作方式和功能,可通过编程来设定,使用上十分灵活方便。控制寄存器一般是只写寄存器,其内容只能由CPU写入,不能读出。 状态寄存器 状态寄存器记录外设的当前状态和I/O操作状况。 CPU用输入指令读取状态寄存器的内容,从而了解外设的当前状况和数据传输过程中发生的有关情况,据此作出相应判断,执行相应操作,使主机能安全可靠地通过接口完成数据传输。,(2) 控制逻辑电路 为确保CPU通过接口正确地传输数据,接口中还必须包含如下的控制逻辑电路。 数据总线缓冲器 接口芯片内部数据总线经数据总线缓冲器与系统总线相连接;如果芯片负载较重,可在片外再加一级总线缓冲与系统数据总线相连。 地址译码

5、系统地址总线高位经片外的地址译码器译码来选择接口芯片,低位地址线在片内译码后选择接口芯片内部相应的端口寄存器,使CPU正确无误地与指定的外设完成相应的I/O操作。 内部控制逻辑 接收来自系统的控制输入,产生接口电路内部的控制信号,实现系统控制总线与内部控制信号之间的转换。 联络控制逻辑 接收CPU有关控制信号,生成给外设的准备好信号和相应的状态;接收外设的选通信号,产生相应状态标志和中断请求信号。上图是接口电路的通常组成,并非所有接口全部具备。一般而言,数据缓冲寄存器、端口地址译码器和输入输出控制逻辑是不可少的,其它部分视接口功能强弱和I/O操作的同步方式而定。,4. I/O端口编址, I/O

6、端口与存储器统一编址 这种编址方式,把I/O端口同存储器的存储单元一样看待,统一编址。 在可寻址的存储空间中,划出一部分作为I/O端口空间地址,其余大部分用作内存单元,I/O端口和内存单元有不同的地址编号。 在该方式中CPU对存储单元的读/写和对I/O端口的输入/输出操作都用访问存储器指令,而不用输入输出指令,即控制信号IO/-M(对PC/XT机对而言)都为低电平,而由地址总线上的码值(地址码)区分访问对象是存储单元还是I/O端口,控制信号或指明是读(输入)还是写(输出)。这种方式CPU对存储器和I/O端口的访问如下图(左)所示。 优点:可使用存储器寻址方式对端口寻址,寻址方式灵活。 缺点:I

7、/O端口地址占用存储器地址空间。 M6800、单片机通常采用这种编址方法。, I/O端口独立编址 I/O端口和内存单元各自独立编址,CPU访问I/O端口须用专门的输入输出指令。PC系列机的输入和输出指令中,直接寻址I/O端口时用一个字节的地址码,故可寻址28=256个端口;寄存器间接寻址I/O端口用DX表示地址码,有16位,可寻址216=65536个端口。但PC/XT机一般用低10位地址线来表示I/O端口,因此该系统中可安排的I/O端口最多为1024个(210)。 在该编址方式中地址总线上出现的地址码究竟表示存储单元地址还是I/O端口地址,以控制信号IO/-M来区分:低电平则表明地址码是存储单

8、元地址,CPU对存储器进行读写;高电平则表明地址码是I/O端口地址,CPU执行输入输出操作。 采用这种编址方式,CPU必须以专用的I/O指令访问I/O端口,即CPU以IN类指令输入(读)数据,以OUT类指令输出(写)数据。这种编址方式CPU对存储器和I/O端口的访问如下图(右)所示。 优点:I/O端口地址不占用存储空间。指令地址较短,所需译码硬件较少。指令格式较短,执行时间也短。 缺点:对端口的寻址方式较少。,5. 微机I/O端口地址配置及I/O端口寻址,CPU可寻址的I/O空间为64KB。PC/AT机只使用了16位地址线中的10位(A9A0)对外设接口电路进行编址,可寻址1024个I/O端口

9、(000H3FFH)。当A9A800时对系统板上的接口芯片寻址,共256个端口(000H0FFH);当A9A800时对I/O通道上的插件电路寻址,共768个端口(100H3FFH)。其中300H31FH是留给用户实验卡用的。 (1) 直接寻址I/O端口 输入输出指令中,在操作码后面用一个字节的无符号数来表示I/O端口地址。因此直接寻址的I/O端口数为256个字节端口。在PC系列机中,可用AL一次输入/输出一个字节,也可用AX一次输入/输出一个字。 IN AL,PORT ;AL(PORT)字节端口内容 IN AX,PORT ;AX(PORT)字端口内容 OUT PORT,AL ;(PORT)字节

10、端口AL OUT PORT,AX ;(PORT)字端口AX,(2) DX间接寻址I/O端口 在输入输出指令中,用DX的当前内容表示所寻找的I/O端口地址; DX有16位,DX间接寻址的I/O端口数大为增加。可分别用AL、AX一次输入/输出一个字节、一个字。 IN AL,DX ;ALDX指向的字节端口内容 IN AX,DX ;AXDX指向的字端口内容 OUT DX,AL ;DX指向的字节端口AL OUT DX,AX ;DX指向的字端口AX,高位地址与控制信号组合用于地址译码,产生片选信号,实现片间寻址 。低位地址不参与地址译码,仅用于对片内端口的寻址,实现对片内的寄存器寻址,即选择片内不同的端口

11、 。,6、I/O地址分配原则(补充内容),1)、固定式地址译码 “固定式”是指译码电路设计完成后,接口中用到的端口地址不能改变。 例1:使用74LS20/30/32和74LS04设计I/O端口地址为2F8H 的只读译码电路。 地址线: A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 二进制: 1 0 1 1 1 1 1 0 0 0 十六进制: 2 F 8,7、地址译码器设计 (补充内容),译码电路输入: 地址值:2F8H 地址线: 10根,A9A0=1011111000 B, 控制线: 、 (读有效) 译码电路输出: 为译码选中。,例2:由或非门和与非门构成的译码电路,例3:由74

12、LS138构成的译码电路 对于前面讲的译码器只能译出一个端口地址,不能适于端口地址较多的情况。为此,可以使用某些专用译码芯片进行设计,比如74LS138。,2)、可选式地址译码器,7、地址译码器设计(补充内容),练习: 某芯片需要的片选信号地址为2F02F7H,请使用74LS138设计满足要求的地址译码器。,?,地址线: A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 二进制: 1 0 1 1 1 1 0 0 0 0 十六进制: 2 F 0,5.2 I/O数据传输方式,通常CPU与外设之间的数据传送方式有三种: 程序控制的输入和输出 中断控制的输入和输出 直接存储器存取(DMA)方

13、式 1.程序控制的输入/输出方式 程序控制的输入/输出方式以CPU为中心,数据传送的控制来自CPU,通过执行预先编制的输入/输出程序实现数据传输。此方式的前提是预先知道何时进行数据传送。可以把相关I/O指令插入到程序中相应位置。 程序传送方式可分为无条件传送和查询传送方式。,无条件传送方式 无条件传输方式又称同步传送方式。在传送信息时,已知外部设备是准备好的状态,所以输入输出时都不需要查询外部设备的状态。在输入或输出时,相应给出IN或OUT指令即可。但这种方式必须确信外部设备已准备好的状态才可使用,否则就会出错,故很少使用。 无条件传送的接口电路(输入/输出)如下所示。,MOV DX,PORT

14、 ;端口地址为PORT MOV AL,DATA ;显示数据为DATA OUT DX,AL ;发送数据,查询传送 亦称条件传送,CPU与接口之间有一个应答过程,所以又称异步传送。 大多数外设数据传送、处理的速度较慢,跟不上CPU的高速运转,为使传送可靠,程序需要了解外设的动态情况后才决定是否进行数据传送。 在数据传送之前,程序首先测试外设的状态,当状态符合规定的条件(比如输入设备的下一个输入数据准备好了,或输出接口已经将前一个输出的数据送往输出设备)就进行输入或输出操作,否则就踏步等待或转入其它程序段。 因此,查询传送方式的接口电路中必须有表征外设工作状态的触发器或寄存器以供CPU查询。,查询式

15、输入 查询方式输入接口电路如下图(左)所示。 当数据准备好时,输入设备发出选通信号脉冲,一方面送到锁存器时钟端(CP)将准备好的数据送入锁存器,另一方面送到Ready(准备好)触发器的时钟端(CP),将该触发器置为1(因为该D触发器的D端接高电平+5V),表示输入数据准备就绪。 CPU输入数据时首先查询输入状态端口:数据准备就绪否?程序流程图如下图(右)所示,程序如下: RPLI: IN AL,PSTATUS ;读入状态 TEST AL,01H ;查状态 JZ RPLI ;未准备好,踏步检查 IN AL,PDATAI ;准备好输入数据 ,查询式输出 查询方式输出接口电路如下所示。 当输出设备完成当前数据的输出操作后就来取走CPU送至锁存器中的数据,同时发出一个响应信号,使状态触发器BUSY(忙触发器)异步置零(表示输出数据端口中数据已空)。CPU在输出数据前要先查询输出接口的状态,若输出端口数据已空则向该端口输出数据,否则(未空)表示输出设备还未将前一个输出的数据取走,CPU继续输入并测试状态位。程序如下: RPLO: IN AL,PSTATUS TEST AL,80H JNZ RPLO MOV AL,SI OUT PTADAO,AL ,2. 中断控制的输入和输出,查询传送虽然简单可靠,但效率低下 主机要花费大量时间查询外设状态,等待外设

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号