详解8251
第六章
串行通信和串行接口8251A
•同步检测/断点检测SYNDET/BRKDET:
内同步和外同步的检测不能同时进行 内同步SYNDET作为输出,CPU执行一次读,该信号被 自动复位。 外同步时当引脚SYNDET由低电平变为高电平,使 8251A在下一个RxC的上升沿开始接收字符。
在异步工作方式下,该引脚为断点检测BRKDET。当 8251A连续收到两个全“0”组成的字符,该引脚输出高电平, 表明当前没有数据可读。直到收到“1”或8251A复位, BRKDET变低电平
第六章
串行通信和串行接口8251A
同步工作方式:
同步传送方式分为内同步和外同步
第六章
串行通信和串行接口8251A
CPU 接收数据缓冲器 接收移位寄存器 接收控制
同步字符寄 存器 同步字符寄 存器
RxD
0/1 0/1 0/1 0/1
RxC
RxRDY
SYNDET
工作于内同步: CPU发出允许接收 和进入搜索命令, 监测RxD引脚,将 接收的数据位送入 移位寄存器,并与 同步字符寄存器的 内容比较,若不同, 不断接收并且进行 移位比较操作,直 到相同出现,则 SYNDET置高电平, 表明同步实现。若 为双同步,则需两 个同步字符均一致。
第六章
串行通信和串行接口8251A
同步传送方式分为内同步和外同步 工作于外同步:由外部电路监测同步字符,当发现同步字 符后,从同步输入端SYNDET输入高电平,告知8251A, 8251A就脱离对同步字符的搜索过程,高电平需维持一个接 收时钟周期。
达到同步后, 8251A利用接收时钟采样RxD,接收同步帧 格式数据。采得的数据送往移位寄存器,当位数达到一个 字符规定的数位时,移位寄存器的内容通过片内总线送往 接收数据缓冲器,同时RxRDY引脚置高电平,且状态寄存 器的RxRDY位为1,表示已经收到一个可用字符。
接收 串-并 缓冲器 转换 接收控制电路
RXD RXRDY RXC
DTR CTS
RTS
调制/解调 控制电路
接 收 器
SYNDET
第六章
串行通信和串行接口8251A
CPU
发送数据缓冲器
发送移位寄存器
发送控制
CPU用OUT指令 将要发送的数据 送入到8251A的 数据总线缓冲器, 再并行送入发送 数据缓冲器中。 当TxRDY有效时, 将数据送移位寄 TxD 存器将并行数据 TxRDY 转换为串行数据 TxE 并格式化后,经 TxD引脚串行输 TxC 出。
第六章
串行通信和串行接口8251A
(3)接收缓冲器和接收控制电路:
包括接收移位寄存器、串/并转换电路、接收数据 缓冲器和同步字符寄存器
第六章
串行通信和串行接口8251A
CPU 接收数据缓冲器 接收移位寄存器 接收控制
同步字符寄 存器 同步字符寄 存器
RxD
0/1 0/1 0/1 0/1
RxC
RxRDY
6.1.1 串行数据的传输方向——单工、半双工和全双 工
1 单工(Simplex) 只允许数据按照一个固定的方向传送
设备A
设备B
发送器
接收器
第六章
串行通信和串行接口8251A
2 半双工(Half Duplex) 只有1根数据线传送数据信号,要求通讯双方的发送和接 收由电子开关切换。 【双向,但不同时】
在异步方式下,工作时钟CLK的频率应高于TxC和 RxC的4.5倍。
在同步方式下,工作时钟CLK的频率应高于TxC和 RxC的30倍。
RD、WR、CS、RESET分别是读写控制信号、片选 信号和复位信号。
第六章
串行通信和串行接口8251A
8251A内部缓冲寄存器的操作 CS C/D RD 0 0 0 0 0 1 0 1 0 0 1 1 WR 1 1 0 0 功能 从8251A读接收到的数据 从8251A读状态字 写发送数据到8251A 写命令字到8251A
第六章
串行通信和串行接口8251A
2 8251A的内部结构与外部引脚 (1) (2) (3) (4) (5) 接收器 发送器 数据总线缓冲器 调制解调器控制电路 读写控制逻辑电路
第六章
串行通信和串行接口8251A
D7-D0
数据总线 缓冲器
发送 并-串 缓冲器 转换 发送控制电路
TXD
发 送 器
TXRDY TXEMPTY
第六章
串行通信和串行接口8251A
接收时钟/发送时钟是波特率的倍数,称为波特率因子。
F(时钟频率)=波特率因子ⅹ波特率 • 波特率因子:时钟频率与数据传输率(波特率) 之间的比例系数. 例如波特率因子为16,则16个时钟脉冲移位1次。 P93
无信号时,RxD端为高电平,一旦检测到RxD端为低电平, 则启动接收控制中的内部计数器,计数到半个数位传输时 间8个RxC,再次检测RxD引脚,若仍为低电平,则确认起 始位到来,之后,每隔16个RxC,进行一次采样。 使用波特率因子高的时钟,可以使移位寄存器在信号的中 间同步,而不是在信号的起始边沿同步,这样可以减少信 号噪声在信号起始处引起读错数据的问题。
第六章
串行通信和串行接口8251A
F(时钟频率)=波特率因子ⅹ波特率
• 给定时钟频率,选择不同的波特率因子可得到不同的波特 率。 例如:f = 19.2 kHz,若选波特率因子为16,则波特率为 1200 bps。 • 若选定波特率因子和波特率,则相应的确定了对时钟频率 的要求。 例:波特率=9600bps,波特率因子=16,则 接收时钟和发送时钟频率=9600×16=153600Hz
RESET CLK C/D RD WR CS DSR
读/写 控制逻辑电路
内 部 总 线
TXC
接收 串-并 缓冲器 转换 接收控制电路
RXD RXRDY RXC
DTR CTS
RTS
调制/解调 控制电路
接 收 器
SYNDET
第六章
串行通信和串行接口8251A
(1)数据总线缓冲器:
它是三态双向8位缓冲器,内含有3个缓冲寄存器
SYNDET
异步方式下,接收的速率和接收时钟 以及波特率因子有关系。
异步工作方式:CPU 发出接收命令,接收 电路监视RxD端,发 现一个起始位,开始 一个字符的接收过程。 在接收时钟的作用下, 接收到的数据串行进 入接收移位寄存器, 被移位并进行奇偶校 验,再删除停止位, 得到并行数据,经片 内总线送接收数据缓 冲器,等待CPU读取。 同时RxRDY引脚置 高电平,且状态寄存 器的RxRDY位为1
第五章 并行接口和串行接口
5.4 可编程串行接口芯片8251A
8251A是intel公司的一个可编程的串行接口 芯片,具有同步、异步的接收/发送功能。
第六章
串行通信和串行接口8251A
1 8251A的基本性能 • 可用于同步或异步传输 • 同步传送:5~8bit/字符,内部或外部同步, 可自动插入同步字符 • 异步传送:5~8bit/字符,时钟速率位通信波 特率的1、16、64倍 • 波特率:异步(0~19.2K),同步(0~64K) • 出错检验:具有奇偶、溢出和帧错误等检验电 路
1+7+1+(1、1.5、2)bit。若用10位来发送, 至少浪费了30%的传输时间。为此引入同步传 输方式。
第六章
串行通信和串行接口8251A
同步通讯
靠同步字符完成收发双方同步
多个字符成组传送,在每组信息的开始要加上 同步字符,字符组和同步字符以及需要的其他 字符构成一个信息帧。没有数据传送时,传输 线处于高电平状态
第六章
串行通信和串行接口8251A
有关的引脚包括: •接收数据线RxD •接收数据准备好RxRDY: RxRDY=1时,表明8251A已经从串行输入线接收了一 个字符,正等待CPU将此信号取走。在中断方式时, RxRDY可作为向CPU申请中断的请求信号;在查询方式时, RxRDY的状态供CPU查询之用。 CPU对接收器的读操作, 将清除RxRDY信号,从而使得接收器继续滚动接收工作。 •接收时钟RxC: 是接收器的工作时钟,它控制8251A接收字符的速度,在上 升沿采集串行输入线。在同步方式下, RxC的频率即为接 收数据的波特率;在异步方式下,该频率可为波特率的1倍、 16倍或者64倍。
6.1.2 信号的调制与解调
第六章
串行通信和串行接口8251A
6.1.3 串行通信的两种基本工作方式 ——异步方式、同步方式
第六章
串行通信和串行接口8251A
6.1.3 串行通信的两种基本工作方式 ——异步方式、同步方式
第六章
串行通信和串行接口8251A
异步通讯的信息格式
起始位 数据位 校验位 停止位 空闲位
a) 发送数据/控制命令字缓冲寄存器 b) 接收数据缓冲寄存器 c) 状态字缓冲寄存器 CPU用IN指令可分别读取状态信息和接收的数据, 用OUT指令可以向8251写入数据或者命令(控制) 字。
第六章
串行通信和串行接口8251A
2)读写控制逻辑:
完成CPU对芯片的读/写控制和复位功能。 C/D:控制/数据寄存器选择信号。C/D=0时,选中 数据口, C/D=0时,选中控制口。 CLK:时钟信号用于8251A的内部工作时钟。
第六章
串行通信和串行接口8251A
第六章 串行通信和串行接口8251A
本章主要讲述: 6.1 串行通信基本概念
6.2
可编程串行接口芯片8251A
6.3 可编程串行接口芯片168251A
第六章 串行通信和串行接口8251A
6.1 串行通信特点
第六章
串行通信和串行接口8251A
逻辑0 逻辑0或1 逻辑0或1 逻辑1 逻辑1
1位 5位、6位、7位、8位 1位或无 1位、1.5位或2位 任意数量
8251芯片介绍
(1) 单工通信:它只允许一个方向传输数据,不能进行反方向传输。
(2) 半双工通信:它允许两个方向传输数据,但不能同时传输,只能交替进行,A发B收或B发A收,这种协调可以靠增加接口的附加控制线来实现,也可用软件约定来实现。
(3) 全双工通信:它允许两个方向同时进行数据传输,A收B发的同时可A发B收,但是这两个传输方向的资源必须完全独立,A与B都必须有独立的接收器和发送器,从A到B和从B到A的数据通路也必须完全分开(至少在逻辑上是分开的)。
8251作用、特点具有同步/异步的接受/发送功能它能将并行输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据,一次传送给处理机。
广泛应用于长距离通信系统及计算机网络。
8251A由发送器、接收器、数据总线缓冲存储器读/写控制电路及调制/解调控制电路等5部分组成,各组成部分的工作过程:8251A的发送器包括发送缓冲存储器,CPU用OUT指令将要发送的数据送入到8251A的数据总线缓冲器,再并行送入发送数据缓冲器中。
当TxRDY有效时,将数据送移位寄存器将并行数据转换为串行数据并格式化后,经TxD引脚串行输出。
发送移位寄存器(并→串转换)及发送控制电路3部分,CPU需要发送的数据经数据发送缓冲存储器并行输入,并锁存到发送缓冲存储器中。
如果是采用同步方式,则在发送数据之前,发送器将自动送出一个(单同步)或两个(双同步)同步字符(Sync)。
然后,逐位串行输出数据。
如果采用异步方式,则由发送控制电路在其首尾加上起始位及停止位,然后从起始位开始,经移位寄存器从数据输出线T X D逐位串行输出,其发送速率由T X C端上收到的发送时钟频率决定。
当发送器作好接收数据准备时,由发送控制电路向CPU发出T X RDY有效信号,CPU立即向8251A 并行输出数据。
如果8251A与CPU之间采用中断方式交换信息,那时T X RDY作为向CPU发出的发送中断请求信号。
微机原理第八章--8251..
与读/写控制电路的控制信号: ①RESET:高电平复位,等待对其初始化。 ②CLK:为芯片内有关电路工作提供时钟的输入端。 同步:该频率大于接收/发送器的时钟频率的30倍;异步:大于4.5倍。 ③ WR、RD 、C/D 、CS、 D0 ~ D7 发送 并/串 数据总线 TXD 缓冲器 转换 缓冲器 TXRDY 发送控制电 TXEMPTY 内 路 RESET TXC 部 总 CLK 读/写 线 C/D 控制逻辑 O 电路 RD O WR 接收 串/并 RXD O 缓冲器 转换 CS RXRDY O DSR RXC 接收控制电路 O 调制 DTR 解调 SYNDET O CTS 电路 O RTS
(b)双同步
数据字节1 数据字节2 … 数据字节N CRC1 CRC2 (c)外同步 面向字符型同步通信数据格式
帧
帧
图
单同步:传送数据之前,先传送一个同步 字符“SYNC”,接收端检测到同步字符 后,开始接收数据。 双同步:两个同步字符“SYNC”,其后, 接着是数据。 外同步:用一条专用控制线来传送同步字 符,使接收方与发送方实现同步。
3.状态字:报告8251A何时才能开始发送或接收,以及接收数据 有无错误。状态位为 1 ,表示有效。在读状态期间, 8251A 将自 动禁止改变状态位。
D7 DSR D6 SYN D5 FE D4 OE D3 PE D2 TXE D1 D0 RXRDY TXRDY
1:进入SYN 搜索方式
例 3 :若要使 8251A 内部复位,假定命令口地址 为309H,则程序段为: MOV DX,309H ;8251命令口 MOV AL,40H ;置D6=1,使内部复位。 OUT DX,AL
例 4 :异步通信时,允许接收,同时允许发送, 则程序段为(命令口地址为309H): MOV DX,309H ;8251命令口 MOV AL,05H ;D2=1,D0=1,允许接收和发送。 OUT DX,AL
芯片8251A介绍.ppt
以准备接收或发送数据 状态字:寄存8251A的工作状态
方式选择控制字格式
D7 D6 D5 D4 D3 D2 D1 D0
奇偶校验
X0:无校验 01:奇校验 11:偶校验
OUT DX,AL
INC DI
;修改指针
LOOP NEXT
HLT
设接收端8251A数据口地址为RDATA,控制口/状态口地址为 RCONT,接收数据缓冲区首地址为RBUFF
SRR: MOV DX,RCONT ;送方式选择控制字
MOV AL,7FH
OUT DX,AL
MOV AL,14H
;清除错误标志,允许接收
①通过编程,8251A可以工作在同步方式,波特率0~ 64K,也可以工作在异步方式,波特率0~19.2K; ②同步方式下可以用5~8位来表示字符,允许增加1 位奇偶校验位,能自动检测同步字符,实现收发同步;
③异步方式下用5~8位来表示字符,1位可选的奇偶校 验位,1位启动位,根据需要可设置1、1.5或2位停止位;
4. 信号的调制与解调
为在模拟信道上传输数字信号,必须把数字信号转换 成适于传输的模拟信号,而在接收端再将模拟信号转 换成数字信号。前一种转换称为调制,后一种转换称 为解调。完成调制、解调功能的设备叫做调制解调器 (Modem)。
三种主要的调制方式:
•幅移键控ASK •频移键控FSK •相移键控PSK
计
计
算 机
算
或
机
外
设
微机系统在串行通信时必须进行串行与并行的转换
2. 同步方式和异步方式 •异步串行方式
第八章-8251
与异步串行通信相比,同步通信的不足之处有( A )
A.电路结构复杂
B.纠错能力差
C.传输速率低
D.频率稳定性差
RS-232C标准规定空号SPACE状态电平为( D )
A.+3V~-3V
B.+5V~-5V
C.-3V~-15V
D.+3V~+15V
相邻两台计算机进行全双工串行通信时,需连接的最基本三 条线是( A )
串行通信基础
串行通信的优点:用于通信的线路少,因而在远距离 通信时可以极大地降低成本
串行通信适合于远距离数据传送,也常用于速度要求 不高的近距离数据传送
PC系列机上有两个串行异步通信接口、键盘、鼠标器 与主机间采用串行数据传送
典型的串行接口的结构
由于CPU与接口之间按并行方式传输,接口与外设之间按 串行方式传输,因此,在串行接口中,必须要有“接收移 位寄ห้องสมุดไป่ตู้器”(串→并)和“发送移位寄存器”(并→串)。
1位 5位、6位、7位、8位 1位或无 1位、1.5位或2位 任意数量
异步通讯
例:传送8位数据45H(0100,0101B),奇校验,1 个停止位,则信号线上的波形为
2. 同步通信
以一个数据块(帧)为传输单位,每个数据块附加1个或2个 同步字符,最后以校验字符结束
同步通信的数据传输效率和传输速率较高,但硬件电路比较 复杂
(1)字符A的ASCII码为41H,线路传送字符A需多少时间(从开始传送起始 位到传送完一帧数据所需的总时间)?(12/300=0.04S)
(2)在题34图中画出传送字符C的ASCII码的RS-232C波形图。 (3)设波特率系数K=16,试问发送方发送时钟与接收方接收时钟的频率是
第七章终结篇——8251A的总结
第七章终结篇——8251A的总结总算把这个第七章复习完了,我把剩下⼀点关于8251A的发上来吧本来在讲解8251A书本上还有关于RS232和串⼝通信的讲解,但是太浅了,就不放了,有兴趣的朋友可以⾃⾏参考其他⽂章串⾏通信芯⽚8251A有以下特点1. 可以⽤于同步或者异步传输,同步0-64kbps,异步0-19.2kpbs2. 同步传送的时候,5-8位/字符,可以⽤于内同步或者外同步,可⾃动插⼊同步字符3. 异步传送的时候,5-8位/字符,有1,2,1.5个停⽌位4. 完全双⼯,双缓冲发送和接受数据5. 具有出错检查,奇偶校验、溢出、和帧错误等检测电路好吧,为啥要这个8251A因为计算机内部都是并⾏传输数据的,但是长距离通信都是⽤的串⾏通信的(这些概念不太明⽩的不懂的朋友可以⾃⾏百度⼀下概念或者看看书)必须要个东西来转化⼀下82518251的内部结构内部结构包括接收器,发送器,读/写控制逻辑,数据总线缓冲器和调制解调控制电路五⼤部分接收器包括接收缓冲器,并⾏转换逻辑和接受控制电路三个部分接收缓冲器对外引脚为RxD,功能是从此引脚上接收串⾏数据,然后转换成并⾏数据,是由接受移位寄存器和接收数据缓冲器组成双缓冲结构接受控制电路是配合缓冲器⼯作的,作⽤如下1 .在异步⽅式下,芯⽚复位后,先检测输⼊信号中的有效1,⼀旦检测到到,就接着寻找有效的低电平来确定启动位2 消除假启动⼲扰3 对接收到的信息进⾏奇偶校验,并根据校验结果建⽴相应的状态位4 检测停⽌位,并按检测结构建⽴状态位发送器和接收器差不多,也是有发送缓冲器,发送控制电路和并串转换逻辑3个部分发送缓冲器上⾯接的是TxD脚,发送数据缓冲器和发送移位寄存器组成了发送的双缓冲结构,发送控制电路也是辅助发送缓冲器的,但是和接受的功能不⼀样发送控制电路作⽤如下1. 在异步⽅式下插⼊起始位,校验位和停⽌位2. 在同步⽅式下,插⼊同步字符,在数据中插⼊校验位数据总线缓冲器提供与8251A和CPU系统总线相连,在CPU执⾏输⼊输出操作的时候,进⾏数据交换或者读写命令读/写控制逻辑电路⽤来配合总线缓冲器⼯作1. 写信号WR#,把数据总线的信号(数据/控制字)写⼊8251A2. 读信号RD#,将状态/数据字发送到CPU(发到数据总线)3. 接收控制/数据信号C/D#,与读。
8251A的编程字
8251A的编程字(1)工作方式控制字D1D0确定是工作于同步方式还是异步方式。
D1D0=00为同步方式,当方式设为同步时,方式控制字后必须装入同步字符,并由同一个方式控制字规定装入单同步字符还是双同步字符;D1D0≠00为异步方式,且有3种组合来选择输入的时钟频率与波特率之间的系数。
D3D2确定每个字符的数据位(不包括奇偶校验位)。
D5D4确定是否校验和奇偶校验的性质。
D7D6含义因同步方式或异步方式而异。
异步方式(D1D0≠00)时用来确定停止位个数。
同步方式时D6用来确定是内同步(SYNDET脚为输出)还是外同步(SYNDET为输入),D7用来确定同步字符个数。
外同步方式时,同步字符只用于发送,接收时不作用。
例:某异步通讯,数据位为8位,1位起始位、2位停止位、奇校验、波特率系数为16。
则有:11011110B=0DEHMOV DX,309H ;8251A命令口MOV AL,0DEHOUT DX,AL(2)工作命令控制字D0设置为1允许8251A开始发送操作。
只有命令字的D0=1,引脚T X DRY(通知CPU:发送器准备好)才可能有效(为1)。
可作为发送中断屏蔽位。
D1设置为1强制引脚DTR有效,表示数据终端准备好,通知调制解调器:8251A已准备好。
D2设置为1允许8251A开始接收数据。
只有命令字D2=1,RXRDY(通知CPU接收器准备好的引脚)才有可能为1。
允许接收时必须使错误标志复位(见D4)。
在同步方式时还必须指定进入同步搜索操作(见D7)。
D3设置为1迫使TXD端发送低电平,以此作断点字符。
D4设置为1则对状态字中的所有操作出错标志(FE,OE,PE)复位。
D5设置为1强制RTS引脚(请求发送)有效,向调制解调器提出发送请求。
D6设置为1强制8251A内部复位,使之回到准备接收方式字的状态。
D7只用于同步方式。
为使8251A进入同步搜索操作,将输入的信息和同步字符比较,一致则使SYNDET/BRKDET(同步/断点检测)引脚有效,开始对数据的接收操作。
8251可编程串行接口实验
集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验四8251可编程串行接口实验实验类型设计型姓名学号日期地点成绩教师第1页共8页1. 实验目的及内容 1.1实验目的1、了解8251的内部结构、工作原理及与8086的接口逻辑;2、掌握8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
1.2实验内容1)设计8251与8086CPU 的硬件连接图,分配8251的基地址为0FF00H 。
8251的CLK 引脚需接4MHZ 的时钟。
2)设计8251的硬件连接及编写程序,实现自发自收。
把内存中的字符串,依次传送出去,并接收回来,然后把接收回来的字符显示在LED 上。
使用8253作分频器提供8251的收发时钟,并给出程序流程图。
3)计算你所设计的串行通信的波特率为多少?本次设计实验中,我所设计的通信的波特率为19200,波特率因子为16。
4)设计8251的硬件连接及编写程序,实现从PC 机的串行通信测试软件向8251发送一批数据,8251接收完数据之后,再将数据依次发送回去。
使用8253作分频器提供8251的收发时钟,并给出程序流程图。
2. 实验环境星研电子软件,STAR 系列实验仪一套、PC 机一台、导线若干3. 实验方法8251是通用同步/异步接收发送器,可用作CPU 和串行外设的接口电路,它的工作各种工作方式及工作进程都是用初始化及实时控制实现的,编程时,方式指令紧接在复位后由CPU 写入,用来定义8251A 的一般工作特性;在写入方式指令的前提下由CPU 写入同步字符和命令指令用来指定芯片的实际操作。
根据实验要求,需完成一下两个方面的问题:(1)8253对收发时钟的分频。
8253的CLK 接频率发生器的2MHZ ,初值赋给104,得到收发时钟为19200HZ 。
(2)利用8251实现自发自收。
8251的方式命令字:停止位为1,产生偶校验,字符长度为8位,波特率因子为16位;命令指令字:出错标志复位,允许发送,允许接收。
可编程串行通信接口芯片8251A
• 2)在同步发送方式中,发送缓冲器在准备发送的数据前面先插入由初始化程序设 定的一个或两个同步字符,在数据中插入奇偶校验位。然后在发送时钟TXC的作用 下,将数据逐位地由TXD引脚发送出去。
能根据编程为每个字符设置1个、1.5个或2个停止位。 • (4)所有的输入输出电路都与TTL电平兼容。 • (5)全双工双缓冲的接收/发送器。
2
1.1 8251A内部逻辑与工作原理
• 8251A的结构框图如图1.1所示,可分五个主要部分:写控制逻辑电路和调制解调控制电路。
6
(3)接收缓冲器
• 1)在异步接收方式,当“允许接收”和“准备好接收数据”有效时,接收缓冲器 监视RXD线。在无字符传送时,RXD线上为高电平,当RXD线上出现低电平时,即 认为它是起始位,就启动接收控制电路中的一个内部计数器,计数脉冲就是8251A 的接收时钟脉冲RXC,当计数器计到一个数据位宽度的一半(若时钟脉冲频率为波 特率的16倍,则计数到第8个脉冲)时,又重新采样RXD线,若其仍为低电平,则 确认它为起始位,而不是噪声信号。
17
• 1.方式选择控制字:根据题意,方式选择控制字为00111000B(即38H),写入控 制端口,端口地址为91H。
• 2.命令控制字:设置为10010111B(即97H),使8251A进入同步字符检测,出错 标志复位,允许发送和接收,置引脚有效,写入控制端口,端口地址为91H。
• 3.同步字符:2个同步字符,均为3AH。 • 4.初始化程序:
9
1.3 8251A的控制字
第10章8251A
图10.4 8251A内部结构框图
D2 D3 RXD GND
D4 D5 D6 D7 TXC WR
CS
C/D
RD
RXRDY
1
28
2
27
3
26
4
25
5
24
6
23
7 8251A 22
8
21
9
20
10
19
11
18
12
17
13
16
14
15
D1 D0 VCC RXC DTR
RTS
DSR
RESET
CLK
TXD TXEMPTY CTS
1: 接收允许 0: 屏蔽
0: 屏蔽
图10.10 8251A的控制字格式
四、状态字
CPU向8251A发送各种操作命令,许多时候是依据8251A当前 的运行状态决定的。CPU可在8251A工作过程中利用IN指令读取 当前8251A的状态字,以控制CPU与8251A之间的数据交换。状 态字的格式如图10.11所示。
0
CPU由8251A输入数据
0
CPU向8251A输出数据
1
CPU读取8251A的状态
1
CPU向8251A写入控制命令
五、调制解调器控制电路
利用8251A进行远距离通信时,发送方要通过调制解调器将 输出的串行数字信号变为模拟信号,再发送出去。接收方也必
须将模拟信号经过调制解调器变为数字信号,才能由串行接口
10位/字符×120字符/秒=1200位/秒=1200波特 传送每位信息所占用的时间为: 1秒/1200=0.833 毫秒
10.1.4 串行接口芯片UART和USART 常用的通用串行接口芯片有两类,一种是仅用于异步通信的
8251自发自收
微机原理实验报告8251自发自收一、目的(1)了解串行通信的一般原理和8251A的工作原理。
(2)掌握8251A的编程方法。
二、内容采用自发自收方式,通过8251A将主机键盘输入字符串行发送出去,再将串行接收到的字符显示在主机屏幕上,发送和接收时钟信号由8253提供。
三、实验流程图开始8253初始化8251A初始化显示提示信息:请键入字符,’$’结束读键入的字符存BL读8251A状态字NT X RDY=1?Y从8251A数据口发送BL中字符读8251A状态字NR X RDY=1?Y从8251A数据口读入接收的字符将该字符显示在屏幕上N该字符=’$’?Y返回DOS图3-2 查询方式自发自收的程序参考流程四、实验步骤①将分频器74LS393的B端与8MHz信号相连;②将分频器74LS393的A端接 +5V;③将8253的 CLK2与8MHz分频得到的250KHz信号(74LS393的Q4端)相连;④8253的GA TE2接+5V;⑤8253的OUT2与8251的TXC、RXC相连,作为发送和接收时钟,波特率自定;⑥8253的CLK2和250KHz(74LS393的Q4)相连;⑦RXRDY和PC总线的IRQ2(或B4)相连,由此端向PC主机发中断请求;⑧8253的CS和200~207插孔相连,8251A的CS和208~20F插孔相连;⑨将8251A的TXD与RXD端连接,形成自发自收;五、源程序DA TA SEGMENTIOPORT EQU 0EC00H-200HIO8251_DA TA EQU IOPORT+208HIO8251_CTR EQU IOPORT+209HIO8253_0 EQU IOPORT+200HIO8253_2 EQU IOPORT+202HIO8253_CTR EQU IOPORT+203HLOADING DB ‘W AKE UP’,0DH,0AH,’$’LENGTH_M EQU 34HMESS DB ‘PLEASE PRESS A BUTTON,PRESS ‘Q’TO QUIT ‘,0DH,0AH,’$’DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,LOADINGMOV AH,9INT 21H ;显示loading字符串MOV DX,IO8253_CTRMOV AL,10010110B ;OUT DA,ALMOV AL,LENGTH_MMOV DA,IO8253_2OUT DX,AL ;8253命令初始化MOV DX,IO8251_CTRMOV AL,01001101B ;OUT DX,ALMOV AL,00010111BOUT DX,AL ;8251命令初始化LEA DX,MESSMOV AH,9INT 21H ;显示mess提示信息CHECK_KEY:MOV AH,0BH ;检查有无按键输入INT 21HOR AL,ALJZ READ_STA TUS_R ;如无按键输入,去检查接收状态MOV AH,1INT 21HCMP AL,’Q’JE EXIT ;检查是否是‘Q”,若是Q,则退出MOV BL,AL ;读键入的字符存BLREAD_STATUS_T:MOV DX,IO8251_CTRIN AL,DX ;读8251发送状态字TEST AL,00000001B ;TXRDY=1?CALL DELAYJZ READ_STA TUS_TMOV AL,BLMOV DX,IO8251_DATAOUT DX,AL ;从8251数据口发送BL中字符READ_STATUS_R:MOV DX,IO8251_CTRIN AL,DXTEST AL,00000010B ;读8251状态字,RXRDY=1?CALL DELAYJZ CHECK_KEYMOV DX,IO8251_DATA ;从8251数据口接收读入的字符IN AL,DXCMP AL,’Q’JE EXITINC AL ;将字符+1后显示到屏幕上MOV DL,ALMOV AH,2INT 21HJMP CHECK_KEYEXIT:MOV AH,4CHINT 21HDELAY PROCPUSH CXMOV CX,0FFFFHW1:LOOP W1POP CXRETDELAY ENDPEXIT:MOV AX,4C00HINT 21HCODE ENDSEND START六、实验结果及分析结果:本机输入字符,加“1”后由本机显示输出难点:8251的发送接收程序复杂,在同组同学的共同探讨及其他组同学的帮助下完成源程序的修改,最终完成实验。
