串行通信8251A
- 格式:ppt
- 大小:630.00 KB
- 文档页数:49
可编程串行通信接口芯片8251A可编程串行通信接口芯片8251A2010-05-25 15:058251 A是一个通用串行输入/输出接口,可用来将86系列CPU以同步或异步方式与外部设备进行串行通信。
它能将主机以并行方式输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据传送给处理机。
由于由接口芯片硬件完成串行通信的基本过程,从而大大减轻了CPU的负担,被广泛应用于长距离通信系统及计算机网络。
8251A是一个功能很强的全双工可编程串行通信接口,具有独立的双缓冲结构的接收和发送器,通过编程可以选择同步方式或者异步方式。
在同步方式下,既可以设定为内同步方式也可以设定为外同步方式,并可以在内同步方式时自动插入一个到两个同步字符。
传送字符的数据位可以定义为5~8位,波特率0~64K可选择。
在异步方式下,可以自动产生起始和停止位,并可以编程选择传送字符为5~8位之间的数据位以及1、1/2位之中的停止位,波特率0~19.2K可选择。
同步和异步方式都具有对奇偶错、覆盖错以及帧错误的检测能力。
一、8251A内部结构及功能图8.5.1为8251A结构框图。
作为常用的通信接口,和8255A类似,8251A 的结构也可以归纳为以下三个部分:第一部分是和CPU或者总线的接口部分,其中包括数据总线缓冲器、读/写控制逻辑。
数据总线缓冲器用来把8251A和系统数据总线相连,在CPU执行输入/输出指令期间,由数据总线缓冲器发送和接收数据,此外,控制字,命令字和状态信息也通过数据总线缓冲器传输,读/写控制逻辑电路用来配合数据总线缓冲器工作。
CPU通过数据总线缓冲器和读写控制逻辑向8251A写入工作方式和控制命令字,对芯片初始化;向8251A写入要发送字符的数据代码,送到发送缓冲器进行并行到串行的转换,并且将接收的、已转换成并行代码的接收缓冲器中的字符数据读入CPU。
第二部分是数据格式转换部分,包括发送缓冲器、并行数据到串行数据转换的发送移位器,接收缓冲器和串行数据到并行数据转换的接收移位器,以及发送控制电路和接收控制电路。
8251a有何特点-在串行通信中作用_8251a的工作方式8251a有何特点?在串行通信中作用_8251a的工作方式8251A的内部结构(1)接收器接收器包括接收缓冲器和接收控制逻辑两部分。
接收器的功能是接收在RXD引脚上的串行数据,并按规定的格式把它转换成并行数据,存放在数据总线缓冲器中。
①接收缓冲器接收缓冲器主要由移位寄存器和数码寄存器组成。
接收器接收传送到RXD(接收数据输入端)引脚上的串行数据,并对串行数据流的特殊位(奇偶位,停止位等)和字符(同步字符)进行检查、处理,按规定的格式将串行数据转换为并行数据存放在缓冲器中。
接收移位寄存器和接收数据缓冲器组成了双缓冲器结构。
②接收控制逻辑这一部分控制串行数据的接收,包括三条控制线:RXRDY(Receiver Ready)接收器准备好,输出,高电平有效。
RXC(Receiver Clock)接收时钟,输入。
SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步检测/断点检测,输出/输入,高电平有效。
(2)发送器发送器包括发送缓冲器和发送控制逻辑两部分。
①发送缓冲器和发送过程发送数据缓冲器接收由CPU送来的并行数据,按初始化编程指定的数据格式转换成串行数据流送至发送移位寄存器,在TXC的下降沿从TXD引脚发送出去。
发送数据缓冲器和发送移位寄存器组成了发送的双缓冲器结构。
②发送控制逻辑该部分控制串行数据的发送操作,包括3条控制线:TXRDY(Transmitter ReaDy)发送器准备好,输出,高电平有效。
TXE(Transmitter Empty)发送器空,输出,高电平有效。
简述8251a的编程结构是一种通用异步收发器,也是一种串行通信接口芯片。
它可以实现数据的收发、控制、同步等功能。
在计算机通信领域中,8251A 被广泛应用于串行通信接口的设计中。
8251A的编程结构可以分为两部分,分别是控制寄存器和状态寄存器。
控制寄存器用于设置串行通信的参数,状态寄存器则用于反映串行通信的状态。
控制寄存器的结构如下:| 位数 | 功能 | 说明 || ---- | ---- | ---- || 7 | DLAB | 波特率发生器访问位 || 6 | SB | 停止位数 || 5 | PE | 奇偶校验使能 || 4 | PM | 奇偶校验模式 || 3 | SM | 串行模式选择 || 2 | 2 | 保留 || 1 | 1 | 保留 || 0 | 1 | 保留 |其中,DLAB位用于选择波特率发生器的访问,SB位用于选择停止位的数量,PE位用于使能奇偶校验,PM位用于选择奇偶校验模式,SM位用于选择串行通信的模式。
状态寄存器的结构如下:| 位数 | 功能 | 说明 || ---- | ---- | ---- || 7 | FE | 帧错误 || 6 | OR | 溢出错误 || 5 | PE | 奇偶校验错误 || 4 | TB | 发送缓冲器空 || 3 | RB | 接收缓冲器满 || 2 | DSR | 数据终端就绪 || 1 | CTS | 清除发送 || 0 | RI | 接收到的数据 |其中,FE位用于表示帧错误,OR位用于表示溢出错误,PE位用于表示奇偶校验错误,TB位用于表示发送缓冲器是否为空,RB位用于表示接收缓冲器是否已满,DSR位用于表示数据终端是否就绪,CTS 位用于表示清除发送,RI位用于表示接收到的数据。
在使用8251A进行串行通信时,需要对控制寄存器和状态寄存器进行编程。
具体步骤如下:1. 设置波特率:首先要设置波特率,可以通过设置波特率发生器的值来实现。
8251A串行通信实验8251A串行通信实验xxxxxxxxxxx一、实验目的1.理解一部串行通信的基本原理;2.掌握可编程串行接口芯片8251的工作原理和编程方法。
二、实验内容1.异步串行自发自收实验(1)使用8251A发送固定二进制数再接收回来,将收到的数加1后显示在LED上。
(2)通信协议:异步,波特率为4800bps,波特因子为16,8位数据位,1位停止位,无奇偶校验;(3)采用查询方式实现。
2.RS-232通信实验:(1)PC机与试验箱通过串行进行通信,PC 机向实验箱发送字符,实验箱上的8521A接收到字符后再原样发回PC机;(2)通讯协议自定;(3)采用中断方式实现。
三、实验环境1.硬件:GX-8000实验箱,USB电缆,自锁紧导线;2.软件:icode集成开发环境。
四、实验提示1. 异步串行自发自收实验(1)8251A是一个28管脚的双列直插芯片,插在实验箱的40脚自锁紧通用插座上,实验中需用导线手动连接包括电源、地、数据总线、时钟信号、发送线、接收线在内的所需要的所有线路。
参考连线如图3.18所示。
(2)参考程序流程图如图3.19所示:(3)在对8251A进行初始化操作前必须确保其可靠复位,方法是:向8251A控制口连续写入三个0,然后再写入复位命令字40H。
注意:对8251A的控制口进行一次写操作,需要16个时钟信号的写恢复时间。
参考代码如下:其中,DELAY用于实现延时,其定义如下:(4)在程序设计过程中,可以使用单步调试,通过观察程序运行过程中寄存器值的变化调试程序错误,也可以进一步理解8251A 的控制原理。
(5)程序如下:DATA SEGMENT ;数据段DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATASTART: MOV DX,28BH ;初始化8253MOV AL,00010110BOUT DX,ALMOV DX,288HMOV AX,13OUT DX,ALMOV AL,80H ;初始化8255MOV DX,283HOUT DX,ALMOV DX,299H ;8251A的控制口地址MOV AL,0OUT DX,AL ;想8251A的控制口写0CALL DELAY ;延时MOV AL,0OUT DX,AL ;想8251A的控制口写0CALL DELAYMOV AL,0OUT DX,AL ;向8251A的控制口写0CALL DELAYMOV AL,40H 写复位命令OUT DX,ALCALL DELAYMOV DX,299H ;初始化8251MOV AL,01001110BOUT DX,ALCALL DELAYMOV DX,299HMOV AL,00010111BOUT DX,ALCALL DELAYMOV DI,3000H ;指针初值MOV CX,000AH ;接收数据个数A1: MOV DX,299HIN AL,DX ;TxRDY=1?TEST AL,01HJZ A1MOV DX,298HIN AL,DX ;8251数据口读入数据MOV DX,CXMOV CL,9 ;发送数MOV AL,CLOUT DX,ALMOV DX,299HA2: IN AL,DX ;RxRDY=1?TEST AL,02HJZ A2MOV DX,298HIN AL,DXINC CLMOV DX,280HMOV AL,CLOUT DX,ALJMP A1DELAY PROCMOV CX,02HLOOP $RET DELAYENDPCODE ENDSEND START2. RS-232通信试验(1)8251A要实现与PC通信,需要通过RS-232模块将TTL电平信号转换为RS-232电平信号。
8251a有何特点?在串行通信中作用_8251a的工作方式
8251A的内部结构(1)接收器接收器包括接收缓冲器和接收控制逻辑两部分。
接收器的功能是接收在RXD引脚上的串行数据,并按规定的格式把它转换成并行数据,存放在数据总线缓冲器中。
①接收缓冲器
接收缓冲器主要由移位寄存器和数码寄存器组成。
接收器接收传送到RXD(接收数据输入端)引脚上的串行数据,并对串行数据流的特殊位(奇偶位,停止位等)和字符(同步字符)进行检查、处理,按规定的格式将串行数据转换为并行数据存放在缓冲器中。
接收移位寄存器和接收数据缓冲器组成了双缓冲器结构。
②接收控制逻辑
这一部分控制串行数据的接收,包括三条控制线:
RXRDY(Receiver Ready)接收器准备好,输出,高电平有效。
RXC(Receiver Clock)接收时钟,输入。
SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步检测/断点检测,输出/输入,高电平有效。
(2)发送器发送器包括发送缓冲器和发送控制逻辑两部分。
①发送缓冲器和发送过程
发送数据缓冲器接收由CPU送来的并行数据,按初始化编程指定的数据格式转换成串行数据流送至发送移位寄存器,在TXC的下降沿从TXD引脚发送出去。
发送数据缓冲器和发送移位寄存器组成了发送的双缓冲器结构。
②发送控制逻辑
该部分控制串行数据的发送操作,包括3条控制线:
TXRDY(Transmitter ReaDy)发送器准备好,输出,高电平有效。
TXE(Transmitter Empty)发送器空,输出,高电平有效。