8251A的模式字、控制字和状态字

        8251A内部有一个8位的模式寄存器,用来设置工作模式;一个8位的控制寄存器,控制8251A的工作;一个8位的状态寄存器,反映8251A的工作状态。

                                                     ​​​​​​​                ​​​​​​​                      图1  8251A引脚图

 

                                                                   ​​​​​​​        ​​​​​​​              图2  8251A内部结构框图 

一、8251A的模式字

        对8251A进行初始化时,模式字(异步模式)是按照模式寄存器的格式来设置的,模式寄存器的格式如图3所示。图中说明了8251A工作在同步模式和异步模式两种情况下,模式寄存器各数位的含义。当模式寄存器最低两位为0时,8251A便工作在同步模式,此时,最高位决定了同步字符的数目;如果模式寄存器的两个最低位不全为0,则8251A就进入异步模式。

        在同步模式中,接收和发送的波特率(即移位寄存器的移位率)分别和TxC引脚、RxC引脚上的输入时钟的频率相等。但是在异步模式中,要用模式寄存器中的两个最低位来确定波特率因子,此时,模式寄存器的第2、3位用来指出每个字符所对应的数据位的数目,第4位用来指出是否用校验位,第5位则用来指出校验类型是奇校验还是偶校验。在异步模式中,用两个最高有效位指出停止位的数目;但在同步模式中,第6位用来决定引脚SYNDET是作为输入还是输出,第7位则用来指出同步字符的数目。

 

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                                图3   8251A模式字格式(异步模式)

二、8251A控制字

        对8251A进行初始化时,控制字是按照控制寄存器的格式写入的。控制寄存器的格式如图4所示。

        控制寄存器的第0位为输出允许信号,只有将这一位设置为1,才能使数据从8251A接口往外设传输。第2位为输入允许信号,在CPU从8251A接口接收数据前,先要使此位为1。第1位DTR是和引脚DTR有直接联系的,引脚DTR通常和调制解调器的CD引脚相连,当CPU将控制寄存器的DTR位设置为1时,便使DTR引脚变为低电平,从而通知调制解调器,CPU已经准备就绪。第3位为1使引脚TxD变为低电平,于是,输出一个空白字符。第4位置1将清除状态寄存器中所有的出错指示位。第5位用来设置发送请求,如果将RTS引脚通过外部电路和MODEM的CA引脚相连,那么,第5位置1会使RTS引脚输出低电平,而使CA引脚得到一个高电平,从而使MODEM获得一个发送请求。第6位使8251A复位从而重新进入初始化流程。第7位只用在内同步模式,当为1时,8251A便会对同步字符进行检索。

                 ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​图4   8251A控制字格式

三、8251A状态字

        当需要检测8251A的工作状态时,经常要用到状态字。状态字是存放在状态寄存器中的。图5为8251A状态寄存器的格式。

        状态寄存器的第1、2、6位分别与8251A引脚RxRDY、TxE、SYNDET上的信号有关,第0位TxRDY为1用来指出当前数据输出缓冲器为空,这里要注意的一点是状态位TxRDY和引脚TxRDY上的信号不同,状态位TxRDY不受输入信号CTS和控制位TxEN的影响。而引脚TxRDY必须在数据输出缓冲器空、CTS引脚为低电平且TxEN位为1时,才为1,即TxRDY为1的条件为:数据缓冲区空且CTS为低电平且TxEN位为1。

        状态位RxRDY为1指出接口中已经接收到一个字符。通信程序中可以对TxRDY或RxRDY进行查询,来实现对8251A数据发送过程和接收过程的控制。当CPU往8251A数据端口写入一个字符以后,状态位TxRDY会自动清0,当CPU从8251A数据端口读取一个字符时,状态位RxRDY会自动清0。状态寄存器的第2位TxE为1时,指出当前输出移位寄存器空,正等待输出缓冲寄存器送一个字符过来。状态寄存器的第3、4、5位分别作为奇/偶校验错误指示、覆盖错(又叫做超越错)指示和帧格式错指示,当数据传输过程中产生其中某种类型的错误时,相应的出错指示位被置为1。

                                                                                            图5   8251A状态字

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

New_Teen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值