USB2.0速度识别

转载 2011年01月18日 16:21:00

原文地址: http://hi.baidu.com/doyanger/blog/item/af45d995dd64f419d31b704d.html

 

                                                 USB2.0速度识别

   我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而 USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到 USB1.x的hub 上,那该设备只能工作在全速模式下。 不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行。

全速和低速识别
  
   根据规范,全速(Full Speed)和低速(Low Speed)很好区分,因为在设备端有一个 1.5k的 上拉电阻,当设备插入hub或上电(固定线缆的USB设备)时,有上拉电阻的那根数据线就会被拉高,hub根据D+/D-上的电平判断所挂载的是全速设备还是低速设备。如下两图:
USB全速设备上电连接

(Full-speed Device Cable and Resistor Connections)


 

USB低速设备上电连接

(Low-speed Device Cable and Resistor Connections)


高速识别

  
   USB 全速/低速识别相当简单,但USB2.0,USB1.x就一对数据线,不能像全速/低速那样仅依靠数据线上拉电阻位置就能识别USB第三种速度:高速。因此对于高速设备的识别就显得稍微复杂些。

  高速设备初始是以一个全速设备的身份出现的,即和全速设备一样,D+线上有 一个1.5k的 上拉电阻。 USB2.0的hub把它当作一个全速设备 之后,hub和设备通过一系列握手信号确认双方的身份。 在这里对速度的检测是双向的,比如高速的hub需要检测所挂上来的设备是高速、全速还是低速,高速的设备需要检测所连上的hub是USB2.0的还是1.x的,如果是前者,就进行一系列动作切到高速模式工作,如果是后者,就以全速模式工作。

  下图展示了一个高速设备连到 USB2.0 hub上的情形:


   hub检测到有设备插入/上电时,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms。

   高速设备看到复位信号后,通过内部的电流源向D-线持续灌大小为 17.78mA 电流。因为此时 高速设备的 1.5k 上拉电阻还未撤销,在hub端,全速/低速驱动器形成一个阻抗为45欧姆(Ohm)的终端电阻,2电阻并联后仍是45欧姆左右的阻抗,所以在hub端看到一个约800mV的电压( 45欧姆*17.78mA ),这就是Chirp K信号。 Chirp K信号的持续时间是1ms~7ms

   在hub端,虽然下达了复位信号,并一直驱动着 SE0 ,但USB2.0的高速接收器一直在检测 Chirp K信号,如果没有 Chirp K信号看到,就继续复位操作,直到复位结束, 之后就在全速模式下操作 如果只是一个全速的hub,不支持高速操作,那么该hub不理会设备发送的 Chirp K信号,之后设备也不会切换到高速模式。

  设备 发送的 Chirp K信号结束后100us内, hub 必须开始回复一连串的KJKJKJ....序列,向设备表明这是一个USB2.0的hub。这里的 KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。 KJ序列停止后的100~500us内结束复位操作。hub发送 Chirp KJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。

   再回到设备端来。设备检测到6个 hub 发出的 Chirp 信号后(3对 KJ序列),它必须在500us内切换到高速模式。切换动作有:
1. 断开
1.5k的 上拉电阻。
2. 连接D+/D-上的高速终端电阻(high-speed termination),实际上就是全速/低速差分驱动器。
3. 进入默认的高速状态。

  执行1,2两步后,USB信号线上看到的现象就发生变化了:hub发送出来的 Chirp KJ序列幅值降到了原先的一半,400mV。这是因为设备端挂载新的终端电阻后,配上原先hub端的终端电阻 ,并联后的阻抗是22.5欧姆。400mV就是由17.78mA*22.5Ohm得来。以后高速操作的信号幅值就是400mV而不像全速/低速那样的3V。

   至此,高速设备与 USB2.0 hub握手完毕,进行后续的480Mbps高速信号通信。

最后附上几幅实际USB高速识别的示波器抓图,图中蓝色信号是D+,黄色信号是D-。

1.数据线D+在T点之前挂上1.5K电阻,在T点被host拉成SE0状态。在近2ms后,设备发送第一个Chirp K,向host通知说:我是一个高速设备,如果可能,请用高速方式与我通信。其幅度是800mV(17.78mA * (45
Ohm || 1.5k Ohm ) = 800mV,见上文解释)。在这里, Chirp K的持续时间是2.13ms(a,b两点之间)。

2.这幅图显示了host发出的chirp KJ信号的幅度,头几个KJ是800mv(a,b之间),随后的是400mV。图中可以看到设备在收到第三个chirp J(蓝色短条)后马上把1.5k电阻取消,导致
chirp J的幅值下降到400mV。(17.78mA * (45 Ohm || 45Ohm ) = 17.78mA * 22.5 Ohm = 400mV )

3.量测了一个chirp J的宽度:43.5us。

 

 

最后附上一张来自Don Anderson的USB System Architecture里的USB HS接口图:

相关文章推荐

USB2.0速度识别

我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到USB1....

USB2.0速度识别

这篇文章是转载的,写得很好,解决了我的很多迷惘!好!好!好! 转自:http://hi.baidu.com/doyanger/blog/item/af45d995dd64f419d31b704d...

USB2.0速度识别

USB2.0速度识别 我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device...

USB2.0速度识别--区分低速-高速-全速

转载自: http://blog.csdn.net/cescf4/article/details/8601457 http://blog.csdn.net/yanlai20/article...

高速USB 2.0的CMSIS-DAP调试器:CMSIS-DAP正确打开方式(3月18日更新速度和稳定性)

本文介绍 CMSIS-DAP 1.10 在 STM32F 上实现的高速 USB 2.0 调试器。CMSIS-DAP Debugger 是 ARM 发布的面向 Cortex 系列 MCU 的开源 JTA...

linux 如何识别USB2.0和USB1.1

1,测试速度 hdparm -Tt /dev/hda  可以测试相关USB设备的读速度。 s5pv210 USB2.0 测试U盘速度大概14MB/S,1.1的速度是960KB/S,USB2.0的读...

XFastUsb 提升USB传输速度

  • 2016-08-15 13:58
  • 1.14MB
  • 下载

从0开始免费获取比特币,比一个usb烤猫的获取速度还快

推荐到https://blockchain.info/zh-cn/wallet注册在线钱包,然后你就有钱包地址了(已有的跳过),比如本人的钱包地址15bCmzCW74cznA9k6byr1aQcfH5...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)