学习情境八 并行通信与串行通信.docx

上传人:b****5 文档编号:3985643 上传时间:2022-11-26 格式:DOCX 页数:37 大小:293.42KB
下载 相关 举报
学习情境八 并行通信与串行通信.docx_第1页
第1页 / 共37页
学习情境八 并行通信与串行通信.docx_第2页
第2页 / 共37页
学习情境八 并行通信与串行通信.docx_第3页
第3页 / 共37页
学习情境八 并行通信与串行通信.docx_第4页
第4页 / 共37页
学习情境八 并行通信与串行通信.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

学习情境八 并行通信与串行通信.docx

《学习情境八 并行通信与串行通信.docx》由会员分享,可在线阅读,更多相关《学习情境八 并行通信与串行通信.docx(37页珍藏版)》请在冰豆网上搜索。

学习情境八 并行通信与串行通信.docx

学习情境八并行通信与串行通信

学习情境八并行通信与串行通信

情境导入:

串并口是输入、输出接线插座的俗称,如图9-0所示,它位于主板上。

连接打印机可用并行输出口,与其他电脑实施通讯都要用串行输入输出口。

并口多为25孔阴插座,串口是9针或25针阳插座。

串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备,目前部分新主板已开始取消该接口。

并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。

所以并口又被称为打印口。

并口采用25针的双排插口,除最普遍的应用于打印机以外,还可用于连接扫描仪、ZIP驱动器甚至外置网卡、磁带机以及某些扩展硬盘等设备。

图9-0串并口

学习导航:

本章主要介绍并行通信、串行通信的基本概念、相关知识,并详细介绍常用并行接口芯片8255和串行通信接口芯片8251的编程结构及编程特点。

单元一并行通信与并行接口

知识目标:

掌握并行通信的基本概念,掌握可编程并行接口芯片8255A的编程结构、工作方式、引脚信号和控制字格式及用法。

技能目标:

能分析和设计由8255A组成的简单实用电路,包括硬件逻辑和软件编程。

一、并行通信

计算机与外部设备之间或计算机与计算机之间的信息交换被为通信。

CPU与外设的基本通信方式有并行通信和串行通信两种。

并行通信是指数据以字节或字为单位在多根传输线上同时进行传输,即n位数据用n条线同时传输的机制。

串行通信是指数据在一根传输线上一位一位地顺序传输的机制。

和串行通信相比,并行通信具有传输速度快、可靠性高的特点,但在进行远距离传输时,线路的投资大。

因此,并行通信常用于速度要求高、传输距离短的场合,如PC系统总线、高速外设I/O总线、芯片内部总线等。

而串行传输可大大降低通信线路的成本,但传输速率较低、可靠性较差,主要用于远距离传输和通信,比如各种网络通信、无线通信等。

二、并行接口

并行接口就是能够进行并行数据传输、位于CPU和外部设备之间、起到数据缓冲和匹配作用的接口电路。

并行通信接口与外设之间的数据传输是并行的,它与系统总线之间的数据传输也是并行的。

一个通用的并行通信接口可以设计为输入接口,也可以设计为输出接口,还可以设计为输入输出双向接口。

例如,在计算机系统中连接卡片读入机的接口是单向输入接口,连接打印机的接口是单向输出接口,连接磁盘驱动器的接口就是双向接口。

既作为输入又作为输出的接口可以用两种方法实现,一种是利用同一个接口中的两个通路,一个作输入通路,—个作输出退路;另一种是用一个双向通路,既作为输入又作为输出。

图9-1并行接口与外设连接的示意图

一个典型的并行接口和外设连接的示意图如图9-1所示。

从图中可以看出,在并行接口内部跟所有的接口一样,包含三类信息,即数据信息、状态信息和控制信息。

这些信息分别放在不同端口的寄存器中。

1.并行接口的组成

一个并行接口电路通常由输入缓冲寄存器、输出缓冲寄存器、状态寄存器和控制寄存器组成。

(1)输入缓冲寄存器输入缓冲寄存器主要负责接收外设送来的数据以供CPU读取,CPU通过读操作指令IN执行读操作。

(2)输出缓冲寄存器输出缓冲寄存器负责接收从CPU送来的数据,如果外设处于空闲状态,则从输出缓冲寄存器取走数据,接口通知CPU进行下一次输出操作。

(3)控制寄存器负责接收从CPU送来的各类控制命令,以控制外设的运行。

(4)状态寄存器用来存放外设运行的状态供CPU查询,进而控制外设的工作。

2.并行接口的工作原理

在输入过程中,外设首先把数据送到外设与接口的数据输入线上,并使“数据输入准备好”状态线成为高电平。

接口把数据接收到数据输入缓冲寄存器的同时,使“数据输入应答”线变为高电平,作为对外设的响应。

外设接到此信号,撤销数据和“数据输入准备好”信号。

数据到达接口中后,接口会在状态寄存器中设置“输入准备好”状态位,以便CPU对其进行查询,也可以在此时向CPU发出—个中断请求。

所以,CPU既可以用软件查询方式,也可以用中断方式来设法读取接口中的数据。

CPU从并行接口中读取数据后,接口会自动清除状态寄存器中的“输入准备好”状态位,并且使数据总线处于高阻状态,以便外设输入下一个数据。

在输出过程中,当外设从接口取走一个数据后,接口会将状态寄存器中的“输出准备好”状态位置1,表示CPU当前可以往接口输出数据,此时,接口也可以向CPU发一个中断请求。

所以,CPU既可以用软件查询方式,也可以用中断方式设法往接口中输出一个数据。

当CPU输出的数据到达接口的输出缓冲寄存器中后,接口会自动清除“输出准备好”状态位,并且将数据送往外设,同时,接口往外设发送一个“启动信号”来启动外设接收数据。

外设被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。

接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置1,以便则输出下一个数据。

三、可编程并行接口芯片8255A

8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O接口,具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各接口功能可由软件选择,使用灵活、通用性强。

8255A可作为单片机与多种外设连接时的中间接口电路。

(一)8255A的内部结构

8255A的内部结构如图9—2所示.主要包括以下几个部分:

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

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

A口:

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

B口:

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

C口:

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

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

图9-28255A的编程结构

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。

(二)8255A的引脚功能

8255A的引脚信号可以分为两组:

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

如图9-3所示。

图9-38255A的外部引脚

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的所有具体操作,如表9-1所示。

表9-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组数据信号,用来连接外设或者作为A口、B口的控制信号。

(三)8255A的工作方式

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

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

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

图9-48255A三个I/O端口的排列示意图

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

只有A端口才有。

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

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

1.方式0

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

工作方式0又称为基本输人/输出方式。

在此方式下,8255的3个接口(A、B和C口)24条线全部规定为数据的输入/输出线。

A接口的8条线(PA0—PA7)、B接口的8条线(PB0—PB7)、C接口的高4位(PC4一PC7)和C接口的低4位(PC0—PC3)可用程序分别规定它们的输入/输出方向。

当以工作方式0输入时,外设先将数据送到8255A的某个端口,CPU执行一条输入指令,读有效,将该端口的数据送入CPU。

当以工作方式0输出时,CPU执行一条输出指令,写有效,将数据送到8255A的某个端口,然后由外设取走。

工作方式0适合于数据的无条件传送,也可以人为指定某些位作为状态信息线,进行查询式传送。

2.方式1

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

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

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

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

图9-5方式1输入组态

C口的PC3—PC5用作A口的应答联络线,PC0—PC2则作用B口的应答联络线,PC6—PC7则可作为方式0使用。

应答联络线的功能如下:

数据输入选通信号,低电平有效,它是内外设送给8255A的。

该信号有效表示外设已将输入数据准备好,并放入8255A的输入数据缓冲器中。

IBF:

输入缓冲器满信号。

高电平有效,它是8255A输出的一个状态信号。

IBF有效时表示8255A的相应端口已经接收到输入数据,但尚未被CPU取走,输入缓冲器已满。

该信号一力面可供CPU查询用,只一方面送给外设,阻止外设发送新的数据。

IBF由

信号置位,由读信号的后沿将其复位。

即当CPU已读取数据,输入缓冲器变空时,

输出低电平。

INTR:

中断请求信号,高电平有效。

它是8255A的一个输出信号,用于向CPU发出中断请求。

只有当

为1、1BF为1且INTE也为1(中断允许)时,INTR才有效。

也就是说,当选通信号结束(

=1),已将一个数据送进输入缓冲器(IBF=1),并且处于中断允许状态(INTE=1)时,8255A才向CPU发出中断请求信号。

当CPU响应中断并读取输入缓冲器中的数据时,由读信号的下降沿将INTR置为低电平。

INTE:

中断允许信号,没有外部引脚,它是控制中断允许或中断屏蔽的信号。

通过软件对端口C相应位置1或置0,实现对端口A或端口B中断请求信号的控制。

具体地说,当PC4被置1或置0时,端口A的中断请求被允许或屏蔽,PC2被置1或置0时,端口B的中断请求被允许或屏蔽。

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

图9-3方式1的输出组态

C口的PC3、PC6、PC7用作A口的应答联络线,PC0-PC2则作用B口的应答联络线,PC4~PC5则可作为方式0使用。

应答联络线的功能如下:

输出缓冲器满信号,低电平有效。

利用该信号通知外设,

有效时,表示CPU已向指定的端口输出一个有效数据,外设可从此接口获取此数据。

外设响应信号,低电平有效,由外设输出给8255A。

作为对

的响应信号,表示外设已将数据从8255A的输出缓冲器中取走,它同时清除8255A的输出缓冲区满信号并使中断请求信号INTR有效。

CPU获知输出缓冲区满信号无效时可以输出下一个数据给8255A的A口或B口。

INTR:

中断请求信号。

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

INTE:

中断允许。

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

在方式l输出情况下,若所设位控字使PC6=1,则INTEA=l;若位控字使PC2=1,则INTEB=1。

3.方式2

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

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

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

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

方式2类似于A口在方式1下输入和输出的组合。

因此,各引脚的定义也与方式1的相同,只不过INTR信号既可在输入时向CPU请求中断,也可在输出时向CPU请求中断。

各控制信号定义如图9-4所示。

(1)INTEl:

输出中断允许信号。

INTEl为1时,8255A输出缓冲器空,通过INTRA向CPU发出输出中断请求信号;INTEl为0时,屏蔽该中断请求。

(2)INTE2:

输入中断允许信号。

INTE2为1时,8255A输入缓冲器满,通过INTRA向CPU发出输入中断请求信号;INTE2为0时,屏蔽该中断请求。

(3)INTRA:

中断请求信号,高电平有效。

不管是输入还是输出,当—个动作完成而要进入下一个动作时,8255A都通过这一引脚向CPU发出中断请求信号。

图9-4端口A的方式2组态

(4)

外设提供给8255A的选通信号,低电平有效。

此信号将外没送到此信号将外没送到8255A的数据送入输入锁存器。

(5)IBFA:

8255A送往CPU的状态信息,表示当前已有一个新的数据送到输入缓冲器中,等待CPU取走。

IBFA可作为供CPU查询的信号。

(6)

输出缓冲器满信号,它是一个由8255A送给外设的状态信号,低电平有效。

有效时,表示CPU已经将一个数据写入8255A的端口A,通知外设将数据取走。

(7)

外设对

信号的响应信号,低电平有效。

它使8255A端口A的输出缓冲器开启,送出数据。

否则,输出缓冲器处于高阻状态。

(四)8255A的编程

1.8255A的编程控制字

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

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

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

注:

均写入控制端口

8255A可工作在3种工作方式下,其工作方式的设定可通过对8255A编程来实现。

8255A有两种控制字:

方式选择控制字和C口按位置位/复位控制字。

(1)方式选择控制字

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

8255A的方式选择控制字格式与各位的功能如图9-5所示。

图9-58255A的方式选择控制字格式

方式选择控制字可以分别选择端口A、端口B和端口C上下两部分的工作方式。

端口A有方式0、方式1和方式2三种工作方式,端口B只能工作于方式0和方式l,而端口C仅工作于方式0。

可以分别设定A口、B口的输入输出方向。

方式选择控制字的最高位D7为特征位,必须为1。

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

则控制字为:

10010001B即91H

初始化程序为:

MOVAL,91H

OUTCTRL_PORT,AL

(2)C口的置位/复位控制字

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

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

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

图9-68255A的置位/复位控制字格式

例9.2A口方式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.8255A编程应用举例

学习案例:

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

试完成相应的软硬件设计(CPU为8088)。

微型打印机和主机之间的接口采用并行接口,采用Centronics标准引脚信号,Centronics标准引脚信号如表9-2所示。

案例分析:

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

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

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

它的工作流程:

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

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

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

处理完以后使

有效,同时使BUSY失效,通知主机

可以发下一个数据。

硬件连线如图9-8所示:

图9-8打印机接口示意图

表9-2Centronics标准引脚信号

引脚

名称

方向

功能

1

STROBE

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

2-9

DATA1-DATA8

数据线

10

ACKNLG

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

11

BUSY

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

12

PE

纸用完

13

SLCT

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

14

AUTOLF

自动换行

31

INIT

打印机复位

32

ERROR

出错

36

SLCTIN

有效时打印机不能工作

说明:

由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

INT21H

CODEENDS

ENDSTART

学习案例:

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

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

案例分析:

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

作为8255A的A口,

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

图9-9中断方式硬件连线

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:

中断返回

单元二串行接口与串行通信概述

知识目标:

了解串行通信的通信方式,了解信号的调制和解调,掌握串行接口芯片8251A主要功能、编程

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

当前位置:首页 > 人文社科 > 广告传媒

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

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