本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
MCS-51系列单片机仅有一个异步通讯串行接口,而在实际应用中,经常需要一个以上的串行口。例如当8031用于构成主从式多机系统时,主机8031一方面要和从机通讯,另一方面还要和终端(或上级管理机)通讯。利用可编程同步/异步接收/发送器(USART),如INTEL8251来扩展通道是一个有效的办法。
一、8251的基本功能
1. 可用于同步和异步传送
2. 同步传送:5—8bit字符,内部或外部字符同步化,自动插入同步字符。
3. 异步传送:5—8bit字符,时钟速率为通讯波特率的1、16或64倍。
4. 可产生中止字符(Break Character);可产生1、1.5或2位的停止位。可检查假启动位。自动检测和处理中止字符。
5. 波特率:DC—19。2K(异步); DC-64K(同步)。
6. 完全双工,双缓冲发送和接收器。
7. 误差检测——具有奇偶、溢出和帧错误检测电路。
二、8251的功能框图
8251的结构如图8.41的功能框图所示。整个8251可以分成5个主要部分:接收器,发送器,调制控制,读写控制以及I/O缓冲器。而I/O缓冲器由状态缓冲器,发送数据/命令缓冲器和接收数据缓冲器三部分组成。8251的内部由内部数据总线实现相互之间的通讯。
图8.41
1.接收器
接收器接收在RXD脚上的串行数据并按规定的格式把它转换为并行数据,存放在接收数据缓冲器中。
当8251工作在异步方式且允许接收和准备好接收数据时,它监视RDX线。在无字符传送时,RXD线上为高电平(即所谓MARK),当发现RXD线上出现低电平时,即认为它是起始位(即所谓的Space),就起动一个内部计数器,当计数到一个数据位宽度的一半(若时钟脉冲频率为波特率的16倍时,则为计数到第8个脉冲)时,重新采样RXD线作为输入信号,送至移位寄存器,经过移位,以经过奇偶校验和去掉停止位后,就得到了变换为并行的数据,经过8251内部数据总线传送至接收数据缓冲器,同时发出RXRDY信号,告诉CPU数据已接收到。
2. 发送器
发送器接收CPU送来的并行数据,加上起始位、奇偶校验位和停止位后由TXD脚发送。
在异步方式时,发送器加上起始位;检查并根据程序规定的检验要求(奇校验还是偶校验)加上适当的校验位;最后根据程序的规定,再加上1位、 1 位或2位停止位。
不论在同步或异步工作方式,只有当程序设置了TXEN(Transmitter Enable——允许发送)和CTS(Clear to Send——这是对调制器发出的请求发送的响应信号)有效时,才能发送。
1. I/O控制
读/写控制逻辑对CPU输出的控制信号进行译码以实现表11-13所示的读/写功能。
USART是以RD或WR信号中的一个为“0”来实现I/O操作的。若两者中无一“0”,则USART不执行I/O操作;若两者全为“0”,这是一种无确定结果的非法状态。
三、接口信号
8251是用来用为CPU与外设或调制解调器之间的接口,如图8.42所示。
图8.42
其接口信号可以分为两组:一组为CPU接口的信号;另一组为与外设(或调制器)接口的信号。
1. 与CPU的接口信号
DB7~DB0——8251的外部三态双向数据总线,它可连到CPU的数据总线。CPU与8251之间的命令信息、数据以及状态信息都是通过这组数据总线传送的。
CLK——由这个CLK输入产生8251的内部时序。CLK的频率在同步方式工作时,必须大于接收器和发送器输入时钟频率的30倍;在异步方式工作时,必须大于输入时钟的4.5倍.
另外,规定CLK的周期要地0.42us到1.35us的范围内。
CS——选片信号,它应由CPU的地址信号经译码后供给。
C/D —— 控制/数据端。在CPU读操作时,若此端为高电平,由数据总线读入的是8251的状态信息;低电平时,读入的是数据。此端通常连到CPU地址总线的A0.
TXTRDY(Transmitter Ready)——发送准备好信号。只有当USART允许发送(即CTS是低和TXEN是高),且发送命令/数据缓冲器为空时,此信号有效。它用以通知CPU,8251已准备好接收一个数据。当CPU与8251之间用查询方式交换信息时,此信号可作为一个“联络”信号;在用中断方式交换信息时,此信号可用为8251的一个中断请求信号。当USART 从CPU接收了一个字符时,TXRDY复位。
TXE(Transmitter Empty)——发送器空信号。当它有效(高电平)时,表示发送器中的并行串行转换器空。
RXRDY(Receiver Ready)——接收器准备好信号。若命令寄存器的RXE(Receive Enable)位置位时,当8251已经从它的串行输入端接受了一个字符,可以传送到CPU时,此信号有效。用查询方式时,此信号可作为一个“联络”信号;在中断方式时可作为一个中断请求信处号。当CPU读入一个字符后,此信号复位。
SYNDET(Synchronous Ready)——同步检测信号。它只用于同步方式。
2. 与装置的接口信号
DTR(Data Terminal Ready)—— 数据终端准备好。这是一个通用的输出信号,低电平有效。它能由命令指令的bit 5置“1”变为有效,用以表示CPU准备就绪.
DSR (Data Set Ready)——数据装置准备好。这是一个通用的输入信号,低电平有效。用以表示调制器或外设已准备好。CPU可通过读入状态操作,在状态寄存器的bit1检测这个信号。
RTS(Reguest to Send)——请求传送,这是一个输出信号,等效于DTR这个信号用于通知调制器CPU准备好发送。可由命令指令的bit5置“1”来使其有效(低电平有效)。
CTS(Clear To Send)——清除传送,这是调制器对USART的RTS信号的响应,当其有效时(低电平),USART发送数据。
RXC(Receiver Clock)——接收器时钟,这个时钟控制USART接收字符的速度。
在异步方式,RXC是波特率的1倍,16倍或64倍,由方式控制指令预先选择。USART在RXC的上升沿采样数据。
RXD(Receiver Data)——接收器数据,字符在这条线上串行地被接收。在USART中转换为并行的字符。
TXC(Transmitter Clock)——发送器时钟,这个时钟控制USART发送字符的速度。在时钟速度与波特率之间的关系同RXC。数据在TXC的下降沿由USART发送字符的速度。
TXD(Transmitter Data)——发送器数据。由CPU送来的并行数据在这条线上被串行地发送。
四、8251的编程
8251是一个可编程的多功能通讯接口。所以在具体使用时必须对它进行初始化编程,确定它的具体工作方式。例如:规定工作于同步还是异步方式:传送的波特率;字符格式等等。
初始化编程必须在系统RESET以后,在USART工作以前进行 ,即USART不论工作于任何方式,都必须先经过初始化。
初始化编程的过程如图8.43所示
图8.43
1. 方式选择指令
其指令格式如图8.44所示.
图8.44
指令可以分为四组,每组两位。首先,由D1D2确定是工作于同步方式还是异步方式。当D1D2=00时,则为同步方式;而在D1D0≠00时为异步方式,且D1D0的三种组合用以选择输入时钟频率与波特率之间的系数。
D3D2用以确定字符的位数;D5D4用以确定奇偶校验的性质;D7D8在同步和异步方式时的意义是不同的。异步时用以规定停止位的位数,同步时用以确定是内同步还是外同步,以及同步字符的个数。
在同步方式时,紧跟在方式指令后面的是由程序输入的同步字符。它是用与方式指令类似的方法由CPU输出给USART的。
在输入同步字符后,或在异步方式时,在方式选择指令后应由CPU输给命令指令,其格式如图8.45所示。
图8.45
方式选择指令是规定8251的工作方式,而命令指令直接使8251处于规定的工作状态,以准备接收或发送数据。
8251内部设有状态寄存器,CPU可通过I/O读操作把8251的状态读入CPU,用以控制CPU在8251之间的数据交换。读状态字时,C/D端为“1”。状态的格式见图8.46.
图8.46
|