如何使自定义USB设备在Windows中显示为COM端口?

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

这个想法是,我可以将我的设备插入到Windows机器中,并且出现相对较高速度的COM端口,因为我不得不为其开发Windows驱动程序.

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

有没有人在此之前做过这样的工作,或者可以提供一些洞察力?
特别:

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

谢谢

内置到Windows的USB到串行驱动程序将会做你想要的.它被称为usbser.sys:

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

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

我不知道微软这个驱动程序的任何伟大的文档,所以我的建议是找到使用它的其他设备,如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中,由于Windows附带的新的usbser.inf驱动程序,您不再需要INF文件.

相关文章
相关标签/搜索