嵌入式技术应用教程基于S3C2410第八章..doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式技术应用教程基于S3C2410第八章.

第八章 UART串口 8.1 概述 S3C2410A的UART(通用异步收发器)提供了三个独立的异步串行口(SIO),每个串口都可以用中断方式或DMA方式与CPU传输数据。如果采用S3C2410A内部的系统时钟,UART的波特率可达230.4kbps。如果用外部时钟UEXTCLK来驱动UART,那么UART还可以运行在更高的速率上。每个UART通道都包括了收发两个16byte的FIFO(first in first out)。 S3C2410A中每个UART都包括了一个波特率发生器、一个发送器、一个接收器和一个控制单元。波特率发生器可由时钟PCLK或UEXTCLK来驱动。收发器包括了16byte的FIFO和数据移位器。写入到FIFO内的数据在发送前会被拷贝到发送移位器中去,然后数据由Pin TxD上移出发送移位器中的数据。从外部接收到的数据从Pin RxD上移入芯片并拷贝到接收FIFO中去。 S3C2410A中UART的帧格式为1bit起始位、5~8bit数据位、可选校验位和1~2bit停止位。UART0~UART2都支持红外收发,UART0和UART1带有流控信号nRTS0、nCTS0、nRTS1和nCTS1。另外,S3C2410A中的UART支持收发握手协议。 图8.1为带FIFO功能的UART框图。 图8.1 8.2 UART的操作 UART的操作包括数据发送、数据接收、中断产生、波特率发生、自环模式、红外模式和自动流控。 数据发送 发送的数据帧是可编程的,它由1bit起始位、5~8bit数据位、可选校验位和1~2bit停止位组成。这些选择项都由寄存器ULCONn来控制。发送器可产生break条件(停发),这个break信号迫使发送器向外发送逻辑0信号。Break信号必须在当前数据发送完毕后才能生效。 数据接收 与发送类似,接收的数据帧也是可编程的,具体设置与发送的数据帧相同。接收器可以检测溢出错误和帧错误。 overrun error(溢出错误)为:在上一帧数据还没有完全从FIFO或保持寄存器中取走,新的数据就覆盖了老的数据。 frame error(帧错误为):接收到的数据帧没有可用的停止位。 当在3个字(字长为用户定义)的时间内接收器没有接收到数据,那么就启动接收超时操作,此时在FIFO模式下,Rx FIFO不为空。 AFC-Auto Flow Control(自动流控制) S3C2410A中的UART0和UART1支持自动流控。自动流控必须采用nRTS和nCTS两个信号。采用流控后,可以将这两个UART与外部UART相连接。如果用户要将UART与一个Modem(调制解调器)相连接,那么在UMCONn寄存器中禁止自动流控并且用软件方式控制nRTS信号。 在AFC模式下,nRTS信号在接收器上起作用,nCTS在发送器上起作用。当nCTS信号被激活时,UART发送器发送FIFO中的数据(nCTS激活意味着其他UART设备已经准备好接收数据了)。在UART接收数据之前,当接收FIFO内有至少2byte空间时,nRTS信号被激活;当接收FIFO内的空间少于1byte时,nRTS信号无效(nRTS激活意味着自己的UART接收FIFO准备好接收数据了)。图8.2为采用流控的连接示意图。 注意:UART2不支持AFC功能。 图8.2 如果没有自动流控,可以靠软件控制nRTS和nCTS来完成数据传输操作。 4. 采用FIFO作为数据缓冲的Rx操作: (1)选择接收模式(中断或DMA)。 (2) 在UFSTATn寄存器中,检查Rx FIFO计数器的值。如果该值小于15,用户必须将UMCONn[0]设置为“1”(激活nRTS);如果这个值大于或等于15,用户就要将UMCONn[0]设置为“0”(禁止nRTS)。 (3)重复步骤(2)。 5. 采用FIFO作为数据缓冲的Tx操作: (1)选择发送模式(中断或DMA)。 (2)检查UMSTATn[0]的值,如果这个值为“1”(nCTS已经被激活),那么用户就要写数据到Tx FIFO寄存器,准备发送数据。 6. RS-232C接口 如果要将UART连接到modem接口上(不是null modem),nRTS、nCTS、nDSR、nDTR、nDCD和nRI这些信号都是必须的。在这种情况下,用户可以用软件的方式配合I/O口来控制这些信号(用I/O口来模拟上述这些信号)。S3C2410A不支持RS-232C接口。 7. 中断/DMA 每个UART都有5个状态信号:溢出错误、帧错误、接收数据缓冲区准备好、发送缓冲区空和发送移位器空。这些状态都在状态寄存器UTRSTATn和UERSTATn中有定义。 溢出错误和帧错误都是针对接收器而言的。如果UCONn中的接收中断是是呢个的,那么每种错误状

文档评论(0)

sa1fs5g1xc1I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档