第9章可编程输入输出接口_第1页
第9章可编程输入输出接口_第2页
第9章可编程输入输出接口_第3页
第9章可编程输入输出接口_第4页
第9章可编程输入输出接口_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1微机原理与接口技术2012年10月26日第9章可编程输入/输出接口2

微机系统的信息交换有并行通信和串行通信两种方式。

并行通信是以微机的字长为传输单位;适合于外部设备与微机之间进行近距离、大量和快速的信息交换。

实现并行通信的接口称之为并行接口。

概述39.1可编程并行接口芯片8255A并行输入/输出端口A、B、C:8255A芯片具有24个可编程输入输出引脚,分成3个8位端口。

9.1.18255A的基本功能和内部结构41、8255A的内部结构和引脚信号(1)8255A内部结构8255A可编程外围设备接口(ProgrammablePeripheralInterface,简写为PPI),其内部结构如图所示。5图9.18255A内部结构A组控制部件数据总线缓冲器读/写控制部件B组控制部件

RESETA0

A1

A组端口A8位A组A组端口C(高4位)

B组端口C(低4位)

8位B组端口BPA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

双向D7~D0

CSWRRD68255A包括四大部分:数据总线缓冲器、读写控制部件、A组和B组控制部件、端口A、B、C。(1)并行输入/输出端口A、B、C端口A:包含一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,输入输出数据均受到锁存。7

输入接口(数据部分)内部数据总线外部数据引脚锁存控制锁存器缓冲器DCDCDCQQQ选通8

如果外设送来的数据都是静态数据,接口可以简化为缓冲器。缓冲器内部数据总线外部数据引脚选通9

输出接口(数据部分)内部数据总线外部数据引脚锁存控制DCQDCQDCQ读数据锁存器缓冲器10

如果送给外设的数据都是静态数据,接口可以简化为锁存器。内部数据总线外部数据引脚锁存控制DCQDCQDCQ锁存器11端口B和C:都包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器,输出数据能锁存,输入数据不锁存。端口C:可分成两个4位端口,分别定义为输入或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。12(2)A组和B组控制部件

A组A口:PA0~PA7

C口的高4位:PC4~PC7

B组

B口:PB0~PB7

C口的低4位:PC0~PC3

13

A组,B组的控制寄存器,接收来自数据总线的控制字,并根据控制字确定各端口的工作状态和工作方式。14(3)数据总线缓冲器三态双向8位缓冲器,是8255A与CPU之间的数据接口。传送输入数据、输出数据、控制命令字。15(4)读/写控制部件接收来自CPU地址总线信号和控制信号,并发出命令到两个控制组(A组和B组)。CS:片选信号,接CPU高位地址的译码输出WR:写信号,WR有效,CPU向8255A写入的控制或数据信息。RD:读信号,RD有效,CPU读8255A的数据或状态16RESET:复位信号。RESET有效时,清8255A所有控制寄存器内容,并将各端口置成输入方式。172.8255A的引脚8255A采用40线双列直插封装,引脚图如图所示。图9.28255A引脚定义4321403718

34......27D7

D0

A0

A1

RESETVCC

GND986535368255APPI数据总线控制线电源线通道A通道B通道CCPU接口外设接口.PA7

PA0

..PB7

PB0

...PC7

PC0

251415161713121110WRRDCS18*

PA7~PA0:A端口数据信号引脚*PB7~PB0:B端口数据信号引脚*

PC7~PC0:C端口数据信号引脚*D7~D0:

8255A的8位数据线19*A1~A0:

端口选择信号

当A1A0=00时

选择端口A当A1A0=01时

选择端口B当A1A0=10时

选择端口C当A1A0=11时

选择控制端口20表9.18255A的读写操作控制

A1A0RDWRCS操作00010端口A→CPU01010端口B→CPU10010端口C→CPU00100CPU→端口A01100CPU→端口B10100CPU→端口C11100CPU→控制寄存器11010非法操作××110数据线浮空××××1未选该8255A,数据线浮空218255A共有两个控制字:即工作方式控制字和对C口置位/复位控制字。1.控制字(1)工作方式控制字:控制字和各位的含义如图所示。9.1.28255A的控制字及其工作方式22D7D6D5D4D3D2D1D0C口低位选择,1入0出B口I/O选择,1入0出B口方式选择,0=方式01=方式1B组C口高位选择,1入0出A口I/O选择,1入0出A口方式选择00=方式001=方式11X=方式2D7=1,方式控制字标志A组图9.38255A工作方式控制字格式23(2)8255A的初始化——C口置位/复位控制字D7D6D5D4D3D2D1D0置位/复位选择1=置位,0=复位D7=0为置位/复位控制字标志D3D2D1位选择

000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7无效24关于控制字要说明几点:(1)设置方式控制字时,A口、B口作为整体设置,而C口要分成上、下两部分分别设置。三个端口的工作方式由一个控制字规定。(2)C口按位置位/复位控制字不是送到C口地址,而是送到控制寄存器地址;且一个控制字只能使C口一位置位或复位。25(3)方式控制字和按位置位/复位控制字均写入同一个控制寄存器地址,二者通过最高位D7来区别。D7=1为方式控制字,D7=0为按位置位/复位控制字。26(1)方式0——

基本输入/输出方式方式0是一种基本输入输出工作方式,它的24条I/O线可以全部都用作传送数据,不设置应答信号线,常用于无条件传送,输出有锁存,输入只有缓冲能力而无锁存功能。方式0控制字具体格式如图8.5所示2.工作方式27100×

×0×

×C口低位选择,1入0出B口I/O选择,1入0出B口方式选择,0=方式0

B组C口高位选择,1入0出A口I/O选择,1入0出A口方式选择00=方式0

D7=1,方式控制字标志A组图9.58255A工作方式0控制字格式28工作方式0――简单输入/输出――查询方式;A,B,C三个端口均可。

三态缓冲器地址译码器&数据来自外设88IO/MRD数据总线地址总线方式0输入(INAL,PORT)框图29

方式0输出(OUTPORT,AL)框图锁存器到外设88IO/MWR地址译码器数据总线地址总线&CE30

由控制字中D4D3D1D0等4位的不同取值可定义方式0的16种工作方式的组合如表9.2所示。

方式0中,端口C被分成两个4位端口,它们可被定义为输入或输出端口,CPU与3个端口之间交换数据,可直接由CPU执行IN和OUT指令来完成。31表9.2方式0的工作状态组合序号控制字

D7,…,D0A组B组端口A端口C

高4位(PC7~PC4)端口B端口C

低4位(PC3~PC0)110000000输出输出输出输出210000001输出输出输出输入310000010输出输出输入输出410000011输出输出输入输入510001000输出输入输出输出610001001输出输入输出输入710001010输出输入输入输出810001011输出输入输入输入910010000输入输出输出输出1010010001输入输出输出输入1110010010输入输出输入输出1210010011输入输出输入输入1310011000输入输入输出输出1410011001输入输入输出输入1510011010输入输入输入输出1610011011输入输入输入输入32(2)工作方式1——选通式输入/输出方式①

方式1选通输入方式1操作使端口A或端口B作为锁存输入设备工作。端口C也可按方式1操作使用——但不是对数据,而是对控制信号,或当端口A或端口B为选通输入端口时的握手信号。下图示出8255A方式1选通输入时的内部结构图。33IBF:输入缓冲器满信号,向外设输

出,高电平有效。STB:选通信号。由外设输入,低电平

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

方式1下输入端口的联络信号1011A口方式1输入控制字PA7~PA0PC4PC5PC3INTEAPC4与门IBFASTBAINTRARDD7~D0A口方式1输入时相应的联络信号111B口方式1输入控制字B口方式1输入时相应的联络信号PB7~PB0PC2PC1PC0INTEBPC2与门RDD7~D0IBFBSTBBINTRB35PB7~PB0PA7~PA0STBIBFINTRRD外设送来数据②③当INTE=1时

①方式1输入时序36INTE:中断允许信号,它是通过端口PC4(端口A)或PC2(端口B)的位来编程的内部位。37②

方式1选通输出当端口A或端口B为方式1输出时,各指定PC的3条线作为8255A与外设及CPU之间应答信号。下图为方式1选通输出操作的内部结构图。381010

×10

×C口低位选择,1入0出B口I/O选择,0出B口方式选择,1=方式1

B组C口高位选择,1入0出A口I/O选择,1入0出A口方式选择01=方式1

D7=1,方式控制字标志A组图9.58255A工作方式1输出控制字格式39工作方式1――选通输入/输出――中断方式;A,B,两个端口均可。

110B口方式1输出控制字PB7~PB0PC2PC1PC0INTEBPC2与门WRD7~D0OBFBACKBINTRB1010A口方式1输出控制字PA7~PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7~D040OBF:输出缓冲器满信号。向外设

输出,低电平有效。ACK:

外设应答信号。由外设输入,低电平有效。41INTE:中断允许信号。INTR:中断请求信号。高

电平有效。42①D7~D0送往外设数据数据写入端口WROBFINTRACK②③当INTE=1时

方式1输出时序43(3)工作方式2——双向选通输入/输出方式方式2只允许A组采用,此时端口A变为双向,允许数据在同一组8条线上发送和接收。下图示出方式2操作内部结构图。44工作方式2――双向输入/输出――中断方式。只有A端口才有。

PA7~PA0PC6PC7ACKAOBFAD7~D0RDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6与门PC3INTRA或门与门4511

×

×

×C口低位选择,1入0出B口I/O选择,1入0出B口方式选择,1=方式1

0=方式0

B组A口方式选择10=方式211=方式2D7=1,方式控制字标志A组图9.108255A工作方式2控制字格式46OBFA:输出缓冲器满信号,向外设输出,低电平有效。ACKA:应答信号,由外设输入,低电平有效。STBA:

数据选通输入信号。由外设输入,低电平有效。47PB7~PB0PA7~PA0-STBIBF-RD外设送来数据D7~D0送往外设数据数据写入端口-WR-OBFINTR-ACK当INTE=1时

图9.11端口A方式2下的时序图

48IBFA:输入缓冲器满信号,向外设输出,高电平有效。INTE:中断允许信号

(INTE1和INTE2)。高电平有效。INTRA:中断请求信号,高电平有效。49

8255A中端口A工作方式2时,允许端口B工作于方式0或方式1,完成输入/输出功能。4种组合状态及其工作方式控制字格式如表8.3。

50表9.3方式2的组合状态与控制字格式51

目前打印机一般采用并行接口标准,其主要信号与传送时序如图8.15。打印机接收主机传送数据的过程是这样的:9.28255A的应用实例9.2.18255A与打印机接口1、用方式1与打印机接口52

当主机准备好输出打印的一个数据时,通过8255A把数据送给打印机接口的数据引脚DATA0~DATA7,同时送出一个数据选通信号STROBE

给打印机。打印机收到该信号后,把数据锁存到内部缓冲区,同时在BUSY信号线上发出忙信号。待打印机处理好输入数据时,打印机撤消忙信号,同时向主机送出一个响应信号ACK。主机根据BUSY信号或信号ACK决定是否输出下一个数据。53

用方式1与打印机接口

8255A的端口A工作于选通输出方式,PC7作为OBFA输出信号,PC6作为ACKA

输入信号,而PC3作为INTRA输出信号;另外,可用程序控制INTEA(PC6),决定是否采用中断方式。打印机接口的时序与8255A的选通输出方式的时序类似,但略有差别,用单稳电路74LS123即可满足双方的时序要求,见图8.16。54图9.16方式1的打印机接口

55

假设8255A的A、B、C口的I/O地址为F008H、F00AH和F00CH。控制端口的地址为F00EH。以下为采用选通方式输出缓冲区BUF中的打印字符的子程序,输出的字节数为M。56PRINTPROCPUSHAX;保护寄存器

PUSHBXPUSHCXPUSHDXMOVDX,0F00EH;设定A口为选通输出方式

MOVAL,0A0HOUTDX,ALMOVAL,0CH;使INTEA(PC6)为0,禁中断

OUTDX,ALMOVCX,M;打印字节数送CX57MOVBX,OFFSETBUF;取缓冲区首址送BX

PRINT1:MOVAL,[BX];取一个数据

MOVDX,0F008H

OUTDX,AL;从A口输出

MOVDX,0F00CH

PRINT2:INAL,DX;读C口

TESTAL,80H;检测OBFA(PC7)

;为1否?

58JZPRINT2;为0,则继续检测

INCBX;为1,说明数据已输出

LOOPPRINT1;准备取下一个数据输出

POPDX;打印结束,恢复寄存器

POPCXPOPBXPOPAXRET;返回PRINTENDP59七段数码管七段数码管组成原理图如后图所示。七段数码管根据其连接方式可分为:共阳极LED:公共端应接高电平(或+5v)共阴极LED:公共端应接地例2:LED显示器原理及接口技术

60

LED七段显示器及其接口

在常用的七段显示器内,各个LED可按共阳极或共阴极连接。它们应分别用不同的段码,经不同的驱动电路来驱动。618段码.gfedcba形状LED显示8段码.gfedcba形状LED显示10001111’F’11111000’7’10000110’E’10000010’6’10100001’D’10010010’5’11000110’C’10011001’4’10000011’B’10110000’3’10001000’A’10100100’2’10011000’9’11111001’1’10000000’8’11000000’0’PA口输出值与LED显示值间关系62共阴极

共阳极

共阴极

共阳极(a)七段LED原理图

图(b)“米”字LED原理图

典型LED器件原理图LED显示器原理及接口技术(续)

63给数码管的每个输入端(a,b,c,……,h)提供适当电平,使某几段发光二极管亮,而另外几段不亮,则可显示出数字或字母。八个输入端组成的二进制编码(简称段码或段选码)所对应的显示内容见后表。LED显示器原理及接口技术64表

七段LED字型码

LED显示器原理及接口技术65LED数码管在微机系统中的应用

LED在系统中的连接

66常用于LED的驱动器:7407/7406同向/反向驱动器,75452二输入与非驱动器。锁存器可用74LS273/373、74LS244等集成电路。系统中有多位LED,则每次只能使一位LED显示信息,每位LED上有一选通端(公共端)。要想使哪位显示,就应给其公共端提供有效电平(共阳极为“1”,公阴极为“0”),而其它位的公共端提供无效电平。这样构成的二进制编码称为位码或位选码。动态显示:在多位LED显示中,即要使每一位的显示信息有一个持续时间,可用循环延时程序实现,又要保证一遍一遍地进行循环显示时不出现闪烁,在软、硬件设计时就要考虑LED的位数不能太多,显示的延时要适中。

LED数码管在微机系统中的应用67例某8088系统中,使用8位LED显示时间,格式为时-分-秒,硬件连接如图所示,软件流程图见后图。

LED数码管在微机系统中的应用68图

软件流程图

69思考题一、单项选择题1.8255A的PA口工作在方式2,PB口工作在方式1时,其PC端口()。

A.用作两个4位I/O端口

B.部分引脚作联络,部分引脚作I/OC.全部引脚均作联络信号

D.作8位I/O端口,引脚都为I/O线

分析:8255A的PA口工作于方式2,指定PC口的PC3~PC7为联络信号线,若PB口同时工作于方式1,指定PC0~PC2为联络信号线。因此,PC端口全部用于PA口与PB口的联络信号。答:C702.如果8255A的PA口工作于方式2,PB口可工作于哪种工作方式()。A.方式OB.方式1C.方式2D.方式0或方式1

分析:如第1题所分析的,PA口工作于方式2后,PC口的PC0~PC2可用作PB口方式1的联络信号,同时PB口也可工作于方式0的无条件传送。答:D713.当8255A的PA口工作在方式1的输入时,对PC4置位,其作用是()。A.启动输入B.开放输入中断C.允许输入D.停止输入

分析:8255A的PA口工作在方式1时,PC4=1用来设置输入时的“开中断”。答:B.72

9.3串行通信的基本概念通信:计算机与外部设备之间、计算机之间的信息交换。通信的基本方式并行通信串行通信异步通信同步通信9.3.1串行通信的连接方式73图9.17串行通信的3种连接方式发送器A发送器接收器发送器接收器发送器接收器接收器发送器接收器B数据线(a)单工方式数据线AB(c)全双工方式数据线数据线AB(b)半双工方式749.3.2信号的调制与解调

MODEM是由调制器和解调器合在一起形成的一个装置,以用作双向通信。MODEM的类型一般可分为幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)等。当通信波特率小于300bit/s时,常采用FSK调制方式。

759.3.3同步与异步通信方式1.异步通信方式(ASYNC)第n+1个字符第n个字符空闲位起始位停止位7位数据位空闲位起始位011110D0D1D2D3D4D5D6图9.18异步通信字符格式76

异步通信方式的特点是:

(1)起始位:一位,逻辑0,表示字符的开始;

通信时以收发一个字符为独立的通信单位,每个字符由4个部分组成:(2)数据位:可以是5~8位逻辑0/逻辑1,与双方约定的编码形式有关,如:ASCII码(7位),扩展的BCD码(8位)等,起始位之后紧跟着的是数据的最低位D0。

(3)奇/偶校验位:一位逻辑0/逻辑1。

(4)停止位:1位或1.5位或2位逻辑1,表示字符的结束。

772.同步通信方式(SYNC)

在异步通信中,每个字符都要用起始位和停止位来使通信双方同步,这些附加的额外信息,使得异步通信的传输效率不高。在需传输大量数据的场合,为提高传输效率和速度,常去掉这些附加位,即采用同步通信SYNC(SynchronousdataCommunication)

同步字符数据块CRC1

CRC2

同步字符2数据块CRC1

CRC2

同步字符1a.单同步格式b.双同步格式78

同步通信方式的特点是:③为了防止因收、发双方的时钟频率的偏差的积累效应而产生错位,从而导致通信出错,同步通信要求接收和发送的时钟完全同步,不能有误差。实际应用中,同步传送常在收、发双方间使用同一时钟,故硬件电路比较复杂。②对每个字符的检错一般可用奇校验,数据块的末尾用CRC(循环冗余码)对整个数据块进行校验。①收、发双方以一个或两个预先约定的同步字符作为数据块传送的开始,数据块由几十到几千,甚至更多字节组成。799.3.4波特率与收/发时钟1.波特率

计算机串行通信中常用波特率(Baudrate)来表示数据传输率,波特率的单位是bit/s,即每秒所传送的二进制位数。常用的标准值有110,300,600,1200,2400,4800,9600,19200波特等。

某异步通信中每秒传送960个字符,而每个字符由10位(1个起始位、7个数据位、1个奇校验位、1个停止位)组成,则传送的波特率为:fd=10×960bit/s=9600bit/s

传送一位的时间Td=1/9600=0.104ms

例如:

80

2.接收/发送时钟

异步通信中,大多数串行端口发送和接收的波特率均可分别设置,由发送器和接收器各用一个时钟来确定,分别称为发送时钟和接收时钟。为了有利于收发双方同步,以及提高抗干扰的能力,这两个时钟频率fc一般不等于波特率fd,两者之间的关系为:fc=kfd其中,k称为波特率系数,其取值可为16,32或64。

81(1)发送脉冲和接收脉冲发送:发送方要靠发送脉冲(移位脉冲)下降沿将数据移出,经TXD引脚→对方接收:接收方要靠接收脉冲(移位脉冲)上升沿将数据接入,经RXD引脚→串口入出QQQQCP1100100182注意:接收时钟的上升沿对准数据位的中间位置,以保障可靠的接收数据移位脉冲的频率=波特率发送方与接收方实现同步,随着数据的不断传输,将产生一个误差积累,有可能使数据丢失!如:有1数据35H=00110101发送脉冲→利用下降沿→利用上升沿接收脉冲思考题:异步通信中,如何实现同步的?83(2)检验脉冲

接收方需对发送方发来的数据位进行检测,以决定“0”还是“1”

通常检测脉冲是移位脉冲的16和64倍(常选16)三中取二目的:①抑制干扰;②提高信号的传输可靠性,因为采样信号总是在每个接收位的中间位置,不仅可以避开信号两端的边沿失真,也可防止接收时钟频率和发送时钟频率不完全同步引起的接收错误84

9.4串行通信的接口标准

一个完整的串行通信系统除了对上一节所介绍的通信规程有所规定外,还必然会涉及到在电气连接上的接口标准问题。标准化的通用总线结构能使系统结构化、模块化,大大简化系统软、硬件设计的工作,因此被普遍采用。本节介绍目前常用的有代表性的一种串行接口标准。

859.4.1RS-232C接口标准RS-232C是串行异步通信中应用最广的串行总线标准,1969年由美国EIA(电子工业协会)颁发,其中RS是RecommendedStandard的缩写,232是标准的标识号。RS-232C的前身是RS-232A和RS-232B,这前两种接口标准现在已很少使用。RS-232C主要用于使用模拟信道传输数字信号的场合,推出这种标准的最初目的是在数据终端设备DTE(DataTerminalEquipment)与数据通信设备DCE(DataCommunicationEquipment)之间建立接口标准。

RS-232C的典型应用如图9.16所示。

86计算机串

口UART调制解调器ModemDTEDCE控制发送接收调制解调器Modem串

口UART计算机控制接收发送···

DTEDCERS-232CRS-232C电话线图9.19RS-232C的典型应用87

1.机械特性

RS-232C采用25脚D型连接器(含插头/插座)作为DTE与DCE之间通信电缆的连接口,但在实际进行异步通信时,只需9个信号即够用,因此也可以采用9脚D型连接器。

2.电气特性

RS-232C采用负逻辑工作,即:逻辑“1”用负电平表示,有效电平范围是-3V~-15V

逻辑“0”用正电平表示,有效电平范围是+3V~+15V

-3V~+3V为过渡区,逻辑状态不定,为无效电平。

88引脚号信号名称缩写传送方向与功能说明25脚9脚23发送数据TXDDTEDCE输出数据到Modem32接收数据RXDDTEDCE由Modem输入数据47请求发送RTSDTEDCEDTE请求发送数据58清除发送CTSDTEDCEModem表明同意发送66数据传输就绪DSRDTEDCE表明Modem已准备就绪75信号地GND无方向

所有信号的公共地线81载波检测DCDDTEDCEModem正在接收载波信号204数据终端就绪DTRDTEDCE通知ModemDTE已准备好229振铃指示RIDTEDCE表明Modem已收到拨号呼叫3.引脚信号定义

表9.4RS-232C主信道引脚信号89①数据线:TXD(TransmittedData):发送数据,DTE通过TXD将串行数据发 送到Modem。RXD(ReceivedData):接收数据,DTE通过RXD接收从Modem来的 串行数据。

90②发送控制信号线:RTS(RequesttoSend):用来表示DTE请求DCE发送数据。CTS(CleartoSend):用来表示DCE已准备好,可以为DTE发送数据,此信号是对RTS的响应信号。

RTS/CTS是一对握手联络信号,用于采用Modem的半双工系统中作发送/接收方式之间的切换。91

③接收控制信号线:DSR(DatacommunicationequipmentSetReady):表示Modem已准备就绪DTR(DataTerminalReady):DTE用来通知Modem,已准备就绪,可以接收数据。92DCD(DataCarrierDetection):用来表示Modem正在接收来自对方Modem的载波信号,通知DTE准备接收数据。RI(RingingIndicator):通知DTE、Modem已收到电话交换机送来的振铃呼叫信号,使用公用电话线时要用此信号。

934.信号线的连接

(1)远距离时的连接计算机串

口UART调制解调器ModemTXDRXD调制解调器Modem串

口UART计算机···

电话线图9.20采用Modem时RS-232C信号线的使用

RTSCTSDSRDTRDCDRIGNDTXDRTSCTSDSRDTRDCDRIGNDRXD94(2)近距离时的连接近距离(少于15m)通信时,可不采用调制解调器Modem(亦称为零Modem方式)。

GNDRXDTXDTXDRXD

2算

3机

7UART

3计2算7机UARTCTSDSRDTRDCDRTSGNDDSRDTRDCDCTSRTSTXDRXDRXDTXD2计34算58机206732计45算820机67图9.21无Modem方式的最简单连接(b)(a)955.EIA-RS-232C与TTL相互转换

如上所述,RS-232C是用正负电平来表示逻辑状态,而计算机内部电路所采用的TTL标准是用高低电平表示逻辑状态,显然为了让计算机能利用RS-232C与外界连接,则必须在RS-232C与TTL电路之间进行电平转换,实现这种转换的电路,可以采用分立元件或集成电路芯片。

96TTL

输入RS-232C输出74LS0410K10K10KT1T21K

-12V

+5V

图9.22TTL→RS-232C的电平转换电路97图9.23RS-232C→TTL的电平转换电路TTL

输出RS-232C输入10K1KT1+5V

98图9.24利用MC1488/MC1489的TTL→RS-232C电平转换

计算机串

口UARTMC

1488MC

1489RS-232C

器23TXDRXD+12V-12V+5V99

9.58251可编程串行接口芯片

9.5.1.8251A的特点和内部结构

Intel8251A是可编程的串行通信接口芯片,它的主要特点如下:①可用于串行异步通信,也可用于串行同步通信。②对于异步通信,可设定停止位为1位、1位半或2位,数据位可在5-8位之间选择。③对于同步通信,可设为单同步、双同步或者外同步,同步字符可由用户自己设定。④异步通信的时钟频率可设为波特率的1倍、16倍或64倍。100⑤可以设定奇偶校验的方式,也可以不校验。校验位的插入、检出及检错都由芯片本身完成。⑥在异步通信时,波特率的可选范围为0~19.2千波特;在同步通信时,波特率的可选范围为0~64千波特。⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。⑧接收、发送数据分别有各自的缓冲器,可以进行全双工通信。图9-22给出了8251A的结构框图。它共由五个部件构成,对外有28条引脚。8251A各组成模块的功能及有关引脚如下:101数据总线缓冲器读/写控制逻辑电路调制/解调控制电路接收控制电路串-并转换发送缓冲器缓冲器并-串转换发送控制电路RESETCLKC/DRDWRCSDSRDTRCTSRTSD7-D0内部总线TXDRXDTXEMPTYTXCRXRDYRXCSYNDETTXRDY发送器接收器图9.258251A内部结构框图接收102单向移位寄存器并行输出4位右移移位寄存器时钟方程:驱动方程:状态方程:103104串行接口原理奇偶错溢出错帧格式错RxDRxCTxDTxC控制电路RESETWERDCSINTPEOEFEDB7~DB0TransmitBufEmptyReceiveDataReadyRDRTBE器存寄位移收接器冲缓据数收接器冲缓据数送发器存寄位移送发105(1)I/O缓冲器。这是三态双向的缓冲器,引脚D0~D7是8251A和CPU接口的三态双向数据总线,用于向CPU传递命令、数据或状态信息。与CPU互相交换的数据和控制字就存放在这个区域,共有三个缓冲器。①接收缓冲器:串行口收到的数据变成并行字符后,存放在这里,以供CPU读取。②发送/命令缓冲器:这是一个分时使用的双功能缓冲器,CPU送来的并行数据存放在这里,准备由串行口向外发送。另外,CPU送来的命令字也存放在这里,以指挥串行接口的工作。由于命令一输入就马上执行,不必长期存放,所以不会影响存放发送数据。

106③状态缓冲器:存放8251A内部的工作状态,供CPU查询。(2)读/写控制逻辑。本模块功能是接收CPU的控制信号,控制数据传送方向。(3)接收器及接收控制。接收器的功能是从RXD引脚接收串行数据,按指定的方式装配成并行数据。(4)发送器及发送控制。这个模块的功能是从CPU接收并行数据,自动地加上适当的成帧信号后转换成串行数据从TXD引脚发送出去。(5)调制解调控制器。该模块提供和调制解调器的联络信号。1079.5.2.8251A的外部引脚

8251A是一个采用NMOS工艺制造的28脚双列直插式封装的组件,其外部引脚如图8-26所示。

(1)与CPU接口的引脚。

D7~D0:数据线。

CLK:时钟信号输入线,用于产生8251A内部时序。CLK的周期为0.42~1.35μs。

CLK的频率至少应是接收、发送时钟的30倍(对同步方式)或4.5倍(对异步方式)。

RESET:复位信号输入线,高电平有效。复位后8251A处于空闲状态直至被初始化编程。108109:片选信号输入线,低电平有效。仅当为低电平时,CPU才能对8251A操作。

:信息类型信号输入线。为0时传输的是数据,为1时传输的是控制字或状态信息。

:读选通信号输入线,低电平有效。

:写选通信号输入线,低电平有效。CPU对8251A的读写控制如表9-4所示。

110CSC/DRDWR操作1任意任意任意无操作,D0-D7呈高阻0110写控制字0010写数据0101读状态0001读数据表9-4CPU对8251的读写控制111RXRDY:接收准备好状态输入线,高电平有效。当接收器接到一个字符并准备送给CPU时,RXRDY为1;当字符被CPU读取后RXRDY恢复为0。RXRDY可作为8251A向CPU申请接收中断的请求源。

SYNDET/BRKDET:同步状态输出线或者外同步信号输入线。此线仅对同步方式有意义。

TXRDY:发送准备好状态输出线,高电平有效。当发送寄存器空闲且允许发送(脚电平为低、命令字中TXEN位为1)时,TXRDY为高电平。当CPU给8251A写入一个字符后TXRDY恢复为低电平。TXRDY可作为8251A向CPU申请发送中断的请求源。

TXE:发送缓冲器空闲状态输出线。高电平有效,TXE=1,表示发送缓冲器中没有要发送的字符,当CPU将要发送的数据写入8251A后,TXE自动复位。112

(2)与外设或调制解调器接口的引脚。RXD:串行数据输入线,高电平表示数字1,低电平表示数字0。RXC:接收器时钟输入线。它控制接收器接收字符的速率,在上升沿采集串行数据输入线。RXC的频率应等于波特率(同步方式)或等于波特率的1倍、16倍或64倍(异步方式)。TXD:发送数据输出线。CPU并行输入给8251A的数据从这个引脚串行发送出去。TXC:发送器时钟输入线,在TXC的下降沿数据由8251A移位输出。对TXC频率的要求同RXC。113

:数据终端准备好状态输出线,低电平有效。当8251A命令字位D1为1时,有效,用于向调制解调器表示数据终端已准备好。

:数据设备准备好状态输入线,低电平有效。当调制解调器准备好时,有效,用于向8251A表示Modem(或DCE)已准备就绪。CPU可通过读取状态寄存器的D7位检测该信号。114

:请求发送信号输出线,低电平有效。当8251A命令字位D5为1时,有效,请求调制解调器作好发送准备(建立载波)。

:清除发送(允许传送)信号输入线,低电平有效。当调制解调器作好送数准备时,有效,作为对8251A的信号的响应。如果8251A不使用调制解调器而直接和外界通讯,一般应将、脚接地。接收器的工作过程:在异步方式中,当接收器接收到有效的起始位后,便接收数据位、奇偶校验位和停止位。然后将数据送入寄存器,此时RXRDY输出高电平,表示已收到一字符,CPU可以来读取。115在同步方式中,若程序设定8251A为外同步接收,则SYNDET/BRKDET脚用于输入外同步信号,SYNDET/BRKDET脚上的电平正跳变启动接收数据。若程序设定8251A内同步接收,则8251A先搜索同步字(同步字事先由程序装在同步字符寄存器中)。每当RXD线上收到一位信息就移入接收寄存器并和同步字符寄存器内容比较,若不等则再收一位再比较,直到两者相等。此时SYNDET/BRKDET输出高电平,表示己搜索到同步字,接下来便把接收到的数据逐个地装入接收数据寄存器。发送器的工作过程:在异步方式中,发送器在数据前加上起始位,并根据程序的设定在数据后加上校验位和停止位,然后作为一帧信息从TXD脚逐位发送数据.

1169.5.3.8251A的控制字寄存器和状态字寄存器

8251A内除具有可读可写的数据寄存器外,还具有只可写的控制字寄存器和只可读的状态寄存器,CPU对它们的操作如表8-4所示。(1)控制字寄存器。控制字寄存器寄存方式控制字和命令控制字。①方式控制字。方式控制字确定8251A的通讯方式(同步/异步)、校验方式(奇校验、偶校验、不校验)、数据位数(5、6、7或8位)及波特率参数等。方式控制字的格式如图9-27所示。它应在复位后写入,且只需写入一次。117118

②命令控制字。命令控制字使8251A处于规定的状态以准备发送或接收数据。命令控制字的格式如图所示。它应在写入方式控制字后写入,用于控制8251A的工作,可以多次写入。方式控制字和命令控制字本身无特征标志,也没有独立的端口地址,8251A是根据写入先后次序来区分这两者的:先写入者为方式控制字,后写入者为命令控制字。所以CPU在对8251A初始化编程时必须按一定的先后顺序写入方式控制字和命令控制字。119120(2)状态寄存器。状态寄存器存放8251A的状态信息,供CPU查询,状态字各位的意义如图8-18所示。DSR:数据设备准备好标志。其状态同脚。

SYNDET:同步标志。

FE:异步通讯帧出错标志。为1表示未检测到字符末尾的有效停止位,但FE错并不禁止8251A工作。FE标志由命令控制字中的ER位清除。121122OE:溢出标志。接收器内的字符尚未被CPU读走时又有新的字符装入,则OE置1,此时原来的字符丢失,但并不禁止8251A工作,OE标志由命令控制字中的ER位清除。PE:奇偶错标志。奇偶错时PE置1,但此时并不禁止8251A工作,PE标志由命令控制字中的ER位清除。TXE:发送缓冲器空标志。其状态同TXE脚。RXRDY:接收准备好标志。其状态同RXRDY脚。TXRDY:发送准备好标志。含义同TXRDY引脚。只要发送缓冲器空,就置位该位。而引脚TXRDY除发送缓冲器空外,还要满足TXE=1,CTS=0才置位。1239.5.4.8251接收器工作过程(1)异步接收方式在RxD线上检测低电平,控制电路中的一个内部计数器进行计数,当计数到相当于半个数位传输时间(比如时钟脉冲为波特率的16倍时,则计到第8个脉冲时,即相当于半个数位传输时间)时又对RxD线上进行检测,如果此时仍为低电平,则确认收到一个有效的起始位。8251开始进行常规采样并进行字符装配,具体地说,就是每隔一个数位传输时间(在前面假设下,相当于16个脉冲间隔时间),对RxD进行一次采样。数据进入输入移位寄存器被移位,并进行奇偶校验和去掉停止位,变成了并行数据,再通过内部数据总线送到数据输出寄存器,同时发出RxRDY信号送CPU,表示已经收到一个可用的数据。124

(2)同步接收方式8251监测RxD线,每当RxD线上出现一个数据位时,就把它接收下来并把它移入移位寄存器,然后把移位寄存器与同步字符寄存器的内容进行比较。如果二者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容比较相等时,8251的SYNDET引脚就升为高电平,以告知同步字符已经找到,同步已经实现。实现同步之后,接收器和发送器之间就开始进行数据的同步传输。这时,接收器利用时钟信号对RxD线进行采样,并把接收到的数据位送到移位寄存器中。每当收到的数据位达到规定的一个字符的数位时,就将移位寄存器的内客送到输入缓冲寄存器,并且在RxRDY引脚上发出一个信号,表示收到了一个字符。1259.5.4.8251A的初始化编程①输入方式控制字,以决定通信方式、数据位数、校验方式等若是同步通信方式;②输入一个或两个同步字符,若是异步方式则这一步可省略;③最后送入命令控制字,就可以开始发送或接收数据了。

像所有的可编程器件一样,8251A在使用前也要进行初始化。初始化在8251A处于复位状态时开始。其过程为:1261278251A的初始化编程必须在复位操作之后,先设置方式选择控制字;如果设定在异步方式,则马上要输出操作命令字进行设置,然后才能进行数据传送;在数据传送过程中,也可使用操作命令字进行某些操作设置或读取8251A的状态;在数据传送结束时,若使用IR位为“1”的内部复位命令使8251A复位,则它又可重新接收方式选择字,从而改变工作方式完成其他传送任务。128编程举例(1)异步方式下的初始化编程设定8251A工作于异步方式,波特率因子为64,每字符7个数据位,偶校验,2位停止位,则方式选择控制字为11111011=FBH。操作命令字的设定,例如使8251A的发送器允许,接收器允许,使状态寄存器中的3个错误标志位复位,使数据终端准备好信号DTR输出低电平,则操作命令字应为00010111=17H。129若8251A的端口地址为51H,则初始化程序如下:MOVAL,0FBH;输出方式选择字OUT51H,ALMOVAL,17H;输出操作命令字OUT51H,AL130(2)同步方式下的初始化编程举例

8251A工作于同步方式,双同步字符,同步字符设定为16H,内同步,偶校验,每字符7个数据位,则方式选择字为00111000B=38H。操作命令字设定为10010111B=97H,使发送器允许,接收器允许,使错误标志复位,开始搜索同步字符,并通知调制解调器,数据终端设备已准备就绪。1318251A的端口地址为51H,则本例初始化程序如下:MOVAL,38H;输出方式选择字OUT51H,ALMOVAL,16H

;输出两个同步字符16HOUT51H,ALOUT51H,ALMOVAL,97H;输出操作命令字OUT51H,ALCPU执行上述程序之后,即完成了对8251A同步方式的初始化编程。132①异步工作方式,波特率系数为64(即数据传送速率是时钟频率的1/64),采用偶校验,总字符长度为10(1位起始位,8位数据,1位停止位)。②允许接收和发送,使错误位全部复位。③查询8251A状态字,当接收准备就绪时,则从8251A输入数据,否则等待。初始化程序:MOVDX,301H;8251A控制口地址MOVAL,01000000B;内部复位命令字OUTDX,AL;送命令字MOVAL,01111111B;方式控制字OUTDX,AL;送方式控制字133MOVAL,00010101B;操作命令字OUTDX,AL;送操作控制字WAIT:INAL,DX;读入状态字ANDAL,02H;检查RXRDY=1?JZWAIT;RXRDY≠1,接收未

;准备就绪,等待INAL,DX134

当8251A与CPU连接时,至少要占用两个端口地址,即控制端口(C/D=1)和数据端口(C/D=0)。在使用8251A时需要一个外部时钟源提供RXC、TXC和CLK信号。RXC和TXC由波特率以及时钟频率与波特率的倍率决定。CLK则在RXC、TXC频率的基础上增高若干倍。8251A与CPU通常采用查询或中断方式交换数据。若采用中断方式,两个状态信号TXRDY和RXRDY通过一个非门接到CPU的外中断输入。其余的RD、WR、RESET都是同名端相连。9.5.5.8251A应用举例135在编程时,对8251A初始化,输入命令字后就可进行数据传送。在得到中断申请后,通过调用状态字来检测是接收申请(RXRDY=1)还是发送申请(TXRDY=1),然后转至相应的程序模块。例:用8251A为8086CPU与CRT终端设计一串行通信接口。假设8251A控制端口地址为301H,数据端口地址为300H。要求:①异步方式传送,数据格式为1位停止位,8位数据位,奇校验;136

②波特率因子为16;③CPU用查询方式将显示缓冲区的字符“GOOD”送CRT显示。显示缓冲区在数据段,首地址为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论