基于S3C2440的UART传输小结

这里简单地介绍一下通过寄存器来控制S3C2440的UART传输。

查看S3C2440的芯片手册可以发现UART有着发送和接收的缓存区,在缓存区有数据后其便一个字节一个字节地将数据传输到对应端口处。

这里介绍其中使用到的几个寄存器。

ULCONx:用于设置数据的数据位、校验位、停止位之类的信息。

UCONx:设置查询方式以及UART的时钟源。

UFCONx:是否使用FIFO之类的方式。

UMCONx:是否使用流控

UBRDIVx:设置UART的波特率,

一般有两类:一种是标准的串口波特,为921600的约数,如300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200

                     另一种是非标准波特率,若使用非标准波特率,便需要更换晶振。

UTRSTATx:根据其判断UART寄存器里是否已经发送信息或者是否接收到信息,即判断UART的发送或接收寄存器是否为空。

当我们使用UART传输数据时,我们将数据写入发送数据寄存器(即Transmit Buffer Register)中,发送控制器(Control Unit)便会自动将数据加载到发送移位寄存器(Transmit Shifter)中,再通过串口线TXD,将数据一位一位地发送出去,当数据从发送数据寄存器(即Transmit Buffer Register) 转移到移位寄存器(Transmit Shifter),便会改变状态寄存器UTRSTAT的数值,表示数据已发送成功。

与之类似的,接收数据便是从串口线RXD将数据一位一位地输入到接收移位寄存器(Receive Shifter)中,然后自动地转移数据到接收数据寄存器(Receive Buffer Register)中,并改变状态寄存器UTRSTAT的数值,最后可通过相关命令进行读取。

基于S3C2440的UART传输小结

PS:一般而言,UART的传输是通过了TTL电平来进行数据传输,但TTL电平为3.3V,它通信距离一般在40cm左右,所以在实际使用中得把TTL电平转为别的,可分为以下两种情况:

1、TTL转USB,其电平转换芯片可大致分为以下几类:

(1)CH340 价格低,性能好;

(2)PL2303:价格低,但假货多,容易导致电脑蓝屏;(驱动下载地址:http://download.****.net/download/qwe15954250805/10029140)

(3)CP2102:大概5块钱左右;(驱动下载地址:http://download.****.net/download/qwe15954250805/10029172)

(4)FT232:价格20块左右,质量最好。

2.TTL转RS232

附上一篇介绍TTL更加详细的文章:http://blog.chinaunix.net/uid-23782786-id-4295982.html