Windows/Linux 中没有额外硬件的虚拟 COM

Virtual COM with no additional HW in Windows/Linux

我在两台不同的机器上有两个程序,Windows 和 Linux。

他们希望通过 com 端口进行通信。到目前为止,我们在 Linux 机器上使用 USB 转 UART 桥及其驱动程序来进行通信。 Windows 将该设备列为 COM 端口,在 linux 端,我们有一个供 Linux 应用程序连接的 tty 设备。

现在,在我正在使用的新版电路板中,该芯片不再存在。我想保持这两个程序不变。 我知道我可以在 Linux 上配置一个 usb 驱动程序来充当虚拟 com,而无需任何额外的硬件(CDC ACM?),这样就可以了。 我对么?如果是这样,我应该使用哪个驱动程序?

在 Linux 端,您需要为外设模式配置 USB。对于软件方面的事情,请参阅 Matt Porter 的演讲中的 gadget configfs documentation and the PDF

由于您需要串行 USB CDC ACM,请查看 gadget serial

有一个库 libusbg 允许通过 C API 使用 USB Gadget ConfigFS。如果嵌入式软件需要动态控制设备提供的 USB 功能,这会很有用。该库还提供了两个名为 gadget-import 和 gadget-export 的实用程序。此实用程序允许将手工制作的 USB 小工具导出到架构文件并重新导入它。您可以设计一个 systemd 服务以在启动时自动使用此模式。