s3c2440芯片串口操作

       S3C2440A通用异步接收器和发射机(UART)提供了三个独立的异步串行输入/输出(SIO)端口,每个端口都可以在中断或基于dma的模式下运行。换句话说,UART可以生成一个中断或DMA请求来在CPU和UART之间传输数据。UART可以使用系统时钟,支持波特率高达921.6 Kbps。如果外部设备提供UEXTCLK,那么UART可以以更高的速度运行。每个UART通道包含两个64字节的FIFO,用于接收器和发送器。

       S3C2440A UART包括可编程的波特率、红外(IR)传输/接收、一个或两个停止位、5位、6位、7位或8位数据宽度和奇偶校验。

      每个UART包含一个波特率生成器、发射机、接收机和一个控制单元,如图1所示。波特率发生器可以通过PCLK、fclk/n或UEXTCLK(外部输入时钟)来确定。发射机和接收机包含64字节的FIFO和数据移位器。数据首先被写入到FIFO,然后在传输之前复制到移位器,最后,数据被传输数据pin(TxDn)移出。与此同时,接收到的数据从接收数据pin(RxDn)转移,然后从shifter复制到FIFO。


图 1 UART框图

编程一般顺序(对于协议类的接口,大体相同),这里补充一点题外话,对于协议类接口编程,牢牢记住两点:

      (1)看通信双方的协议是什么(一般是弄清楚数据帧的格式)

      (2)查看时序要求(多大的速率,对于串口就是指波特率了)

   有了这两点,那我们的编程顺序便有了一个依据:

     (1)首先设置相关的引脚。

     (2)配置时钟,设置波特率

     (3)设置数据帧的格式     (4)编写相关操作函数 前面三点就是初始化串口需要做的事,后面操作函数部分就看自己的发挥了!