S3C2440裸机------UART/串口

1.UART硬件介绍

工作中一直在用串口,对串口协议已经挺熟悉的了,不过为了写博客,还是再简单介绍下UART的硬件原理。

1.1UART原理说明

        通用异步收发器简称UART,即"Universal Asynchronous Receiver Transmitter",它用来传输串行数据:发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,将串行数据放在缓冲区中,CPU即可读取UART获得这些数据,UART之间以全双工方式传输数据,最精简的连线方法只有3根线,TXD用于发送数据,RXD用于接收数据,GND为接地线,连线方式如下图所示:

        UART使用标准的TTL/CMOS逻辑电平(0-5V,0-3.3V,0-2.5V)来表示数据,高电平表示1,低电平表示0,为了增强数据的抗干扰能力,提高传输速度,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平,3-12V表示0,-3~-12V表示1.

        TXD、RXD数据线以位为最小单位传输数据,帧由具有完整意义、不可分割的若干位组成,它包含开始位、数据位、校验位和停止位,发送数据之前,UART之间要约定好数据的传输速率、数据的传输格式(即有多少个数据位、是否使用校验位、是奇校验还是偶校验、有多少个停止位).

        数据传输流程如下:

        (1)平时数据线处于高电平,表示空闲状态。

        (2)当要发送数据时,UART改变TXD数据线为低电平并维持1位的时间,用来表示开始信号,接收方检测到开始信号之后,再等待1.5位的时间(1.5位是因为首先开始信号有1位的时间,然后是在数据位的中间检测数据位,因此是0.5位的时间),然后开始一位一位地检测数据线的状态得到所传输的数据。

        (3)UART一帧中可以有5,6,7或8位的数据,发送方一位一位地改变数据线的状态将他们发送出去,首先发送最低位。

        (4)如果使用校验功能,UART在发送挖数据位之后,还要发送一个校验位,有两种校验方法:奇校验,偶校验,----数据位连同校验位中,‘1’的数据等于奇数或者偶数。

        (5)最后,发送停止位,数据线恢复到“空闲状态”,停止位的长度可以是1位,1.5位或者2位。

下图为UART使用7个数据位、偶校验、2个停止位的格式传输字符‘A’时,TTL/CMOS逻辑电平、RS232逻辑电平对应的波形。

1.2S3C240 UART的特性

        S3C2440中有3个独立的UART通道,每个通道都可以工作于终端模式或DMA模式,即UART可以发出中断或者DMA请求以便在UART、CPU间传输数据,UART由波特率发生器、发送器,接收器和控制逻辑组成。

        使用系统时钟时,S3C2440的UART波特率可以达到115.2Kbit/s,如果使用UEXTCLK引脚提供的外部时钟,则可以达到跟高的波特率,S3C2440的UART的FIFO深度为64,发送数据时,CPU首先将数据写入发送FIFO中,然后UART会自动将FIFO中的数据复制到“发送移位器(Transmit Shift)”中,发送移位器将数据一位一位地发送到TXDn数据线上,接收数据时,接收移位器将Rxdn数据线上的数据一位一位接收进来,然后复制到接收FIFO中,CPU即可从中读取数据。

        S3C2440 UART结构如下图所示:

      

猜你喜欢

转载自blog.csdn.net/u013171226/article/details/115284516
今日推荐