NEWS

新闻资讯

UART/RS232传输协议


一、UART简介

UART(universal asynchronous receiver-transmitter)是一种采用异步串行通信方式的通用异步收发传输器。一般来说,UART总是和RS232成对出现,那RS232又是什么呢? RS232也就是我们计算机上的串口,它的全称是EIA-RS-232C (简称232,或者是RS232 )。其中EIA(Electronic Industry Association)代表美国电子工业协会,RS是Recommended Standard的缩写,代表推荐标准,232 是标识符,C表示修改次数,它被广泛用于计算机串行接口外设连接。

随着时代的发展,这种借口已经很少用了,取而代之的是“USB转串口”,功能和原先一样,但接口更高效了。

  串口的主要功能为:在发送数据时将并行数据转换成串行数据进行传输,在接收数据时将接收到的串行数据转换成并行数据。这应该是大多数人接触电子后学习到的第一个通信协议吧。

二、通信格式

1.传输时序

  UART串口通信需要两个信号线来实现,一根用于串口发送,另外一根负责串口接收。一开始高电平,然后拉低表示开始位,接着8个数据位,然后校验位,最后拉高表示停止位,并且进入空闲状态,等待下一次的数据传输。

很多时候我们的校验位是允许省略的,所以协议就变成了:开始+数据+停止。

2.传输速率:波特率

  串口通信的速率用波特率表示,它表示麦苗传输二进制数据的位数,单位是bps(位/秒)。常用的波特率有9600、19200、35400、57600以及115200等。

  FPGA开发串口时,设计波特率的方法:FPGA的时钟频率/波特率。例如我的FPGA开发板时钟频率为50Mhz,即50_000_000hz,我想使用的波特率为9600bps,因此我需要的计数为:50000000/9600≈5208。

三、串口回环设计

  现在用FPGA开发板做一个串口回环的实验,要求是PC端通过串口助手发送数据给FPGA,FPGA接收到数据后返回给PC端,并在串口助手处显示数值。即串口助手发什么就能收回什么。实验框图如下:

四, 传输协议

一、RS232通信协议是目前最常用的一种全双工点对点式的异步串行通信协议接口标准。RS232接口标准由于出现较早,所以其目前存在很多问题。

 

(1)、接口电平值较高,易损坏接口电路的芯片。

 

(2)、传输速率较低,大约为20Kbps;传输距离较短,大约为15米左右。

 

(3)、接口由三根线TX、RX、GND组成,没有构成差分线形式,容易产生共地共模干扰,抗干扰能力弱。

 

二、RS232物理层:

三、RS232协议层:主要包括起始位数据位校验位停止位四部分组成,而且通信双方必须以约定的通信协议通信速率进行通信。数据位采用小端传输模式,即低位在前,高位在后

四、UART和RS232异同:

(1)、逻辑电平不同:UART是TTL电平;RS232是RS232电平,不能直接相连,需要电平转换芯片(MAX3232等)。

(2)、协议层完全相同:UART和RS232的协议层可以共享,没有较大区别。

 

相关产品