简述8251a的编程结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的编程结构比较简单,只需要设置控制寄存器和读取状态寄存器即可实现串行通信的功能。在实际应用中,需要根据具体的需求进行编程,才能实现更加灵活、高效的通信。

相关文档
最新文档