为什么外部设备连接器是 USB A 型。但当连接到计算机时,它会列在 com 端口或 usb 上?计算机如何识别这一点?
另外,关于 com 端口。为什么设备的 com 端口号不同?据我所知,当将相同型号的设备连接到同一端口时,它们具有相同的端口号,但是当将不同类型的设备连接到同一端口时,它们具有不同的端口号?
答案1
有关详细答案,请参阅 USB 规范,您可以找到这里。
简单版本:
每个制造 USB 设备的人都有 VID(供应商 ID),这是一个您必须购买的 16 位数字。
他们为生产的每件产品分配一个 PID(产品 ID),这也是一个 16 位数字。除了唯一标识产品之外,每件产品可能还具有序列号,但这不是标准所要求的。
在 USB 中,一切都由主机 (PC) 驱动。当您将设备插入时,您的操作系统会向设备询问其 VID 和 PID,如果它识别这些,它就可以与之对话,如果不识别,您将有机会安装该设备。
对于虚拟串行端口,Windows 使用序列号(如果可用)来分配端口号,其他操作系统可能有所不同。
答案2
连接后,USB 设备会传输有关其设备类型的信息。此信息称为 USB 描述符,其中包含供应商 ID、产品 ID 和设备类别等。这是 USB 规范的一部分。
即使非常简单的设备也可能有一些内存来存储和传输描述符到主机 (PC)。键盘将自己标识为人机接口设备,硬盘驱动器标识为大容量存储设备等等。操作系统决定如何处理这些信息。通常会选择正确的驱动程序并以合理的方式将其公开给其他软件。