UART(中文版的数据手册)

上传人:博****1 文档编号:497925114 上传时间:2024-01-18 格式:DOCX 页数:12 大小:223.37KB
返回 下载 相关 举报
UART(中文版的数据手册)_第1页
第1页 / 共12页
UART(中文版的数据手册)_第2页
第2页 / 共12页
UART(中文版的数据手册)_第3页
第3页 / 共12页
UART(中文版的数据手册)_第4页
第4页 / 共12页
UART(中文版的数据手册)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《UART(中文版的数据手册)》由会员分享,可在线阅读,更多相关《UART(中文版的数据手册)(12页珍藏版)》请在金锄头文库上搜索。

1、第十一章 异步串口通信概述S3C2410的UART提供3个独立的异步串行通信端口,每个端口可以基于中断 或者DMA进行操作。换句话说,UART控制器可以在CPU和UART之间产生一 个中断或者DMA请求来传输数据。UART在系统时钟下运行可支持高达230.4K 的波特率,如果使用外部设备提供的UEXTCLK,UART的速度还可以更高。每个 UART通道各含有两个16位的接收和发送FIFO。S3C2410的UART包括可编程的波特率,红外接收/发送,一个或两个停止位 插入, 5-8 位数据宽度和奇偶校验。每个UART包括一个波特率发生器、一个发送器、一个接收器和一个控制单 元,如图11-1所示。

2、波特率发生器的输入可以是PCLK或者UEXTCLK。发送器 和接收器包含16位的FIFO和移位寄存器,数据被送入FIFO,然后被复制到发送 移位寄存器准备发送,然后数据按位从发送数据引脚TxDn输出。同时,接收数据 从接收数据引脚RxDn按位移入接收移位寄存器,并复制到FIFO。特性RxDO, TxDO, RxD1, TxD1, RxD2,和 TxD2 基于中断或者 DMA 操作 UART Ch 0, 1,和 2具有 IrDA 1.0 & 16字节 FIFOUART Ch 0 和 1 具有 nRTSO, nCTSO, nRTS1,和 nCTS1 支持发生/接收握手串口操作下述部分描述了 UAR

3、T的一些操作,包括数据发送、数据接收、中断产生、波 特率发生、loop-back模式、红外模式和自动流控制。数据发送发送数据的帧结构是可编程的,它由 1个起始位、 5-8个数据位、 1个可选的奇 偶位和1-2个停止位组成,这些可以在线控制寄存器ULCONn中设定。接收器可 以产生一个断点条件使串行输出保持 1 帧发送时间的逻辑 0状态。当前发送字 被完全发送出去后,这个断点信号随后发送。断点信号发送之后,继续发送数据到 Tx FIFO(如果没有FIFO则发送到Tx保持寄存器)。数据接收与数据发送一样,接收数据的帧格式也是可编程的。它由1个起始位、 5-8个数 据位、1个可选的奇偶位和1-2个停

4、止位组成,这些可以在线控制寄存器ULCONn 中设定。接收器可以探测到溢出错误和帧错误。 溢出错误:在旧数据被读出来之前新的数据覆盖了旧的数据 帧错误: 接收数据没有有效的停止位当在 3个字时间(与字长度位的设置有关)内没有接收到任何数据并且 RxFIFO 非空时,将会产生一个接收超时条件。自动流控制(AFC)UART0和UART1通过nRTS and nCTS信号支持自动流控制,例如连接到外部 UART时。如果用户希望将UART连接到一个MODEM,可以在UMCONn寄存器 中禁止自动流控位,并且通过软件控制nRTS信号。在AFC时,nRTS由接收器的状态决定,而nCTS信号控制发送器的操作

5、。只 有当nCTS信号有效的时候(在AFC时,nCTS意味着其它UART的FIFO准备接收 数据)UART发送器才会发送FIFO中的数据。在UART接收数据之前,当它的接 收FIFO多于2字节的剩余空间时nRTS必须有效,当它的接收FIFO少于1字节的 剩余空间时nRTS必须无效(nRTS意味着它自己的接收FIFO开始准备接收数 据)。图 11-2 UART AFC 接口注:UART2不支持AFC功能,因为S3C2410没有nRTS2和nCTS2。无 AFC 的例子通过FIFO操作Rx1、选择接收模式(中断还是 DMA 模式)。2、检查UFSTATn寄存器中Rx FIFO的值。如果值小于15

6、(RX FIFO 未满),用户必须将UMCONn0置1(nRTS生效),如果大于等于15 (RX FIFO已 满),用户必须将UMCONn0清0(nRTS无效)。3、重复第 2 步。通过FIFO操作Tx1 、选择发送模式(中断还是 DMA 模式)。2、检查UMCONn0的值,如果为1 (nRTS active),写数据到Tx FIFORS-232C 接口如果希望将UART连接到MODEM,nRTS, nCTS, nDSR, nDTR, DCD 和nRI信号 是必须的。这种情况下用户可以通过GPIO控制这些信号因为AFC不支持RS-232C 接口。中断/DMA请求的产生每个U ART有5个状态(

7、Tx/Rx/Error)信号:溢出错误、帧错误、接收缓冲满、发 送缓冲空和发送移位寄存器空。这些状态体现在U ART状态寄存器中的相关位 (UTRSTATn/UERSTATn)。溢出错误和帧错误与接收错误状态相关,每个错误可以产生一个接收错误状态 中断请求,如果控制寄存器UCONn中的receive-error-status-interrupt-enable位被置1 的话。如果探测到一个receive-error-status-interrupt-enable 位通过读UERSTSTn的值 可以识别这一中断请求。控制寄存器UCONn的接收器模式为1(中断或者循环检测模式):当接收器在 FIFO

8、模式下将一个数据从接收移位寄存器写入FIF O时,如果接收到的数据到达了 Rx FIFO的触发条件,Rx中断就产生了。在无FIFO模式下,每次接收器将数据从移 位寄存器写入接收保持寄存器都将产生一个RX中断请求。如果控制寄存器的接收和发送模式选择为DMA n请求模式,在上面的情况下则 是DMAn请求发生而不是RX/Tx中断请求产生。Table 11-1. Interrupts in Connection with FIFOTypeFIFO ModeNon-FIFO ModeRx interruptGenerated when ever receive data reaches the trig

9、ger level of receive FIFO.Generated when the number of data in FIFO does not reaches Rx FIFO trigger Level and does not receive any data during 3 word time (receive time out). This interval follows the setting of Word Length bit.Generated by the receive holding register when ever receive buffer beco

10、mes full.Tx interruptGen erated when ever tran smit data reaches the trigger level of transmit FIFO (Tx FIFO trigger Level).Generated by the transmit holding register when ever tran smit buffer becomes empty.Error interruptGen erated whe n frame error has detected.Gen erated when it gets to the top

11、of the receive FIFO without reading out data in it (ovenw error).Gen erated by all errors. However if ano ther error occurs at the same time, only one interrupt is gen erated.UART错误状态FIFOUART除了 Rx FIFO外还有错误状态FIFO。错误状态FIF 0指示接收到的哪个数 据有错误。只有当有错误的数据准备读出的时候才会产生错误中断。要清除错误状 态FIFO, URXHn和UERSTATn必须被读出。例如:假

12、设UART Rx FIFO顺序接收到ABCD 4个字符,在接收B的时候发生了Error Status-FIFOFramg Error波特率发生器每个U ART的波特率发生器提供串行时钟给接收器和发送器。波特率发生器的 时钟源可以选择呢不系统时钟或者U EXTCLK。换句话说,通过设置UCONn的时钟 选择被除数是可选的。波特率时钟通过对时钟源(PCLK OR UEXTCLK)进行16分 频,然后进行一个16位的除数分频得到,这个分频数由波特率除数寄存器 UBRDIVn指定。UBRDIVn可由下式得出:UBRDIVn = (int)(PCLK/(bps * 16) ) -1此除数应该在1-(2的

13、16方-1)之间。为了UART的精确性,S3C2410还支持UEXTCLK作为被除数。如果使用UEXTCLK (由外部UART设备或者系统提供),串行时钟能够精确地 和UEXTCLK同步,因此用户可以得到更精确的UART操作,UBRDIVn由下式决 定:UBRDIVn = (int)(UEXTCLK / (bps x 16) ) -1此除数应该在1-(2的16方-1)之间,且U EXTCLK要比PCLK低。例如,如果波特率为115200bps,而PCLK或者UEXTCLK为40MHz,贝U UBRDIVn 为:UBRDIVn = (int)(40000000/(115200 x 16) -1=

14、 (int)(21.7) -1 = 21 -1 = 20波特率错误容差UART的帧错误应该少于1.87% (3/160)。UART Frame error should be less than 1.87%(3/160).tUPCLK = (UBRDIVn + 1) x 16 x 1Frame / PCLK tUPCLK : Real UART Clock tUEXACT = 1Frame / baud-ratetUEXACT : Ideal UART ClockUART error = (tUPCLK- tUEXACT) / tUEXACT x 100%注意: 1、1帧=起始位+数据位+奇偶

15、位+停止位2、在特定条件下,波特率上限可达921.6K,例如当PCLK为60MHZ时, 可以使用921.6K的波特率而误差为1.69%loop-back模式为了识别通讯连接中的故障,UART提供了一种叫loop-back模式的测试模式。 这种模式结构上使能了 UART的TXD和RXD连接,因此发送数据被接收器通过RXD 接收。这一特性允许处理器检查每个SI O通道的内部发送到接收的数据路径。可以 通过设置U ART控制寄存器U CONn中的loopback位选择这一模式。红外(IR)模式UART支持红外(IR)接收和发送,可以通过设置UART线控制寄存器ULCO Nn的 Infra-red-mode位来进入这一模式。图11-4阐述了如何实现IR模式。在IR发送模式下,发送脉冲的比例是3/16正常的发送比率(当发送数据位为 0的时候);在IR接收模式下,接收器必须检测3/16的脉冲来识别0值(见图11-6和 11-7所示的帧时序)。SIO FSl3rtDataBitD1D10rameBits -StopBitQ110-Figure 11-5- Serial I/O Frame

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号