24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

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

技术专题

串行通信协议-第二部分(fēn):UART


串行通信协议-第二部分(fēn):UART

我们将研究流行的UART器件。它不是通信协议,而是微控制器或独立IC中用(yòng)于传输和接收串行数据的物(wù)理(lǐ)電(diàn)路。它支持我们撰写的系列文(wén)章,以介绍一些可(kě)用(yòng)的不同类型的串行通信协议。 

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

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

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

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

110波特

300波特

1200波特

4800波特

9600波特

19200波特

38400波特

115200波特

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

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

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

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

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

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

在这种情况下,我们可(kě)以看到;完整的UART消息将由10位组成。在空闲模式下,UART总線(xiàn)被拉高,它发送一个开始位,该开始位為(wèi)低,然后是8个数据位,然后是停止位。停止位不限于仅仅一位。它可(kě)以有(yǒu)多(duō)种配置,具體(tǐ)取决于通信速率有(yǒu)多(duō)快。这种配置意味着整个消息位设置至少持续一次将总線(xiàn)信号電(diàn)压電(diàn)平从低電(diàn)平持续更改為(wèi)高電(diàn)平。

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

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

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

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

UART还有(yǒu)一个变體(tǐ),称為(wèi)USART。这是通用(yòng)同步异步接收器发送器。当為(wèi)数据计时时,它既可(kě)以充当异步通道(就像UART),又(yòu)可(kě)以充当同步通道。时钟可(kě)以从数据本身恢复,也可(kě)以作為(wèi)单独的外部信号发送。 

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

串口

ART

UART只需要一个数据信号

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

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

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

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

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

UART中,数据传输速度设置為(wèi)特定值附近,例如4800960038400 bps等。

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

UART速度限制在115200 bps左右。

USART可(kě)以达到115 kbps以上的速率。

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

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

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

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

请输入搜索关键字

确定