首页 理论教育 8251A芯片的基本结构及功能

8251A芯片的基本结构及功能

时间:2023-11-03 理论教育 版权反馈
【摘要】:在微型计算机中,最早被使用的串行接口芯片是Intel提供的8251A可编程串行通信接口,它具有独立的双缓冲结构的接收器和发送器,通过编程可以选择同步方式或异步方式。8251A的结构如图8-15所示。CPU通过读操作便能检测TxRDY,从而了解8251A的当前状态,进一步决定是否可以往8251A输送一个字符。在计算机通过8251A输

8251A芯片的基本结构及功能

微型计算机中,最早被使用的串行接口芯片是Intel提供的8251A可编程串行通信接口,它具有独立的双缓冲结构的接收器和发送器,通过编程可以选择同步方式或异步方式。无论同步方式还是异步方式,8251A都提供了非常丰富的选择与控制功能。8251A的结构如图8-15所示。

978-7-111-46342-9-Chapter08-52.jpg

图8-15 8251A内部结构

8251A由7个模块组成,这7个模块为接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、数据总线缓冲器、读写控制逻辑电路和调制/解调控制电路。

1)接收缓冲器与接收控制电路:从RxD引脚上接收串行数据,并按照相应的格式转换为并行数据。以异步模式为例:

●芯片复位后,先检测输入信号中的有效“1”,一旦检测到,就接着寻找有效的低电平来确定启动位,并消除假起动干扰。

●对接收到的信息进行奇偶校验,并根据校验结果设置相应的状态位。

●检测停止位,并按检测结果,设置状态位。接收控制电路的主要信号有:

●RxRDY:接收器准备好信号,用来表示当前8251A已经从外围设备调制解调器接收到一个字符,正等待CPU取走。因此,在中断方式时,RxRDY可用作中断请求信号。当CPU从8251A读取一个字符后,RxRDY便变为低电平,等到下一次接收到新的字符后,又升为高电平

●SYNDET:同步检测信号,只用于同步方式。SYNDET引脚可工作在输入状态,也可工作在输出状态,这决定于8251A工作在内同步状态还是工作在外同步状态,而这两种情况又决定于8251A的初始化编程。当8251A工作在内同步情况时,SYNDET作为输出端,如果8251A检测到了所要求的同步字符,则SYNDET便变为高电平,用来表明8251A当前已经达到同步。在双同步情况下,SYNDET信号会在第二个同步字符的最后一位被检测到后,在这一位的中间变为高电平,从而表明已经达到同步。当8251A工作在外同步情况时,SYNDET作为输入端,从这个输入端进入的一个正跳变,会使8251A在RxC的下一个下降沿时开始装配字符。这种情况下,SYNDET的高电平状态最少要维持一个RxC周期,以便遇上RxC的下一个下降沿。在复位时,SYNDET变为低电平。

●RxC:接收时钟,异步模式下其频率等于接收波特率乘以波特率常数,同步模式下其频率等于波特率。

2)发送缓冲器与发送控制电路:把来自CPU的并行数据,加上相应的控制信息,然后转换为串行数据,并从TxD引脚发送出去。异步方式下,需要为数据加上起始位、校验位和停止位。同步方式下,需要插入同步字符,并在数据中插入校验位。主要信号有:

●TxRDY:发送器准备好信号。TxRDY用来告诉CPU 8251A已经准备好发送一个字符。实际使用时,如果8251A和CPU之间采用中断方式联系,则TxRDY可以作为中断请求信号使用。CPU通过读操作便能检测TxRDY,从而了解8251A的当前状态,进一步决定是否可以往8251A输送一个字符。不管是用中断方式还是查询方式,当8251A从CPU得到一个字符后,TxRDY变为低电平。

●TxE:发送空信号,高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,它实际上指示了一个发送动作的完成。当8251A从CPU得到一个字符时,TxE便成为低电平。同步方式串行传输不允许字符之间有空隙,但是CPU有时却来不及往8251A输送一个字符,此时TxE变为高电平,发送器在输出线上插入同步字符,从而填补了传输空隙。

●TxC:发送时钟,异步模式下其频率等于发送波特率乘以波特率常数,同步模式下其频率等于波特率。大多数情况下TxC和RxC使用同一个时钟。

3)数据总线缓冲器与读/写控制逻辑:数据总线缓冲器用来把8251A和系统数据总线相连,在CPU执行输入/输出指令期间,由数据总线缓冲器发送和接收数据,此外,各种控制字、命令字和状态信息也通过数据总线缓冲器传输。读/写控制逻辑用来配合数据总线缓冲器工作,包括如下信号:

●写信号978-7-111-46342-9-Chapter08-53.jpg,将来自数据总线的数据和控制字写入8251A。

●读信号978-7-111-46342-9-Chapter08-54.jpg,将数据或状态字从8251A读出到数据总线。

●控制/数据信号978-7-111-46342-9-Chapter08-55.jpg,将此信号和读/写信号合起来通知8251A,当前读/写的是数据还是控制字、状态字。978-7-111-46342-9-Chapter08-56.jpg信号一般连接地址总线的最低位A0,从而使偶地址端口的读写对应于数据读写,而奇地址端口的读写对应于控制字和状态字的读写。

●片选信号978-7-111-46342-9-Chapter08-57.jpg,用于确定当前8251A是否被选中,通常情况下978-7-111-46342-9-Chapter08-58.jpg信号由地址信号译码产生。

●时钟信号CLK,完成8251A的内部定时。在异步模式下,CLK的频率应该大于波特率的4.5倍,同步模式下,CLK的频率应该大于波特率的30倍。

●复位信号RESET,使8251A处于空闲状态。

4)调制/解调器控制电路:为Modem提供一组通用控制信号978-7-111-46342-9-Chapter08-59.jpg978-7-111-46342-9-Chapter08-60.jpg,简化8251A和调制解调器的连接。在进行远程通信时,要用调制器将串行接口送出的数据信号变为模拟信号,再发送出去,接收端则要用解调器将模拟信号变为数字信号,再由串行接口送往计算机主机。在全双工通信情况下,每个收发站都要连接调制解调器。有了调制解调控制电路,就提供了一组通用的控制信号,使得8251A可以直接和调制器连接。8251A未提供DCD(数据载波检测信号)和RI(振铃信号),如需使用DCD和RI,必须另加接口电路来提供。

从编程的角度来看,8251A提供有1个数据输入缓冲寄存器和1个数据输出缓冲寄存器,1个发送移位寄存器和1个接收移位寄存器,1个控制寄存器和1个状态寄存器,1个模式寄存器和2个同步字符寄存器。其中,数据输入缓冲器和数据输出缓冲器使用同一个端口地址,但实际上作为两个端口,一个为输入端口,一个为输出端口。即对偶地址端口(即C/D=0时)的读写操作分别对应于读数据输入缓冲器和写数据输出缓冲器。

图8-16简要描述了8251A芯片的编程结构,其中发送移位寄存器和接收移位寄存器分别用于发送数据时的并-串转换和接收数据时的串-并转换。接收移位寄存器将到达RxD端的串行数据接收之后进行移位,变为8位并行数据,传送到数据输入缓冲寄存器,然后通过数据总线传送到CPU。在计算机通过8251A输出数据的过程中,CPU通过数据总线将数据送到8251A的数据输出缓冲寄存器,再传输到发送移位寄存器。移位寄存器用移位的办法将并行数据变为串行数据,然后,从TxD端送往外围设备。(www.xing528.com)

978-7-111-46342-9-Chapter08-61.jpg

图8-16 8251A编程结构

8251A在不同方式下收发数据的过程如下。

1)异步接收

●在没有字符时,RxD线上为高电平。8251A把RxD线上第一次出现的低电平作为起始位。

●当检测到起始位后,8251启动一个内部计数器,以波特率因子为16为例,当计数器计到8个脉冲时,再检测RxD线,若RxD为高,则8251A认为RxD线上出现了干扰(假起始),重新开始检测起始位。若RxD仍为低,则8251A确认收到一个有效的起始位。

●当8251A确认起始位后,进入正常的数据采样,如波特率因子为16,则每隔16个接收时钟脉冲,采样一次RxD线,RxD为高,作为“1”,RxD为低,作为“0”,并将采样的数据送入“接收移位寄存器”。

●当收到规定的一帧信息,8251A进行奇偶校验,并根据校验结果,设置校验状态位。如果校验正确,则去掉校验位和停止位,只把有效数据送入“数据输入寄存器”,同时设置“状态寄存器”中的输入有效状态位,发出RxRDY信号。CPU可从状态寄存器中查询RxRDY信号,也可把RxRDY信号作为中断请求信号,以便及时处理收到的数据。

●若有效数据少于8位,8251A把“数据输入寄存器”的高位填“0”。

2)异步发送

●当程序把8251A的控制寄存器TxEN位置1后,若8251A收到DCE发来的978-7-111-46342-9-Chapter08-62.jpg信号,则开始发送。若无Modem,应将8251A的978-7-111-46342-9-Chapter08-63.jpg端接地。

●发送控制电路,根据编程要求装配信息帧,即为每个字符加上起始位、校验位和停止位,并把装配后的信息帧送至发送移位寄存器。

●发送移位寄存器,在发送时钟TxC的控制下,按波特率因子的要求,把装配好的信息帧一位一位地从TxD端上发出。

●当一帧信息发完后,8251A发出TxE信号,表示已完成本帧发送(发送移位寄存器空)。

●若TxE有效,且978-7-111-46342-9-Chapter08-64.jpg为低(DCE允许发送),TxEN位置1(程序允许发送),则8251A发出TxRDY信号,表示8251A可以再从CPU获得数据,重新开始发送。CPU可从状态寄存器中查询TxRDY信号,也可把TxRDY信号作为中断请求信号,以便开始下一字符的发送。

3)同步接收

搜索同步字符:8251A监测RxD线,每当RxD线出现一个数据位时,就将其送入“接收移位寄存器”,然后比较“接收移位寄存器”和“同步字符寄存器”,若不等,8251A接收下一个数据位,若相等,表示已找到同步字符,实现了同步,8251A发出SYNDET信号(Synchronization Detected,同步检测)。对于双同步,只有连续找到两个同步字符,才发出SYNDET信号。SYNDET是一个双向信号线,如果在SYNDET上外加一个高电平,8251A立刻脱离对同步字符的搜索,认为已完成同步(外同步)。

●实现同步后,按时钟信号对RxD线采样,并把收到的数据位送入“接收移位寄存器”。采样频率即“接收移位寄存器”的移位频率等于接收时钟RxC上的输入频率。在同步方式下,无波特率因子,或者说波特率因子固定为1。

●接收到规定的数位时,接收移位寄存器的内容送“数据输入寄存器”,并发出RxRDY信号。

4)同步发送

●当程序设置TxEN位,且978-7-111-46342-9-Chapter08-65.jpg有效后,8251A开始发送。

●发一个或两个同步字符。

●发数据块(数据块的每个字符根据编程要求,是否加上奇偶校验位)。

●在8251A发送过程中,若CPU来不及提供新的数据给8251A,则8251A自动插入同步字符。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈