UART和RS-232的区别?

电器工程 串行 沟通 UART rs232
2022-01-16 22:39:28

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

3个回答

不,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。

在此处输入图像描述来源

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

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

RS-232 - 定义两个设备之间的信号的标准,定义了信号名称、它们的用途、电压电平、连接器和引脚排列。

这是允许设备互操作性的特定接口标准。虽然两件硬件可能有 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 电平转换器。TX此外,RS-232 标准包括除和之外的其他几个信号引脚的定义RX,您可能需要根据需要连接的设备使用这些信号引脚。这些也需要进行电平转换,您的 UART 可能支持也可能不支持这些信号。如果没有,您将不得不直接使用您的软件/固件来控制它们。

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

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