如果我想从 PC 串行发送数据到设备,必须完成 3 件事:
- 我必须将 USB 转串行转换器(FTDI 分线器或类似转换器)连接到 PC 的 USB 端口
- 目标设备连接到USB转串口转换器的串行输出
- 我写入设备所连接的串行端口。
我感到困惑的是,如果我要写入数据,为什么需要这样的 USB 转串口转换器连续剧无论如何端口?由于需要转换器,这告诉我 USB 数据包仍在发送,而不是我想要的串行数据。
我的猜测是USB转串口转换器正在接收USB数据包,其中包含串行数据和波特率和奇偶校验等信息。为什么要这样做,而不只是直接从 USB 端口发送串行数据?
答案1
我感到困惑的是,如果我无论如何都要写入串行端口,为什么还需要这样的 USB 转串行转换器?
您正在写信给抽象串行端口,不是到串行端口本身。事实上,您的数据可能通过与经典串行端口无关的东西传输,例如,如果您的 USB 端口适配器通过 IP 网络共享(usbip)。或者,如果您正在使用其中一种解决方案这个问题。
程序始终与抽象交互。您还可能会问:为什么不直接写入物理屏幕,而不是写入一系列软件和硬件“适配器”? (图形系统、图形卡、HDMI,仅提及您可能遇到的一些“跳跃”)。
您可以采用这种方式并重新实现所有内容以直接写入屏幕,但这意味着如果您连接的是 VGA 显示器而不是 HDMI 显示器,则需要更改程序。这就是为什么我们让操作系统提供我们可以处理的抽象。