1、 在通信领域内,有两种数据通信方式:并行通信和串行通信
2、 串口的数据传输是以串行方式进行的。串口在数据通信中,一次只传输一个比特的数据。
3、 串行数据的传输速度用bps或波特率来描述
每秒传输的二进制位数,单位为bps(bit per second )也称波特率
4、 通用异步收发器简称UART,即“Universal Asynchronous Receiver Transmitter”,它用来传输串行数据。2440中UART之间以全双工方式传输数据。
5、 UART使用标准TTL/CMOS逻辑电平表示数据
a) 0~5V、0~3.3V、0~2.5V或0~1.8V
b) 高电平表示1,低电平表示0
c) TTL逻辑电平与CMOS逻辑电平的区别?
6、 RS-232逻辑电平
a) 为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平。例如可使用电平转换芯片:MAX3232
b) (负逻辑)3~12V表示0,-3~-12V表示1
7、 RxD、TxD数据线以“位”为最小数据传输单位。而帧(frame)作为有效数据传输单位,由具有完整意义的、不可分割的若干位组成,它包含开始位、数据位、校验位(需要的话)和停止位。一帧可以有5、6、7或8位数据,从最低位开始一位一位发送。
8、 传输数据前先约定好波特率和数据的传输格式
a) 波特率是多少
b) 有多少个数据位
c) 是否使用校验位
d) 是奇校验还是偶校验
e) 有多少个停止位
9、 奇校验/偶校验
a) 数据位连同校验位中,“1”的数目等于奇数,则为奇校验
b) 数据位连同校验位中,“1”的数目等于偶数,则为偶校验
10、 异步方式(Asynchronous):也称“起止同步式”。依靠检测起始位来实现发送与接收方的时钟自同步。
11、S3C2440A中UART发送和接收数据流程:
a) 发送数据时,SOC先将数据写入发送FIFO中,然后UART会自动将FIFO中的数据复制到发送移位器(Transmit Shifter)中,发送移位器将数据一位一位地发送到TxDn数据线上(根据设定的格式,插入开始位、校验位和停止位)。
b) 接收数据时,接收移位器(Receive Shifter)将RxDn数据线上的数据一位一位接收进来,然后复制到接收FIFO中,SOC即可从中读取数据。
c)
12、UART初始化等
在使用UART之前要设置波特率、传输格式(有多少个数据位、是否使用校验位、奇校验还是偶校验、有多少个停止位、是否使用硬件流控制);
对于S3C2440A,还要选择所涉及管脚为UART功能、选择UART通道的工作模式为中断模式或者DMA模式。设置好之后往某个寄存器写入数据即可发送,读取某个寄存器即可得到接收的数据,还可以通过查询状态寄存器或者设置中断模式来获得数据是否发送或接收完毕。(具体操作参考文件uart_test.c)
13、下面列出S3C2440A UART相关的控制寄存器,具体位含义见S3C2440A 芯片手册
UART行控制器
ULCONnUART模式控制寄存器UCONn
UART FIFO控制寄存器UFCONn
UART MODEM控制寄存器UMCONn
UART状态寄存器UTRSTATn
发送缓冲寄存器UTXHn
接收缓冲寄存器URXHn
波特率除数因子寄存器UBRDIVn
14、