UART和RS-232之间的区别?


80

大多数时候,RS-232和UART在串行通信理论中融合在一起。他们俩都一样吗?根据我的阅读,我得出结论,UART是RS-232协议的硬件形式。我对么?


1
上面的答案给出了有关差异的见解。但是,我想通过添加National Instruments的链接来增加这些答案,该链接详细讨论了该主题。以下是链接:RS-232,RS-422,RS-485串行通信通用概念
devangmotwani

Answers:


80

不,UART和RS-232不相同。

UART负责发送和接收一系列位。在UART的输出上,这些位通常由逻辑电平电压表示。这些位可以成为RS-232,RS-422,RS-485或某些专有规范。

RS-232指定电压电平。请注意,其中一些电压电平为负,它们也可以达到±15V。较大的电压摆幅使RS-232更具抗干扰性(尽管仅在某种程度上)。

微控制器UART本身不能产生这样的电压电平。这是通过一个附加组件完成的:RS-232线路驱动器。RS-232线路驱动器的经典示例是MAX232。如果浏览数据表,您会注意到该IC具有电荷泵,该电荷泵可从+ 5V产生±10V。

在此处输入图片说明来源


4
我读过的RS-232定义根本没有提到比特序列或时序。我实际上从未找到描述异步NRZ启停协议的官方标准。
Wouter van Ooijen 2014年

1
RS-232没有指定位序列。
slebetman 2014年

显然,贝尔字符公司主导了UART字符格式的开发,以至于没有出现任何变体。结果,开始/数据/奇偶校验/停止位格式从来都不是独立标准的主题。行业范围内的用法是如此统一,以至于不需要“正式”定义。物理链路并非如此,因此开发了RS-232。
WhatRoughBeast 2014年

3
UART字符格式早于Bell的调制解调器,之前是ASCII的Teletype硬件(带奇偶校验的8位),而在此之前是Baudot。
Whit3rd

33

UART(或USART)-通用(异步)异步接收器/发送器

本质上,这是一个串行通信接口。“通用”部分意味着可以对其进行配置以支持许多不同的特定串行协议。该术语是通用的,并不代表特定的标准。至少,这意味着它具有TXRX一行,用于发送串行数据流和接收串行数据流。

RS-232-一种标准,用于定义两个设备之间的信号,并定义信号名称,其用途,电压电平,连接器和引出线。

这是允许设备互操作性的特定接口标准。虽然两个硬件都可能具有UART,但您不知道它们将无损坏地连接,或者无法正确通信,除非您知道它们具有相同的管脚和电压标准,或者包括专用于UART互连的转换器或专用有线电缆这两个特定的设备。为了避免需要特殊的转换器或电缆,制造商可以选择遵循RS-232标准。这样,您就会知道,一条标准的RS-232电缆将连接这两者。

但是,UART和RS-232标准都没有定义在TXRX线上发送的内容。通常,当人们使用RS-232时,他们使用具有一个起始位和一个停止位的简单8位NRZ编码。如今制造的大多数设备都使用这种编码,但没有要求这样做。您可以找到包含奇偶校验位或使用7或9位的旧设备。UART可以配置为在TXRX行上支持这些各种协​​议。

UART通常不直接与RS-232接口。您将需要将UART的输出转换为RS-232要求的+/- 12V标准。完整的RS-232接口通常将同时包含UART和RS-232电平转换器。此外,RS-232标准还包括TX和以外的其他几个信号引脚的定义RX,您可能需要根据所要连接的设备使用这些信号。这些也将需要进行电平转换,并且您的UART可能支持或可能不支持这些信号。如果不是,则必须直接用软件/固件控制它们。

因此,尽管UART可以帮助您实现RS-232接口,但它本身并不是RS-232接口。


标准RS-232电缆?没有任何东西。在设备包中,我携带了大约12个RS-232适配器。RS-232指定一个DB-25连接器,但是我已经看到了DD-9,RJ45,din8和其他连接器,除了将调制解调器连接到PC之外,我从未能够将COTS电缆用于任何rs232项目。幸运的是,在90%的时间内,一对适配器或定制电缆都可以轻松制造。
hildred

仅作记录:我认为USART中的“ S”代表“同步”,而不是“串行”。看这里。USART是对较旧UART芯片的“扩展”,它还允许同步通信模式。
Lorenzo Donati 2014年

14

UART的功能是将PC总线上的并行数据转换为串行数据,以通过线路驱动器传输到RS-232,RS-422RS-485设备。UART芯片的时钟引脚由可编程时钟源供电。时钟速度取决于设备将使用的波特率配置。时钟速度为16 X波特率。将示波器探头放在UART芯片的时钟引脚上并确定频率,然后除以16是确定未知波特率的一种方法。


5
+1表示“将并行数据转换为串行数据”,这里没有其他答案提及。
TisteAndii
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.