首页

UART沟通基础

UART或通用异步接收发射机是一种与串行通信相关的专用硬件。UART的硬件可以是集成在微控制器上的电路或专用IC,这与SPI或I2C只是通信协议不同。

(adsense1)

UART是一种最简单、最常用的串行通信技术。今天,UART被用于许多应用程序,如GPS接收器,蓝牙模块,GSM和GPRS调制解调器,无线通信系统,基于RFID的应用程序等。

如果你还记得老式的计算机系统,像鼠标、打印机和调制解调器等设备都是通过后面的沉重连接器连接的。所有这些设备都使用UART进行通信。

即使USB已经取代了计算机和其他设备上所有类型的通信标准,UART仍在上述应用中使用。

几乎所有的微控制器都在其架构中内置了专用的UART硬件。将UART硬件集成到微控制器的主要原因是它是串行通信,只需要两根电线进行通信。

在进一步解释UART,它是如何工作的,以及数据传输和接收的步骤之前,我们将尝试回忆一些关于串行通信的信息,并对串行和并行通信进行一个小的比较。

(adsense2)

并行和串行通信简记

从一个设备到另一个设备的数字数据传输可以通过两种方式实现:并行数据传输和串行数据传输。在并行数据传输中,所有的位同时从源传输到目标。

这是可能的,因为并行数据传输在发射机和接收器之间使用多通道或多线来传输数据。

并行数据传输方法是更快和昂贵的,因为他们需要更多的硬件和大量的电线。老式的打印机是外部并行通信的最好例子。其他的例子是RAM、PCI等。

随着集成电路技术的发展,数字集成电路的体积越来越小,速度越来越快,使得多通道并行通信的传输速率达到瓶颈。

串行通信是用单线或电线一点一点地传输数据。对于发射机和接收器之间的双向通信,我们只需要两根电线就可以成功地进行串行数据传输。

由于串行通信需要更少的电路和电线,实现成本更低。因此,在复杂电路中使用串行通信可能比并行通信更实用。


但是串行数据传输的唯一问题是速度。由于数据传输发生在单线上,串行通信中的传输速度比并行通信的速度要慢。现在,随着技术的进步,串行数据传输的速度已经不再是一个问题了。

UART通信介绍

UART或通用异步接收发射机是一种串行通信设备,它在发射端执行并行到串行的数据转换,在接收端执行串行到并行的数据转换。它是通用的,因为诸如传输速度、数据速度等参数是可配置的。

正如在介绍部分中提到的,UART是一种硬件,它充当处理器和串行通信协议或端口之间的桥梁。下图简要展示了这个界面。串行通信方式可以是USB、RS - 232等。


字母“A”在UART代表异步,即没有时钟信号来同步或验证从发射机发送的数据和由接收器接收的数据(异步串行通信)。

这与同步串行通信相反,同步串行通信使用发射器和接收器之间共享的时钟信号,以便“同步”它们之间的数据。

如果在发射器和接收器之间没有时钟(或任何其他计时信号),那么接收器如何知道何时读取数据?

在UART中,发送端和接收端必须事先就定时参数达成一致。此外,UART在每个数据字的开头和结尾使用特殊的位来同步发射机和接收器。在后面的部分中有更多关于这些特殊部分的内容。

在基于UART的串行通信中,发送端和接收端按以下方式通信。发送设备上的UART即发送UART从CPU(微处理器或微控制器)接收并行数据,并将其转换为串行数据。

这个串行数据被传输到接收设备上的UART,即接收UART。接收UART在接收串行数据后,将其转换回并行数据并将其交给CPU。

UART基本连接

发射端UART上传输串行数据的引脚称为TX,接收端UART上接收串行数据的引脚称为RX。

由于UART涉及并行到串行和串行到并行的数据转换,移位寄存器是UART硬件的一个基本部分(具体来说是两个移位寄存器:发射机移位寄存器和接收机移位寄存器)。

UART是如何运作的吗?

在UART串行通信中,数据是异步传输的,即发送方和接收方之间不涉及时钟或其他计时信号。而不是时钟信号,UART使用一些特殊的位称为开始和停止位。

这些位分别被添加到实际数据包的开头和结尾。这些额外的位允许接收端的UART识别实际的数据。

上图显示了一个典型的UART连接。发射UART通过数据总线接收来自控制设备的数据。控制设备可以是任何东西,如处理器或微控制器的CPU,内存单元,如RAM或ROM等。传输UART从数据总线接收到的数据是并行数据。

对于这些数据,UART添加了开始位、奇偶校验位和停止位,以便将其转换为数据包。然后,在移位寄存器的帮助下,数据包从并行转换为串行,并从TX引脚逐位传输。

接收UART在RX引脚接收这个串行数据,并通过识别起始和停止位来检测实际数据。校验位用于校验数据的完整性。

在从数据包中分离起始位、奇偶校验位和停止位后,数据在移位寄存器的帮助下被转换为并行数据。这些并行数据通过数据总线发送到接收端的控制器。

数据包或数据帧的结构

UART串行通信中的数据被组织在称为包或帧的块中。典型的UART数据包的结构或数据的标准帧如下图所示。

让我们看看框架的每一部分。

起始位:开始位是在实际数据之前添加的同步位。开始位表示数据包的开始。通常,空闲数据线,即当数据传输线不传输任何数据时,它被保持在高电压水平(1)。

为了开始数据传输,发送端的UART将数据线从高电压电平拉到低电压电平(从1到0),接收端的UART检测数据线从高到低的变化,并开始读取实际数据。通常,只有一个起始位。

停止位:停止位,顾名思义,标志着数据包的结束。它通常是两个比特长,但通常只使用一个比特。为了结束传输,UART将数据线维持在高电压(1)。

校验位:奇偶校验允许接收方检查接收到的数据是否正确。奇偶校验是一种低级错误检查系统,有两种:偶偶校验和奇偶校验。奇偶校验位是可选的,实际上并没有被广泛使用。

数据位:数据位是从发送方传输到接收方的实际数据。数据帧的长度可以在5到9之间的任何位置(如果不使用奇偶校验,则为9位,如果使用奇偶校验,则仅为8位)。通常,LSB是要传输的第一个数据位(除非另有说明)。

UART的规则

如前所述,UART中没有时钟信号,发射端和接收端必须就串行通信的某些规则达成一致,以实现数据的无错误传输。这些规则包括:

  • 同步位(开始位和停止位)
  • 校验位
  • 数据位和
  • 波特率

我们已经看到了同步位、奇偶校验位和数据位。另一个重要参数是波特率。

波特率:数据传输的速度用波特率来表示。发送端UART和接收端UART必须在波特率上达成一致,才能成功进行数据传输。

波特率的单位是比特/秒。一些标准波特率是4800 bps, 9600 bps, 19200 bps, 115200 bps等。在这些9600 bps波特率是最常用的一个。

让我们看一个示例数据帧,其中必须传输两个数据块,即00101101和11010011。帧的格式是9600 8N1,即9600 bps, 8位数据,无奇偶校验和1个停止位。在本例中,我们没有使用奇偶校验位。


UART的优点

  • 只需要两根线全双工数据传输(除了电源线)。
  • 不需要时钟或任何其他计时信号。
  • 奇偶校验位确保基本的错误检查集成在数据包帧中。

UART的缺点

  • 帧中的数据大小是有限的。
  • 数据传输的速度比并行通信要慢。
  • 发射器和接收器必须同意传输规则,并必须选择适当的波特率。

8反应

  1. 关于UART的好文章。,涵盖了UART的头部和尾部理论概念。

    这里波特率在同步UART的Tx、Rx时也起着重要的作用。它的单位是符号/秒而不是比特/秒。比特/秒单位表示比特率。比特率和波特率是不同的。

    符号/秒或符号速率表示每秒信号(数据信号)级别的变化,其中符号本身包含一个或多个比特。

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu