USB|如何识别USB低速和USB全速设备

USB|如何识别USB低速和USB全速设备

文章图片

USB|如何识别USB低速和USB全速设备

从一个电路说起:

Eg:DP+被拉高具体是什么用途 , 由USB Controler决定 , 本电路图中DP+被拉高禁用USB设备.
1.USB
USB:UniversalSerial Bus , 中文译为“通用串行总线” , USB设备最显著的优点是具有热插拔功能、传输速率快 。 USB是主从结构的系统 , 具有主机和设备这两个角色 , 即Host和Device 。 此外 , 还有两类特殊的USB设备 , 分别是USB集线器设备(USB Hub)和USB OTG设备 。
USB协议版本有:USB1.0、USB1.、USB2.0、USB3.0 。
USB1.0和USB1.1只有低速模式(Low-SpeedMode)和全速模式(Full-Speed Mode) , 理论上最大传输速率分别为1.5Mbps和12Mbps 。
USB2.0引入了传输速度更快的高速模式(High-Speed Mode) , 理论上最大传输速率为480Mbps 。
USB3.0在速度的提升上 , 实现了重大飞跃 , 最大传输速率理论值高达5Gbps 。 需要注意的是 , 这些都是理论值 , 实际开发过程中 , 不可能达到这些理论值 。
在实际开发过程中 , 不同的传输类型有不同的传输速率 , 每一次的数据交互 , 都是一个相当复杂的过程 , 有令牌包的解析、数据包的传输、握手包的发送等等 , 这些都是额外的消耗 , 因此 , 传输速度是不可能达到理论值 。 USB有四种传输类型 , 分别是控制传输、中断传输、块传输、等时传输 。
2.USB的电气特性
USB使用差分传输模式 , 有两条数据线 , 分别是:
1)USB数据正信号线 , USB Data Positive , 即USBDP线 , 简写为D+  2)USB数据负信号线 , USB Data Minus , 即USBDM线 , 简写为D-

剩下的就是电源线(5V-Vbus)和地线(GND) 。 对于USB OTG设备 , 会多出一根ID线 。
3.USB主机端硬件控制器类型
分别有:OHCI  UHCI  EHCI XHCI 。 USB协议版本:1.0/ 1.1/ 2.0/ 3.0与协议规定标准接口的对应OHCI、UHCI都是USB1.1的接口标准;而EHCI是对应USB2.0的接口标准;最新的xHCI是USB3.0的接口标准 。
3.1 OHCI
OHCI:Open Host Controller Interface , 是USB1.1的标准 , 不仅仅是针对USB , 还支持其他的接口 , 比如支持Apple的火线(Firewire , IEEE 1394)接口 。 与UHCI相比 , OHCI的硬件复杂 , 硬件做的事情更多 , 所以实现对应的软件驱动的任务 , 就相对较简单 。 主要用于非x86的USB , 如扩展卡、嵌入式开发板的USB主控 。
3.2 UHCI
UHCI:Universal Host ControllerInterface , 是Intel主导的对USB1.0、1.1的接口标准 , 与OHCI不兼容 。 UHCI的软件驱动的任务重 , 需要做得比较复杂 , 但可以使用较便宜、较简单的硬件的USB控制器 。 Intel和VIA使用UHCI , 而其余的硬件提供商使用OHCI 。
3.3 EHCI
EHCI:Enhanced Host Controller Interface , 是Intel主导的USB2.0的接口标准 。 EHCI仅提供USB2.0的高速功能 , 而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持 。
3.4 xHCI
xHCI:eXtensible Host ControllerInterface , 是最新USB3.0的接口标准 , 它在速度、节能、虚拟化等方面都比前面3中有了较大的提高 。 xHCI支持所有种类速度的USB设备(USB 3.0的 SuperSpeed; USB 2.0 Low-、Full-、andHigh-speed; USB 1.1 Low- and Full-speed) 。 xHCI的目的是为了替换前面3种类型(UHCI/OHCI/EHCI) 。
4.识别设备的速度模式
对于设备(Device)而言 , 按照速度来划分 , 工作在低速模式下的设备称之为低速设备;工作在全速模式下的设备称之为全速设备;同理 , 工作在高速模式下的设备称之为高速设备 。 对于主机(Host)而言 , 只有全速主机和高速主机两种 。