我有一个USB设备,其相关的端点描述符声明了bInterval
,对于我对此外围设备的使用来说,它太高了。我有理由相信它可以处理更高的频率,与它声明的相反。
它的唯一接口的bDeviceClass
为0,bInterfaceClass
为3,这表示它是HID。
我希望能够使用libusb查询此设备。目前,我将WinUSB驱动程序绑定到此设备。但是,使用libusb调用中断传输会将查询(到设备)的延迟延迟到先前的查询离开时间,再加上设备指定的最短轮询时间。
例如,如果设备是FullSpeed,而我的bInterval
是10,而查询则留在X=0,073s
上;尽管在X+10*1ms=0,083s
处调用了libusb函数,但我的下一个查询仍留在0,076s
处。延迟是由驱动程序引起的,并在查询离开时发生。
我对USB外设很陌生,我在网上找到的所有内容似乎都是针对鼠标/键盘或Linux的。我需要编写自己的驱动程序吗?完全?是否可以在不了解USB规范的所有深度的情况下修改现有WinUSB驱动程序的间隔处理部分?有编写驱动程序的替代方法吗?
非通用信息:在这种情况下,我使用的是Windows 10,设备是FullSpeed,bInterval
是8,我正在查询in(设备->主机)中断端点,并且使用WinUSB v6.1.7600.16385。
这是我之前的问题How are USB peripherals' bIntervals enforced?之后的问题,但不同的问题应分开存放。