第 7 章 并行接口

56
第7第 第第第第 7.1 第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第 第第 第第第第 () I/O 第第第第 第第第 第第第第 : 第第第第第A/D D/A 第第第第第IEEE-488 第第第 第第第第第 第第第第第第第第 ,。 第第第第第第 第第第第第第第第第第 第 第第第第第第第第第第第第第第第第第第第 ,,一 第第第第第第第第第第第第第 第第第 第第第 () 第第第第第第第第第第第第第 第第第 第第 第第第

Upload: dempster-maximiliano

Post on 15-Mar-2016

150 views

Category:

Documents


5 download

DESCRIPTION

第 7 章 并行接口. 7.1 并行接口的特点: 并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与 I/O 设备或被控对象传送信息。 如 : 打印机接口, A/D 、 D/A 转换器接口, IEEE-488 接口,开关量接口,控制设备接口等。 在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时, 至少还要设置两根握手(联线)信号线 , 以便进行互锁异步握手方式(即查询方式)的通信 。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章  并行接口

第 7 章 并行接口7.1 并行接口的特点:

并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与 I/O 设备或被控对象传送信息。

如 : 打印机接口, A/D 、 D/A 转换器接口, IEEE-488 接口,开关量接口,控制设备接口等。在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联线)信号线,以便进行互锁异步握手方式(即查询方式)的通信。

Page 2: 第 7 章  并行接口

在并行接口中, 8位或 16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入 /输出 8位或 16位。并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。

7.2 可编程并行接口 8255A 对于各种型号的 CPU 都有与其配套的并行接口芯片。如

Intel 公司 8255A ( PPI ), Zilog 公司 Z-80PIO , MC6820( PIO )等,它们的功能虽有差异,但工作原理基本相同。

一、 8255A 的外部特性和内部结构

Page 3: 第 7 章  并行接口

1.8255A 的基本特性具有两个 8位( A口和 B口)和两个 4位( C口高 /低 4位)并行 I/O 端口的接口芯片。能适应 CPU 与 I/O 接口之间的多种数据传送方式的要求。可执行功能很强,内容丰富的命令(方式字和控制字)为用户如何根据外界条件( I/O 设备需要哪些信号线以及它能提供哪些状态线)来使用 8255A 构成多种接口电路,组成微机应用系统提供了灵活方便的编程环境。PC口的使用比较特殊,除作数据口外,当工作在 1方式和 2方式时,它的大部分引脚被分配作专用联络信号; PC口可以进行按位控制;在 CPU 读取 8255A 状态时, PC口又作 1, 2方式的状态口用,等等。

Page 4: 第 7 章  并行接口

8255 芯片内部主要由控制寄存器、状态寄存器和数据寄器组成。

2.8255A 的外部引线与内部结构 8255A 是一个单 +5V 电源供电, 40个引脚的双列直插式

组件,其外部引线如图 7.1 所示。( 1)外部引脚①与系统总线的连接信号

面向数据总线的有: D0~ D7:双向数据线,用于 CPU 向 8255A 发送命令、数据

和 8255A 向 CPU 回送状态、数据和 8255A 向 CPU 回送状态、数据。面向地址总线的有:

Page 5: 第 7 章  并行接口

图 7.1 8255A 引脚

RD :读信号,低电平有效。WR :写信号,低电平有效。RESET:复位信号,高电平

有效。它清除控制寄存器并将 8255A 的 A、 B、 C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求; 24条面向外设信号线呈现高阻悬浮状态。

1234567891011121314151617181920

4039383736353433323130292827262524232221

PA4

PA5

PA6

PA7

PB7

PB5

PB4

PB3

PB8

D1

D2

D3

D4

D0

D5

D6

D7

VCC

RESETWRRD

CS

PA3

PA2

PA1

PA0

GNDA1

A0

PC7

PC6

PC4

PC0

PC1

PC2

PC5

PB0

PB1

PB2

PC3

8255A

Page 6: 第 7 章  并行接口

②与外部设备的连接信号 PA0~ PA7:端口 A的输入 /输出线。 PB0~ PB7:端口 B的输入 /输出线。 PC0~ PC7:端口 C的输入 /输出线。 这 24 根信号线均可用来连接 I/O 设备和传送信息。

其中, A口和 B口只作输入 /输出的数据口用,尽管有时也利用它们从 I/O 设备读取一些状态信号,如打印机的“忙”( Busy)状态信号、 A/D 转换器的“转换结束”( EOC )状态信号,但对 A口和 B口来说,都是作 8255A 的数据口读入,而不是作 8255A 的状态口读入的。

Page 7: 第 7 章  并行接口

C 口的作用与 8255A 的工作方式有关,它除了作数据口以外,还有其他用途,故 C 口的使用比较特殊,单独介绍如下:

a. 作数据口。 b. 作状态口。 c. 作专用(固定)联络(握手)信号线。 d. 作按位控制用。( 2)内部结构8255A 的内部结构如图 7.2 所示。它由以下 4 个部分组成。

Page 8: 第 7 章  并行接口

A 组控制

数据总线缓冲器读 / 写

控制逻辑

B 组控制

A 组A 口( 8 位)A 组

C 口高位( 4 位)B 组

C 口低位( 4 位)B 组B 口( 8 位)

D0~D7

RDRDA1A0

RESETRD

PA0~PA7

PC4~PC7

PC0~PC3

PB0~PB7

图 7.2 8255A 内部框图

Page 9: 第 7 章  并行接口

① 数据总线缓冲器。这是一个三态双向8位缓冲器,它是 8255A与 CPU 系统数据总线的接口。

PA :输出锁存/缓冲器,输入锁存器,方式 2时输入输出都锁存

PB :输入 /输出的锁存 /缓冲器 输入缓冲器 PC :输出锁存/缓冲器 输入缓冲器(不锁存输入信号)② 读 /写控制逻辑。读/写控制逻辑由读信号RD、写信号 WR、

选片信号CS以及端口选择信号 A1A0等组成。③ 输入 /输出端口 A、 B、 C。 8255A包括 3个8位输入输出

端口( port )。每个端口都有一个数据输入寄存器和一个数据输出寄存器。

④ A 组和 B组控制电路。控制 A、 B和 C三个端口的工作方式。

Page 10: 第 7 章  并行接口

CS A1 A0 RD WR 读操作 内容 PC 系统 实验平台0 0 0 0 1 PA 口→数据总线( → CP

U ) 数据 60H 300H

0 0 1 0 1 PB 口→数据总线( → CPU ) 数据 61H 301H

0 1 0 0 1 PC 口→数据总线( → CPU ) 数据 62H 302H

写操作0 0 0 1 0 PA 口← 数据总线(← CP

U ) 数据 60H 300H

0 0 1 1 0 PB 口←数据总线(← CPU ) 数据 61H 301H

0 1 0 1 0 PC 口←数据总线(← CPU ) 数据 62H 302H

0 1 1 1 0 控制寄存器←数据总线 控制字 63H 303H

无操作情况1 × × × × 总线悬浮(三态)0 × × 1 1 总线悬浮0 1 1 0 1 控制口不能读 63H 303H

表 7.1 8255A 基本操作与端口地址

Page 11: 第 7 章  并行接口

二、 8255A 的编程命令1. 方式命令作用:指定 8255A 的工作方式及其方式下 3个并行端口( PA、

PB 、 PC )的功能,是作输入还是作输出。格式: 8位,其中最高位是特征位,一定要写 1 ,其余各位定

义如下,应根据用户的设计要求填写 1 或 0。1 D6 D5 D4 D3 D2 D1 D0

特征位A 组方式

00=0 方式01=1 方式10=2 方式11= 不用

PA0= 输出1= 输入

PC4~7

0= 输出1= 输入

B 组方式0=0 方式1=1 方式

PB0= 输出1= 输入

PC0~3

0= 输出1= 输入

Page 12: 第 7 章  并行接口

例 1 : 要把 A 口指定为 1方式,输入, C口上半部为输出; B组指定为 0方式,输出, C口下半部定为输入,则工作方式命令代码是: 10110001B 或 B1H。

若将此命令代码写到 8255A 的命令寄存器,即实现了对 8255A 工作方式及端口功能的指定,或者说完成了对 8255A 的初始化。初始化的程序段为:

MOV DX , 303H ; 8255A 命令口地址 MOV AL , 0B1H ;初始化命令 OUT DX , AL ;送到命令口

Page 13: 第 7 章  并行接口

2. 按位置位 /复位命令作用:指定 PC 口的某一位(某一个引脚)输出高平或低

电平。格式: 8位,其中最高位是特征位,一定要写 0 ,其余各

位的定义如下,应根据用户的设计要求填写 1 或 0.

0 D6 D5 D4 D3 D2 D1 D0

特征位 不 用(写 0 )

位 选 择000=C 口 0 位001=C 口 1 位

…111=C 口 7 位

1= 置位(高电平)

0= 复位(低电平)

Page 14: 第 7 章  并行接口

例 2 :若要把 C 口的 PC2引脚置成高电平输出,则命令字应该为 00000101B 或 05H。

将该命令的代码写入 8255A 的命令寄存器,就会使得从 PC 口的 PC2引脚输出高电平,其程序段为:

MOV DX , 303H ; 8255A 命令口地址 MOV AL , 05H ;使 PC2=1 的命令字 OUT DX , AL ;送到命令口 如果要使引脚 PC2 输出低电位,则程序段为: MOV DX , 303H ; 8255A 命令口地址 MOV AL , 04H ;使 PC2=0 的命令字 OUT DX , AL ;送到命令口

Page 15: 第 7 章  并行接口

利用 C口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。

例 3 :利用 8255A 的 PC7产生负脉冲,作打印机接口电路的数据选通信号,其程序段为:

MOV DX, 303H ; 8255A 命令口 MOV AL, 00001110B ;置 PC7=0 OUT DX, AL NOP ;维持低电平 NOP MOV AL, 00001111B ;置 PC7=1 OUT DX, AL

Page 16: 第 7 章  并行接口

3. 关于两个命令的讨论① 方式命令是对 8255A 的 3个端口的工作方式及功能进

行指定,即进行初始化,初始工作要在使用 8255A 之前做。

② 按位置位 /复位命令只是对 PC口的输出进行控制,使用它产不破坏已经建立的 3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。

③ 两个命令的最高位( D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。

④ 按位置位 /复位的命令代码只能写入命令口。这个问题常有人弄错。

Page 17: 第 7 章  并行接口

4.A 口和 B口另一个有趣的使用方法 A 口、 B口也可以按位输出高低电平,但是,它与前面

的按位置位 /复位命令有本质的差别,并且实现的方法也不同,。 C口按位输出是以送数据到 A口、 B口来实现的。其具体作法是:若要使某一位置高电平,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,字节中使该位为 1,其他位为 0,然后再送到同一端口,即可使该位为 0,然后再送到同一端口,即可使该位置位。

1 0 1 0 1 0 1 0

OR 0 0 0 0 0 0 0 1

1 0 1 0 1 0 1 1

1 0 1 0 1 0 1 1

AND 1 1 1 1 1 1 1 0

1 0 1 0 1 0 1 0

Page 18: 第 7 章  并行接口

例 5 :若要使 PA7 位输出高 /低电平,则用下列程序段:使 PA7 输出高电平 . MOV DX , 300H ; PA 数据口地址 IN AL , DX ;读入 A 口原输出内容 MOV AH , AL ;保存原输出内容 OR AL , 80H ;使 PA7=1

OUT DX , AL ;输出 PA7

┇ MOV AL , AH ;恢复原输出内容 OUT DX , AL

Page 19: 第 7 章  并行接口

使 PA7输出低电平MOV DX , 300H ; A 口地址IN AL , DX ;读入端口原输出值MOV AH , AL ;保存原输出值OR AL , 7FH ;使 PA7=0

OUT DX , AL ;输出 PA7

┇MOV AL , AH ;恢复原输出内容OUT DX , AL

Page 20: 第 7 章  并行接口

三、 8255A 的工作方式 8255A 的工作方式与端口有关, PA口有三种方式( 0方式、 1方式、 2方式), PB口和 PC 口只有两种方式( 0方式、 1方式 )。

7.3 8255A 的 0 方式及其应用一、特点

0 方式是一种基本输入 /输出工作方式。通常不用联络信号,或不使用固定的联络信号。 基本 I/O 方式是指查询方式传送,也包括无条件传送。

Page 21: 第 7 章  并行接口

在 0方式下,彼此独立的两个 8位和两个 4位并行口,都能被指定作为输入或者输出用,共有 16 种不同的使用状态。输出有锁存,输入无锁存。在 0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪 根线完成某种联络功能,这与后面要讨论的在 1方式、 2方式下设置固定的专用联络信号线不同。是单向 I/O ,一次初始化只能指定端口( PA、 PB 和 PC )作输入或输出,不能指定端口同时既作输入又作输出。

二、并行打印机接口设计1. 要求 为某应用系统配置一个并行打印机接口,并且通过接口 CPU 采用查

询方式把存放在 BUF 缓冲区的 256 个字( ASCII码)送去打印。

Page 22: 第 7 章  并行接口

2. 分析 由于打印接口直接面向的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。有关打印机接口标准 Centronics的信号线定义和工作时序见 8.14 。

DATA0~DATA7

STROBE

BUSY

ACK

图 8.14 并行打印机接口数据传送时序

Page 23: 第 7 章  并行接口

过程 :采用查询方式时,打印机与 CPU之间传送数据的过程是:① 首先查询 BUSY。若 BUSY=1 ,打印机忙,则等待;若 BUSY=

0 ,打印机不忙,则送数据。② 通过并行接口把数据送给标准插座 DATA BIT1~ DATA BIT8 数据线上,此时数据并未送入打印机。③ 再送出一个数据选通信号 DATA STROBE- (负脉冲)给 标准

插座的 1号引脚,把数据线上的数据打入到打印机的内部缓冲器。

④ 打印机在收到数据后,通过插座的 11号引肢发出“忙”( BUSY=1 )信号,表明打印机正在处理输入的数据。

⑤ 最后在 10号引脚上送出一个回答信号 ACK-给主机,表示上一个字符已经处理完毕。

Page 24: 第 7 章  并行接口

3. 设计接口电路的设计包括硬件接口电路和软件驱动程序两部分。① 打印机接口电路。打印机接口电路原理框图如图 7.3

所示。该电路的设计思路是:按照 Centronicss 标准对打印机接口信号线的定义,最基本的信号线需要 8根数据线( DATABIT1 ~ 8)

CPU

PA0~7

PC7

PC2地

地BUSYSTB

DATA0~7

111

2~98255A 打印机插座

图 7.3 8255A 并行打印机接口电路框图

Page 25: 第 7 章  并行接口

1 根控制线( STB ),1根状态线( BUSY)和 1根地线。选用 8255A 的 PA 口作数据口输出 8位打印数据,工作方式为 0方式。

②接口驱动程序。其程序流程图如右图所示。驱动程序的程序段如下:

结 束

8255A 初始化BUSY=0?

送 数送 STB

内存 +1

字节数 -1

送完?

开始

Y

N

Y

N

Page 26: 第 7 章  并行接口

CODE SEGMENT

ASSUME CS : CODE , DS : CODE

ORG100H

START : MOV AX , CODE

MOV CS , AX

MOV DS , AX

MOV DX , 303H ; 8255A 命令口 MOV AL , 10000001B ;工作方式字 OUT DX , AL ;( A 口 0 方式,输出, C4~

C7

输出, C0~ C3输入)

Page 27: 第 7 章  并行接口

MOV AL , 00001111B ; PC0位置高,使 STB--=1

OUT DX , AL

MOV SI, OFFSET BUF ;打印字符内存首地址MOV CX , OFFH ;打印字符个数MOV DX , 302H ; PC 口地址IN AL , DX ;查 BUSY=0 ?( PC2=0 )AND AL , 04H ;00000100B

JNZ L ;忙,则等待;不忙,则向 A 口送数MOV DX , 300H ; PA 口地址MOV AL , [SI] ;从内存取数OUT DX , AL ;送数据到 A 口MOV AL , 303H ; 8255A 命令口MOV AL , 00001110B ;置 STB- 信号为低( PC7=0 )

L:

Page 28: 第 7 章  并行接口

OUT DX , AL

NOP ;负脉冲宽度(延时)NOP

MOV AL , 00001111B ;置 STB- 为高( PC7=1 )OUT DX , AL

INC SI ;内存地址加 1

DEC CX ;字符数减 1

JNZ L ;未完,继续MOV AX , 4C00H ;已完,退出INT 21H

BUF DB 256 个 ASCII 字符代码CODE ENDS

END START

Page 29: 第 7 章  并行接口

三、步进电机控制接口设计1. 要求; 2. 分析( 1)步进电机控制原理 步进电机是将电脉冲信号转换成角位移的一种机电式数模

转换器。步进电机旋转的角位移与输入脉冲的个数据成正比;步进电机的转速与输入脉冲的频率成正比;步进电机的转动方向号输入脉冲对绕组加电的顺序有关。因此,步进电机旋转的角位移、转速以及方向均受输入脉冲的控制。

( 2)运行方式与方向的控制 -----循环查表法 步进电机的运行方式是指各相绕组循环轮流通电的方式。

如四相步进电机有单四拍 A→B→C→D 、双四拍 AB→BC→CD→DA 、单双八拍 AB→B→BC→C→CD→D→DA→A 和双八拍 AB→ABC→BC→BCD→CD→CDA→DA→DAB几种方式。

Page 30: 第 7 章  并行接口

A

B

C

D

ABCD

D0

D1D2D3

A—AB—B—BC—C—CD—D—DA-

D C B AD3 D2 D1 D00 0 0 10 0 1 10 0 1 00 1 1 00 1 0 01 1 0 01 0 0 01 0 0 1

AABB

BCC

CDD

DA

Page 31: 第 7 章  并行接口

为了实现对各绕组按一定方式轮流加电,需要一个脉冲循环分配器。循环分配器可用硬件电路来实现(在此不介绍),也可用软件来实现。采用软件来设计脉冲循环分配器,又有两种方法:控制字法和循环查表法。

循环查表法是将各绕组加电顺序的控制代码制成一张表 ------ 步进电机相序表,存放在内存区,再设置一个地址指针。

相序表的建立,要考虑两个因素:一是应根据步进电机运行方式的要求;二是步进电机的各相绕组与数据线连接的对应关系。

( 3)步进电机运行速度的控制 ------软件延时法 控制步进电机速度有两个途径:一是硬件改变输入脉

冲的频率,通过对定时器(如: 8253)定时常数的设定,使其升频、降频或恒频。二是软件延时,或调用延时子程序。

Page 32: 第 7 章  并行接口

( 4)步进电机的驱动 步进电机在系统中是一

种执行元件,都要带负载,因此需要功率驱动。在电子仪器和设备中,一般所需功率较小,常采用达林顿复合管作功率驱动。驱动原理如图 7.5 所示。

TIP122

+12V

A

图 7.5 步进电机驱动原理图

3. 设计 包括硬件电路与软件编程两部分。( 1)硬件设计 步进电机接口的硬件部分主要是提供输送相序代码

的并行数据线( 8根),以及保护电机绕组的器件。其原理如图 7.6 所示。

Page 33: 第 7 章  并行接口

8255A

PB0

PB2

PB4

PB6

PC7

PC0

A

B

C

D

+12V+5V

1D

3D

5D

7D

1Q

3Q

5Q

7Q

GE

CPU

SW10K

+5V 图 7.6 步进电机控制接口原理

74LS373 TIP122×4

Page 34: 第 7 章  并行接口

( 2)软件设计(见参考书 2 的 P149~ P150 )7.4 8255A 的 1 方式及其应用

一、特点① 1方式是一种选通输入 /输出方式或叫应答方式,因此,

需设置专用的联络信号线或应答信号线,以便对 I/O 设备和CPU 两侧 进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。

② PA 和 PB 为数据口,而 PC 口的大部分引脚分配作专用(固定)的联络信号的 C口引脚,用户不能再指定作其他作用。

③ 各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。

Page 35: 第 7 章  并行接口

④输入 /输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从 PC 口读取。

⑤单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。

二、 1 方式下联络信号线的定义及其时序1. 1 方式下输入的联络信号线定义及时序( 1)联络信号的定义 因为输入是从 I/O 设备向 8255A 送数据进来,所以 I/

O设备应先把数据准备好,并送到 8255A ,然后 CPU再从 8255A 读取数据。这个传递过程中需要使用一些联络信号线。所以当 A口和 B口为输入时,各指定了 C口的 3根线作为8255A 与外设及 CPU之间应答信号,如图 7.8 所示。

STB- :外设给 8255A 的“输入选通”信号,低电平有效。

Page 36: 第 7 章  并行接口

图 7.8 1 方式输入时联络信号线定义

IBF : 8255A给外设的回答信号“输入缓冲器满”,高电平有效。由 RD- 上升沿清 0INTR : 8255A给 CPU 的“中断请求”信号,高电平有效。 由 RD-下降沿清 0

&

PC4

PC5

PC3

INTEA

PA7~0

PC6,7RD

I/O2

INTRA

IBFA

STBA

8

1 方式输入(端口 A )

&

PC2

PC1

CP0

INTEB

PB7~0

RD 2

INTRB

IBFB

STBB

8

1 方式输入(端口 B )

Page 37: 第 7 章  并行接口

( 2) 1方式输入的工作时序 1 方式的工作时序如图 7.9和表 7.3所示。其信号交接过程如下:

tps

tST

tSTB

tSITtRIT

tRIB

tPH

STB

RD

IBF

INTR

来自外设的输入数据

图 7.9 1 方式输入时工作时序图

Page 38: 第 7 章  并行接口

① 数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发 STB 信号,由它把数据输入到 255A 。

② 在 STB 的下降沿约 300ns,数据已锁存到 8255A 的缓冲器后,引起 IBF 变高,表示 8255A 的“输入缓冲器满”,禁止输入新数据。

表 7.3 1 方式输入工作时序表符号 参数 8255A 单位

MIN MAXtST STB 脉冲宽度 500 ns

tSTB STB=0 至 IBF=1 300 ns

tSIT STB=1 到 INTR=1 300 ns

tRIB RD=1 到 IBF=0 300 ns

tRIT RD=0 到 INTR=0 400 ns

TPS 数据提前 STB 无效的时间 0 ns

tPH 数据保持时间 180 ns

Page 39: 第 7 章  并行接口

③ 在 STB 的上升沿约 300ns 后,在中断允许( INTE=1 )的情况下 IBF 的高电平产生中断请求,使 INTR 上升变高,通右 CPU ,接口中已有数据,请求 CPU 读取。 ④ CPU 得知 INTR 信号有效之后,执行读操作时, RD 信号的下降沿使 INTR 复位,撤消中断请求,为下一次中断请求作好准备。

从上述分析,可知在 1 方式下,数据从 I/O 设备发出,通过 8255A ,送到 CPU 的整个过程有如下 4 步:

CPU 8255A I/O 设备 ① STB ③ INTR

② IBF ④ RD

Page 40: 第 7 章  并行接口

2. 1 方式下输出的联络信号线定义及时序(自学)( 1)联络信号的定义

WR&

PC7

PC6

PC3

INTEA

PA7~0

PC4,5I/O

2INTRA

ACKA

OBFA

8

&

PC1

PC2

PC0

INTEA

PA7~0

WR

INTRB

ACKB

OBFB

8

1 方式输出(端口 A ) 1 方式输出(端口 B )

图 7.10 1 方式输出时联络信号线定义

Page 41: 第 7 章  并行接口

( 2) 1方式输出的工作时序1 方式输出的工作时序,如图 7.11 所示。

tWOB

tWIT

tAOB

tAK tAIT

tWB

WR

INTR

OBF

ACK

输出

图 7.11 1 方式输出时工作时序

Page 42: 第 7 章  并行接口

其信号交接的过程如下:①数据输出时, CPU 应先准备如数据,并把数据写到 8255

A 输出数据寄存器。当 CPU 向 8255A写完一个数据后, WR 的上升沿使 OBF有效,表示 8255A 的输出缓冲器已满,通知外设读取数据。并且 WR 使中断请求 INTR变低,封锁中断请求。

②外设得到 OBF有效的通知后,开始读数。当外设读取数据后,用 ACK回答 8255A ,表示数据已收到。

③ACK的下降沿将 OBF置高,使 OBF 无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许( INTE=1 )的情况下 ACK上升沿使 INTR变高,产生中断请求。 CPU响应中断后,在中断服务程序中,执行 OUT 指令,向 8255A写下一个数据。

Page 43: 第 7 章  并行接口

从上述分析,在 1方式下,数据从 CPU ,通过 8255A送到 I/O 设备有 4步:

CPU 8255A I/O 设备 ① WR

③ ACK

② OBF

④ INTR

三、 1 方式的状态字1. 状态字的作用 在 1方式下 8255A 有固定的状态字。状态字为查询方

式提供了状态标志位,如 IBF和 OBF,同时,由于 8255A不能直接中断矢量,因此当 8255A 采用中断方式时, CPU也要通过读状态字来确定中断源,实现查询中断。

Page 44: 第 7 章  并行接口

2. 状态字的格式状态字的格式如图 7.12 所示。

D7 D6 D5 D4 D3 D2 D1 D0

A 组状态 B 组状态

I/O I/O IBFA INTEA INTRA

PC7 PC6 PC5 PC4 PC3

OBFA INTEA I/O I/O INTRA

PC7 PC6 PC5 PC4 PC3

INTEB IBFB INTRB

PC2 PC1 PC0

输入时

输出时

INTEB OBFB INTRB

PC2 PC1 PC0

图 7.12 1 方式的状态字

Page 45: 第 7 章  并行接口

状态字有 8位,分 A和 B两组, A组状态位占高 5位, B组状位占低 3位,并且输入和输出时的状态字不相同。3. 使用状态字时要注意的几个问题①状态字是在 8255A 输入 /输出操作过程中由内部产生,从 C 口读取的,因此从 C 口读出的状态字是独立于 C口的外部引脚的,或者说与 C口的外部引脚无关。②状态字中供 CPU 查询的状态位有: 输入时 ------IBF位和 INTR 位;输出 ------OBF位和 INTR 位。③状态字中的 INTE 位,是控制标志位,控制 8255A 能否提出中断请求,因此它不是 I/O操作过程中自动产生的状态,而是由程序通过按位置位 /复位命令来设置或清除的。 输入时 A组 INTEA 位是 PC4, B 组 INTEA 位是 PC2 。 输出时 A组 INTEA 位是 PC6, B 组 INTEA 位是 PC2 。

Page 46: 第 7 章  并行接口

例 1 :若允许 PA 口输入时,产生中断请求,则必须设置 INTEA=1 ,即置 PC4=1 ;若禁止它产生中断请求,则置 INTEA=0 ,即置 PC4=0 ,其程序段为:

MOV DX , 303H ; 8255A 命令口 MOV AL , 00001010B ;置 PC4=1 ,允许中断请求 OUT DX , AL

MOV AL , 00001000B ;置 PC4=0 ,禁止中断请求 OUT DX , AL五、两种方式并行传送接口设计1 . 要求 在甲乙两台微机之间并行传送 1K字节数据。甲机发送,

机接收。甲机一侧的 8255A 采用 1方式工作,乙机一侧的 8255A 采用 0方式工作。两机的 CPU 与接口之间都采用查询

Page 47: 第 7 章  并行接口

方式交换数据。2.分析 双机均采用可编程并行接口芯片 8255A 构成接口电路,

只是 8255A 的工作方式不同。此时,双方的 8255A把对方视为 I/O 设备。

3. 设计( 1)硬件连接 根据上述要求,接口电路的连接如图 7.13所示。( 2)软件编程 接口驱动程序包含发送与接收两个程序。其程序流程

图如 7.14 所示。

Page 48: 第 7 章  并行接口

0 方式 1 方式8255A

PA0~7

PC7

PC3

PC4~6

PC0~2

PC0~7

PA0~7

PC7

PC6

PC4~6

PC0~2

PC0~7

未用

8255A

甲 ( 发送 )CPU乙 ( 接收 )

CPU ACKOBF

图 7.13 两种方式的并行传送接口电路框图

Page 49: 第 7 章  并行接口

甲机发送程序段:MOV DX , 303H ; 8255A 命令口MOV AL , 10100000B ;初始化工作方式字OUT DX , AL

MOV AL , 0DH ;置发送中断允许 INTEA=1

OUT DX , AL ; PC6=1

MOV SI , OFFSET BUFS ;设置发送数据区的指针MOV CX , 3FFH ;发送字节数MOV DX , 300H ;向 A 口写第一个数,产生第一 个 OBF- 信号MOV AL , [SI] ;送给乙方,以便获取乙方的 ACK- 信号OUT DX , AL

Page 50: 第 7 章  并行接口

INC CX ;内存地址加 1

DEC CX ;传送字节数减 1

L : MOV DX , 302H ; 8255A 状态口 IN L , DX ;查发送断请求 INTRA=1 ? AND AL , 08H ; PC3=1 ? JZ L ;若无中断请求,则等待; ;若有中断请求,则向 A口写数 MOV DX , 300H ; 8255APA 口地址 MOV AL , [SI] ;从内存取数 OUT DX , AL ;通过 A 口向乙机发送第二个数据 INC SI ;内存地址加 1

Page 51: 第 7 章  并行接口

DEC CX ;字节数减 1

JNZ L ;字节未完,继续 MOV AH , 4000H ;已完,退出 INT 21H ;返回 BUFS DB 1024 个数据乙机接收程序段:(略)

7.5 8255A 的 2 方式及其应用一、特点①PA口为双向选通输入 /输出或叫双向应答式输入 /输出。一次初始化可指定 PA口既作输入口又作输出口。②设置专用的联络信号线和中断请求信号线,因此, 2方式

Page 52: 第 7 章  并行接口

下可采用中断方式和查询方式与 CPU 交换数据。③各联络线的定义及其时序关系和壮态基本上是在 1方式下输入和输出两种操作的组合。二、 2 方式下联络信号线的定义及其时序1. 联络信号线的定义 2 方式是一种双向选通输入

输出方式,它把 A 口作为双向输入 /输出口,把 C口的 5根线( PC3~PC7 )作为专用应答线,所以, 8255A 只有 A口才有 2方式。其引脚定义如图 7.16 所示。 PC4- 输入 INTE,PC6-输出 INTE

PC3

PC7

PA7~0

PC6

PC4

PC5

PC2~0

≥1

&

INTE1

INTE2

&

WRRD

INTRA

8OBFA

ACKA

STBA

IBFA

I/O3

图 7.16 2 方式的联络信号线定义

Page 53: 第 7 章  并行接口

2. 工作时序 2 方式的时序关系如图 7.17 所示。

外设数据线

tWOB

tAOB

tST

tSIB

tPS

tAD tKD

tPH

tRIB

INTR

IBF

WR

OBF

ACK

STB

RD

图 7.17 2 方式时序关系数据从外设到 8255A

数据从 8255A 到外设数据从 8255A 到 CPU

数据从 CPU 到 8255A

Page 54: 第 7 章  并行接口

三、 2 方式的状态字 2 方式的状态字的含义是在 1方式下输入和输出状态位

的组合,不再述。四、中断方式的双向并行接口设计1. 要求 主从两个微机进行并行传送,共传送 256 个字节。主机

一侧的 8255A 采用 2方式并且用中断方式传送数据。从机一侧 8255A 工作在 0方式,采用查询方式传送数据。

3. 设计( 1)硬件设计 从图 7.19可知主机一侧的 8255A 的 PA 口作双向传送,

既输出又输入,它的中断请示线接到 8259A 的 IR2 上。从机一侧的 8255A 的 PA 和 PB 口是单向传送,分别作输出和输入。

( 2)软件设计

Page 55: 第 7 章  并行接口

主机

INTA

INT

INTA

INT

IR0

IR2

IR7

系统总线

图 7.19 2 方式接口电路框图

8259A

PC0~7

PC3

PC7

PC4

PC6

PC5

PC0~2

PA0~7 PA0~7

PB0~7

PC1

PC7

PC6

PC0

PC2~5

OBF

STB

ACK

IBF

从机

……

8255A 8255A

Page 56: 第 7 章  并行接口

加强记忆表 8255A C 口联络信号定义