USB 设备常识

1,标准:
  USB 传输有自己的标准,目前有 USB 1.0、USB 1.1 和 USB 2.0 三种。USB 1.0 标准,传输速度上限为 1.5Mb/s,早已被淘汰。Pentium 3 时代的计算机大多都使用 USB 1.1,传输速度为全速状态时上限 12Mb/s、低速状态时上限 1.5Mb/s。USB 2.0 增加了一个高速状态,传输速度上限为 480Mb/s。
  USB 1.1 接口:在系统装有 USB 1.1 驱动(Windows 98 及以上的 Windows 系统自带)的情况下,计算机的 USB 1.1 接口会把 USB 2.0 设备当 USB 1.1 标准来传输,即使有的系统知道此设备是 USB 2.0 设备。
  USB 2.0 接口:在系统装有 USB 2.0 驱动(Windows 2000 Pro SP4 及以上的 Windows 系统自带)的情况下,计算机的 USB 2.0 接口可以兼容 USB 2.0 和 USB 1.1 的设备,按照设备的标准传输;系统没安装(也非自带) USB 2.0 驱动,则即使计算机有 USB 2.0 接口,也只能识别 USB 1.1 的设备并传输。

2,计算机端(Windows / PCI 篇):
  Windows 系统启动时,注册表枚举器开始初始化,并按照一定的顺序扫描 Rootkey 的子键注册表项,装载对应的驱动程序。注册表枚举器装载 PCI 总线驱动程序后,转由 PCI 总线驱动程序加载总线设备的驱动,包括配置和枚举两个过程(都基于注册表)。若发现 USB 主控制器(USB Host Controller),装入 USB 类驱动程序。
  在 PC 上,PCI to USB Host Controller 分为 Universal PCI to USB Host Controller 和 Enhanced PCI to USB Host Controller,每个 PCI to USB Host Controller 带一个 USB 根集线器(USB Root Hub)。一块主板上 Universal PCI to USB Host Controller 一般有两个以上(包括两个),每个所带的根集线器上一般拖两个 USB 接口。Enhanced PCI to USB Host Controller 一般只有一个,是负责 USB 2.0 设备的;其根集线器拖的接口数,一般和所有 PCI to USB Host Controller 的根集线器拖的接口总数相等,也就是包括跳线在内的物理接口数,这样每个物理接口上的 USB 设备都可以选择是与 Universal PCI to USB Host Controller 还是 Enhanced PCI to USB Host Controller 通讯——这就是 USB 2.0 接口能兼容 USB 1.1 的原因。根集线器下也可以拖子集线器,一般是放置在计算机外,甚至可以算作接入设备的一部分。一个 PCI to USB Host Controller 所创造的 USB 网络最多能接入 127 个设备。
  每个 USB 控制器都有一定的带宽,PCI to USB Host Controller 自然也是,Windows XP 下不连接 USB 设备时会为其保留 10% 的带宽,若其下根集线器或子集线器接上设备,则带宽占用就会增加——如果到达 100%,则再接设备会降低各设备的传输速度。每个根集线器的标准供电为 5V,接口为并联,单个接口的标准最大电流为 500mA。

3,接入设备端(Windows / PCI 篇):
  USB 的传输线与接口都是由四条电线构成的,两根传输 5V 的电压,两根传输数据。当设备插入计算机或外部子集线器接口时,电路接通,然后就是识别过程。
  USB 主控制器电路负责监测 USB 设备的插入,并通知 USB 驱动程序,驱动程序告知 PnP 管理器一个新的设备到达。当一个新的设备到达时,被分配的地址为默认地址 0。主机读取其设备描述符,然后分配其 1——127 的地址,根据设备所分配的地址,主机进行进一步的配置。这样使得设备的端点都可用。此时设备管理器里“通用串行总线控制器”又会多出新的子项。Windows 检查配置、接口、端点描述符,并装入合适的设备驱动程序。设备的加载过程就结束了。
  一般的 U 盘接上去都是需要 100mA 电流的,理论上应该不会出现供电不足(500mA 是每个根集线器提供电流的起码上限),但实际上,带两个接口的集线器能供应的总电流低于 200 mA 也很正常,插上两个 U 盘后就使用不正常了……当然还有更劣质的……至于电压是否也会出现不足,我想也是有可能发生的。所以,不到 100mA 就能正常工作的 U 盘,就成了传说中兼容性极好的 U 盘了。