一、USB2.0系统构成
????????USB(UniversalSerialBus)体系包括“主机(Host)”、“设备(Device)”以及“物理连接(Connector)”三个部分。其中主机是一个提供USB接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。一个USB系统中仅有一个USB主机(Host);设备(Device)包括USB功能设备(Function)和USBHUB,最多支持127个设备;物理连接即指的是USB的传输线。
????????USB体系采用分层的星型拓扑来连接所有USB设备,如下图所示:以HOST-ROOTHUB为起点,最多支持7层(Tier),也就是说任何一个USB系统中最多可以允许5个USBHUB级联。一个复合设备(CompoundDevice)将同时占据两层或更多的层。
????????最常见的USB系统为PC机和USB外设的系统, 一个PC机通常集成了USB Host和USB Root Hub。USB Hub是市场上很常见的USB 接口扩展设备;U盘,USB Modem,USB网卡等是很常见的USB功能设备。
二、USB的发展
????????USB接口标准制定最先由Compaq、Hewlett-Packard、Intel、Lucent、Microsoft、NEC、Philips等大公司发起,目前该标准已经升级到3.0版本,但目前在市场上有影响力的设备主要为USB2.0。 USB 3.0,USB2.0,USB1.1依次向下兼容,当有全速(USB 1.1)或者低速设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB 以及USB 功能设备。
USB标准 | USB1.1 | USB2.0 | USB3.0 |
制定时间 | 1998-09 | 2000-04 | 2007-09 |
最高速率 | 12Mbps | 480Mbps | 4.8Gbps |
信号线类型 | 两个单端信号线 | 1对差分信号 | 3对差分线 |
支持模式 | Full-Speed(12Mbps) Low-Speed(1.5Mbps) | High-Speed(480Mbps) Full-speed,Low-Speed | SuperSpeed(4.8GMps) non-SuperSpeed |
Cable要求 | 未要求 | Shielded | Shielded |
????????USB数据传输的最高速率是按照每个数据位所占用的时间计算出来,对于High-Speed模式而言,一个数据位(0或1)的时间为2.083ns,故理论的最高数据速率为1/2.083ns=480Mbps。但实际上有效数据的传输速率达不到这么高,因为在有效数据传输之前和之后通常需要一些时间来传输同步信号及结束信号等其它非有效数据信号,就像以太网的数据包封装了IP地址和MAC地址一样。
????????USB的官方机构是USB-IF(USB Implementers Forum),它负责USB标准的维护和更新,网站http://usb.org。
三、USB接口的标准
3.1?机械标准
USB2.0标准规定USB接口的物理规范如下:
对于USB线缆,USB2.0标准只能为以下的三种插头形式的组合:
①标准可插拔线缆(Detachable Cable):一端为A型插座,另外一端为B型插座,USB Modem产品的USB配线即为此种;
②高速/全速不可分离电缆(Captive Cable):一端为A型插座,另外一端厂商根据实际高速/全速USB产品指定,如手机,MP3的USB配线;USB键盘等;
③低速电缆不可分离电缆(Captive Cable):一端为A型插座,另外一端厂商根据实际低速USB产品指定。
标准也规定了USB Cable的最长长度为5m。
3.2 电气标准
USB2.0的BUS由四根线组成:电源VBUS(Red),GND(Black),信号D+(Green),信号D-(White),USB标准里面也指定了这四根线在USB电缆里面的颜色(上一句括号里面已标明)。其中电源线VBUS可用于由USB主设备向从设备供电,供电电压为+5V,一个USB Host端口最多可以提供500mA的电流。
对于工作于High-Speed模式下信号线,关键的电气参数如下:
单端信号高电平范围:360mV~440mV;单端信号低电平范围:-10mv~10mV;
单端输出阻抗:45Ω;差分输出阻抗:90Ω; (PCB布线时要求阻抗控制为90Ω)
对于工作于Full-Speed模式下信号线,关键的电气参数如下:
单端信号高电平范围:2.8V~3.6V(比较常见的是3.3V信号电平);单端信号低电平范围:0v~0.3V;
差分输出阻抗:90Ω±15%。
四、USB接口协议
4.1?主设备对从设备的检测
????????如下图所示,USB Host的D+,D-信号线均内置了15KΩ的下拉电阻,当一个USB Host的输出口没有外接从设备时,信号线电平下拉到低电平;当输出端口外接Full-Speed的USB从设备时,由于USB从设备在D+信号线上上拉了1.5K电阻,最终使得主设备检测到D+信号线电平的变化,主设备由此识别到在端口上外接了USB从设备。当从设备从Host设备上拔下时,主设备数据线没有发送数据时,Host设备检测到数据线电平下拉到低电平,从此判断从设备被拔出。
4.2 USB主设备供电及Inrush电流
USB主设备对从设备有三种供电方式:从设备自供电,主设备对从设备完全供电,主设备对从设备部分供电(USB Host端口最多提供500mA的电流,从设备需要的其它电流由自己供电,但两部分电源应该分开)。
USB设备在热插时均会产生强电流(Inrush Current),这种强电流会导致USB总线供电电压下降(最大允许Droop电压为330mV),一方面会导致总线上的其它Device不能正常工作;另一方面可能导致插入的Device无法启动,更严重的情况会烧坏Host设备。Inrush电流产生的原因如下: 在热插或设备的工作状态由低功耗切换为高功耗时,由于从设备上Vcc对地存在的电容及瞬间负载过大的影响,在Vcc上将会由主设备向从设备注入瞬间强电流。
为保证USB接口的可靠的设计,通常需要使用一些限流电路。最常见最通用的限流电流就是直接利用板上已有34063电源电路的限流功能,但这很显然不是一种很好的方法;其它比较常用的方法有使用保险丝和USB专用过流保护供电芯片两种方式。使用USB专用供电芯片MP62055进行过流保护,电路图如下。该芯片输入5V电压,输出限流的5V USB电压,同时该芯片还有防止电流倒灌等功能。
另外在热拔时会由于线上的电感效应的存在,突变的电流会在Host端和Device端会产生Flyback Voltage,在Host端的表现为引入了噪声,在Device端则需要注意反转电压的幅度不能过大。但这些现象一般影响很有限,设计上基本上没有进行相应的考虑。
4.3 确定信号速率及工作模式
当USB 2.0主设备检测到有从设备连接至其端口后,就会按照Full-Speed模式通讯,对USB2.0从设备发送查询及复位指令,当确定从设备可以工作于High-Speed模式时,主设备会修改端口状态寄存器的值,复位完成后,USB系统将按照High-Speed模式通信。
4.4?信号的编码
USB 2.0 High-Speed模式采用反转不归零NRZI(Non return to zero,inverted)编码。 这种编码方式对于要编码的数据遇0跳变,遇到1不变。对于要发送的01序列,先编码成JK状态(编码后的J状态表示发送高电平,K状态表示发送低电平),再驱动到总线上。
4.5?数据包格式
任何一个数据包由三个域组成:Sync Field,Packet Field,End of Packet。如下图所示:
其中Sync Field(同步信号)是15个KJ状态再加2个K状态,共32位,如下图所示:
Packet Filed的格式较复杂,这里不详细讨论,EOP的格式在4.2.4小节部分再做描述。