UART和RS232是否是相同的协议?如果是,那么为什么我们称RS232是接口标准。协议和接口标准是否相同?
4 回答
UART(通用异步接收器/发送器)是指用于串行数据传输的硬件设备,其中时序从数据帧中恢复。帧具有起始位、数据位、可选的奇偶校验位和停止位(或多个位)。开始但同步帧其余部分的位采样。
RS-232是指特定串行接口的电气接口和信令的一系列相关标准。虽然 UART 的输出将处于 UART 设备的逻辑电平,但 RS-232 定义了特定的电压电平,因此当使用 UART 实现 RS-232 接口时,需要 RS-232 电平线驱动器。RS-232 线路电平是双极性的(逻辑状态为负电压和正电压),而 UART 的逻辑电平为零和一些正电压。
完整的 RS-232 包括除串行 Tx/Rx 之外的附加信号线,其中一些(如流量控制)可能由 UART 提供,而其他信号线则由其他逻辑(如 GPIO)提供。最小的 RS232 实施(三线模式)需要 Tx、Rx 和接地。
UART 可用于其他接口,例如 RS-422、RS-485,并且对于短距离芯片间通信,可以将 UART 直接连接到 UART。所以UART和RS-232肯定不是一回事。
在OSI 7 层通信模型中,RS-232 仅覆盖第 1 层 - 物理层。UART 只是实现这种物理层的一部分的一种方式。
因此,关于“协议”,RS-232 只是一个物理层协议——它没有为正在传输的数据定义任何语义。UART 根本不是协议,而是用于实现多种物理层通信的数字电子设备。
UART 是一种翻译硬件,而不是一种协议。它们可以使用许多串行/并行通信协议,包括但不限于 RS232
RS232 是一种电气标准,而不是一种协议。就像RS485、rs422等,都可以承载相同的串口协议。
UART 的输出是 UART 帧。帧在 OSI layer2 数据链路层定义。所以 RS2-232 比 Layer1 OSI 多一点。RS485 和 RS422 仅在 LAye1 上工作,因为其余的通信将由上层协议(例如 Modbus 或 PROFIBUS)完成(例如,第 2 层和第 7 层)
Peter 荷兰