电脑如何区分键盘USB和鼠标USB?
how can the computer distinguishes between keyboard USB and mouse USB?
想知道 PC 如何区分多个 USB。例如,当我将闪存驱动器 USB 插入计算机时,它怎么知道它是闪存驱动器 USB 而不是键盘 USB ?
提前致谢。
USB标准中有USB classes记忆棒是USB mass storage class , keyboard, mouse, joystick are USB HID class (Human Interface Device), cameras implement USB PTP (picture transfer protocol), USB-to-serial(虚拟 COM 端口,...)是 USB CDC ACM class,...
以下 link 列出了 windows 具有驱动程序 https://msdn.microsoft.com/en-us/library/windows/hardware/ff538820%28v=vs.85%29.aspx
的所有 USB classes
当插入 USB 设备时,USB 设备(固件)上的 MCU 与 PC(USB 主机)之间会进行通信。在此通信中,设备说明它是哪个 USB class 并且主机加载合适的驱动程序
您可以使用 wireshark
嗅探此通信或查看 dmesg
(在 linux 上)
这次交流非常low-level,并不容易human-readable。有像 wireshark
或 lsusb -v
这样的工具
USB 设备必须实现一个特殊的描述符层次结构,其中包含 USB 设备内部结构的信息。层次结构是:
设备描述符 -> 配置描述符 -> 接口描述符 -> 端点描述符
EP0 保留用于控制传输,否则任何传输都必须去往或来自端点(OUT 端点/IN 端点)
参见 http://www.beyondlogic.org/usbnutshell/usb1.shtml
USB 是一个非常复杂的标准,因为它在一个物理接口中为大量不同的设备实现了广泛的功能。我认为最复杂的 USB class 标准是 USB 音频...
想知道 PC 如何区分多个 USB。例如,当我将闪存驱动器 USB 插入计算机时,它怎么知道它是闪存驱动器 USB 而不是键盘 USB ?
提前致谢。
USB标准中有USB classes记忆棒是USB mass storage class , keyboard, mouse, joystick are USB HID class (Human Interface Device), cameras implement USB PTP (picture transfer protocol), USB-to-serial(虚拟 COM 端口,...)是 USB CDC ACM class,...
以下 link 列出了 windows 具有驱动程序 https://msdn.microsoft.com/en-us/library/windows/hardware/ff538820%28v=vs.85%29.aspx
的所有 USB classes当插入 USB 设备时,USB 设备(固件)上的 MCU 与 PC(USB 主机)之间会进行通信。在此通信中,设备说明它是哪个 USB class 并且主机加载合适的驱动程序
您可以使用 wireshark
嗅探此通信或查看 dmesg
(在 linux 上)
这次交流非常low-level,并不容易human-readable。有像 wireshark
或 lsusb -v
这样的工具
USB 设备必须实现一个特殊的描述符层次结构,其中包含 USB 设备内部结构的信息。层次结构是:
设备描述符 -> 配置描述符 -> 接口描述符 -> 端点描述符
EP0 保留用于控制传输,否则任何传输都必须去往或来自端点(OUT 端点/IN 端点)
参见 http://www.beyondlogic.org/usbnutshell/usb1.shtml
USB 是一个非常复杂的标准,因为它在一个物理接口中为大量不同的设备实现了广泛的功能。我认为最复杂的 USB class 标准是 USB 音频...