首页 文章

如何从Linux设备驱动程序中的USB endpoints 接收连续数据

提问于
浏览
0

我正在为Ubuntu 16.04中的数据采集设备编写USB设备驱动程序 . 数据采集设备目前在Windows中工作,制造商只提供Windows的驱动程序,我需要它在Linux中工作 .

因此,为了进行逆向工程,我在Windows中使用Wireshark捕获了数据 . 我想出了所有设置urb,我可以将数据发送到数据采集设备并且运行良好,但问题是接收数据 . 似乎有来自 endpoints 1和3的连续(周期性)数据( endpoints 中的大量数据) . 在Windows中,似乎没有任何请求数据包进入USB设备以从 endpoints 1和3接收数据,但在Linux中,仅当我发送某种请求时才接收数据(例如,读取文件操作) ) .

我在Linux中找到了从usb设备读取连续数据的任何提示 . https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/how-to-use-the-continous-reader-for-getting-data-from-a-usb-endpoint--umdf-

非常感谢您的帮助,谢谢!

1 回答

  • 0

    您确定该设备没有内置 endpoints 来宣布数据的可用性,然后使用批量IN传输获取数据吗?如何配置EP2,我假设是中断?如果使用类似libusb的东西,则可能需要根据intr-EP描述设置中断轮询器 .

相关问题