1.串行通信概览
所谓串行通信就是使数据一位一位地进行传输而实现的通信。当然,在实际传输中,如外部设备与CPU或计算机与计算机之间交换信息,是通过一对导线传送信息的。在传输中每一位数据都占据一个固定的时间长度。与并行通信相比,串行通信具有传输线少、成本低等优点,特别适合远距离传送;其缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。
2.S3C44B0X内部集成的UART
S3C44B0X UART单元提供了两个异步串口(SIO),每个SIO都可以在中断模式或DMA模式下工作,支持波特率最大为115.2kb/s,每个SIO通道都有一个16字节的接收与发送FIFO缓冲区。
每个UART模块均包含以下几个部件:波特率发生器、发送器、接收器和控制单元。波特率发生器以MCLK作为时钟源;发送器和接收器包含16字节的FIFO和移位寄存器。要发送的数据首先被写入FIFO,然后被复制到发送移位寄存器中,最后从数据输出端口(TxDn)依次被移位输出;被接收的数据也同样从数据接收端口(RxDn)依次被移位输入到移位寄存器,然后被复制到FIFO中。
UART发送/接收器提供可编程的波特率,红外发送/接收(IrDA 1.0),1个开始位,1个或2个停止位,5、6、7、8位数据位和奇偶校验功能。
发送器也可以产生暂停条件,强制串口输出保持在逻辑0状态比一帧长的时间。
接收器可以检测溢出错误、奇偶错误、frame错误和暂停条件,其中每一个设置一个错误标志。溢出错误在旧的数据还没有读取新的数据已到达时产生;frame错误是指接收数据没有收到有效的停止位;暂停条件指示RxDn输入保持逻辑0状态比一帧长的时间。
在FIFO模式下接收FIFO缓冲区不为空时,在可以接收3个字的时间内没有接收到数据称为接收超时。