windows - 使用适用于 Windows 的通用 USB 设备驱动程序

标签 windows usb driver

哪些类型的USB设备驱动可以不用支付微软认证费用?

我想制作通过 USB 连接的硬件和软件。 This article说明如何使用 HID 设备配置文件。

我的问题:我可以使用哪些其他类型的配置文件?我的设备必须与驱动程序的用途有多相似?

具体来说:我想获得尽可能高的带宽——我正在制作一个高速数据记录器。例如,我可以使用某种网络摄像头驱动程序来获取高带宽流数据吗? (或者数据是否必须采用某种图像格式?)

谢谢

最佳答案

What types of USB device drivers can be used without paying for Microsoft certification?

明确地说,从技术上讲,您无需向 Microsoft 支付任何费用即可让 USB 设备驱动程序在计算机上运行(它们确实需要通过 CA 或自签名证书进行数字签名)。

My question: What other types of profiles exist that I could use? And how closely does my device have to resemble what the driver is meant for?

This MSDN page列出 Windows 随附的开箱即用驱动程序的 USB 设备类:

  • 音频类
  • 蓝牙类(class)
  • 通讯设备类
  • 内容安全等级
  • 影像类
  • 集线器设备类
  • 人机接口(interface)设备 (HID) 类
  • 海量存储类
  • 媒体传输协议(protocol)设备
  • 打印机类
  • 智能卡类
  • 视频课

如果您想利用内置驱动程序,您可能想尝试将您的应用程序与上述类别之一“匹配”。但是,Communications 和 HID 设备类都允许全双工传输任意数据,因此如果您只想来回发送字节,那么其中任何一个都适用。

Specifically: I want to achieve the highest possible bandwidth - I'm making a high speed data logger. Could I for example use some sort of webcam driver to get the high bandwidth stream data? (Or would the data have to then be in some sort of image format

您需要多高的速度?如果它小于 64,000 字节/秒(这对于大量数据记录应用程序来说实际上已经相当快),那么通过全速 USB 的 HID 类就可以正常工作。否则,您可以尝试使用通信设备类。 (不过,我只对 HID 设备类有直接经验)。

请注意,数据传输速度并不是您需要考虑的唯一因素。 USB 是一种总线,因此总总线带宽由连接到它的所有设备共享。为帮助管理这一点,USB 定义了不同类型的传输:中断、等时和批量。

HID类使用中断传输,而Communications类一般使用批量传输。中断传输的延迟往往比批量传输短得多,因此这可能是一个重要的考虑因素。

关于windows - 使用适用于 Windows 的通用 USB 设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15597032/

相关文章:

usb - bDescriptorType 为 0x24 意味着什么?

linux - Zigbee内核驱动

python - 通过 PySpark 连接到 Redshift,我们如何让驱动程序工作?

android - 无法接收 UsbManager.ACTION_USB_DEVICE_ATTACHED/UsbManager.ACTION_USB_DEVICE_DETACHED 的广播 Intent

javascript - WebUSB - "Unable to claim interface"错误

ruby-on-rails - 如何在 Windows PC(Windows 7/Windows 8)上部署 Rails 应用程序?

c++ - C++ MFC 程序是完全原生的吗?

mysql - 是否存在支持单个字符串中的多个语句的 Go Mysql 驱动程序?

c++ - Win32 上的 LAPACK

linux - 从 Linux 主机触发 Visual Studio 构建