您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 第18章 DUART
18章DUART本章介绍MPC8394E的两个通用异步接收器/发送器(UARTuniversalasynchronousreceiver/transmitter)。介绍其功能操作、DUART的初始化步骤、以及DUART寄存器的编程细节和特性。18.1概述DUART包括两个通用异步接收器/发送器(UART)。这两个UART独立工作。本章所有UART相关的讨论都是针对其中一个接收器/发送器而言的。各UART通过系统时钟进行时钟同步。DUART编程模型和PC16552D兼容。UART为点对点接口,即只能够把两个UART设备连到连接信号上。如图18-1所示,每个UART模块的组成如下:接收和发送缓冲区用于数据流控制的清除发送输入端口(CTS)和请求发送输出端口RTS用于产生波特率的16位计数器中断控制逻辑图18-1UART结构图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-1DUART信号概述信号名称I/O引脚数复位值状态含义UART_SIN[1:2]I21串行输入数据UART1和UART2UART_SOUT[1:2]O21串行输出数据UART1和UART22]:[1UART_CTSI21清除发送UART1和UART22]:[1UART_RTSO21请求发送UART1和UART218.2.2详细信号说明DUART信号的详细说明见表18-2。表18-2DUART详细信号说明信号I/O说明UART_SIN[1:2]I串行数据输入。在UART1和UART2的接收器上通过各自的串行数据输入信号接收数据,先接收最低有效位。状态含义有效/无效-代表正在UART接口上接收的数据。时序有效/无效-一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率在SIN上采样数据。UART_SOUT[1:2]O串行数据输出。当发送器禁用、空闲或在本地回送模式操作时,置位UART1和UART2(标记状态)的串行输出数据信号。将数据从这些信号移出,先发送最低有效位。状态含义有效/无效-代表在各自UART接口上发送的数据。时序有效/无效-一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率更新并且驱动SOUT上的数据。]2:1[_CTSUARTI清除发送。分别连接到总线上其他UART设备的RTS输出。可以设定在信号状态变化时产生中断。状态含义有效/无效-代表各自UART清除发送的状态。时序有效/无效-在每个系统时钟的上升沿采样。]2:1[_RTSUARTO请求发送。可以由接收器或发送器设定为自动有效和无效。当连接到发送器的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-3DUART寄存器汇总表偏移寄存器访问复位值节/页0x0_4500URBR-ULCR[DLAB]=0UART1接收器缓冲寄存器R0x0018.3.1.1/18-6UTHR-ULCR[DLAB]=0UART1发送器保持寄存器W0x0018.3.1.2/18-6UDLB-ULCR[DLAB]=1UART1分频器低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4501UIER-ULCR[DLAB]=0UART1中断允许寄存器R/W0x0018.3.1.4/18-8UDMB-ULCR[DLAB]=1UART1分频器高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4502UIIR-ULCR[DLAB]=0UART1中断ID寄存器R0x0118.3.1.5/18-9UFCR-ULCR[DLAB]=0UART1FIFO控制寄存器W0x0018.3.1.6/18-10UAFR-ULCR[DLAB]=1UART1备用功能寄存器R/W0x0018.3.1.12/18-160x0_4503ULCR-ULCR[DLAB]=xUART1线路控制寄存器R/W0x0018.3.1.7/18-110x0_4504UMCR-ULCR[DLAB]=xUART1MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4505ULSR-ULCR[DLAB]=xUART1线路状态寄存器R0x6018.3.1.9/18-130x0_4506UMSR-ULCR[DLAB]=xUART1MODEM状态寄存器R0x0018.3.1.10/18-150x0_4507USCR-ULCR[DLAB]=xUART1临时寄存器(用于测试读写操作)R/W0x0018.3.1.11/18-150x0_4510UDSR-ULCR[DLAB]=xUART1DMA状态寄存器R0x0118.3.1.13/18-160x0_4600URBR-ULCR[DLAB]=0UART2接收器缓冲寄存器R0x0018.3.1.1/18-6UTHR-ULCR[DLAB]=0UART2发送器保持寄存器W0x0018.3.1.2/18-6UDLB-ULCR[DLAB]=1UART2分频器最低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4601UIER-ULCR[DLAB]=0UART2中断允许寄存器R/W0x0018.3.1.4/18-8UDMB-ULCR[DLAB]=1UART2分频器最高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4602UIIR-ULCR[DLAB]=0UART2中断ID寄存器R0x0118.3.1.5/18-9UFCR-ULCR[DLAB]=0UART2FIFO控制寄存器W0x0018.3.1.6/18-10UAFR-ULCR[DLAB]=1UART2备用功能寄存器R/W0x0018.3.1.12/18-160x0_4603ULCR-ULCR[DLAB]=xUART2线路控制寄存器R/W0x0018.3.1.7/18-110x0_4604UMCR-ULCR[DLAB]=xUART2MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4605ULSR-ULCR[DLAB]=xUART2线路状态寄存器R0x6018.3.1.9/18-130x0_4606UMSR-ULCR[DLAB]=xUART2MODEM状态寄存器R0x0018.3.1.10/18-150x0_4607USCR-ULCR[DLAB]=xUART2临时寄存器R/W0x0018.3.1.11/18-150x0_4610UDSR-ULCR[DLAB]=xUART2DMA状态寄存器R0x0118.3.1.13/18-1618.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-4URBR字段说明位名字说明0-7DATA从UART总线上收到的数据[只读]18.3.1.2发送器保持寄存器(UTHR1和UTHR2)写这些8位寄存器引起UART设备以ULCR(线路控制寄存器)中配置的格式在UART总线上传输5到8个数据位。在FIFO模式下,写入UTHR的数据被放入FIFO。写入UTHR的数据是送到UART总线上的数据,并且写入UTHR的第一个字节就是送到总线上的第一个字节。UDSR[TXRDY]指示何时FIFO满了。参见表18-21和表18-22。图18-3显示了UTHR中的位。图18-3发送器保持寄存器(UTHR1和UTHR2)表18-5说明了UTHR。表18-5UTHR字段说明位名字说明0-7DATA写入UTHR的数据[只写]18.3.1.3分频器高位和低位有效字节寄存器(UDMB和UDLB)UDLB和分频器高有效字节寄存器(UDMB)连接在一起构成分频器,用来实现DUART输入时钟的分频。波特率发生器的输出频率为波特率的16倍,因此期望的波特率=平台时钟频率/(16x[UDMB||UDLB])。等价的,[UDMB||UDLB||0b0000]=平台时钟频率/期望的波特率。可以通过特定的输入时钟频率产生的波特率如表18-8所示。图18-4显示了UDMB的位。表18-4分频器高字节寄存器(UDMB1和UDMB2)表18-6说明了UDMB。表18-6UDMB字段说明位名字说明0-7UDMB分频器高有效字节图18-5显示了UDLB的位。表18-5分频器低有效字节寄存器(UDLB1和UDLB2)表18-7说明了UDLB。表18-7UDLB字段说明位名字说明0-7UDLB分频器最低有效字节。它和UDMB连接在一起。表18-8给出了不同输入时钟频率的波特率。表18-8波特率示例波特率(十进制
本文标题:第18章 DUART
链接地址:https://www.777doc.com/doc-3993797 .html