S3C2440的串口控制器提供了3个独立的输入/输出端口,每一个都能够在基于DMA模式或中断模式下工作。也就是说,UART控制器能够产生中断或者DMA请求,以便在CPU和UART端口之间传送数据。在利用系统时钟的情况下,UART控制器支持的波特率最高达到115 200。如果一个外部设备提供给UART控制器一个外部时钟,那么UART控制器就能够以更高的传送速度运行。每个UART通道包含两个64字节的FIFO,用来发送和接收数据。
S3C2440的UART包括:可编程的波特率,红外(IR)发送/接收,插入一或两个停止位,支持5位、6位、7位或8位串行数据发送/接收。
每个UART控制器包含有一个波特率发生器、发送器、接收器和控制单元。波特率发生器能够从PCLK、 FCLK或者UEXTCLK (外部输入时钟)得到时钟。发送和接收器包括64字节的FIFO和数据移位器。首先数据被写到FIFO中,然后复制到发送移位器中准备发送,最后数据被发送数据引脚(TxDn)移位出去。相应地,数据接收过程是:首先从接收引脚(RxDn)上面得到数据,然后将数据从移位器中复制到FIFO中。S3C2440的串口控制器具有如下特点。
RxD0、TxD0、RxD1、TxD1、RxD2和TxD2基于DMA或者中断模式运行。
UART通道0和1有nRTS0、nCTS0、nRTS1和nCTS1。
支持发送和接收握手协议。
支持外部时钟作为UART的运行时钟(UEXTCLK)。
可编程的波特率。
支持IrDA1.0。
具有测试用的环回模式。
每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO。