4

我们设计了一种特殊的通讯工具,用于轮椅上控制灯光等。我们使用Z-wave。我们有通过 PC 控制这些设备的应用程序。

不幸的是,该应用程序需要一个 USB 记忆棒。我们的设计不允许使用 USB 连接棒。取而代之的是,我们使用通过蓝牙和虚拟端口链接到 PC 的串行接口模块。我们知道该应用程序使用 HID 标准 windriver。(不涉及第三方驱动程序)

我们想知道是否可以使用 HID“包装器”驱动程序来模拟 USB 标识符和 PnP,以使应用程序认为连接了记忆棒,然后将蓝牙虚拟 comport 数据链接到应用程序。

4

3 回答 3

5

是的,我相信这是可能的,可能非常有趣,从未想过用 PC 模拟 HID 设备。你们小组中是否有人有任何驱动程序开发经验?如果没有,请为陡峭的学习曲线做好准备。

问题:“USB 记忆棒”是指包含说明文件的 USB 闪存驱动器,还是标题所暗示的某种类型的 HID 设备,如鼠标或操纵杆?

不过这并不重要,在任何一种情况下,都可以编写驱动程序来用 PC 模拟它。主要问题是您的商店/项目将您的技能提升到可以做到的程度是否经济。这绝对不是你可以在周末剪掉的代码。

于 2009-11-16T04:13:40.497 回答
3

请参阅Google 代码上的 VMulti

于 2011-09-15T12:56:14.900 回答
1

它很有趣...我想了解更多关于您现有设备的信息,即“USB 记忆棒实际上是一个无线电收发器”。

它是如何连接到PC的?是通过 USB 电缆(作为虚拟 COM 端口)吗?或者您是否在收发器和 PC 之间使用任何 USB-UART (USB-RS232) 适配器,如以下链接 ( http://www.ftdichip.com/Products/Cables/USBRS232.htm ) 中提到的适配器。即 USB 串行适配器放置在您的设备和 PC 之间。

  1. 如果您的设备直接连接到 PC 的 USB 端口(作为虚拟 COM 端口),那么我为您提供了一种解决方案。我们需要开发一个内核模式 WDM 或 WDF USB HID 迷你驱动程序,以便在安装我们的驱动程序后,您的虚拟 COM 端口设备将被 PC 主机和 PC 应用程序视为 USB HID 设备。在这个 HID 迷你驱动程序中,我们可以在 HID 报告描述符中定义一个自定义的顶级 HID 集合,这样无论您告诉什么应用程序期望该设备作为 USB HID 设备,都可以轻松地通过 Windows HID API 调用(例如 HidD_GetFeature)进行通信、HidD_SetFeature、HidD_GetInputReport、HidD_SetOutputReport,甚至 ReadFile 和 WriteFile 函数都可以工作。

  2. 但是,如果您的收发器有一个 RS232 D9 端口,那么您可能必须插入一个 USB 串行适配器,正如我之前所说的那样 b/w PC 和您的收发器。在这种情况下,我们需要在 HID 报告描述符中开发具有自定义顶级 HID 集合的 UMDF USB Hid 微型驱动程序。该驱动程序将完全是一个虚拟驱动程序,并将其自身与实际的虚拟 COM 端口一起附加到设备管理器。HID 兼容应用程序将与此虚拟驱动程序通信,并将收发器视为 USB HID 设备,尽管它实际上是一个 COM 端口。UMDF 驱动程序将负责虚拟 com 端口和 HID 应用程序之间的通信。

如果您有任何疑问或寻求任何进一步的澄清,请告诉我。

于 2013-12-11T03:55:11.607 回答