【问题标题】:how can the computer distinguishes between keyboard USB and mouse USB?电脑如何区分键盘USB和鼠标USB?
【发布时间】:2017-01-27 13:10:15
【问题描述】:

想知道PC如何区分多个USB。例如,当我将闪存驱动器 USB 插入计算机时,它如何知道它是闪存驱动器 USB 而不是键盘 USB

提前致谢。

【问题讨论】:

  • 错误的站点。您正在寻找Super User。该站点用于编程相关问题。话虽如此:当您插入设备时,操作系统会查询它是什么,并且设备会告诉它。就像你走进一家餐馆,服务员走过来一样。他们问你想吃什么,你告诉他们。你认为它还能怎么做?
  • 感谢您的回复,我只是想知道这是怎么回事。你帮助了我,我得到了答案,谢谢。

标签: usb usb-drive


【解决方案1】:

在 USB 标准中有 USB 类,记忆棒是 USB 大容量存储类,键盘、鼠标、操纵杆是 USB HID 类(人机接口设备),相机实现USB PTP(图片传输协议),USB-to-serial(虚拟COM端口,...)是USB CDC ACM类, ...

以下链接列出了该 Windows 的所有 USB 类具有驱动程序https://msdn.microsoft.com/en-us/library/windows/hardware/ff538820%28v=vs.85%29.aspx

当插入 USB 设备时,USB 设备(固件)上的 MCU 和 PC(USB 主机)之间会进行通信。在这种通信中,设备说明它是哪个 USB 类,主机加载合适的驱动程序

您可以使用 wireshark 或查看 dmesg(在 linux 上)来嗅探此通信

这种通信是非常低级的,不容易被人类阅读。有像wiresharklsusb -v 这样的工具

USB 设备必须实现一个特殊的描述符层次结构,其中包含 USB 设备内部结构的信息。层次结构是:

设备描述符 -> 配置描述符 -> 接口描述符 -> 端点描述符

EP0 保留用于控制传输,否则任何传输都必须去往或来自端点(OUT 端点/IN 端点)

http://www.beyondlogic.org/usbnutshell/usb1.shtml

USB 是一个非常复杂的标准,因为它在一个物理接口中为大量不同的设备实现了广泛的功能。我认为最复杂的 USB 类标准是 USB 音频...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-18
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2021-03-22
    • 2011-05-12
    相关资源
    最近更新 更多