我正在为Ubuntu 16.04中的数据采集设备编写USB设备驱动程序。 数据采集设备目前在Windows中工作,制造商只提供Windows驱动程序,我需要它在Linux中工作。
因此,为了进行逆向工程,我在Windows中使用Wireshark捕获了数据。 我想出了所有设置urb,我可以将数据发送到数据采集设备并且运行良好,但问题是接收数据。 似乎有来自端点1和3的连续(周期性)数据(端点中的大量数据)。在Windows中,似乎没有任何请求数据包进入USB设备以从端点1和3接收数据,但在Linux中,仅当我发送某种请求时才接收数据(例如,读取文件操作) )。
我发现在Windows中有一个叫做“连续阅读器”的东西,但我在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-
非常感谢您的帮助,谢谢!
答案 0 :(得分:0)
您确定设备没有内置端点来宣布数据的可用性,然后使用批量IN传输获取数据吗?如何配置EP2,我假设是中断?如果您使用类似libusb的东西,则可能需要根据intr-EP描述设置中断轮询器。