24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
串行通信协议-第二部...

技术专题

串行通信协议-第二部分:UART


串行通信协议-第二部分:UART

我们将研究流行的UART器件。它不是通信协议,而是微控制器或独立IC中用于传输和接收串行数据的物理电路。它支持我们撰写的系列文章,以介绍一些可用的不同类型的串行通信协议。 

串行通信是在诸如微控制器,产生数据的外围设备和其他智能设备之类的设备之间传输信息的理想机制。我们希望您下次设计需要结合串行通信总线时,会发现此资源非常宝贵。UART通常也称为设备上的串行端口。但是,这通常会与另一种使用DB9样式连接器并使用RS-232作为硬件协议的串行端口混淆。将UART连接到RS-232收发器是很常见的,以使微控制器上的UART外设与基于RS-232的设备相互通信。

UART代表通用异步接收器发送器。该通信系统需要除接地以外的两个引脚。一个标记为TX(发送器),另一个标记为RX(接收器)。名称中出现异步一词意味着它不需要时钟信号。由于没有时钟,因此发送和接收设备必须使用相同的波特率。

波特率(Bd)是传输速率的度量单位。此参数确定发送器和接收器的数据通道上的通信速度。波特率可以表示为每秒位数,以使其更简单。因此,速率为1000 Bd意味着通信速度为每秒1000位,或者一位的持续时间为1/1000秒或1毫秒。波特率具有标准度量标准前缀,例如kBd(千比特),MBd(兆比特)或GBd(千兆比特)。波特率包括消息的非数据部分,例如开始和停止位,这意味着从发送器发送到接收器的有用信息的发送率将略低。

一些更流行的预定义UART波特率包括: 

110波特

300波特

1200波特

4800波特

9600波特

19200波特

38400波特

115200波特

有时,两个通信设备的波特率都可以调整,而有时,其中一个设备将具有固定的波特率,要求另一个更改与之匹配。

因此,要使用UART连接两个设备,发送器TX引脚应连接到接收器RX引脚

在某些配置下,两个设备上都将具有RXTX引脚,从而使您可以将命令从微控制器发送到专用IC,并从另一个方向接收命令或信息。这称为双工连接。当不需要第二设备的反馈时,也有一些应用。因此,通信只需要一个方向。因此,仅需要一条TXRX传输线。这称为单纯形连接。

发送设备将需要发送一个起始位,以启动从该设备到接收设备的通信。该位通知接收设备通信已经开始。

然后,将数据位作为代表实际数据的八位流发送,其中最高有效位(MSB)标记为D7,最低有效位(LSB)标记为D0

然后,在这些数据位的末尾,发送器发送一个停止位(表明这是消息的末尾),并将UART总线置于其空闲模式。

在这种情况下,我们可以看到;完整的UART消息将由10位组成。在空闲模式下,UART总线被拉高,它发送一个开始位,该开始位为低,然后是8个数据位,然后是停止位。停止位不限于仅仅一位。它可以有多种配置,具体取决于通信速率有多快。这种配置意味着整个消息位设置至少持续一次将总线信号电压电平从低电平持续更改为高电平。

最高有效位D7也可以用作奇偶校验位。该位提供了基本的错误检查机制,该机制出现在通信的最小块中。奇偶校验位可用于确保高位或一位的总数为奇数或偶数,具体取决于编码。对于偶数奇偶校验,如果设置了数据位D0D6,则它们由偶数个高位组成,则奇偶校验位设置为0(低)。相反,如果这组位的高位数量不均匀,则奇偶校验位设置为1(高)。这确保了消息中高位的总数将是偶数。在奇偶校验检查不均匀的情况下,如果将数据位D0D6设置为由偶数个高位组成,则奇偶校验位将设置为1(高)。相反,如果这组位的高位数量不均匀,然后将奇偶校验位设置为0(低)。这样可以确保消息中高位的总数为奇数。

因此,通过使用奇偶校验位,可以通过检查设置的位来检测错误。假设包括奇偶校验位在内的总位数设置为高是不正确的。在这种情况下,奇偶校验位允许接收器在传输期间检测到错误。但是,这种类型的错误保护无法纠正错误,只能捕获已发生的错误,因为无法确定整个位集中的哪个位不正确。它只能检测一位是否处于错误状态。如果总体奇偶校验最终正确,则可能无法检测到影响多个位的任何错误。

如果检测到奇偶校验错误,则必须丢弃整个消息并从头开始重新传输。在高干扰或高噪声水平的情况下,可能需要花费大量时间才能成功传输。但是,它有助于防止消息错误。

除此之外,UART通信的接收和发送端必须使用完全相同的波特率和字符长度,奇偶校验机制以及停止位配置,才能成功进行通信。

UART还有一个变体,称为USART。这是通用同步异步接收器发送器。当为数据计时时,它既可以充当异步通道(就像UART),又可以充当同步通道。时钟可以从数据本身恢复,也可以作为单独的外部信号发送。 

在同步模式下使用USART时,不需要启动和停止位。由于位时序具有时钟参考,因此这允许通信在同步操作时使用更高的数据速率。因此,更多的位可用于数据而不是开始/停止位。

串口

ART

UART只需要一个数据信号

USART同步模式需要数据和时钟。

UART中,不必以固定速率传输数据。

USART同步模式下,数据以固定速率传输。

UART中,通常一次只发送一个字节的数据。

USART中,同步数据通常以数据块的形式传输。

UART中,数据传输速度设置为特定值附近,例如4800960038400 bps等。

USART中,如果所有其他因素保持不变,则同步模式比异步模式允许更高的DTR(数据传输速率)。

UART速度限制在115200 bps左右。

USART可以达到115 kbps以上的速率。

全双工通信:数据可以同时在两个方向上发送。

半双工通信:一次只能在一个方向上发送数据。

UARTUSART的主要目的是将PC总线上的并行数据转换为串行数据,可以使用串行驱动器在符合串行通信协议标准(例如RS-232RS-485)的总线上传输串行数据。UART / USART和外部总线之间需要接口转换器。然后,这允许该数据由相似的设备读取,而这两者不需要使用完全相同的串行数据格式。只要两者之间的传输符合通用的受支持标准协议,每个设备内串行通信的实现就可以特定于该设备。

尽管UART在计算机市场上已被USB取代,但它们仍广泛用于低成本设备中的串行通信。 

请输入搜索关键字

确定