第七章 接口与并行通信.docx

上传人:b****5 文档编号:8044144 上传时间:2023-01-28 格式:DOCX 页数:21 大小:132.31KB
下载 相关 举报
第七章 接口与并行通信.docx_第1页
第1页 / 共21页
第七章 接口与并行通信.docx_第2页
第2页 / 共21页
第七章 接口与并行通信.docx_第3页
第3页 / 共21页
第七章 接口与并行通信.docx_第4页
第4页 / 共21页
第七章 接口与并行通信.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

第七章 接口与并行通信.docx

《第七章 接口与并行通信.docx》由会员分享,可在线阅读,更多相关《第七章 接口与并行通信.docx(21页珍藏版)》请在冰豆网上搜索。

第七章 接口与并行通信.docx

第七章接口与并行通信

第一讲:

第七章接口与并行通信

回顾:

微机系统结构及控制信号的名称和作用。

本讲重点:

I/O接口概述,CPU与I/O接口,I/O接口与系统的连接。

讲授内容:

7.1CPU与外设之间的数据传输

一.CPU与I/O接口

接口电路按功能可分为两类:

①是使微处理器正常工作所需要的辅助电路:

时钟信号或中断请求等;

②是输入/输出接口电路:

CPU与外部设备信息的传送(接收、发送)。

最常用的外部设备:

如键盘、显示装置、打印机、磁盘机等都是通过输入/输出接口和总线相连的,完成检测和控制的仪表装置也属于外部设备之列,也是通过接口电路和主机相连。

1.为什么要用接口电路:

需要分析一下外部设备的输入/输出操作和存储器读/写操作的不同之处:

存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配.。

外部设备的功能多种多样的(输入设备,输出设备,输入设备/输出设备),信息多样(数字式的,模拟式的),信息传输的方式(并行的,串行的),外设的工作速度通常比CPU的速度低得多,而且各种外设的工作速度互不相同,这也要求通过接口电路对输入/输出过程起一个缓冲和联络的作用。

注:

接口电路完成相应的信号转换、速度匹配、数据缓冲等功能

2.接口的功能(8种):

⑴寻址能力:

对送来的片选信号进行识别。

⑵输入/输出功能:

根据读/写信号决定当前进行的是输入操作还是输出操作。

⑶数据转换功能:

并行数据向串行数据的转换或串行数据向并行数据的转换。

⑷联络功能:

就绪信号,忙信号等。

⑸中断管理:

发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。

并具有优先级管理功能。

⑹复位:

接收复位信号,从而使接口本身以及所连的外设进行重新启动。

⑺可编程:

用软件来决定其工作方式,用软件来设置有关的控制信号。

⑻错误检测:

一类是传输错误。

另—类是覆盖错误。

注:

一些接口还可根据具体情况设置其它的检测信息。

二.I/O接口与系统的连接

1.CPU与I/O设备之间的信号(三类)

(1)数据信息包括三种形式:

数字量、模拟量、开关量

(2)状态信息是外设通过接口往CPU传送的

如:

“准备好”(READY)信号、“忙”(BUSY)信号

(3)控制信息是CPU通过接口传送给外设的

       如:

外设的启动信号、停止信号就是常见的控制信息

2.接口部件的I/O端口:

⑴数据端口、⑵控制端口、⑶状态端口

CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。

用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。

用来存放外部设备或者接口部件本身的状态,称为状态端口。

用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。

如下图

注:

⑴输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。

⑵为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。

同样,状态端口和控制端口也常用同一个端口地址。

⑶CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作。

3.接口与系统的连接.

接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分,⑴用来和I/O设备相连;

⑵用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。

下图是一个典型的I/O接口和外部电路的连接图:

联络信号:

读/写信号,以便决定数据传输方向。

地址译码器,片选信号:

地址译码器除了接收地址信号外,还用来区分I/0地址空间和内存地址空间的信号(M/

)用于译码过程。

注:

⑴一个接口通常有若干个寄存器可读/写,

⑵一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。

4.输入输出的寻址方式

CPU对外设的寻址方式通常有两种:

(1)存储器对应输入输出方式

每一个外设端口占有存储器的一个地址。

优点:

CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活,且可寻址的外设数量多。

缺点:

由于外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。

(2)端口寻址的输入输出方式

CPU有专门的输入输出指令(IN,OUT),通过这些指令中的地址来区分不同的外设。

优点:

容易掌握,编出的程序可读性好。

缺点:

可寻址的范围较小,还必须有相应的控制线(M/

)来区分是寻址内存还是外设。

7.2可编程并行接口芯片8255A

一.并行通信与接口

并行通信就是把一个字符的各位同时用几根线进行传输。

传输速度快,信息率高。

电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。

Intel8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。

二.8255A的编程结构

8255A由以下几部分组成:

见图7-3

1.三个数据端口A,B,C

这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。

·A口:

是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。

·B口:

也是一个独立的8位I/O口,仅对输出数据的锁存功能。

·C口:

可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。

也是仅对输出数据进行锁存。

2.A组和B组的控制电路

这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。

A组控制电路用来控制A口及C口的高4位;

B组控制电路用来控制B口及C口的低4位。

图7-38255A的编程结构

2.A组和B组的控制电路

这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。

A组控制电路用来控制A口及C口的高4位;

B组控制电路用来控制B口及C口的低4位。

3.数据总线缓冲器

8位的双向的三态缓冲器。

作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。

4.读/写控制逻辑

读/写控制逻辑电路负责管理8255A的数据传输过程。

它接收片选信号

及系统读信号

、写信号

、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。

 

习题与思考:

1.接口电路的主要作用是什么?

它的基本结构如何?

2.说明接口电路中控制寄存器与状态寄存器的功能,通常它们可共用一个端口地址码,为什么?

3.CPU寻址外设端口的方式通常有哪两种?

试说明它们的优缺点。

4.在CPU与外部设备接口电路的连接中,通过数据总线可传输哪几种信息?

在这里地址译码器起什么作用?

 

第二讲:

7.2可编程并行接口芯片8255A

回顾:

接口与系统的连接,并行通信与接口,8255A的编程结构。

本讲重点:

 8255A的工作方式,8255A的编程及应用。

讲授内容:

三.8255A的引脚功能

引脚信号可以分为两组:

一组是面向CPU的信号,一组是面向外设的信号。

1.面向CPU的引脚信号及功能

·D0-D7:

8位,双向,三态数据线,用来与系统数据总线相连;

·RESET:

复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;

·

片选,输入,用来决定芯片是否被选中;

·

读信号,输入,控制8255A将数据或状态信息送给CPU;

·

写信号,输入,控制CPU将数据或控制信息送到8255A;

·A1,AO:

内部口地址的选择,输入。

这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。

8255A内部共有4个端口:

A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。

,A1,A0这几个信号的组合决定了8255A的所有具体操作,

表7-18255A的操作功能表

A1A0

操作

数据传送方式

00100

读A口

A口数据→数据总线

00101

读B口

B口数据→数据总线

00110

读C口

C口数据→数据总线

01000

写A口

数据总线数据→A口

01001

写B口

数据总线数据→B口

01010

写C口

数据总线数据→C口

01011

写控制口

数据总线数据→控制口

2.面向外设的引脚信号及功能

•PA0~PA7:

A组数据信号,用来连接外设;

•PB0~PB7:

B组数据信号,用来连接外设;

•PC0~PC7:

C组数据信号,用来连接外设或者作为控制信号。

四.8255A的工作方式

8255A有三种工作方式,用户可以通过编程来设置。

方式0――简单输入/输出――查询方式;A,B,C三个端口均可。

方式1――选通输入/输出――中断方式;A,B,两个端口均可。

方式2――双向输入/输出――中断方式。

只有A端口才有。

工作方式的选择可通过向控制端口写入控制字来实现。

在不同的工作方式下,8255A三个输入/输出端口的排列示意图如图7-4所示。

1.方式0:

为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。

方式0的应用场合有两种:

一种是同步传送;一种是查询传送。

2.方式1

方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。

而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。

(1)方式1的输入组态和应答信号的功能

图7-5给出了8255A的A口和B口方式1的输入组态。

图7-5方式1输入组态

C口的PC3-PC5用作A口的应答联络线,

PC0-PC2则作用B口的应答联络线,

余下的PC6~PC7则可作为方式0使用。

应答联络线的功能如下:

·

选通输入。

用来将外设输入的数据打入8255A的输入缓冲器。

·IBF:

输入缓冲器满。

作为STB的回答信号,。

·INTR:

中断请求信号。

INTR置位的条件是STB为高且IBF为高且INTE为高。

·INTE:

中断允许。

对A口来讲,是由PC4置位来实现,对B口来讲,则是由PC0置位来实现。

事先将其置位。

       A口      B口

      PC4PC2

IBF:

      PC5PC1

INTR:

PC3PC0

INTE:

 PC4置1PC2置1

(2)方式1的输出组态和应答信号功能

图7-7方式1的输出组态

C口的PC3、PC6、PC7用作A口的应答联络线,

PC0-PC2则作用B口的应答联络线,

余下的PC4~PC5则可作为方式0使用。

应答联络线的功能如下:

· 

输出缓冲器满。

当CPU已将要输出的数据送入8255A时有效,用来通知外设可以从8255A取数。

· 

响应信号。

作为对

的响应信号,表示外设已将数据从8255A的输出缓冲器中取走。

· INTR:

中断请求信号。

INTR置位的条件是ACK为高且OBF为高且INTE为高。

· INTE:

中断允许。

对A口来讲,由PC6的置位来实现,对B口仍是由PC2的置位来实现。

A口B口

       PC6PC2

 PC7PC1

INTR:

 PC3PC0

INTE:

PC6置1PC2置1

3.方式2

方式2为双向选通I/O方式,只有A口才有此方式。

这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。

方式2:

就是方式1的输入与输出方式的组合,各应答信号的功能也相同。

而C口余下的PC0~PC2正好可以充当B口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。

(1)方式2的组态

      PC4

IBF:

      PC5

      PC6

PC7

INTR:

PC3

(2)方式2的应用场合

方式2是一种双向工作方式,如果一个并行外部设备既可以作为输入设备,又可以作为输出设备,并且输入输出动作不会同时进行。

(3)方式2和其它方式的组合 (见书中183页)

①方式2和方式0输入的组合:

控制字:

11XXX01T

方式2和方式0输出的组合:

控制字:

11XXX00T

方式2和方式1输入的组合:

控制字:

11XXX11X

方式2和方式1输出的组合:

控制字:

11XXX10X

其中X表示与其取值无关,而T表示视情况可取1或0。

五.8255A的编程及应用

1.8255A的编程

对8255A的编程涉及到两个内容:

⑴写控制字设置工作方式等信息,

⑵使C口的指定位置位/复位的功能。

注:

均写入控制端口

(1)控制字格式

控制字要写入8255A的控制口,写入控制字之后,8255A才能按指定的工作方式工作。

8255A的控制字格式与各位的功能如图7-11所示。

D7

D6

D5

D4

D3

D2

D1

D0

=1控制字标志C口低4位

A组工作方式1--输入

00--方式0A口控制0--输出

01--方式11--输入B口控制

1x--方式20--输出1--输入

C口高4位控制B组工作方式0--输出

1--输入0--方式0

0--输出1--方式1

图7-118255A的控制字格式

例1某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。

则控制字为:

  10010001即91H

初始化程序为:

MOVAL,91H

OUTCTRL_PORT,AL

(2)C口的置位/复位功能

只有C口才有,它是通过向控制口写入按指定位置位/复位的控制字来实现的。

C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。

按位置位/复位的控制字格式如图7-12所示。

D7

D6

D5

D4

D3

D2

D1

D0

=0控制字标志1--置位

无意义置位/复位引脚编码0--复位

000--PC0

001--PC1

...

111--PC7

图7-12位置位/复位控制字格式

例如在书中例2,A口方式2要求发两个中断允许,即PC4和PC6均需置位。

B口方式1要求使PC2置位来开放中断。

初始化程序可补充完整如下。

MOVAL,0C4H

OUTCTRL_PORT,AL  ;设置工作方式

MOVAL,09H

OUTCTRL_PORT,AL  ;PC4置位,A口输入允许中断

MOVAL,ODH

OUTCTRL_PORT,AL  ;PC6置位,A口输出允许中断

MOVAL,05H

OUTCTRL_PORT,AL  ;PC2置位;B口输出允许中断

2.接口应用举例

例3利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。

试完成相应的软硬件设计。

(CPU为8088)

首先我们分析一下打印机的工作。

微型打印机和主机之间的接口采用并行接口。

图7-13打印机数据传输时序

表7-2Centronics标准引脚信号

引脚

名称

方向

功能

1

STROBE

数据选通,有效时接收数据

2-9

DATA1-DATA8

数据线

10

ACKNLG

响应信号,有效时准备接收数据

11

BUSY

忙信号,有效时不能接收数据

12

PE

纸用完

13

SLCT

选择联机,指出打印机不能工作

14

AUTOLF

自动换行

31

INIT

打印机复位

32

ERROR

出错

36

SLCTIN

有效时打印机不能工作

 

它的工作流程是:

主机将要打印的数据送上数据线,然后发选通信号。

打印机将数据读入,同时使BUSY线为高,通知主机停止送数。

这时,打印机内部对读入的数据进行处理。

处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据。

硬件连线如下图:

说明:

由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。

同时,由PC7来接收打印机发出的“BUSY”信号作为能否输出的查询。

8255A的控制字为:

10001000即88H

A口方式0,输出;C口高位方式0输入,低位方式0输出

PC0置位:

00000001即01H

PC0复位:

00000000即00H

 8255A的4个口地址分别为:

00H,01H,02H,03H。

编制程序如下:

DADASEGMENT

BUFFDB'Thisisaprintprogram!

','$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETBUFF

MOVAL,88H;8255A初始化,A口方式0,输出

OUT03H,AL;C口高位方式0输入,低位方式0输出

MOVAL,01H;

OUT03H,AL;使PC0置位,即使选通无效

WAIT:

INAL,02H

TESTAL,80H;检测PC7是否为1即是否忙

JNZWAIT;为忙则等待

MOVAL,[SI]

CMPAL,'$';是否结束符

JZDONE;是则输出回车

OUT00H,AL;不是结束符,则从A口输出

MOVAL,00H

OUT03H,AL

MOVAL,01H

OUT03H,AL;产生选通信号

INCSI;修改指针,指向下一个字符

JMPWAIT

DONE:

MOVAL,0DH

OUT00H,AL;输出回车符

MOVAL,00H

OUT03H,AL

MOVAL,01H

OUT03H,AL;产生选通

WAIT1:

INAL,02H

TESTAL,80H;检测PC7是否为1即是否忙

JNZWAIT1;为忙则等待

MOVAL,0AH

OUT00H,AL;输出换行符

MOVAL,00H

OUT03H,AL

MOVAL,01H

OUT03H,AL;产生选通

MOVAH,4CH

INT 21H

CODEENDS

ENDSTART

例4将上例中8255A的工作方式改为方式1,采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出。

(假设打印机接口仍采用Centronics标准)

分析:

仍用PC0作为打印机的选通,打印机的

作为8255A的A口,

8255A的中断请求信号(PC3)接至系统中断控制器8259A的IR3,其它硬件连线同上例,如图7-15所示。

图7-15中断方式硬件连线

8255A的控制字为:

1010XXX0

PC0置位:

00000001即01H

PC0复位:

00000000即00H

PC6置位:

00001101即0DH,允许8255A的A口输出中断

由硬件连线可以分析出,8255A的4个口地址分别为:

00H,01H,02H,03H。

假设8259A初始化时送ICW2为08H,则8255AA口的中断类型码是0BH,此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中。

主程序:

MAIN:

MOVAL,0A0H

OUT03H,AL;设置8255A的控制字

MOVAL,01H;使选通无效

OUT03H,AL

XORAX,AX

MOVDS,AX

MOVAX,OFFSETROUTINTR

MOVWORDPTR[002CH],AX

MOVAX,SEGROUTINTR

MOVWORDPTR[002EH],AX;送中断向量

MOVAL,0DH

OUT03H,AL;使8255AA口输出允许中断

MOVDI,OFFSETBUFF;设置地址指针

MOVCX,99;设置计数器初值

MOVAL,[DI]

OUT00H,AL;输出一个字符

INCDI

MOVAL,00H

OUT03H,AL;产生选通

INCAL

OUT03H,AL;撤消选通

STI;开中断

NEXT:

HLT;等待中断

LOOPNEXT;修改计数器的值,指向下一个要输出的字符

HLT

中断服务子程序如下:

ROUTINTR:

MOVAL,[DI]

OUT00H,AL:

从A口输出一个字符

MOVAL,00H

OUT03H,AL:

产生选通

INCAL

MOV03H,AL;撤消选通

INCDI:

修改地址指针

IRET:

中断返回

思考:

是否可以采用A口的

作为打印机的选通信号?

如可以的话,软件该如何修改?

是否可用打印机的BUSY作为8255的A口

 

习题与思考:

1.试分析8255A方式0、方式1和方式2的主要区别,并分别说明它们适合于什么应用场合。

2.当8255A的A口工作在方式2时,其端口B适合于什么样的功能?

写出此时各种不同组合情况的控制字。

3.若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出;端口C的上半部定义为方式0,输出。

试编写初始化程序。

(口地址为80H~83H)

4.假设一片8255A的使用情况如下:

A口为方式0输入,B口为方式0输出。

此时连接的CPU为8086,地址线的A1、A2分别接至8255A的A0、A1,而芯片的

来自A3A4A5A6A7=00101,试完成8255A的端口地址和初始化程序。

第三讲

7.3微机与键盘的接口

回顾:

 8255A的工作方式,8255A的编程及应用。

本讲重点:

 微机与键盘的接口及处理方法,.LED显示方法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1