一、UART原理说明
通用异步收发器简称 UART,用来传输串行数据。
发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根线上串行发出;
接收数据时,UART检测另一根线上的信号,将串行数据放在缓冲区中,CPU即可读取UART获得这些数据;
UART之间以全双工方式川水数据,最精简的连线方式只有三根线:TXD(发)、RXD(收)、GND(参考电平);
UART使用标准TTL/COMS逻辑电平(0~5V、0~3.3V、0~2.5V、0~1.8V)来表示,高电平表示1,低电平表示0;
为了增强抗干扰能力,提高传输长度,通常将TTL/COMS逻辑电平转换为RS-232逻辑电平(负逻辑)
3~12V表示0
-3~ -12表示逻辑1
TXD、RXD数据线以“位”为最小单位传输数据,“帧(frame)”由具有完整意义的,不可分割的若干位组成,包含起始位、数据位、校验位、停止位;
数据发送前要约定好数据传输的速率、数据的传输格式。
二、S3C2410的UART
S3C210有3个独立的通道,每个通道都可以工作于中断模式、DMA模式;
UART由波特率发生器、发送器、接收器和控制逻辑组成;
使用系统时钟,S3C2410的UART波特率可达到230.4Kbit/s;
S3C2410 UART的每个通道都有16字节的发送FIFO和16字节的接收FIFO,
发送数据时,CPU先将数据写入发送FIFO,然后UART会自动将FIFO中的数据复制到“发送移位器”中,“发送移位器”将数据一位一位地发送到TXD数据线上;
接收数据时,“接收移位器”将RXD数据线上的数据一位一位接收进来,然后复制到接收FIFO中,CPU即可从中读取数据;
S3C2410 UART的每个通道支持的停止位有1、2位;数据位有5、6、7、8位;支持校验功能,另外还有红外发送/接收功能;
三、S3C2410 UART的使用
1、设置波特率
2、设置传输格式:数据位、校验位、停止位、流量控制;
3、管脚设置
4、UART通道工作模式:中断模式、DMA模式
5、以上设置好后,通过往寄存器写入数据即可发送,读取某个寄存器即可得到接收数据;
6、可以通过查询状态寄存器或设置中断来获知数据是否已经发送完毕,是否已经接收到数据。