USB协议
USB官方地址:https://www.usb.org/document-library/usb-20-specification
USB 即“Universal Serial Bus ”,中文名称为通用串行总线。。USB接口具有传输速度更快,支持热插拔以及链接多个设备的特点。目前已经在各类外部设备中广泛的被采用。目前USB接口有三种:USB1.1和USB2.0,以及近年来出现的USB3.0。理论上USB1.1的传输速度可以达到12Mbps,而USB2.0则可以达到速度480Mbps,并且可以向下兼容USB1.1。
主流版本区别:
速度对比
USB2.0高速规范把传输速度提高到了480Mbps,也就是60MByte/s,是USB 1.1设备的40倍
USB1.1,支持全速12Mbps和低速1.5Mbps。
USB2.0,兼容1.1,增加了高速480Mbps。
USB3.0,兼容2.0,增加了超速5Gbps。
硬件结构
USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游(Downstream)设备提供电源,对于高速且需要高带宽的外设,USB以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据。USB总线会根据外设情况在两种传输模式中自动地动态转换。USB是基于令牌的总线。类似于令牌环网络或FDDI基于令牌的总线。USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机(Host),集线器(Hub)和功能设备。
USB3.0 —— 也被认为是SuperSpeedUSB——为那些与PC或音频/高频设备相链接的各种设备提供了一台标准接口。
计算机内只有安装USB3.0相关的硬件设备后才可以使用USB3.0相关的功能!从键盘到高吞吐量磁盘驱动器,各种器件都能够采用这种低成本接口进行平稳运行的即插即用链接,用户基本不用花太多心思在上面。新的USB 3.0在保持与USB 2.0的兼容性的同时,还提供了下面的几项增强功能:
● 极大提高了带宽——高达5Gbps全双工(USB2.0则为480Mbps半双工)
● 实现了更好的电源管理
● 能够使主机为器件提供更多的功率,从而实现USB——充电电池、LED照明和迷你风扇等应用。
● 能够使主机更快地识别器件
● 新的协议使得数据处理的效率更高
传输速率
这款新的超高速接口的实际传输速率大约是3.2Gbps(即409.6MB/S)。理论上的最高速率是5.0Gbps(即640MB/S)。
数据传输
USB3.0 引入全双工数据传输。5根线路中2根用来发送数据,另2根用来接收数据,还有1根是地线。也就是说,USB 3.0可以同步全速地进行读写操作。以前的USB版本并不支持全双工数据传输。
USB 2.0基于半双工二线制总线,只能提供单向数据流传输,而USB 3.0采用了对偶单纯形四线制差分信号线,故而支持双向并发数据流传输。除此之外,USB 3.0还引入了新的电源管理机制,支持待机、休眠和暂停等状态。
电源
USB 3.0标准要求USB3.0接口供电能力为1A,而USB 2.0为0.5A。
USB协议的简单介绍
在用户的角度,使用USB设备是非常省事的。但是,在开发人员的角度,可是谈USB色变。
这是因为,USB硬件接口非常简单,导致上层协议非常复杂。
图2‑60 USB通信协议
由上图所示,自下而上,USB硬件接口提供物理的通信链路,EHCI等主机控制器负责调度各端点的数据流,USB驱动协助操作系统和USB设备交换数据同时能烧写固件到USB设备,GUI则让用户轻松操纵USB设备,服务器云端数据库提供各种各样的USB驱动。
USB协议,是一台主从式的协议,所有的通信都由主机发起,设备不能发起。下图,展示了USB家族的主要成员。
图2‑61 USB家族成员
USB Host,即USB主机,一般是PC机。
USB Device,即USB设备,有USB键盘、U盘等,而USB Hub集线器是一种特殊的USB设备。
USB OTG,OTG即On-The-Go,同时具备USB主机和USB设备的功能,数码相机就带有OTG的功能。
以下,细说USB2.0的方方面面。
2.4.1.1 USB硬件接口
一、接插件
图2‑62 USB插座
由上图所示,USB座有很多种类型,主要分为:公/母、直插、贴片、单/双层、扁/方,等几种类型。
同时可以看到它只有四根线,分别是VBUS、DP(或D+)、DM(或D-)、GND。此外,还有屏蔽罩,一般屏蔽罩是通过一台100nF的电容连到GND的。
二、链接线
USB线,也分几种:公对公/公对母,带磁环,带屏蔽等。
注意:USB线不能太长,否则设备可能无法正确工作。
三、热插拔
热插拔。它能让你在不断电的情况下,插拔USB设备。
如果要支持热插拔,必须在VBUS、DP、DM三根线上,加上过压、过流保护,在未上电时DP和DM要保持高阻态。
另外,要利用金手指长短来控制上电顺序,插入时首先让电源线接通,让电源稳定之后,再接通信号线,拔出时顺序正好相反。这样有效防护接口被损坏。
图2‑63 USB接口“金手指”
四、上下拉电阻。
一般,在USB主机的DP、DM都接了下拉15K欧电阻。
对于低速设备,DM接了上拉1.5K欧电阻。
对于全速设备,DP接了上拉1.5K欧电阻。
对于高速设备,一接在主机的时候DP接了上拉1.5K欧电阻,后面经过握手协议之后,DP上断开1.5K欧电阻。
五、ESD防护。
一般支持USB接口的芯片ESD防护做得不够好,这个时候要另外加ESD芯片。如下图的USBLC6。
图2‑64 USB接口的保护电路
六、端接。
端接,目的是做阻抗匹配,特别是高速480Mbps对信号质量要求较高。
一般使用串联端接,在DP、DM上串联22欧电阻。
七、UTMI+和ULPI接口。
有一些不带USB接口的处理芯片,比如,51单片机、FPGA等。它们都不能直接处理USB总线上的DP、DM的差模信号。
所以,芯片厂商开发了一些USB PHY芯片,可以把DP、DM上的差模信号转成共模信号。
其中,成为业界标准的接口,有UTMI+和ULPI。
如下图所示,UTMI+接口一共有31根信号线。
图2‑65 UTMI+接口
如下图所示,ULPI接口一共有12根信号线。
图2‑66 ULPI接口
UTMI+和ULPI,在功能上是等价的。
UTMI+和ULPI区别在于,ULPI需要读写寄存器,而UTMI+只需直接拉高或拉低信号线。
如下图所示,ULPI是在UTMI+的基础上封装了一层。
图2‑67 ULPI和UTMI+关系
显然,UTMI+接口的信号线太多,占用大量的PCB空间,才需要推出ULPI接口。
市场上,大多数的USB PHY芯片都是ULPI接口。
八、检测USB设备速度的流程描述。
对于低速设备,在DM引脚上拉1.5K。
对于全速设备,在DP引脚上拉1.5K。
对于高速设备,则需要握手协议。
a、USB主机检测到全速设备,即:DP引脚上拉1.5K。
b、USB主机复位总线,即向总线发送SE0,此SE0持续时间不得小于2.5us。
c、高速设备检测到SE0持续时间不小于2.5us后,向总线发送Chirp K信号,此Chirp信号持续时间不小于1ms且不大于7ms。
d、总线回复到SE0状态。如果USB主机支持高速模式,则必须在Chipr K信号结束后100us内做出响应。
e、USB主机在Chipr K信号结束后100us内做出响应,向总线发送连续的Chirp K/J对,每个Chirp K信号或Chirp J信号的宽度不小于40us且不大于60us,每2个相邻的Chirp K和Chirp J信号之间的间隔不应大于2.5us。
f、高速设备在检测到连续的最少3对Chirp K/J对后,在500us内必须断开DP上的上拉电阻,并链接D+和D-上的对地高速端接电阻,完成高速握手,进入高速传输模式。
高速模式的握手协议,反应在USB3300的时序,如下图所示。
图2‑68 USB3300的时序
EHCI官方手册:https://www.intel.com/content/www/us/en/products/docs/io/universal-serial-bus/ehci-specification.html
USB2.0官方手册:https://www.usb.org/usb-charger-pd
USB设备类手册:https://www.usb.org/documents?search=&type%5B0%5D=55&items_per_page=50
USB3.0官方手册:http://usb3.com/
USB3.1官方手册:https://www.usb.org/documents |