240 likes | 466 Views
第 8 章 输入输出接口. 主要内容 输入输出接口概述 并行通信与并行接口 可编程并行通信接口芯片 8255A. 8.1 输入输出接口概述. 8.1 输入输出接口概述. 为什么需要 I/O 接口(电路)?. 微机的外部设备多种多样,它们工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大。. 它们不能与 CPU 直接相连 , 必须经过中间电路再与系统相连,这部分电路被称为 I/O 接口电路。. 什么是 I/O 接口(电路)?. I/O 接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。. 8.1 输入输出接口概述.
E N D
第8章 输入输出接口 主要内容 • 输入输出接口概述 • 并行通信与并行接口 • 可编程并行通信接口芯片8255A
8.1 输入输出接口概述 • 为什么需要I/O接口(电路)? • 微机的外部设备多种多样,它们工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大。 • 它们不能与CPU直接相连,必须经过中间电路再与系统相连,这部分电路被称为I/O接口电路。 • 什么是I/O接口(电路)? • I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。
8.1 输入输出接口概述 • I/O接口电路与外部设备间交换的信号的类型: • (1) 数字量: 二进制形式的数据,或是已经过编码的二进制形式的数据。最小单位为“位”(bit),8位称为一个字节(BYTE)。 • (2) 模拟量: 用模拟电压或模拟电流幅值大小表示的物理量。模拟量信号不能直接进入计算机,必须经过A/D(模拟/数字)转换器,把模拟量转换成某种形式的数字量,才能输入计算机。当外部设备需要模拟量信号控制时,I/O接口电路D/A(数字/模拟)转换器又能把数字量转换成模拟量信号。 • (3) 开关量: 开关量信号只有两种状态,即“开”或“闭”。这样,只要用一位二进制数就可表示。 • (4) 脉冲量: 在计算机控制系统中还经常用到计数脉冲、定时脉冲或控制脉冲。脉冲量信号是以脉冲形式表示的一种信号。
8.1 输入输出接口概述 • 输入/输出的控制方式 在微机系统中,可采用的输入/输出控制方式一般有4种:程序控制方式、中断控制方式、直接存储器存取方式(DMA方式)和输入/输出处理机方式。 • 1.程序控制方式 • 这是指在程序控制下进行信息传送,程序控制方式可以分为: 无条件传送方式和条件传送方式。 • 无条件传送方式:当外设已准备就绪,那就不必查询外设的状态而进行信息传输,这就称为无条件传送。这种信息传送方式只适用于简单的外设,如开关和数码段显示器等。 • 条件传送方式:CPU通过执行程序不断读取并测试外部设备状态,如果输入外部设备处于已准备好状态或输出外部设备为空闲状态时,则CPU执行传送信息指令。也称为“查询式传送”。
8.1 输入输出接口概述 2.中断控制方式 中断控制方式一般用于低速外部设备与CPU之间的信息交换。当外部设备需要与CPU进行数据交换时,由接口部件向CPU发出一个中断请求信号,CPU响应这一中断请求,便可在中断服务程序中完成一个字节或一个字的信息交换。每操作一次,CPU要打断原来执行的程序去执行一段中断服务程序,对速度较高的外部设备会产生信息丢失,因此不能采用。 3.DMA控制方式 DMA控制方式是一种成块传送数据的方式。当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求;若CPU响应DMA的请求把总线使用权赋给DMA控制器,数据不通过CPU,可直接在DMA控制器操纵下进行传送。当这批数据传送完毕后,DMA控制器再向CPU发出“结束中断请求”,CPU响应这一中断请求,即可收回总线使用权。因此,采用DMA控制方式,CPU只需在数据传送结束时响应一次中断,减轻了CPU的负担,但DMA控制器一般只能对一台或几台同类型的外部设备完成控制功能。
8.1 输入输出接口概述 • 4.输入/输出处理机控制方式 • 对于有大量输入/输出设备的微机系统,DMA控制方式已不能满足这种需要。Intel公司生产了与86系列配套的输入/输出处理机(IOP)8089。系统中设置了IOP后,86系列CPU必须工作在最大工作模式。当CPU需要进行输入或输出操作时,只需在存储器中建立一个规定格式的信息块,设置好需要执行的操作和有关参数,然后把这些参数送入8089,IOP即会执行输入/输出操作。如果在数据传送过程出现差错,8089会进行重复传送或做必要的处理。在整个数据块的传送过程中,CPU可去完成其他作业。 • 在微型计算机系统中,通常是用各种类型的输入/输出接口芯片来完成CPU与其外部设备之间的信息交换。下面介绍一种常用接口芯片及工作原理。
8.2 并行通讯与并行接口(Parallel communication & Parallel Interface) 一、并行通讯及特点: 特点: (1)速度快 (2)线较多 (3)距离近
8.2 并行通讯与并行接口 二、并行接口的一般结构及其与外部的连接 :
8.2 并行通讯与并行接口 • 并行接口的输入过程: 外部设备首先将数据送给接口,并使状态线“数据输入准备好”成为高电平。接口把数据接收到数据输入缓冲寄存器的同时,使“数据输入回答”线变为高电平,作为对外部设备的响应。外部设备接到此信号,便撤除数据和“数据输入准备好”信号。数据到达接口中后,接口会在状态寄存器中设置“输入准备好”状态位,以便CPU对其进行查询,接口也可以在此时向CPU发一个中断请求。所以,CPU既可以用软件查询方式,也可以用中断方式来设法读取接口中的数据。CPU从并行接口中读取数据后,接口会自动清除状态寄存器中的“输入准备好”状态位,并且使数据总线处于高阻状态。此后,又可以开始下一个输入过程。
8.2 并行通讯与并行接口 • 并行接口的输出过程: • 每当外部设备从接口取走一个数据之后,接口就会将状态寄存器中的“输出准备好”状态位置“1”,以表示CPU当前可以往接口中输出数据,这个状态位可供CPU进行查询。此时,接口也可以向CPU发一个中断请求。所以,CPU既可以用软件查询方式,也可以用中断方式设法往接口中输出一个数据。当CPU输出的数据到达接口的输出缓冲寄存器中后,接口会自动清除“输出准备好”状态位,并且将数据送往外部设备,同时,接口往外部设备发送一个“驱动信号”来启动外部设备接收数据。外部设备被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置“1”,以便CPU输出下一个数据。
8.3 可编程并行通信接口芯片8255A 8255A是Intel86系列微处理机的配套并行接口芯片,它可为86系列CPU与外部设备之间提供并行输入/输出的通道。由于它是可编程的,可以通过软件来设置芯片的工作方式,所以,用8255A连接外部设备时,通常不用再附加外部电路,给使用者带来很大方便。
8.3.1 8255A芯片内部结构及其功能 8255A的内部结构图
8.3.1 8255A芯片内部结构及其功能 8255A的芯片引脚信号
8.3.1 8255A芯片内部结构及其功能 1.并行输入/输出端口A,B,C 8255A芯片内部包含3个8位端口,其中:端口A包含一个8位数据输出锁存/缓冲存储器和一个8位数据输入锁存器;端口B包含一个8位数据输入/输出、锁存/缓冲存储器和一个8位数据输入缓冲存储器;端口C包含一个输出锁存/缓冲存储器和一个输入缓冲存储器。必要时端口C可分成两个4位端口,分别与端口A和端口B配合工作,通常将端口A和端口B定义为输入/输出的数据端口,而端口C可作为状态或控制信息的传送端口。 2.A组和B组控制部件 端口A与端口C的高4位(PC7~PC4)构成A组,由A组控制部件实现控制功能,端口B与端口C的低4位(PC3~PC0)构成B组,由B组控制部件实现控制功能。它们各有一个控制单元,可接收来自读/写控制部件的命令和CPU通过数据总线(D7~D0)送来的控制字,并根据它们来定义各个端口的操作方式。
8.3.1 8255A芯片内部结构及其功能 3.数据总线缓冲存储器 这是一个三态双向8位数据缓冲存储器,它是8255A与8086CPU之间的数据接口。CPU执行输出指令时,可将控制字或数据通过数据总线缓冲存储器传送给8255A。CPU执行输入指令时,8255A可将状态信息或数据通过总线缓冲存储器向CPU输入。因此它是CPU与8255A之间交换信息的必经之路。 4.读/写控制部件 这是8255A内部完成读/写控制功能的部件,它能接收CPU的控制命令,并根据它们向片内各功能部件发出操作命令。可接收的控制命令如下: (1)CS——片选信号。由CPU输入,通常由端口的高位地址码(A15~A2)译码得到,CS有效,表示该8255A被选中。 (2)RD,WR——读、写控制信号。由CPU输入,RD有效,表示CPU读8255A,应由8255A向CPU传送数据或状态信息。WR有效,表示CPU写8255A,应由CPU将控制字或数据写入8255A。 (3)RESET——复位信号。由CPU输入。RESET有效时,清除8255A中所有控制字寄存器内容,并将各端口置成输入方式。 (4)A1和A0——端口选择信号。 当A1A0=00,选择端口A;当A1A0=01,选择端口B;当A1A0=10,选择端口C;当A1A0=11,选择控制字寄存器。
8.3.2 8255A芯片的控制字及其工作方式 • 8255A中各端口可有3种基本工作方式: 方式0——基本输入/输出方式;方式1——选通输入/输出方式;方式2——双向传送方式。 • 端口A可处于3种工作方式(方式0,方式1和方式2),端口B只可处于两种方式(方式0和方式1),端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息。 • 用户可用软件来分别定义3个端口的工作方式,可使用的控制字有定义工作方式控制字和置位/复位控制字。 • 1.控制字 • (1)定义工作方式控制字:格式如下图所示。通过定义工作方式控制字可将3个端口分别定义为3种不同方式的组合,当将端口A定义为方式1或方式2或将端口B定义为方式1时,要求使用端口C的某些位作控制用,这时需要使用一个专门的置位/复位控制字来对控制端口C的各位分别进行置位/复位操作。
8.3.2 8255A芯片的控制字及其工作方式 • 8255A工作方式控制字格式:
8.3.2 8255A芯片的控制字及其工作方式 (2) 置位/复位控制字: 只对端口C有效,其使用格式如图所示。
8.3.2 8255A芯片的控制字及其工作方式 2.工作方式 (1)工作方式0:这是8255A中各端口的基本输入/输出方式。它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息。如果3个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合,这种情况下,工作方式控制字的具体格式如下图所示。
8.3.2 8255A芯片的控制字及其工作方式 • 在上述情况下,端口C被分成两个4位端口,它们可分别被定义为输入或输出端口,CPU与这三个端口之间交换数据可直接由CPU执行IN或OUT指令来完成,而不提供任何“握手”信息,适用于各种同步并行传输系统。 (2)工作方式1、2:略。 • 例题:8255A作为连接打印机的接口,工作于方式0,如下图所示: 8255A 打印机 D7~D0 PA7~PA0 8086 D7~D0 STB BUSY PC2 工作过程为:当主机要往打印机输出字符时,先查询BUSY信号,如为零,则可通过8255A向打印机输出一个字符,同时给出选通信号STB(负脉冲)。
8.3.2 8255A芯片的控制字及其工作方式 现将A端口作为传送字符的通道,工作于方式0、输出方式;B端口未用;端口C也工作于方式0,PC2作为BUSY信号输入端,故PC3~PC0为输入方式,PC6作为STB信号输出端,故PC7~PC4为输出方式。 设8255A的端口地址为: A端口:00D0H, B端口: 00D2H, C端口: 00D4H, 控制端口:00D6H 具体程序段如下: PP: MOV AL,81H ;控制字,使A,B,C三个端口均工作于方式0, A端口 OUT 0D6H,AL ;为输出, PC7~PC4为输出,PC3~PC0为输入。 MOV AL,0DH ;用置0置1方式使PC6为1,即STB为高电平。 OUT 0D6H,AL LPST: IN AL,0D4H ;读端口C的值 AND AL,04H JNZ LPST ;如不为0,说明打印机忙,故等待。
8.3.2 8255A芯片的控制字及其工作方式 MOV AL,CL OUT 0D0H,AL ;如不忙,则把CL中字符送端口A。 MOV AL,0CH OUT 0D6H,AL ;使STB为0 INC AL OUT 0D6H,AL ;再使STB为1 …… ;后续程序段 …… ……