如何知道USB设备的支持功能?

How to know a USB device's supporting function?

我想了解 USB 设备的工作原理。可以说我有一台扫描仪。当我开始扫描时,Windows 必须向设备发出一些命令才能开始扫描和传输数据。我想知道这是如何工作的?有什么方法可以列出 USB 设备的支持命令?我也可以执行这些命令并直接从 PHP 中获取数据吗?

USB 是一个复杂的主题,因此不可能在一个 Whosebug 答案中教给您所有您需要知道的知识。有很多东西需要学习,例如控制传输、描述符、接口和端点。您可以通过阅读官方 USB 2.0 规范或其摘要来了解它们。了解这些内容后,您可以使用 lsusb 等实用程序查看设备描述符,这可能会告诉您很多有关设备支持哪些命令的信息。如果设备执行 USB 规范中定义的标准 class,则您可以阅读该文档以找到命令列表。如果没有,那么您可以联系制造商获取文档,或者您可能需要 USB protocol analyzer 并进行一些逆向工程。