第18章 DUART

2019-08-29 23:47

18章 DUART

本章介绍MPC8394E的两个通用异步接收器/发送器(UART universal asynchronous receiver/transmitter)。介绍其功能操作、DUART的初始化步骤、以及DUART寄存器的编程细节和特性。

18.1 概述

DUART包括两个通用异步接收器/发送器(UART)。这两个UART独立工作。本章所有UART相关的讨论都是针对其中一个接收器/发送器而言的。各UART通过系统时钟进行时钟同步。DUART编程模型和PC16552D兼容。

UART为点对点接口,即只能够把两个UART设备连到连接信号上。如图18-1所示,每个UART模块的组成如下: ? 接收和发送缓冲区

? 用于数据流控制的清除发送输入端口(CTS)和请求发送输出端口RTS ? 用于产生波特率的16位计数器 ? 中断控制逻辑

图18-1 UART结构图

18.1.1 特性

DUART包括以下特性: ? 全双工操作。

? 可编程模式,兼容原来的PC16450UART和PC16550D(能工作在FIFO模式下的

? ? ? ? ?

PC16450改进版本)。 PC16450寄存器复位值。

用于发送器和接收器的FIFO模式,提供16字节的FIFO。

采用标准的异步通信位(START、STOP和奇偶校验)封装和解封串行数据。 可屏蔽发送、接收、线路状态和MODEM状态中断。

软件可编程的波特率发生器,将系统时钟用1到(216-1)分频,为发送器和接收器引擎生成16倍时钟。

? 清除发送CTS和发送就绪RTSMODEM控制功能。

? 软件可选择的串行数据格式(数据长度、奇偶校验、1/1.5/2停止位、波特率)。 ? 线路和MODEM状态寄存器。

? 线路断开(Line-break)检测和产生。 ? 内部诊断支持、本地环路和断开功能。 ? 具有优先级的中断报告。

? 过载、奇偶校验和帧错误检测。

18.1.2 操作模式

信道提供一个全双工的异步发送器和接收器,使用源自系统时钟的操作频率。

发送器接收写入发送器保持寄存器(UTHR)的并行数据。在FIFO模式下,将数据直接放入发送器FIFO的内部发送器移位寄存器中。发送器将数据转换成串行位流,插入START、STOP和可选的奇偶校验位。最后将打包好的串行数据流输出到信道发送器串行数据输出信号线(SOUT)。可以轮询或中断驱动发送器状态。

接收器接收信道接收器串行数据输入信号线(SIN)的串行数据位,将它们转换成并行格式,检测START位、奇偶校验位(如果有的话)和STOP位,将组装好的字符(去掉了START、STOP和奇偶校验位)从UART的接收器缓冲区(或FIFO)传输进来,以响应接收器缓冲寄存器读操作。可以轮询或中断驱动接收器状态。

18.2 外部信号说明

本节包括信号概述及详细信号说明。

18.2.1 信号概述

表18-1汇总了DUART信号。注意,尽管实际设备的信号名称常带有如表所示的前缀“UART_”,但本章一般采用功能(缩写的)信号名称。

表18-1 DUART信号概述 信号名称 UART_SIN[1:2] UART_SOUT[1:2] I/O I O I O 引脚数 复位值 2 2 2 2 1 1 1 1

18.2.2 详细信号说明

状态含义 串行输入数据UART1和UART2 串行输出数据UART1和UART2 清除发送UART1和UART2 请求发送UART1和UART2 UART_CTS[1:2] UART_RTS[1:2] DUART信号的详细说明见表18-2。

表18-2 DUART详细信号说明 信号 UART_SIN[1:2] I/O I 说明 串行数据输入。在UART1和UART2的接收器上通过各自的串行数据输入信号接收数据,先接收最低有效位。 状态 含义 时序 UART_SOUT[1:2] O 有效/无效 - 代表正在UART接口上接收的数据。 有效/无效 - 一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率在SIN上采样数据。 串行数据输出。当发送器禁用、空闲或在本地回送模式操作时,置位UART1和UART2(标记状态)的串行输出数据信号。将数据从这些信号移出,先发送最低有效位。 状态 含义 时序 有效/无效 - 代表在各自UART接口上发送的数据。 有效/无效 - 一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率更新并且驱动SOUT上的数据。 UART_CTS[1:2] I 清除发送。分别连接到总线上其他UART设备的RTS输出。可以设定在信号状态变化时产生中断。 状态 含义 时序 有效/无效 - 代表各自UART清除发送的状态。 有效/无效 - 在每个系统时钟的上升沿采样。 UART_RTS[1:2] O 请求发送。可以由接收器或发送器设定为自动有效和无效。当连接到发送器的CTS输入时,可以使用这个信号控制串行数据流。 状态 含义 时序 有效/无效 - 代表正在各自UART发送的数据。 有效/无效 - 在每个系统时钟的上升沿更新和驱动。

18.3 内存映射/寄存器定义

有两套完整的DUART寄存器集合(一套为UART1服务,一套为UART2服务)。这两个UART完全相同,只是UART1的寄存器偏移地址在0x0_4500(本地),UART2的寄存器偏移地址在0x0_4600(本地)。在本章中,寄存器用单词首字母缩写的符号来表示,例如LCR表示UART1和UART2的线路控制寄存器。

每个UART接口中的寄存器均用于配置、控制和状态。分频系数锁存器访问位,ULCR[DLAB],用来访问分频系数锁存的低位和高位寄存器和备用功能寄存器。有关ULCK[DLAB]的更多信息参见18.3.1.7节“线路控制寄存器(ULCK1 和ULCR2)”。

所有DUART寄存器均只有1个字节宽,因此读写这些寄存器都必须是字节宽度的操作。表18-3提供了寄存器汇总,以及包含每个寄存器详细信息的节和页的参考。0x4000-0x4FFF

中未定义的字节地址空间是保留的。

表18-3 DUART寄存器汇总表 偏移 寄存器 访问 R W R/W R/W R/W R W R/W R/W R/W R R R/W R R W R/W R/W R/W R 复位值 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x01 节/页 18.3.1.1/18-6 18.3.1.2/18-6 18.3.1.3/18-7 18.3.1.4/18-8 18.3.1.3/18-7 18.3.1.5/18-9 18.3.1.6/18-10 18.3.1.12/18-16 18.3.1.7/18-11 18.3.1.8/18-13 18.3.1.9/18-13 18.3.1.10/18-15 18.3.1.11/18-15 18.3.1.13/18-16 18.3.1.1/18-6 18.3.1.2/18-6 18.3.1.3/18-7 18.3.1.4/18-8 18.3.1.3/18-7 18.3.1.5/18-9 0x0_4500 URBR-ULCR[DLAB] = 0 UART1 接收器缓冲寄存器 UTHR-ULCR[DLAB] = 0 UART1 发送器保持寄存器 UDLB-ULCR[DLAB] = 1 UART1 分频器低有效字节寄存器 0x0_4501 UIER-ULCR[DLAB] = 0 UART1 中断允许寄存器 UDMB-ULCR[DLAB] = 1 UART1 分频器高有效字节寄存器 0x0_4502 UIIR-ULCR[DLAB] = 0 UART1 中断ID寄存器 UFCR-ULCR[DLAB] = 0 UART1 FIFO控制寄存器 UAFR-ULCR[DLAB] = 1 UART1 备用功能寄存器 0x0_4503 ULCR-ULCR[DLAB] = x UART1 线路控制寄存器 0x0_4504 UMCR-ULCR[DLAB] = x UART1 MODEM控制寄存器 0x0_4505 ULSR-ULCR[DLAB] = x UART1 线路状态寄存器 0x0_4506 UMSR-ULCR[DLAB] = x UART1 MODEM状态寄存器 0x0_4507 USCR-ULCR[DLAB] = x UART1 临时寄存器(用于测试读写操作) 0x0_4510 UDSR-ULCR[DLAB] = x UART1 DMA状态寄存器 0x0_4600 URBR-ULCR[DLAB] = 0 UART2 接收器缓冲寄存器 UTHR-ULCR[DLAB] = 0 UART2 发送器保持寄存器 UDLB-ULCR[DLAB] = 1 UART2 分频器最低有效字节寄存器 0x0_4601 UIER-ULCR[DLAB] = 0 UART2 中断允许寄存器 UDMB-ULCR[DLAB] = 1 UART2 分频器最高有效字节寄存器 0x0_4602 UIIR-ULCR[DLAB] = 0 UART2 中断ID寄存器 UFCR-ULCR[DLAB] = 0 UART2 FIFO控制寄存器 UAFR-ULCR[DLAB] = 1 UART2 备用功能寄存器 0x0_4603 ULCR-ULCR[DLAB] = x UART2 线路控制寄存器 0x0_4604 UMCR-ULCR[DLAB] = x UART2 MODEM控制寄存器 0x0_4605 ULSR-ULCR[DLAB] = x UART2 线路状态寄存器 0x0_4606 UMSR-ULCR[DLAB] = x UART2 MODEM状态寄存器 0x0_4607 USCR-ULCR[DLAB] = x UART2 临时寄存器 0x0_4610 UDSR-ULCR[DLAB] = x UART2 DMA状态寄存器 W R/W R/W R/W R R R/W R 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x01 18.3.1.6/18-10 18.3.1.12/18-16 18.3.1.7/18-11 18.3.1.8/18-13 18.3.1.9/18-13 18.3.1.10/18-15 18.3.1.11/18-15 18.3.1.13/18-16

18.3.1 寄存器说明

下面几节介绍UART1和UART2的寄存器。

18.3.1.1 接收器缓冲寄存器(URBR1和URBR2)

这些寄存器包含接收到的来自UART总线上的数据。在FIFO模式下,读时返回接收到的第一个字节。关于FIFO状态信息,参看UDSR[RXRDY]的说明。

除了过载情况外,URBR按接收顺序返回数据。参看18.3.1.9节“线状态寄存器(ULSR1和ULSR2)”中的ULSR[OE]说明。图18-2显示了接收器缓冲寄存器。注意,这些寄存器和UTHR具有相同的偏移。

图18-2 接收器缓冲寄存器(URBR1和URBR2)

表18-4说明了URBR。

表18-4 URBR字段说明

位 0-7 名字 DATA 说明 从UART总线上收到的数据[只读]

18.3.1.2 发送器保持寄存器(UTHR1和UTHR2)


第18章 DUART.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:18春电大《西方经济学》形考任务2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: