【问题标题】:How can I make a custom USB device show up in Windows as a COM Port?如何使自定义 USB 设备在 Windows 中显示为 COM 端口?
【发布时间】:2011-11-02 05:21:13
【问题描述】:

我开发了一个 USB 设备,它通过一个简单但专有的接口和一些定制的 Linux 驱动程序与 linux 通信。我的目标是在不编写 Windows 驱动程序的情况下将其移植到 Windows。我想做的是为 Windows 找到一个开源或内置的类驱动程序,它看起来像 Windows 中的 COM 端口。然后我会定制嵌入式软件以匹配虚拟 COM 端口期望看到的任何协议和描述符。

我的想法是,我可以将我的设备插入 Windows 机器,然后出现一个相对高速的 COM 端口,而无需我为其开发 Windows 驱动程序。

我一直在查看 USB CDC(通信设备类)文档,它看起来很有希望,但我不知道最好使用哪个子接口,以便它显示为 COM 端口。

这里有没有人做过类似的工作或者可以提供一些见解? 具体来说:

  1. 是否有“内置”到 Windows 的虚拟 COM 驱动程序,或者我需要第 3 方驱动程序。
  2. 我应该将哪个 CDC 子类用于简单的 RS232 仿真(不需要调制解调器 AT 命令等)
  3. 有没有更好的选择来做我想做的事情。

谢谢

【问题讨论】:

    标签: windows embedded usb serial-port driver


    【解决方案1】:

    Windows 中内置了一个 USB 转串口驱动程序,可以满足您的需求。它被称为usbser.sys:

    http://support.microsoft.com/kb/837637

    您必须编写一个 INF 文件并将其分发给您的用户,但这不会太难,因为它只有几千字节的文本,您可以在网上找到示例。

    我不知道 Microsoft 对此驱动程序有任何出色的文档,因此我的建议是找到使用它的其他设备,例如 Pololu Wixel,然后复制他们所做的。

    以下是我们使用的设备描述符和我们必须实现的特殊控制传输: https://github.com/pololu/wixel-sdk/blob/master/libraries/src/usb_cdc_acm/usb_cdc_acm.c

    您可以通过下载软件并查看驱动程序文件夹来查看我们的 INF 文件 wixel_serial.inf: http://www.pololu.com/docs/0J46/3.a (里面还有其他你不需要的文件。)

    您还可以查看 Arduino Uno,因为它们使用相同的驱动程序。

    无论您做什么,请不要在您的产品中使用我们的 USB 供应商 ID!您需要自己购买。

    更新:在 Windows 10 中,您不再需要 INF 文件,因为 Windows 附带了新的 usbser.inf 驱动程序。

    【讨论】:

      【解决方案2】:

      如果您使用的是 UART,您可以轻松地将其连接到 FTDI USB 芯片,例如 http://www.ftdichip.com/Products/ICs/FT232R.htm 或 Prolific,例如 http://www.prolific.com.tw/eng/products.asp?id=59

      对于开发、原型和测试,我在http://www.pololu.com/catalog/product/391 周围放置了半打这样的工具

      我将它直接连接到 AVR 和 8051 micros 上的 UART 引脚。

      【讨论】:

      • 其实我是走反了,我已经在micro里有一个USB接口,我想连接到主机PC上的串行UART
      • 那么我可能会使用连接到微的pololu.com/catalog/product/126。另一个选择是 Vinculum 和串行电缆,因为您需要一个主机设备接口。
      猜你喜欢
      • 1970-01-01
      • 2012-01-30
      • 2022-01-19
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 2012-11-24
      • 1970-01-01
      相关资源
      最近更新 更多