电子说
接收器包括接收缓冲器和接收控制逻辑两部分。接收器的功能是接收在RXD引脚上的串行数据,并按规定的格式把它转换成并行数据,存放在数据总线缓冲器中。
①接收缓冲器
接收缓冲器主要由移位寄存器和数码寄存器组成。接收器接收传送到RXD(接收数据输入端)引脚上的串行数 据,并对串行数据流的特殊位(奇偶位,停止位等)和字符(同步字符)进行检查、处理,按规定的格式将串行 数据转换为并行数据存放在缓冲器中。
接收移位寄存器和接收数据缓冲器组成了双缓冲器结构。
②接收控制逻辑
这一部分控制串行数据的接收,包括三条控制线:
RXRDY(Receiver Ready)接收器准备好,输出,高电平有效。
RXC(Receiver Clock)接收时钟,输入。
SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步检测/断点检测,输出/输入,高电平有效。
发送器包括发送缓冲器和发送控制逻辑两部分。
①发送缓冲器和发送过程
发送数据缓冲器接收由CPU送来的并行数据,按初始化编程指定的数据格式转换成串行数据流送至发送移位寄存器,在TXC的下降沿从TXD引脚发送出去。
发送数据缓冲器和发送移位寄存器组成了发送的双缓冲器结构。
②发送控制逻辑
该部分控制串行数据的发送操作,包括3条控制线:
TXRDY(Transmitter ReaDy)发送器准备好,输出,高电平有效。
TXE(Transmitter Empty)发送器空,输出,高电平有效。
TXC(Transmitter Clock)发送时钟,输入。
读/写控制逻辑接收CPU的有关控制信号,据此确定对8251A的操作。该部分共有6条对外引线。
CLK 时钟,输入。
RESET 复位,输入,高电平有效。RESET有效,8251A被强行复位到空闲状态。只有在重新初始化后才能脱离空闲状态。
(Chip Select)片选,输入,低电平有效。
(Control/Data) 控制/数据信号,输入。
(Read)读,输入,低电平有效。
(Write)写,输入,低电平有效。
数据总线缓冲器是三态,双向,8位缓冲器,经引脚D7D7~D0D0和系统的数据总线相连,是8251A与系统数据总线之间的接口。数据总线缓冲器包括:
① 状态字缓冲寄存器,寄存8251A接收/发送操作的各种工作状态。
② 发送数据缓冲寄存器,暂存由CPU送来的数据或控制字。8251A没有独立的控制寄存器,写入的控制命令和发送的数据共用一个寄存器。
③ 接收数据缓冲寄存器,暂存接收到的准备送往CPU数据。
远程通信时,8251A的TXD端数据经调制器调制后送上传输线,经传输线送来的信号经解调后送往8251A的RXD端。为了在8251A和调制解调器之间能正确的传送数据,8251A调制解调控制逻辑产生四个相应的联络信号如下:
(Data Terminal Ready)数据终端准备好,输出,低电平有效。
(Data Set Ready)调制解调器准备好,输入,低电平有效。
(Request To Send)请求发送,输入,低电平有效。
(Clear To Send)允许发送,输入,低电平有效。
当8251A不与调制解调器相接而是接续其它外设时,这四条线可以作为控制数据传输的联络线。
8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的微型计算机中。其基本功能为:
(1)它是全双工、双缓冲器的接收/发送器。
(2)有两种工作方式,可工作在同步或异步工作方式。同步方式工作时,波特率在0~64K范围内;异步方式时,波特率在0~9.2K范围内。
(3)同步方式时,字符可选择为5~8bit,可加奇偶校验位,可自动检测同步字符。
(4)异步方式时,字符可选择为5~8bit,可加奇偶校验位,自动为每个字符添加一个启动位,并允许通过编程选择11、1.51.5、或22位停止位。
1、异步工作方式:
CPU发出接收命令,接收电路监视RxD端,发现一个起始位,开始一个字符的接收过程。在接收手时针的作用下,接收到的数据串行进入接收移位寄存器,被移位并进行奇偶校验,再删除停止位,得到并行数据,经片内总线接收数据缓冲器,等待CPU读取,同时RxRDY引脚置高电平,且状态寄存器的RxRDY位为1
2、同步工作方式:
同比工作方式分为内同步和外同步:
3、工作于内同步:
CPU发出允许接收和进入搜索指令,检测RxD引脚,将接收的数据位送入移位寄存器,并与同步字符寄存器的内容比较,若不同,不断接收并且进行移位比较操作,知道相同出现,则SYNDET置高电平,表明同步出现。若为双同步则需两个字符均-致。
4、工作于外同步:
由外部电路监测同步字符,当发现同步字符后,从同步输入端SYNDET输入高电平,告知8251A,8251A就脱离对同步字符的搜索过程,高电平需维持一个接收时钟周期。
达到同步后,8251A利用接收时钟采样RxD,接收同步帧格式数据。采得的数据送往移位寄存器,当位数达到一个字符规定的数位时,移位寄存器的内容通过片内总线送往接收数据缓冲器,:同时RxRDY引脚置高电平,且状态寄存器的RxRDY位为1,表示已经收到一个可用字符。
例:微机系统中两台微机之间进行双机串行通信的硬件连接和软件编程。
(1)要求
在甲乙两台微机之间进行串行通信,甲机发送,乙机接收。要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。双方采用起止式异步方式,通信的数据格式为,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4800。 CPU与8251A之间用查询方式交换数据,8251A的端口地址分配是:309H为命令/状态口,308H为 数据口。
(2)分析
由于是近距离传输,因此可以不设 MODEM,两台微机之间直接通过RS-232标准接口连接即可。同时是采用查询 I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发 l个字节。
(3)设计
①硬件连接
根据以上分析,把两台微机都当作 DTE(数据终端设备),采用最简单的发送线TxD、接收线 RxD和 地线GND三 根线连接就能进行通信。采用8251A作为接口的主芯片再配置少量附加电路,如波特率发生器、 RS—232C 与TTL电平转换电路、地址译码电路等就可构成一个串行通信接口。
②软件编程
由题意可知,接收和发送程序应分别编写,每个程序段中包括8251A初始化、状态查询和输入/输出几部分。 对接收/发送方的8251A初始化时,首先要确定其方式选择控制字和工作命令控制字。根据题中的要求可有:
发送方的方式选择控制字为11001111B=CFH,工作命令控制字为00111110B=37H
接收方的方式选择控制字为11001111B=CFH,工作命令控制字为00010100B=14H
发送端的发送程序(略去 STACK和 DATA段)
CSEG SEGMENT
ASSUME CS:CSEG
TRA PROC FAR
START: MOV DX,309H ;控制口
MOV AL.00H ;空操作
OUT DX,AL
MOV AL,40H ;内部复位
OUT DX,AL
NOP
MOV AL,0CFH ;方式字(异步,2位停止位,字符长度为8位,无校验,波特率因子为64)
OUT DX, AL
MOV AL,37H ;命令字(RTS、ER、RxE、DTR和 TxEN均置 1)
OUT DX, AL
MOV CX,2DH ;传送字节数
MOV SI,300H ;发送区首址
L1: MOV DX,309H ;状态口
IN AL, DX ;查状态位 D。(TxRDY)=1?
TEST AL,38H ;查错误
JNZ ERR ;转出错处理
AND AL,01H
JZ L1 ;发送未准备好,则等待
MOV DX,308H ;数据口
MOV AL,[SI] ;发送准备好,则从发送区取1字节发送
OUT DX, AL
INC SI ;修改内存地址
DEC CX ;字节数减 1
JNZ L1 ; 未发送完,继续
ERR: (略)
MOV AX,4C00H ;已送完,回 DOS
INT 21H
TRA ENDP
CSEG ENDS
END START
接收方接收程序(略去 STACK和 DATA段)
SCEG SEGMENT
ASSUME CS:REC
REC PROC FAR
BEGIN: MOV DX,309H ;控制口
MOV AL,0AAH ;空操作
OUT DX, AL
MOV AL,50H ;内部复位
OUT DX, AL
NOP MOV AL,0CFH ;方式字
OUT DX, AL
MOV AL,14H ;命令字(ER、RxE置1)
OUT DX, AL
MOV CX,2DH ;传送字节数
MOV DI,400H ;接收区首址
L2: MOV DX,309H ;状态口
IN AL, DX ;查状态位 D2(RxRDY)=17
TEST AL,38H ;查错误
JNZ ERR ;转出错处理 .
AND AL, 02H
JZ L2 ;接收未准备好,则等待
MOV DX,308H ;数据口
IN AL, DX ;接收准备好,则接收1字节
MOV [DI], AL ;并存入接收区
INC DI ;修改内存
LOOP L2 ;未接收完,继续
ERR: (略)
MOV AX,4C00H ;已接收完,程序结束,退出
INT 21H ;返回 DOS
REC ENDP
CSEG ENDS
END BEGIN
全部0条评论
快来发表一下你的评论吧 !