3.8251A方块图及工作原理
8251A内部结构方块图如图6.29所示。由图6.29所示可以看出,8251A主要由5个部分组成:接收器(含接收控制电路及接收缓冲器)、发送器(含发送控制电路及发送缓冲器)、数据总线缓冲器、读写控制逻辑电路及调制解调控制电路。各部分之间通过内部数据总线相互联系与通信。
(1)MODEM(调制解调)控制
8251A有一组输入和输出控制,可以用来简化几乎任何的MODEM接口。MODEM控
制信号在性质上是通用的,若需要,可以用于非MODEM控制的其他功能。即当使用MODEM时,8251A提供DSR、DTR、RTS、CTS信息作为MODEM的控制及状态信号。若不使用MODEM,这些信号可作为通信的握手(联络)信号。
DSR(数据设备就绪:DEC Ready),DSR输入状态可以由CPU通过读状态操作来测试。DSR输入通常用于测试MODEM状态,如数据装置就绪等。
DTR(数据终端就绪:DTE Ready),DTR输出信号可以通过编程设置命令字中的相应位而置成低电平。DTR输出信号通常用做MODEM控制,如数据终端就绪或速率选择。
RTS(请求发送),RTS输出信号可以通过编程,设置命令字中的相应位而置成低电平。RTS输出信号通常用做MODEM控制,如请求发送。
CTS(允许发送),如果命令字中的TxEN位已置成“1”,则该输入端的低电平能使8251A串行地发送数据。记住这一点非常重要。
(2)接收器:接收器实现有关接收的所有工作
它接收在RxD引脚上出现的串行数据并按规定格式转换成并行数据,存放在接收缓冲器中,以待CPU来取走。
在8251A工作于异步方式并被启动接收数据时,接收器不断采样RxD线上的电平变化。平时没有数据传输时,RxD线上为高电平。当采样到有低电平出现时,则有可能起始位已到,但还不能确定它就是真正的起始位,因为有可能是干扰脉冲造成的假起始位信号。此时接收器启动一个内部计数器,其计数脉冲就是接收时钟信号。当计数到一个位周期的一半(若设定时钟频率为波特率的16倍,则计数到第8个时钟)时,如果采样RxD仍为低电平,则认为8251A真正采样到起始位,然后便开始对有效数据位采样并进行字符装配。具体地说,就是每隔16个时钟脉冲,采样一次RxD(见图6.30),然后将采样到的数据送至移位寄存器。经过移位操作,并经奇偶校验检查和去掉停止位,就得到了转换成并行格式的数据,存入接收缓冲寄存器。然后将状态寄存器中的RxRDY(接收缓冲器就绪)位置“1”,并在RxRDY引脚上输出有效信号,表示已经接收到一个有效数据字符。对于少于8位的数据字符,8251A将它们的高位填“0”。
在同步接收方式下,8251A采样RxD线,每出现一个数据位就把它移位接收进来,然后把接收寄存器与同步字符(由初始化程序设定)寄存器相比较,看其内容是否相等。若不等,则8251A重复上述过程;若相等,则将状态寄存器中的SYNDET(同步检测)位置“1”并在SYNDET引脚上输出一个有效信号,表示已找到同步字符。实现同步后,接收器与发送器之间就开始进行有效数据的同步传输。接收器不断对RxD线进行采样,并把收到的数据位送到移位寄存器中。每当收到的数据达到设定的一个字符的位数时,就将移位寄存器中的数据送到接收缓冲寄存器,并且使状态寄存器中的RxRDY位置“1”并在RxRDY引脚上输出有效信号,表示已经收到了一个数据字符。