串口通讯基础及S3C2410 UART控制器(2)

转载 2007年09月28日 00:37:00
自动流控模式
S3C2410的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控。
在自动流控(AFC)模式下nRTS取决于接收端的状态,而nCTS控制了发送断的操作。具体地说:只有当nCTS有效时(表明接收方的FIFO已经准备就绪来接收资料了),UART才会将FIFO中的资料发送出去。在UART接收资料之前,只要当接收FIFO有至少2-byte空余的时候,nRTS就会被置为有效。图5-12是UART 自动流控模式的连接方式  
 
图5-12
  中断/DMA请求产生
S3C2410的每个UART都有7种状态,分别是:溢出覆盖(Overrun)错误、奇偶校验错误、帧出错、断线错误、接收就绪、发送缓冲空闲、发送移位器空闲。它们在UART状态寄存器 UTRSTATn / UERSTATn 中有相应的标志位。

波特率发生器
每个UART控制器都有各自的波特率发生器来产生发送和接收资料所用的序列时钟,波特率发生器的时钟源可以CPU内部的系统时钟,也可以从CPU的 UCLK 管脚由外部取得时钟信号,并且可以通过 UCONn 选择各自的时钟源。
波特率产生的具体计算方法如下:
当选择CPU内部时钟时:
UBRDIVn=(int)(PCLK/(bps*16))-1,bps为所需要的波特率值,PCLK为CPU内部外设总线(APB)的工作时钟。
当需要得到更精确的波特率时,可以选择由 UCLK 引入的外部时钟来生成。
UBRDIVn=(int)(UCLK/(bps*16))-1
LoopBack操作模式
S3C2410 CPU的UART提供了一种测试模式,也就是这里所说的LoopBack模式。在设计系统的具体应用时,为了判断通讯故障是由于外部的数据链路上的问题,还是CPU内驱动程序或CPU本身的问题,这就需要采用LoopBack模式来进行测试。在LoopBack模式中,资料发送端TXD在UART内部就从逻辑上与接收端RXD连在一起,并可以来验证资料的收发是否正常。
UART控制寄存器
下面将针对UART的各个控制寄存器逐一进行讲解,以期对UART的操作和设置能有更进一步的了解。

ULCONn (UART Line Control Register)见图5-13

 
 
图5-13
 
Word Length :资料位长度
Number of Stop Bit :停止位数
Parity Mode :奇偶校验位类型
Infra-Red Mode :UART/红外模式选择(当以UART模式工作时,需设为“0”)

UCONn (UART Control Register)见图5-14
Receive Mode :选择接收模式。如果是采用DMA模式的话,还需要指定说使用的DMA信道。
Transmit Mode :同上。
Send Break Signal :选择是否在传1帧资料中途发送Break信号。
Loopback Mode :选择是否将UART置于Loopback测试模式。
Rx Error Status Interrupt Enable :选择是否使能当发生接收异常时,是否产生接收错误中断。
Rx Time Out Enable :是否使能接收超时中断。
Rx Interrupt Type :选择接收中断类型。
选择0:Pulse(脉冲式/边沿式中断。非FIFO模式时,一旦接收缓冲区中有资料,即产生一个中断;为FIFO模式时,一旦当FIFO中的资料达到一定的触发水平后,即产生一个中断)

 
选择1:Level(电平模式中断。非FIFO模式时,只要接收缓冲区中有资料,即产生中断;为FIFO模式时,只要FIFO中的资料达到触发水平后,即产生中断)
Tx Interrupt Type :类同于Rx Interrupt Type
Clock Selection :选择UART波特率发生器的时钟源。
图5-14
UFCONn (UART FIFO Conrtol Register)见图5-15
FIFO Enable :FIFO使能选择。
Rx FIFO Reset :选择当复位接收FIFO时是否自动清除FIFO中的内容。
Tx FIFO Reset :选择当复位发送FIFO时是否自动清除FIFO中的内容。
Rx FIFO Trigger Level :选择接收FIFO的触发水平。
Tx FIFO Trigger Level :选择发送FIFO的触发水平。
图5-15
UMCONn (UART Modem Control Register)见图5-16
Request to Send :如果在AFC模式下,该位将由UART控制器自动设置;否则的话就必须由用户的软件来控制。
Auto Flow Control :选择是否使能自动流控(AFC)。
图5-16
UTRSTATn (UART TX/RX Status Register)见图5-17
Receive buffer data ready :当接收缓冲寄存器从UART接收端口接收到有效资料时将自动置“1”。反之为“0”则表示缓冲器中没有资料。
Transmit buffer empty :当发送缓冲寄存器中为空,自动置“1”;反之表明缓冲器中正有资料等待发送。
Transmitter empty :当发送缓冲器中已经没有有效资料时,自动置“1”;反之表明尚有资料未发送。
图5-17
UERSTATn (UART Error Status Register)见图5-18
Overrun Error :为“1”,表明发生Overrun错误。
Frame Error :为“1”。表明发生Frame(帧)错误。
图5-18
UFSTATn :(UART FIFO Status Register)见图5-19
Rx FIFO Count :接收FIFO中当前存放的字节数。
 Tx FIFO Count :发送FIFO中当前存放的字节数。
 Rx FIFO Full :为“1“表明接收FIFO已满。
 Tx FIFO Full :为“1“表明发送FIFO已满。

图5-19
UMSTATn :(UART FIFO Status Register)见图5-20
Clear to Send :为“0”表示CTS无效;为“1”表示CTS有效。
Delta CTS :指示自从上次CPU访问该位后,nCTS的状态有无发生改变。
为“0”则说明不曾改变;反之表明nCTS信号已经变化了。

图5-20

UTXHn 和 URXHn 分别是UART发送和接收资料寄存器
这两个寄存器存放着发送和接收的资料,当然只有一个字节8位资料。需要注意的是在发生溢出错误的时候,接收的资料必须要被读出来,否则会引发下次溢出错误

UBRDIVn :(UART Baud Rate Divisor Register)见图5-21

图5-21
关于UART波特率的计算方法,在前面的内容中已经有详细的阐述,此处不做多余说明。

小结:读写状态寄存器UTRSTAT 以及错误状态寄存UERSTAT,可以反映芯片目前的读写状态以及错误类型。FIFO 状态寄存器UFSTAT 和MODEM 状态寄存器UMSTAT,通过前者可以读出目前FIFO 是否满以及其中的字节数;通过后者可以读出目前MODEM 的CTS状态。

 

相关文章推荐

串口通讯基础及S3C2410 UART控制器(2)

自动流控模式 S3C2410的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控。 在自动流控(AFC)模式下nRTS取决于接收端的状态,而nCTS控制了发送断的操作。...

串口通讯基础及S3C2410 UART控制器(1)

数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。 串行通信:是指利...

uart 串口控制器 驱动 s3c2410

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_rapt...
  • VMA_LMA
  • VMA_LMA
  • 2013年01月11日 16:36
  • 667

SDRAM工作原理及S3C2410 SDRAM控制器配置方法(2)

SDRAM工作原理及S3C2410 SDRAM控制器配置方法(2) 收藏 四、S3C2410 SDRAM控制器的配置方法在系统使用SDRAM之前,需要对S3C2410X的存储器控制器进行初始化。其中对...

SDRAM工作原理及S3C2410 SDRAM控制器配置方法(2)

作者:刘洪涛,华清远见嵌入式学院讲师。 四、S3C2410 SDRAM控制器的配置方法 在系统使用SDRAM之前,需要对S3C2410X的存储器控制器进行初始化。其中对与SDRAM(Ban...

S3C2440裸机程序【2】串口uart程序

学习ARM7芯片stm32时,裸机程序开发可以很方便的根据库函数在工程模板上进行开发,而ARM9主要是移植Linux开发,很少有裸机程序开发,因此在玩S3C2440希望最终形成一个keil环境下的模板...

S3C2410 UART 的驱动实例

S3C2410 串口硬件描述 S3C2410 内部具有 3 个独立的 UART 控制器,每个控制器都可以工作在 Interrupt(中断)模式或 DMA(直接内存访问)模式,也就是说 UART ...

S3C2410 UART驱动

14.7.1 S3C2410串口硬件描述    S3C2410 内部具有3个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或DMA(直接内存访问)模式,也就是说UART控制...
  • tracyjk
  • tracyjk
  • 2011年01月13日 16:42
  • 2126

SDRAM工作原理及S3C2410 SDRAM控制器配置方法

(转载)SDRAM工作原理及S3C2410 SDRAM控制器配置方法 (作者:刘洪涛,华清远见嵌入式学院讲师。) SDRAM的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过...

SDRAM工作原理及S3C2410 SDRAM控制器配置方法(1)

作者:刘洪涛,华清远见嵌入式学院讲师。 SDRAM的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。掌握SDRAM的知识对硬件设计、编写系统启动代码、提高系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:串口通讯基础及S3C2410 UART控制器(2)
举报原因:
原因补充:

(最多只允许输入30个字)