简述8251a的编程结构
8255A、8251A的原理及应用
8255A的内部结构,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。
D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chip select):片选信号线,低电平有效时,芯片被选中。
A1, A0(port address):地址线,用来选择内部端口。
(read):读出信号线,低电平有效时,允许数据读出。
(write):写入信号线,低电平有效时,允许数据写入。
RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口输入/输出信号线。
PB7~PB0(port B):B口输入/输出信号线。
PC7~PC0(port C):C口输入/输出信号线。
VCC:+5V电源。
GND:电源地线。
8255A的工作方式方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路8255A初始化编程8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。
方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PC i(i=0~7)的电平。
两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。
(1)方式控制字的格式8255A工作方式控制字的格式如图7.11所示。
D0:设置PC3~PC0的数据传送方向。
D0=1为输入;D0=0为输出。
D1:设置B口的数据传送方向。
D1=1为输入;D1=0为输出.D2:设置B口的工作方式。
D2=1为方式1;D2=0为方式0。
可编程串行通信接口芯片8251A
可编程串行通信接口芯片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
2
1.1 8251A内部逻辑与工作原理
• 8251A的结构框图如图1.1所示,可分五个主要部分:数据总线缓冲器、接收缓冲器、 发送缓冲器、读/写控制逻辑电路和调制解调控制电路。
• 2.命令控制字:设置为00110111B(即37H),置引脚、有效,出错标志复位,允许发送和接收 (虽然本例只是接收,但8251A作为串行通信接口,通常同时具有发送和接收功能,只是本例仅编 写输入部分程序而已),写入控制端口,端口地址为71H。
• 3.状态字:检测状态字D1位的RXRDY,若RXRDY=1,说明已接收一个完整字符,可以读取。读 取一个字符后,还要确定接收的字符是否正确,方法是检测状态字的D5D4D3位(帧错、溢出错、 奇偶错),相应位为1表明出现对应的错误,需要进行错误处理。
3
8251A的结构框图
4
(1)数据总线缓冲器
• 数据总线缓冲器是三态双向8位缓冲器,它是8251A与微机系统数据总线的接口,数 据、控制命令及状态信息均通过此缓冲器传送。它含有命令寄存器、状态寄存器、 方式寄存器、两个同步字符寄存器、数据输入缓冲器和数据输出缓冲器。
5
(2)发送缓冲器
• 发送缓冲器的功能是接收CPU送来的并行数据,按照规定的数据格式变成串行数据 流后,由TXD输出线送出。
15
• 1.方式选择控制字:根据题意,方式选择控制字为11111010B(即FAH),写入控 制端口,端口地址为201H。
• 2.命令控制字:设置为00110111B(即37H),允许发送和接收,写入控制端口, 端口地址为201H。
可编程串行接口芯片8251A
停止位位数
图9.13 方式指令字各位含义
校验类型:1 偶校验;0 奇校验 S2 S1 00 0 1 1b 1 0 1.5b 1 1 2b
Hale Waihona Puke 1.3 8251A的编程接口技术
B2、B1位表示收发时钟与波特率的关系。
如当B2、B1置为10时,假设收发时钟频率为 19.2KHz,则表示8251A为异步方式,且波特 率为1200。
1.3 8251A的编程
接口技术
对8251A的编程是指由CPU写入控制字(包 括方式指令字和命令指令字)和读/写收发数 据,实现对8251A的各种工作方式以及工作进 程的控制。
8251A的编程包括初始化编程和收发数据过程 的编程两部分。
1.方式指令字
8251A方式指令字各位的定义如图9.13所示。
L2、L1指定串行异步通信中每个字符数据的 位数,可以在5~8位之间选择。
PEN位用来选择是否需要奇偶校验位。
EP位用来选择奇校验或偶校验,若EP=1, 则进行偶校验;若EP=0,则进行奇校验。
1.3 8251A的编程
接口技术
S2、S1用来指定异步方式下的停止位的位数, 可以选择1、1.5或2位。 在 同 步 方 式 ( B2、B1=00), 则 S1=1 为 外 同步,
1.3 8251A的编程
接口技术
1.方式指令字
8251A方式指令字各位的定义如图9.13所示。
D7 D6 D5 D4 D3 D2 D1 D0 S2 S1 EP PEN L2 L1 B2 B1
波特率因子
字符长度
B2 B1 00同步 011 1 016 1 164
L2 L1 005b 016b 107b 1 18b
8251芯片
可编程通信接口8251A(USART)1.8251A的基本结构8251A的基本结构包括5个功能模块(1)数据总线缓冲器——用于暂存接收,发送数据,CPU发来的命令及8251的工作状态。
(2)读/写控制逻辑——接收来自CPU控制总线的控制信号,控制数据的传送方向。
(3)接收器——从接收数据线RXD上接收串行数据,按指定方式将其转换成并行数据。
(4)发送器——接收CPU送来的并行数据,按指定方式将其转换成串行数据通过发送数据线TXD发送出去。
(5)调制解调器控制电路——提供4个通用的控制信号,即(数据终端准备好),(数据设备准备好),(请求发送)和(准许发送),以备8251A与外设联络。
2.8251A的工作过程(1)8251A发送数据的过程①当发送缓冲器为空时,信号TXRDY有效(或状态字的D0=1),以示发送器准备好,等待CPU送入数据。
②CPU将要发送的数据写入8251A的发送缓冲器;③发送的数据进行“并→串”转换;④插入起始位、奇/偶位和停止位或同步字符等,数据一位一位从TXD端串行输出。
(2)8251A接收数据的过程①在RXD端检测到起始位或同步字符;②开始在RXD线上采集数据;③将接收到的数据“串→并”转换,并进行奇偶校验和检查错误;④将采样到的、经过变换的8位数据由接收缓冲器送入数据总线缓冲器;⑤信号RXRDY有效(或状态字的D1=1),以示8251A已接收到一个数据,待CPU读取。
3.8251A的初始化在如前面已经强调过的,在使用可编程接口之前必须进行初始化,即在使用8251A进行数据传输前,对其进行编程,将相关方式指令字、命令指令字写入8251A。
8251A初始化的具体步骤如图7-3所示。
图7-3 8251A 初始化流程图4. CPU 对8251A 的操作和控制8251A 有两个端口地址,偶地址为输入/输出数据端口地址,奇地址为控制/状态端口地址。
引脚线C/与A 0连接:A 0=0,访问输入/输出数据端口A 0=1,访问控制/状态端口控制信号:、、C/、合成对8251A 的操作如表7-1所示。
可编程串行通信接口芯片8251A
逻辑低电平为+3V~+15V
逻辑高电平为-3V~-15V 实际常用±12V或±15V
相互转换
标准TTL电平 低电平:0V~0.8V 高电平:+2V~+5V
Page 16
RS-232C的引脚定义
RS-232C是一种标准接口,D型插座,采用25芯引 脚或9芯引脚的连接器,如图所示。
Page 5
1.串行数据传送方式
串行通信数据传送方式分为:单工通信方式、半双工通信 方式和全双工通信方式。 ⑴单工通信方式 传输的线路用一根线,通信的数据只允许按照一个固定的 方向传送。如图:只能从A站点传送到B站点。 A T B R
例: 单工通信类似无线电广播,电台发送信号,收音机 接收信号,收音机永远不能发送信号。
…
1
起始位——每个字符开始传送的标志,起始位 数据位——数据位紧跟着起始位传送。由5~8 校验位——用于校验是否传送正确;可选择奇 停止位——表示该字符传送结束。停止位采用 空闲位——传送字符之间的逻辑1电平,表示 采用逻辑0电平 个二进制位组成,低位先传送 检验、偶校验或不传送校验位 逻辑1电平,可选择1、1.5或2位 没有进行传送
收、发双方取得同步的方法是采用在字符格式中设置起始 位和停止位。
在一个有效字符正式发送前,发送器先发送一个起始位, 然后发送有效字符位,在字符结束时再发送一个停止位, 起始位至停止位构成一帧。
Page 9
异步通信数据格式
字符 数据位
起始位
校验位停止位 空闲位 0/1 0/1 1 1 高位
1
0
0/1 0/1 低位
Page 6
⑵半双工通信方式
传输的过程中依然用一根线连接,在某个时刻,只能迚行
程序控制输入输出8251
(2)操作命令控制字 操作命令控制字可使825lA处于预先规定的工作状态,操作命令控制字说明: (1) TxEN:允许发送/屏蔽发送的控制端。 (2) DTR:DTR位置1,表示CPU已经准备好接收数据。 (3) RxE:允许接收/屏蔽接收的控制端。 (4) SBRK:该位发送断缺字符,正常通信过程中,SBRK应保持为0。 (5) ER:ER=1清除奇偶出错、溢出出错和帧校验出错标志。 (6) RTS:该位是请求发送信号。 (7) IR:该位为内部复位信号,迫使8251回到方式选择控制字状态。 (8) EH:该位只对同步方式有效。EH=1时,表示开始搜索同步字符。
图2-4-45 8251A初始化编程框图
2)异步方式的编程
设在某8086系统中有一片8251A,其占用的端口地址分别为1A0H和 1A2H,并要求其工作方式选择为:异步通信,字符用7位二进制数表示 ,奇校验,2位停止位,波特率因子为64。对其工作状态的要求是:使发 送允许TxEN有效,使接收允许RxE有效,使数据终端准备好信号有效,复 位出错标志,将请求发送信号置于有效电平。 分析:其方式选择控制字应该为DBH,操作命令控制字应该为37H。
CS
DSR
接收缓冲器
RxD
DTR
CTS RTS
调制解调器 接收控制
RxRDY RxC SYNDET /BRKDET
微型机原理与程序设计
图2-4-29 8251A内部结构框图
1)数据总线缓冲器 数据总线缓冲器是三态双向8位缓冲器,它使825lA与系统数据总线 连接起来。它含有数据缓冲器和命令缓冲器。 2)接收器 接收器的功能是接收在RxD脚上的串行数据并按规定的格式把它转 换为并行数据,并存放在数据总线缓冲器中。 3)发送器 在同步方式中,发送器在准备发送的数据前面先插入由初始化程序 设定的一个或两个同步字符,在数据中,插入奇偶校验位。然后,在发 送时钟TxC的作用下,将数据一位一位地由TxD引脚发送出去。 在异步方式中,发送器先在串行数据字符前面加上起始位,并根据 约定的要求加上校验位和停止位,然后在发送时钟TxC的作用下,由TxD 脚一位一位地串行发送出去。
8251A可编程通信接口
3.
8251A可编程通信接口的结构与编程 Intel 8251A可编程通信接口的结构与编程
8251A主要引线信号说明: 8251A主要引线信号说明: 主要引线信号说明
Ready):本方准备好 输出。 本方准备好, DTR#(Data Terminal Ready):本方准备好,输出。 对方准备好,输出。 DSR#(Data Set Ready): 对方准备好,输出。 8251A与通信对方的另一对联络信号 与通信对方的另一对联络信号。 8251A与通信对方的另一对联络信号。 串行数据发送,输出,串行通信线。 TxD: 串行数据发送,输出,串行通信线。 串行数据接收,输入,串行通信线。 RxD: 串行数据接收,输入,串行通信线。 发送器准备好,输出,表明8251的状态。 8251的状态 TxRDY: 发送器准备好,输出,表明8251的状态。 发送缓冲器空,输出,表明8251的状态。 8251的状态 TxEMPT: 发送缓冲器空,输出,表明8251的状态。 接收器准备好,输出,表明8251的状态。 8251的状态 RxRDY: 接收器准备好,输出,表明8251的状态。 接收发送的时钟,一般用同一脉冲源。在异步方式下, TxC,RxC: 接收发送的时钟,一般用同一脉冲源。在异步方式下, 此频率为波特率的若干倍(波特率因子) 此频率为波特率的若干倍(波特率因子);在同步方式下 此频率与波特率相同。 此频率与波特率相同。 同步检测/断路检测,双向。 SYNDET/BRKDET: 同步检测/断路检测,双向。
8-3串行接口芯片8251A
串行接口芯片8251A8251A基本功能⏹可用于同步和异步通信方式(通信方式通过对方式字编程实现):☐同步方式:波特率0-64Kbps,每个字符可为5~8位,可使用内部同步检测和外部同步检测,能自动插入同步字符。
☐异步方式:波特率0-19.2Kbps,每个字符可为5~8位,自动增加起始位、停止位和校验位。
时钟TxC,RxC的时钟频率为传输波特率的1,16和64倍。
⏹全双工,具有双缓冲器接收器和发送器;⏹出错检测,具有奇偶、溢出和帧错等检测电路。
8251A的内部结构8251A的内部结构主要包括:数据总线缓冲器、接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、调制/解调控制电路、读/写控制逻辑电路等数据总线缓冲器发送缓冲器发送控制电路接收缓冲器接收控制电路D0~D7SYNDETRxDRxRDY读写控制电路C / DCLKRESETRDWRCSDSRCTSDTRRTSRxCTxCTxETxRDYTxD调制解调控制电路内部总线8251A的内部结构⏹发送器:包括发送缓冲器和发送控制电路☐采用异步方式时,则由发送控制电路自动在其首尾加上起始位、奇偶校验位和停止位,然后从起始位开始,经移位寄存器从数据输出线TxD逐位串行输出。
发送速率取决于TxC接收的发送时钟频率,可以编程定义是发送速率的1、16、64倍。
8251A的内部结构☐采用同步方式,则在发送数据之前,发送器将自动送出1个或2个同步字符,然后才逐位串行输出数据。
◆如果CPU与8251A之间采用中断方式交换信息,那么TxRDY可作为向CPU发出的中断请求信号,表示发送缓冲器已空,可以接收CPU下一个数据。
◆当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TxE有效信号,表示发送器中移位寄存器已空。
8251A的内部结构⏹接收器:包括接收缓冲器和接收控制电路从RxD引脚上接收串行数据转换成并行数据后存入接收缓冲器。
☐异步方式:在RxD线上检测低电平,将检测到的低电平作为起始位,8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RxRDY信号送CPU,表示已经收到一个可用的数据。
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(同步/断点检测)引脚有效,开始对数据的接收操作。
8251A
D7 S2 S2
仃止位数目
D6 S1 S1 0 1 0 1
D5
D4
D3
D2 L1
D1 B2 0 0 1 1
D0 B1 0 1 0 1
同 方式 步
E P PE N L2 EP PE N
无 效 1 位 1 1/2 位 2 位
0 0 1 1
Hale Waihona Puke 允 许 1 校 禁 止 0 校
0 0 1 1
8251A可编程通信接口
1. 串行通信的特点 • 串行通信是主机与外设交换信息的一种方式。 • 串行通信中字节数据经一条传输线按位串行 发送与串行接收。 • 串行通信节省通信线路,可远距离传送,成 本低,广泛应用在通信及计算机网络系统中。 • 串行通信中,数据传输速率低,控制较复杂。 光纤技术的出现与发展,为串行通信开辟了 美好前景。
RECEIVER shi.REG
B U S
8286
(opotion)
D7 -D0
SE RIA L Rx D IN PUT
T
DATA-IN BUFFER
RE SET Rx RSY Tx RDY RD WR
DATA-OUT BUFFER
Tx E Tx D SE RIA L OU TPU T
TR A NS. Shi REG
RESET:复位信号,为高时强迫8251A进入空间状态,等 待接收模式字。 CLK:时钟输入,内部定时用,大小高于通信速率。 C/D#:命令/数据,参与对内部寄存器寻址,C/D#为1时 主机对8251A写入控制字,C/D#为0时,写入数据, 接收地址线最低位。 RTS#(Request to send):请求发送、输出。 CTS#(Clear to send): 允许发送、输出。 8251A与通信对方的一对联络信号。
第11章 可编程串行接口芯片8251A讲解
2
第11章
(3)数据传送方式 串 行 通 信 通 过 一 条 信 号 线 按 顺 序 进 行传输,发送信息和接收信息分时使 用线路。 串 行 通 信 数 据 通 常 在 两 个 站 间 进 行 双向传送。 分为单工、半双工和全双工传送。
6
第11章
11.1.2 信号的调制和解调
调制解调器(Modem)是计算机在远程 通讯中采用的辅助外部设备。 发送端用调制器把数字信号转换为模拟信 号。 接收端用解调器检测从发送端送来的模拟 信号,再转换成数字信号。 调制解调器在发送端相当于D/A转换器, 在接收端相当于A/D转换器。
7
第11章
11.2 串行接口芯片8251A
11.2.1 8251A的基本性能 (1)工作在同步或异步通信方式下。 (2)同步方式时允许用单同步和双同步
字符。数据位在5~8位间进行选择。
8
第11章
(3)异步方式时数据位仍在5~8位范围内 选用,用1位作奇偶校验位或不设奇偶位。 能自动为每个数据增加1位启动位及1位、 1.5位或2位停止位。
3
单工传送: 一方发送,另 一方接收数据
半双工传送: 双方都能接收 或发送,但不 能同时接收和 发送
全双工传送: 有两条通路, 发送信息和接 收信息可同时 进行
A 发 送器
单 工通 信
B 接 收器
A 发 送器 接 收器
(a) 半 双工 通 信
B 发 送器 接 收器
A 发 送器 接 收器
(b) 全 双工 通 信
接收允许 1:允许 0:禁止
发送断点字符 1:迫使TxD为0
第11章 可编程串行接口芯片8251A
发送允许 1:允许 0:禁止 数据终端准备好 1:迫使DTR输出0 接收允许 1:允许 0:禁止 发送断点字符 1:迫使TxD为0
图11-9 8251A命令控制字的格式
15
第11章
D7 D6 D5 D4 OE D3 PE D2 TxE D1 RxRDY D0 TxRDY 同引脚定义 奇偶错 溢出错 帧出错
2
第11章
(3)数据传送方式 串行通信通过一条信号线按顺序进
行传输,发送信息和接收信息分时使 用线路。 串行通信数据通常在两个站间进行 双向传送。 分为单工、半双工和全双工传送。
3
A
B 单工通信 接收器 (a)
单工传送: 一方发送,另 一方接收数据 半双工传送: 双方都能接收 或发送,但不 能同时接收和 发送 全双工传送: 有两条通路, 发送信息和接 收信息可同时 进行
28
1.RS-232C引脚
RS-232C接口有9针、25针等规格。
(a)25脚排列图 (b)9脚排列图 图11-14 RS-232C引脚排列
25引脚中,有4条数据线、11条控制线、3条定 时信号线、2条地信号线。另外还保留2个引脚, 有3个引脚未定义。
29
第11章
2.RS-232C的连接
RS-232C广泛用于数字终端设备,
调制解调器(Modem)是计算机在远程 通讯中采用的辅助外部设备。 发送端用调制器把数字信号转换为模拟信 号。 接收端用解调器检测从发送端送来的模拟 信号,再转换成数字信号。 调制解调器在发送端相当于D/A转换器, 在接收端相当于A/D转换器。
7
第11章
11.2 串行接口芯片8251A
9
11.2.2 8251A基本结构
D—D 7 0
串行接口芯片8251A.
内部产生起始、奇偶 检验、停止位,按约定 的波特率从TxD输出。 当数据全部输出结束, 在TXD发出连续低电平 (TxE=1)。
停止位 1
奇偶位
发送移位寄存器
起始位
2. 8251A的引脚功能
8251A的引脚排列如下图所示
D2 D3 R XD GN D D4 D5 D6 D7 TXC WR CS C/D RD RXRDY
4. 发送/接收时钟
在异步串行通信中,发送端需要用一定频率的时钟 来决定发送每 l 位数据所占的时间长度(称为位宽 度),接收端也要用一定频率的时钟来测定每一位 输入数据的位宽度。 在进行串行通信时,根据传送的波特率来确定发送 时钟和接收时钟的频率。在异步传送中每发送一位 数据的时间长度由发送时钟决定,每接收一位数据 的时间长度由接收时钟决定,它们和波特率之间有 如下关系:时钟频率=n×波特率
(4)读/写控制逻辑信号
CS:片选信号,低电平有效。由CPU的IO/及地址信号经译码后供给。
C/D:控制/数据端。为高电平时CPU从数据总线读入的是状态信息;为低 电平时CPU读入的是数据。同样,C/D端为高电平时CPU写入的是命令; C/D为低电平时CPU输出数据。C/D与CPU的一条地址线相连。
(2)接收器 作用:接收器接收在RxD上的串行数据并按规定的 格式转换为并行数据,存放在接收数据缓冲器中。
工作过程:(异步方式)当8251允许接收并准备好接收数据时,监测RxD 端,当检测到起始位(低电平)后,使用16倍率的内部CLK,连续检测8 个0确认。然后按波特率移位、检测RXD,直至停止位。内部删除起始、 停止位 1 奇偶位 奇偶、停止位接收缓冲寄存器后,使 RxRDY 为高,向CPU提出中断申请。
串行接口及可编程接口芯片8251A(业界相关)
骄阳书苑
21
2.接收器
接收器由接收缓冲器和接收控制电路两部分组成。
❖ 接收移位寄存器从RxD引腿上接收串行数据转换成并行数 据后存入接收缓冲器。
❖ 异步方式:在RxD线上,完成字符装配,并进行 奇偶校验和去掉停止位,变成了并行数据后,送到数据输 入寄存器,同时发出RxRDY信号送CPU,表示已经收到一个 可用的数据。
骄阳书苑
22
❖ 采用双同步方式,就要在测得输入移位寄存器的内容与第 一个同步字符寄存器的内容相同后,再继续检测此后输入 移位寄存器的内容是否与第二个同步字符寄存器的内容相 同。如果相同,则认为同步已经实现。
❖ 实现同步之后,接收器和发送器间就开始进行数据的同步 传输。这时,接收器利用时钟信号对RxD线进行采样,并 把收到的数据位送到移位寄存器中。在RxRDY引脚上发出 一个信号,表示收到了一个字符。
例2:一个异步串行发送器,发送具有7位数据位的字符,传送波 特率为1800,字符格式为:1个奇偶校验位,1个停止位,问, 十秒钟内传送了多少个字符?
10 * 1800/(1+7+1+骄1阳)书=苑1800
8
信号的调制与解调
数据通信传输的是数字信号,要求传送线的频带 很宽,若传输带宽很窄,直接传输数字信号,信号就 要发生畸变。 因此,需用调制器将数字信号转换成 模拟信号,经传输后再用解调器将其转换成数字信号。
信传送信息的位数几乎不受限制,通常一次通信传送
的数据可达几十到几百个字节。这种通信的发送器和
接收器比较复杂,成本较高。
用于同步通信的数据格式有很多种,图11-4给出
了常见的几种。图中,除数据场的字节数不受限制外,
其他均为8位。
骄阳书苑
可编程串行通信接口8251A
2.接收器
接收器的功能是在接收时钟的作用下接收RxD引 脚上的串行数据并按指定的方式把它转换为并行 数据。 在异步方式下,当接收器成功的接收到起始位后, 8251A便接收数据位、校验位、停止位。 在内同步方式时,8251A首先搜索同步字符,在 RxD是以一次一位的方式移动数据,在接收到每 一位时都将现在接收的8位与同步字符寄存器的内 容进行比较,若相等就搜索结束,使SYNDET=1 表示已经同步,然后开始接收数据。
11
SYNDET(Synchronous Detection)/BD(Break Detection): 同步检测/间断检测,是双功能引脚。 在同步方式时,作同步字符检出信号SYNDET,为双向线。 SYNDET是作为输入还是输出,取决于初始化程序指定 8251A是工作于内同步或外同步。当8251A工作于内同步 方式时,SYNDET是输出,高电平有效,表示接收/发送 器已经同步;当8251A工作于外同步方式时,SYNDET是 输入,它的一个正跳变信号将启动8251A在下个的下降沿 开始装配字符。 在异步方式时,作间断检出信号BD,输出,高电平有效。 只要接受器在两个连续的停止位串中间(包括起始位、数 据位、奇偶位)保持低电平,那么该引脚就输出高电平。 在8251A被复位或RxD恢复为1时该引脚变低。 4)Modem控制信号 4)Modem控制信号 ____ DTR :数据终端准备好,是输出信号,低电平有效。它 由工作命令字的D1位置“1”变为有效,用以表示8251A准 备就绪。通常用于MODEM的控制。
8251A是用来作为 CPU与外设或调制 解调器之间的接口 芯片,有28个引脚。
7
1)CPU接口的信号 1)CPU接口的信号
D7~D0:三态、双向数据总线。 RESET:芯片复位信号线。该信号有效时,迫使8251A处 于空闲状态;在把一组新的控制字写入8251A设定其功能 之前,该芯片一直处于空闲状态。当该线上加高电平(宽 度为时钟的6倍)时,芯片复位而处于空闲状态,等待命令。 通常把它与系统的复位线相连,以便上电复位。 ___ RD:读信号。该信号有效表示CPU正从8251A读数据或 状态信息。 ___ WR:写信号。该信号有效表示CPU正把控制字或数据写 入8251A。 ___ CS:片选信号。该信号有效时,表示该8251A已被选中, 可进行读写操作;若为高电平则数据总线处于高阻状态, 此时RD和WR对器件无影响。
8251A的内部结构
8251A的内部结构(1)接收器接收器包括接收缓冲器和接收控制逻辑两部分。
接收器的功能是接收在RXD引脚上的串行数据,并按规定的格式把它转换成并行数据,存放在数据总线缓冲器中。
①接收缓冲器接收缓冲器主要由移位寄存器和数码寄存器组成。
接收器接收传送到RXD(接收数据输入端)引脚上的串行数据,并对串行数据流的特殊位(奇偶位,停止位等)和字符(同步字符)进行检查、处理,按规定的格式将串行数据转换为并行数据存放在缓冲器中。
接收移位寄存器和接收数据缓冲器组成了双缓冲器结构。
②接收控制逻辑这一部分控制串行数据的接收,包括三条控制线:R X RDY(Receiver Ready)接收器准备好,输出,高电平有效。
R X C(Receiver Clock)接收时钟,输入。
SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步检测/断点检测,输出/输入,高电平有效。
(2)发送器发送器包括发送缓冲器和发送控制逻辑两部分。
①发送缓冲器和发送过程发送数据缓冲器接收由CPU送来的并行数据,按初始化编程指定的数据格式转换成串行数据流送至发送移位寄存器,在TXC的下降沿从TXD引脚发送出去。
发送数据缓冲器和发送移位寄存器组成了发送的双缓冲器结构。
②发送控制逻辑该部分控制串行数据的发送操作,包括3条控制线:T X RDY(Transmitter ReaDy)发送器准备好,输出,高电平有效。
T X E(Transmitter Empty)发送器空,输出,高电平有效。
T X C(Transmitter Clock)发送时钟,输入。
(3)读/写控制逻辑读/写控制逻辑接收CPU的有关控制信号,据此确定对8251A的操作。
该部分共有6条对外引线。
CLK 时钟,输入。
RESET 复位,输入,高电平有效。
RESET有效,8251A被强行复位到空闲状态。
只有在重新初始化后才能脱离空闲状态。
(Chip Select)片选,输入,低电平有效。
串行通信和可编程接口芯片8251A
4、8251读写操作表
CS RD WR C/D
操作
0 0 1 0 CPU 读 8251 数据
0 1 0 0 CPU 向 8251 写数据
0 0 1 1 CPU 读 8251 状态字
0 1 0 1 CPU 向 8251 写控制字
01 1 *
数据总线浮空
同步通信数据格式
SYN字符1 SYN字符2
数据
二、串行通信中的几个问题
1、数据传送方向
①单工
TXD 发送
RXD 接收
②半双工
单线通信 单向数据流
发 送
TXD / RXD
接 收
单线通信
接
发
分时双向数据流
收
送
(对讲机工作方式)
③全双工
发送
接收
TXD RXD
RXD TXD
接收
发送
双线通信
各线单向,双向 数据流(电话工作 方式)
TxRDY( Transmitter Ready)发送数据准备好: TxRDY=1表 示发送数据缓冲器已准备好从CPU接收一个字符数据,CPU可 采用中断或查询方式输出一个数据( RxRDY=0)。
TxE( Transmitter Empty)发送器空: TxE=1表示发送移位寄 存器中已无数据可以向外部发送。此时,由TxD输出空闲位 (同步字符)。当8251从CPU接收到一个数据后,TxE=“0。”
1 单字符同步 0 双字符同步
3. 命令字
EH IR RST ER SBRK RxE DTR TxEN
1 允许发送 0 禁止发送 使DTR引脚为低电平 1 允许接收 0 禁止接收 1 使TxD线变低,发送空白字符 0 正常工作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简述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. 设置波特率:首先要设置波特率,可以通过设置波特率发生器的值来实现。
在设置波特率时,需要先将DLAB位设置为1,然后再向数据寄存器中写入波特率发生器的值。
2. 设置数据格式:接下来需要设置数据格式,包括数据位数、奇偶校验、停止位数等。
可以通过设置控制寄存器的SB、PE、PM等位来实现。
3. 发送数据:在发送数据时,需要先判断发送缓冲器是否为空,如果为空,则可以向发送缓冲器中写入数据。
写入数据后,可以通过检测状态寄存器的TB位来判断发送缓冲器是否已满。
4. 接收数据:在接收数据时,需要先判断接收缓冲器是否已满,如果已满,则可以从接收缓冲器中读取数据。
读取数据后,可以通过检测状态寄存器的RB位来判断接收缓冲器是否已空。
总之,8251A的编程结构比较简单,只需要设置控制寄存器和读取状态寄存器即可实现串行通信的功能。
在实际应用中,需要根据具体的需求进行编程,才能实现更加灵活、高效的通信。