8251A的基本功能

8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的 微型计算机中。其基本功能为:

  • (1) 它是全双工、双缓冲器的接收/发送器。
  • (2) 有两种工作方式,可工作在同步或异步工作方式。同步方式工作时,波特率在0~64K范围内;异步方式时,波特率在0~ 9.2K范围内。
  • (3) 同步方式时,字符可选择为5~8bit,可加奇偶校验位,可自动检测同步字符。
  • (4) 异步方式时,字符可选择为5~8bit,可加奇偶校验位,自动为每个字符添加一个启动位,并允许通过编程选择11、1.51.5、或22位停止位。

8251A的内部结构

(1)接收器

接收器包括接收缓冲器和接收控制逻辑两部分。接收器的功能是接收在RXD引脚上的串行数据,并按规定的格式把它转换成并行数据,存放在数据总线缓冲器中。

  • ①接收缓冲器

接收缓冲器主要由移位寄存器和数码寄存器组成。接收器接收传送到RXD(接收数据输入端)引脚上的串行数 据,并对串行数据流的特殊位(奇偶位,停止位等)和字符(同步字符)进行检查、处理,按规定的格式将串行 数据转换为并行数据存放在缓冲器中。

接收移位寄存器和接收数据缓冲器组成了双缓冲器结构。

  • ②接收控制逻辑

这一部分控制串行数据的接收,包括三条控制线:
RXRDY(Receiver Ready)接收器准备好,输出,高电平有效。

RXC(Receiver Clock)接收时钟,输入。

SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步检测/断点检测,输出/输入,高电平有效。

(2)发送器

发送器包括发送缓冲器和发送控制逻辑两部分。

  • ①发送缓冲器和发送过程

发送数据缓冲器接收由CPU送来的并行数据,按初始化编程指定的数据格式转换成串行数据流送至发送移位寄存器,在TXC的下降沿从TXD引脚发送出去。

发送数据缓冲器和发送移位寄存器组成了发送的双缓冲器结构。

  • ②发送控制逻辑

该部分控制串行数据的发送操作,包括3条控制线:
TXRDYT_XRDY(Transmitter ReaDy)发送器准备好,输出,高电平有效。

TXET_XE(Transmitter Empty)发送器空,输出,高电平有效。

TXCT_XC(Transmitter Clock)发送时钟,输入。

(3)读/写控制逻辑

读/写控制逻辑接收CPU的有关控制信号,据此确定对8251A的操作。该部分共有6条对外引线。

CLK 时钟,输入。

RESET 复位,输入,高电平有效。RESET有效,8251A被强行复位到空闲状态。只有在重新初始化后才能脱离空闲状态。
CS¯¯¯¯¯\overline{CS}(Chip Select)片选,输入,低电平有效。

C/D¯¯¯C/\overline D(Control/Data) 控制/数据信号,输入。

RD¯¯¯¯¯\overline{RD}(Read)读,输入,低电平有效。

WR¯¯¯¯¯¯\overline{WR}(Write)写,输入,低电平有效。

(4)数据总线缓冲

数据总线缓冲器是三态,双向,8位缓冲器,经引脚D7D_7~D0D_0和系统的数据总线相连,是8251A与系统数据总线之间的接口。数据总线缓冲器包括:

  • ① 状态字缓冲寄存器,寄存8251A接收/发送操作的各种工作状态。
  • ② 发送数据缓冲寄存器,暂存由CPU送来的数据或控制字。8251A没有独立的控制寄存器,写入的控制命令和发送的数据共用一个寄存器。
  • ③ 接收数据缓冲寄存器,暂存接收到的准备送往CPU数据。

(5)调制解调控制逻辑

远程通信时,8251A的TXD端数据经调制器调制后送上传输线,经传输线送来的信号经解调后送往8251A的RXD端。为了在8251A和调制解调器之间能正确的传送数据,8251A调制解调控制逻辑产生四个相应的联络信号如下:
DIR¯¯¯¯¯¯¯\overline{DIR}(Data Terminal Ready)数据终端准备好,输出,低电平有效。

DSR¯¯¯¯¯¯¯¯\overline{DSR}(Data Set Ready)调制解调器准备好,输入,低电平有效。

RTS¯¯¯¯¯¯¯\overline{RTS} (Request To Send)请求发送,输入,低电平有效。

CTS¯¯¯¯¯¯¯\overline{CTS} (Clear To Send)允许发送,输入,低电平有效。

当8251A不与调制解调器相接而是接续其它外设时,这四条线可以作为控制数据传输的联络线。


8251A的编程字

(1)工作方式控制字


D1D_1D0D_0 确定是工作于同步方式还是异步方式。D1D_1D0D_0=00为同步方式,当方式设为同步时,方式控制字后必须装入 同步字符,并由同一个方式控制字规定装入单同步字符还是双同步字符;D1D_1 D0≠00D_0≠00为异步方式,且有3种组合来 选择输入的时钟频率与波特率之间的系数。
D3D_3D2D_2 确定每个字符的数据位(不包括奇偶校验位)。
D5D_5D4D_4 确定是否校验和奇偶校验的性质。
D7D_7D6D_6 含义因同步方式或异步方式而异。异步方式(D1D_1D0D_0≠00)时用来确定停止位个数。同步方式时D6D_6用来确定 是内同步(SYNDET脚为输出)还是外同步(SYNDET为输入),D7D_7用来确定同步字符个数。外同步方式时,同步字 符只用于发送,接收时不作用。

例:某异步通讯,数据位为8位,1位起始位、2位停止位、奇校验、波特率系数为16。
则有:11011110B=0DEH

MOV DX,309H ;8251A命令口
MOV AL,0DEH
OUT DX,AL

(2)工作命令控制字


D0D_0 设置为1允许8251A开始发送操作。只有命令字的D0D_0=1,引脚TXDRY(通知CPU:发送器准备好)才可能有效(为1)。可作为发送中断屏蔽位。
D1D_1 设置为1强制引脚DTR有效,表示数据终端准备好,通知调制解调器:8251A已准备好。
D2D_2 设置为1允许8251A开始接收数据。只有命令字D2D_2=1,RXRDY(通知CPU接收器准备好的引脚)才有可能为1。允许接收时必须使错误标志复位(见D4D_4)。在同步方式时还必须指定进入同步搜索操作(见D7D_7)。
D3D_3 设置为1迫使TXD端发送低电平,以此作断点字符。
D4D_4 设置为1则对状态字中的所有操作出错标志(FE,OE,PE)复位。
D5D_5 设置为1强制RTS引脚(请求发送)有效,向调制解调器提出发送请求。
D6D_6 设置为1强制8251A内部复位,使之回到准备接收方式字的状态。
D7D_7 只用于同步方式。为使8251A进入同步搜索操作,将输入的信息和同步字符比较,一致则使SYNDET/BRKDET(同步/断点检测)引脚有效,开始对数据的接收操作。
例:若要使8251A内部复位且允许接收/发送,则有

        MOV DX,309HMOV AL,40H ;D6=1,复位OUT DX,ALMOV AL,05H ;D2=1,D0=1OUT DX,AL

(3)状态字

状态字的作用是8251A向CPU送去数据传送操作中的各种状态信息。方式字,同步字符,命令字都是CPU写入8251A的,以控制8251A的工作方式和操作。那么,8251A在发送,接收数据的过程中实际工作状态如何呢?如一个字符接收全了 没有?接收的数据有没有错误?有什么类型的错 误?发送缓冲器空了没有?发送移位寄存器空了没有?等等,这些在发送/接收数据操作过程中的状态信息随 时寄存在8251A内部的状态冲寄存器内,CPU可以通过I/O读操作(=1)把状态字读入加以分析,控制CPU和 8251A之间的数据交换。
状态位D0D_0(TXRDY)——发送器准备好。
状态位D1D_1(RXRDY)——接收准备好。
状态位D2D_2(TxE)——发送器空。
状态位D3D_3(PE)——奇偶校验错标志
状态位D4D_4(OE)——溢出(覆盖)错误标志。
状态位D5D_5(FE)——帧格式错误标志
状态位D6D_6(SYNDET)——同步检测。
状态位D7D_7(DSR)——数据装置准备好。


8251A初始化编程流程与应用

例:8251A工作于异步方式,方式选择控制字为11111011B,工作命令控制字为00010001B。其初始化程序为:

…
MOV AL,0FBH ;8251A方式选择字
OUT CONTR,AL
MOV AL,11H ;8251A操作命令字
OUT CONTR,AL
…

8251A的应用举例

例:微机系统中两台微机之间进行双机串行通信的硬件连接和软件编程。

  • (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 SEGMENTASSUME CS:CSEGTRA PROC FARSTART: MOV DX,309H ;控制口MOV AL.00H ;空操作OUT DX,AL MOV AL,40H ;内部复位OUT DX,AL NOPMOV 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 ;字节数减 1JNZ L1 ; 未发送完,继续ERR: (略) MOV AX,4C00H ;已送完,回 DOSINT 21HTRA ENDP CSEG ENDSEND START
接收方接收程序(略去 STACK和 DATA段)SCEG SEGMENTASSUME CS:RECREC PROC FARBEGIN: MOV DX,309H ;控制口MOV AL,0AAH ;空操作 OUT DX, ALMOV AL,50H ;内部复位OUT DX, ALNOP MOV AL,0CFH ;方式字OUT DX, ALMOV AL,14H ;命令字(ER、RxE置1)OUT DX, ALMOV CX,2DH ;传送字节数MOV DI,400H ;接收区首址L2: MOV DX,309H ;状态口IN AL, DX ;查状态位 D2(RxRDY)=17TEST AL,38H ;查错误JNZ ERR ;转出错处理 .AND AL, 02HJZ L2 ;接收未准备好,则等待MOV DX,308H ;数据口IN AL, DX ;接收准备好,则接收1字节MOV [DI], AL ;并存入接收区INC DI ;修改内存LOOP L2 ;未接收完,继续ERR: (略)MOV AX,4C00H ;已接收完,程序结束,退出INT 21H ;返回 DOSREC ENDP CSEG ENDSEND BEGIN 

推荐资料:
8251A习题

可编程串行通信接口芯片8251A相关推荐

  1. 【微机原理 实验】可编程外围接口芯片8255(4)(硬件-含汇编代码)

    实验十  可编程外围接口芯片8255(4) 更多微机实验: Github: https://github.com/Amoiensis/Assembly-language CSDN: https://b ...

  2. 串行通信接口8251A

    可编程串行通信接口8251A 文章目录 可编程串行通信接口8251A 前言 科普: 一.串行通信 二.8251A内部结构 二.8251A工作过程及原理 总结 前言 本博客仅做学习笔记,如有侵权,联系后 ...

  3. 第八章 可编程接口芯片及应用【微机原理】

    第八章 可编程接口芯片及应用[微机原理] 前言 第8章可编程接口芯片及应用 8.1 可编程定时器/计数器芯片 8253/8254 8.1.1 8253的结构与功能 8.1.2 8253的编程 8.1. ...

  4. 第8章 可编程接口芯片及应用

    8.1 可编程定时器/计数器芯片8253/8254 定时信号的产生 1.软件定时 方法:根据所需时间常数设计一个延迟子程序. 优点:节省硬件 缺点:执行延时程序期间CPU一直被占用,降低了CPU效率, ...

  5. 微机接口芯片(1)—— 可编程并行接口芯片8255

    总结微机原理课学习的若干芯片 教材--<微机原理与接口技术> 文章目录 一.简介 二.8255的内部结构及引脚信号 (1)8255内部主要部件 (2)8255引脚信号 三.8255的工作方 ...

  6. 微机接口芯片(2)—— 可编程定时/计数接口芯片 8253/8254

    总结微机原理课学习的若干芯片 教材--<微机原理与接口技术> 文章目录 〇.思维导图 一.定时/计数 概述 二.8253/8254 内部结构及引脚信号 1. 主要功能 2. 内部结构和外部 ...

  7. 典型可编程接口芯片及应用

    可编程中断控制器芯片8259 https://blog.csdn.net/longintchar/article/details/79439466?utm_medium=distribute.pc_r ...

  8. 【计算机原理与接口技术(UNIX)⑱】——并行 I/O 接口 [ 芯片8255A ]

    ✅ 通过对 [计算机与UNIX汇编原理 ① ~ ⑫]的学习,我们已经大致掌握了汇编程序设计的相关知识 接下来,我将其分栏名改为 [计算机原理与接口技术(UNIX) ],重点将放在 "计算机原 ...

  9. tms320lf240x 的串行通信接口

    首先需要注意,串行通信模块的寄存器是8位的. 一.串行通信接口的物理结构 1.两个IO引脚 SCIRXD    SCI接收数据引脚 SCITXD    SCI发送数据引脚 2.一个16位的可编程的波特 ...

  10. 请问如何正确使用计算机的接口芯片,[计算机软件及应用]第05章接口芯片1.ppt

    [计算机软件及应用]第05章接口芯片1 第5章 可编程接口芯片 5.2 可编程定时器/计数器8254 计算机系统中经常要用到定时信号,如定时检测.定时扫描和时钟定时等,定时方法通常有以下三种: (1) ...

最新文章

  1. 内容协商 (Content Negotiation)
  2. asp.net MD5加密函数(c#)
  3. halcon学习(算子汇总)
  4. ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据
  5. picker.js源码
  6. Java学习之InputStream中read()与read(byte[] b)
  7. 反思 大班 快乐的机器人_幼儿园大班体育课教案《小熊斗怪兽》含反思
  8. 来,亮点抢先看!网易智企机器之心即将联合发布 AI 白皮书
  9. 用EasyPoi导入Excel
  10. 存储区域网络(SAN)
  11. SpringBoot(30) 整合PageOffice实现在线编辑Word和Excel
  12. 字母金字塔(类同数字金字塔)
  13. 邻域、邻接、通路、连通、连通集、区域概念区分​​​​​​​
  14. 1005.E. Maximize Sum Of Array After K Negations
  15. 三生三世十里桃花用计算机怎么弄,三生三世十里桃花ios如何用电脑玩 三生三世十里桃花ios模拟器教程...
  16. 跨六服务器维护方案,1月17日 早4点跨区2、跨区5、跨区6停机维护公告 - 地下城与勇士掌游宝...
  17. 硅谷钢铁侠:埃隆马斯克的冒险人生--读书笔记1
  18. 和joomla模板开发死磕(1)
  19. 推荐13个优秀的网站检测工具
  20. php大会2018,2018 INFORMS国际大会

热门文章

  1. Codeforces1040B Shashlik Cooking
  2. 客户关系管理系统(Customer Relationship Management)
  3. python调用迅雷下载引擎_GitHub - cryzlasm/ThunderOpenSDK: 迅雷开放下载引擎, 收集, 使用...
  4. html5显示用户已读取文章,如何查看公众号文章是谁阅读
  5. 顺丰快递查询api php,快递查询API接口_快递单号_申通顺丰数据接口 - 极速数据
  6. c语言用后缀字母表示不同数制,C语言基础知识总结
  7. 基于STM32c8t6的5路pwm占空比测量实验总结
  8. java判断list中是否包含某个值_java判断list是否包含某个值
  9. 有点意思!“古董级” 诺基亚功能机跑 Linux
  10. 【零基础】入门51单片机图文教程(Proteus+Keil)