6ES7235-0KD22-0xA8 l 可通过 Avalon-MM 从接口访问的寄存器
l RXD, TXD, CTS, and RTS 等 RS-232 接口信号
图中可以看到,在 RXD 端口与 rxdata 寄存器之间、TXD 与 txdata 寄存器之间存在着移位寄存器。在 Qsys ,我们只讲解UART 核的工作原理,以及该核的使用方法。前面提到,我们是通过读、写相关的寄存器,实现的串口通信功能。那么接下来,我们将讲解主要的寄存器——状态寄存器、控制寄存器、数据寄存器。其中状态、控制寄存器与配置 IRQ(中断请求)相关。
寄存器相关简介
下图为 UART 核的寄存器信息表,其中数据寄存器(rxdata、txdata)、状态寄存器(status)、控制寄存器(control)是重点,括号部分的注释内容在表的下部。
(1)这些位可能不存在,取决于数据位宽的硬件选项。如果它们不存在,读出的值为 0。且如果对它们进行写操作,则没有意义。
(2)给 status(状态)寄存器写 0 将清零 dcts, e, toe, roe, brk, fe, and pe 等位。
(3)这些寄存器可能不存在,取决于硬件配置选项。如果寄存器不存在,对它进行读操作会返回未定义的值,且进行写操作则无意义。
rxdata 寄存器
rxdata 寄存器用于存储 RXD 输入引脚接收的数据。当一个新的数据被 RXD 输入引脚完全接受后,会被传输并存储到 rxdata 寄存器,此时 status 寄存器(状态寄存器)的 rrdy 位会被置1。当 rxdata 寄存器中的值被读了之后,status 寄存器中的 rrdy 位会被清零。当 rrdy 位为 1 时,又有一个新的字符传输给 rxdata 寄存器,则会产生溢出错误,状态寄存器的 ROE 位被置 1。 不管前一个字符是否被读出,新接收到的字符总是会被自动保存到rxdata 寄存器。另外,对 rxdata 寄存器进行写操作无意义。
6ES7235-0KD22-0xA8