uart口图片_UART串口简介

UART是一种全双工串行通信接口,通过TxD、RxD和Gnd三根线进行数据传输。发送时,CPU将并行数据写入UART,UART将其转换为串行数据发送;接收时,UART接收串行数据并存入缓冲区供CPU读取。在S3C2410/S3C2440芯片中,UART具有多个独立通道,支持中断和DMA模式,并有FIFO功能,可配置波特率、数据位、校验位和停止位等参数。
摘要由CSDN通过智能技术生成

通用异步收发传输器(Universal Asynchronous Receiver Transmitter)

原理

发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出

接收数据时,UART检测另一根电线上的信号,将串行收集放在缓冲区中,CPU即可读取UART获取这些数据

UART以全双工方式传输数据,最精简的连接方法只有3根线:

TxD:发送数据

RxD:接收数据

Gnd:给双方提供参考电平

连线图

1f906128ee848083fe052884d4b22c46.png

为了增强数据的抗干扰能力、提高数据传输长度,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平,3~12V表示0,-3~-12V表示1

发送数据之前,UART之间要约定好数据的传输速率(每位所占据的时间,其倒数称为波特率)、数据的传输格式(多少个数据位、是否使用校验位、是奇校验还是偶校验、有多少个停止位)

波形

a9354c015f16bc7662cd2623e7253819.png

d3c8ff69e54b12b1012860b46424c811.png

数据位:二进制0b1010101,十六进制0x55,大写字母U

S3C2410/S3C2440特性

3个独立通道,每个都可以工作于中断模式或者DMA模式,即UART可以发出中断或DMA请求以便UART和CPU之间传输数据

S3C2410 UART的每个通道都有16字节的发送FIFO和16字节的接收FIFO;S3C2440 UART的FIFO深度为64

发送数据时,CPU先将数据写入发送FIFO中,然后UART会自动将FIFO中的数据复制到“发送移位器”中,发送移位器将数据一位一位地发送到TxDn数据线上(根据设定的格式,插入开始位、校验位和停止位)

接收数据时,“接收移位器”将RxDn数据线上的数据一位一位地接收进来,然后复制到接收FIFO中,CPU即可从中读取数据

S3C2410/S3C2440 UART的每个通道支持停止位1位、2位,数据位5、6、7、8位,支持校验位,另外还有红外发送、接收功能

df09478d01bc524cf016f46b8b5ffb55.png

S3C2410/S3C2440使用

S3C2410/S3C2440还要选择管脚为UART功能、选择UART通道的工作模式为中断模式或DMA模式

1.设置UART通道管脚为UART功能

比如UART通道0中,GPH2、GPH3分别用作TXD0、RXD0。设置GPHCON寄存器将GPH2、GPH3引脚的功能设为TXD0、RXD0

2.设置波特率

UBRDIVn寄存器(UART BAUD RATE DIVISOR)

根据给定的波特率、所选择的时钟源的频率,可以计算UBRDIVn寄存器(n为0~2,对应3个UART通道)的值

UBRDIVn = (int)(UART clock / (buad rate * 16)) - 1

3.设置传输格式

ULCONn寄存器(UART LINE CONTROL)

功能 位 说明

数据位宽度 [1:0] 0b00:5位,0b01:6位

0b10:7位,0b11:8位

停止位宽度 [2] 0:一帧中有一个停止位

1:一帧中有两个停止位

校验模式 [5:3] 设置校验位的产生方法、校验方法

0b0xx:无校验

0b100:奇校验

0b101:偶校验

0b110:发送数据时强制设为1,接收数据时检查是否为1

0b111:发送数据时强制设为0,接收数据时检查是否为0

红外模式 [6] 0:正常模式

1:红外模式

4.UCONn寄存器(UART CONTROL)

UCONn寄存器用于选择UART时钟源、设置UART中断方式等

功能 位 说明

接收中断方式 [8] 如下情况发生时,将产生接收中断

不使用FIFO时,接收到一个数据;

使用FIFO时,FIFO中的数据达到RxFIFO的触发阈值。

中断方式设置如下:

0:脉冲

1:电平

发送中断方式 [9] 如下情况发生时,将产生发送中断

不使用FIFO时,发送缓冲区变空;

使用FIFO时,FIFO中的数据达到TxFIFO的触发阈值。

中断方式设置如下:

0:脉冲

1:电平

时钟选择 [10] 选择UART时钟源

0:PCLK

1:UEXTCLK

5.UFCONn寄存器(UART FIFO CONTROL)UFSTATn寄存器(UART FIFO STATUS)

UFCONn寄存器用于设置是否使用FIFO,设置各FIFO的触发阈值,即发送FIFO中有多少个数据时产生中断、接收FIFO中有多少个数据时产生中断并可以通过设置UFCONn寄存器来复位各个FIFO

读取UFSTATn寄存器可以知道各个FIFO是否已经满、其中有多少个数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值