当我使用 RS-232 电缆发送一些数据时,发送器和接收器都有 UART。我可以使用 RS-232 转 USB 转换器将某些设备或其他 PC 连接到我的笔记本电脑。这种转换器有内置 UART 吗?数据如何从 RS-232 转换为 USB?
答案1
是的,RS232 转 USB 转换器确实内置了完整的 UART 电路。与任何标准 UART 一样,它确实具有 Rx、Tx 和流控制引脚。与任何 UART 一样,它必须正确配置才能与 UART 链路另一端的“伙伴”进行通信。
为此,UART 电路被“桥接”到 USB 接口。USB 接口具有 CDC 类描述符(通信设备类),USB 主机驱动程序将此 USB 设备映射到具有最接近可用编号的虚拟 COMnn 端口,因此 PC 应用程序可以将其用作普通 COM 端口。
桥接器相当简单。要读取 UART 数据,USB COM 端口驱动程序会不断向 USB 设备询问数据(因为它没有其他方法可以知道 UART 何时会收到数据并准备好将其提供给主机)。当没有数据时,桥接器会以 NAK 响应。当有数据时,USB 端会返回数据。
当主机要发送 UART 数据时,它会发出一个包含 1 个字节数据的 OUT 数据包。桥接器会将串行字节接收到并行缓冲区中(以 USB 速度),然后将接收到的并行字节填充到 UART 的并行端,以 UART 的速度进行传输。
在通过 UART 进行通信之前,USB 端必须配置 UART 的正确波特率、停止信号长度和流量控制,就像 PC 中常见的 UART 一样。这对应用终端来说几乎是透明的,终端使用通常的接口来设置这些参数。