【问题标题】:Looking for virtual USB HID driver寻找虚拟 USB HID 驱动程序
【发布时间】:2010-12-15 20:11:55
【问题描述】:

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

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

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

【问题讨论】:

标签: usb driver hid virtual-serial-port


【解决方案1】:

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

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

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

【讨论】:

  • 亲爱的戴尔,我们团队没有经验,这就是我们打电话的原因。 USB 记忆棒实际上是一个无线电收发器,它所需要的只是与 9600 bd 的应用程序的串行连接。因为它被打包为 USB 记忆棒,所以应用程序通过 USB (HID) 驱动程序查找串行链接。
  • 好的,那么如果您将收发器替换为通用 USB HID 设备(例如鼠标),它可以工作吗?是否也可以使用 PC 上的收发器来控制鼠标/kbd?
  • 收发器充当 pc 应用程序和 Z-wave 家庭网络之间的接口。当应用程序需要 USB 时,它有一个串行链接。我们无法修改应用程序,因此我们寻找中间解决方案。谢谢,雅各布
【解决方案2】:

【讨论】:

    【解决方案3】:

    这很有趣...我想了解更多关于您现有设备的信息,即“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 mini 驱动程序,以便在安装我们的驱动程序后,您的虚拟 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 串行适配器,正如我之前所说的,将 PC 和收发器进行黑白连接。在这种情况下,我们需要在 HID 报告描述符中开发具有自定义顶级 HID 集合的 UMDF USB Hid 微型驱动程序。该驱动程序将完全是一个虚拟驱动程序,并与实际的虚拟 COM 端口一起附加到设备管理器。 HID 兼容应用程序将与此虚拟驱动程序通信,并将收发器视为 USB HID 设备,尽管它实际上是一个 COM 端口。 UMDF 驱动程序将负责虚拟 com 端口和 HID 应用程序之间的通信。

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

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 2016-05-26
      • 2020-09-27
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多