第 8 章 输入输出接口

24
第 8 第 第第第第第第 主主主主 第第第第第第第第 第第第第第第第第第 第第第第第第第第第第第 8255A

Upload: milos

Post on 17-Jan-2016

94 views

Category:

Documents


9 download

DESCRIPTION

第 8 章 输入输出接口. 主要内容 输入输出接口概述 并行通信与并行接口 可编程并行通信接口芯片 8255A. 8.1 输入输出接口概述. 8.1 输入输出接口概述. 为什么需要 I/O 接口(电路)?. 微机的外部设备多种多样,它们工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大。. 它们不能与 CPU 直接相连 , 必须经过中间电路再与系统相连,这部分电路被称为 I/O 接口电路。. 什么是 I/O 接口(电路)?. I/O 接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。. 8.1 输入输出接口概述. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 8 章 输入输出接口

第 8章 输入输出接口

主要内容输入输出接口概述并行通信与并行接口可编程并行通信接口芯片 8255A

Page 2: 第 8 章 输入输出接口

8.1 输入输出接口概述

Page 3: 第 8 章 输入输出接口

为什么需要 I/O 接口(电路)?

8.1 输入输出接口概述

微机的外部设备多种多样,它们工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大。它们不能与CPU直接相连 ,必须经过中间电路再与系统相连,这部分电路被称为 I/O接口电路。

什么是 I/O 接口(电路)?

I/O 接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。

Page 4: 第 8 章 输入输出接口

I/O 接口电路与外部设备间交换的信号的类型:(1) 数字量 : 二进制形式的数据,或是已经过编码的二进制

形式的数据。最小单位为“位” (bit) , 8位称为一个字节(BYTE) 。

(2) 模拟量 : 用模拟电压或模拟电流幅值大小表示的物理量。模拟量信号不能直接进入计算机,必须经过 A/D( 模拟 /数字 )转换器,把模拟量转换成某种形式的数字量,才能输入计算机。当外部设备需要模拟量信号控制时, I/O 接口电路D/A( 数字 /模拟 )转换器又能把数字量转换成模拟量信号。

(3) 开关量 : 开关量信号只有两种状态,即“开”或“闭”。这样,只要用一位二进制数就可表示。

(4) 脉冲量 : 在计算机控制系统中还经常用到计数脉冲、定时脉冲或控制脉冲。脉冲量信号是以脉冲形式表示的一种信号。

8.1 输入输出接口概述

Page 5: 第 8 章 输入输出接口

8.1 输入输出接口概述

Page 6: 第 8 章 输入输出接口

输入 /输出的控制方式 在微机系统中,可采用的输入 /输出控制方式一般有 4种:

程序控制方式、中断控制方式、直接存储器存取方式 (DMA 方式 )和输入 /输出处理机方式。

1.程序控制方式 这是指在程序控制下进行信息传送,程序控制方式可以分为: 无条件传送方式和条件传送方式。 无条件传送方式:当外设已准备就绪,那就不必查询外设的

状态而进行信息传输,这就称为无条件传送。这种信息传送方式只适用于简单的外设,如开关和数码段显示器等。

条件传送方式: CPU 通过执行程序不断读取并测试外部设备状态,如果输入外部设备处于已准备好状态或输出外部设备为空闲状态时,则 CPU 执行传送信息指令。也称为“查询式传送”。

8.1 输入输出接口概述

Page 7: 第 8 章 输入输出接口

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 输入输出接口概述

Page 8: 第 8 章 输入输出接口

4. 输入 /输出处理机控制方式对于有大量输入 /输出设备的微机系统, DMA 控制方式已不能满足这种需要。 Intel 公司生产了与 86系列配套的输入 /输出处理机 (IOP)8089。系统中设置了 IOP 后, 86系列 CPU 必须工作在最大工作模式。当 CPU 需要进行输入或输出操作时,只需在存储器中建立一个规定格式的信息块,设置好需要执行的操作和有关参数,然后把这些参数送入 8089, IOP 即会执行输入 /输出操作。如果在数据传送过程出现差错, 8089会进行重复传送或做必要的处理。在整个数据块的传送过程中, CPU 可去完成其他作业。在微型计算机系统中,通常是用各种类型的输入 /输出接口芯片来完成 CPU 与其外部设备之间的信息交换。下面介绍一种常用接口芯片及工作原理。

8.1 输入输出接口概述

Page 9: 第 8 章 输入输出接口

8.2 并行通讯与并行接口( Parallel communication & Parallel Interface)

一、并行通讯及特点:

特点:

( 1)速度快

( 2)线较多

( 3)距离近

Page 10: 第 8 章 输入输出接口

8.2 并行通讯与并行接口

二、并行接口的一般结构及其与外部的连接 :

Page 11: 第 8 章 输入输出接口

并行接口的输入过程: 外部设备首先将数据送给接口,并使状态线“数据输入准备好”成为高电平。接口把数据接收到数据输入缓冲寄存器的同时,使“数据输入回答”线变为高电平,作为对外部设备的响应。外部设备接到此信号,便撤除数据和“数据输入准备好”信号。数据到达接口中后,接口会在状态寄存器中设置“输入准备好”状态位,以便 CPU 对其进行查询,接口也可以在此时向 CPU 发一个中断请求。所以, CPU既可以用软件查询方式,也可以用中断方式来设法读取接口中的数据。 CPU从并行接口中读取数据后,接口会自动清除状态寄存器中的“输入准备好”状态位,并且使数据总线处于高阻状态。此后,又可以开始下一个输入过程。

8.2 并行通讯与并行接口

Page 12: 第 8 章 输入输出接口

并行接口的输出过程: 每当外部设备从接口取走一个数据之后,接口就会将状态寄存器中的“输出准备好”状态位置“ 1”,以表示 CPU 当前可以往接口中输出数据,这个状态位可供 CPU进行查询。此时,接口也可以向 CPU 发一个中断请求。所以, CPU既可以用软件查询方式,也可以用中断方式设法往接口中输出一个数据。当 CPU 输出的数据到达接口的输出缓冲寄存器中后,接口会自动清除“输出准备好”状态位,并且将数据送往外部设备,同时,接口往外部设备发送一个“驱动信号”来启动外部设备接收数据。外部设备被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置“ 1”,以便 CPU 输出下一个数据。

8.2 并行通讯与并行接口

Page 13: 第 8 章 输入输出接口

8.3 可编程并行通信接口芯片 8255A

8255A 是 Intel86系列微处理机的配套并行接口芯片,它可为 86系列 CPU 与外部设备之间提供并行输入 /输出的通道。由于它是可编程的,可以通过软件来设置芯片的工作方式,所以,用 8255A 连接外部设备时,通常不用再附加外部电路,给使用者带来很大方便。

Page 14: 第 8 章 输入输出接口

8.3.1 8255A 芯片内部结构及其功能

8255A的内部结构图

Page 15: 第 8 章 输入输出接口

8255A的芯片引脚信号

8.3.1 8255A 芯片内部结构及其功能

Page 16: 第 8 章 输入输出接口

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 芯片内部结构及其功能

Page 17: 第 8 章 输入输出接口

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.1 8255A 芯片内部结构及其功能

Page 18: 第 8 章 输入输出接口

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的各位分别进行置位 /复位操作。

Page 19: 第 8 章 输入输出接口

8.3.2 8255A 芯片的控制字及其工作方式8255A 工作方式控制字格式:

Page 20: 第 8 章 输入输出接口

(2) 置位 /复位控制字: 只对端口 C有效,其使用格式如图所示。

8.3.2 8255A 芯片的控制字及其工作方式

Page 21: 第 8 章 输入输出接口

2. 工作方式(1) 工作方式 0:这是 8255A 中各端口的基本输入 /输出方

式。它只完成简单的并行输入 /输出操作, CPU 可从指定端口输入信息,也可向指定端口输出信息。如果 3个端口均处于工作方式 0,则可由工作方式控制字定义 16种工作方式的组合,这种情况下,工作方式控制字的具体格式如下图所示。

8.3.2 8255A 芯片的控制字及其工作方式

Page 22: 第 8 章 输入输出接口

在上述情况下,端口 C 被分成两个 4 位端口,它们可分别被定义为输入或输出端口, CPU 与这三个端口之间交换数据可直接由 CPU 执行 IN或 OUT 指令来完成,而不提供任何“握手”信息,适用于各种同步并行传输系统。

( 2)工作方式 1、 2:略。 例题: 8255A 作为连接打印机的接口,工作于方式 0,如下图所示:

8.3.2 8255A 芯片的控制字及其工作方式

8086D7~D0

PA7~PA0D7~D0

STB

PC2

8255A

BUSY

打印机

工作过程为:当主机要往打印机输出字符时,先查询 BUSY信号,如为零,则可通过 8255A 向打印机输出一个字符,同时给出选通信号 STB(负脉冲 )。

Page 23: 第 8 章 输入输出接口

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 ,说明打印机忙,故等待。

Page 24: 第 8 章 输入输出接口

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

…… ; 后续程序段

……

……