注:本文是根据网上的一些资料整理而成。

1 前言

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

2 全速和低速USB的识别

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


图1 全速USB设备的连接

图2 低速USB设备的连接

3 高速USB的识别

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

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

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


图3 高速USB的协商过程
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 * (45ohm ||1.5kohm) = 800mV,见上文解释)。在这里,Chirp K的持续时间是2.13ms(a,b两点之间)。


    图4 示波器截取的高速USB协商过程1

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


    图5 示波器截取的高速USB协商过程2

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

    图6 示波器截取的高速USB协商过程3

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


图7 High-Speed signal Interface

全速USB和高速USB的识别过程分析相关推荐

  1. STM32 USB高速USB端口加持4G联网

    本文由RT-Thread论坛用户@fhqmcu原创发布:https://club.rt-thread.org/ask/article/8fc0968257c2ca01.html 1.前言 关于STM3 ...

  2. [STM32F769-DISC] 【F769IDISCOVERY评测】高速USB VCP和全速USB VCP 速度对比

    [STM32F769-DISC] [F769IDISCOVERY评测]高速USB VCP和全速USB VCP 速度对比   [复制链接]     creep 该用户从未签到 61 主题 1995 帖子 ...

  3. usb阅读笔记-----USB设备被识别流程

    Usb设备识别加载过程 (1)集线器检测新设备 主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察.(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5k ...

  4. 高速USB模式下 UAC2.0

    UAC2.0 Win10原生驱动已经支持,同时UAC2.0较UAC1.0有天生的高带宽.低延时的优势.支持32bit 384k的音频格式,同时支持USB High Speed! stm32f407+U ...

  5. 高速USB转4串口产品设计-TTL串口

    基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口.CH344芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Wind ...

  6. 这台计算机上没有安装高速USB主控器,提示安装“高速USB主控制器”的解决方法...

    点此进入最大化返利网 点此进入天猫商城 最近将U盘插入电脑会有这样的提示: 此设备可提高性能 如果您将此USB设备连接到高速USB2.0端口,可以提高其性能. 要查看可用端口的列表,请单击此处. 然后 ...

  7. HSIC一种基于USB的高速芯片通讯协议

    从下面的资料可看出: ①USB+PHY 之后通过USB cable 连接. ②USB2.0可以直接通过HSIC直连,属于芯片间的连接方案.速度可达480M,是IIC的理想替代. 芯片间USB(IC-U ...

  8. USB转串口那些事儿—浅谈高速USB转串口

    串口作为最常用的通讯接口之一,对于其通讯速度的要求也在不断提升.类似于一些具有高速串口的MCU/FPGA/DSP等在进行系统日志交互.高速数传.串口下载时会需要高于921600bps的串口波特率,如: ...

  9. 模拟usb设备_高速USB数据采集卡

    高速USB数据采集卡 同步.高速 USB-1602HS&1604HS 系列 该系列设备提供了最高4路模拟输入通道,采样率最高可达2MS/s/Ch,外加最高2路模拟输出,4路计数器和3路编码器测 ...

最新文章

  1. (接口)让僵冷的翅膀飞起来---从实例谈OOP、工厂模式和重构
  2. Android 模拟Uart 串口通信
  3. 机器人抓矸石_基于机器视觉的多机械臂煤矸石分拣机器人系统研究
  4. linux ----- Vim进入和退出命令
  5. 思科推出EnergyWise合作伙伴计划
  6. struts2 文件上传与下载 (初始文件上传的底层技术)——struts2第七讲
  7. 极大似然估计(Maximum Likelihood)与无监督
  8. .NET Core微服务开发网篇-ocelot
  9. 电脑PHP漏洞啥意思,PHP漏洞详解
  10. linux 常用命令02--文件属性 以及软硬链接
  11. 读书笔记_打开量化投资的黑箱10
  12. 1.2Tensorflow的Session操作
  13. 海信电视老出现android是什么意思,海信电视屏幕上显示“智能电视系统启动中,请稍后”是什么意思?怎样处理?- 一起装修网...
  14. ws office excel 基础公式
  15. xp计算机u盘重装系统,如何用u盘装xp系统_纯净版xp系统_xp系统安装教程 - u大师...
  16. ETC技术之DSRC协议笔记
  17. oracle导数时不包含某个表,EXPDP导数报ORA-00942案例
  18. 美丽的诗句 撩妹首选哦!
  19. vue使用报错记录(cli4):[vue/valid-v-for] Custom elements in iteration require ‘v-bind:key‘ direc
  20. <artifactId>里面的字符串不能有空格

热门文章

  1. ehvierwer登录与不登录_《天涯明月刀手游》pc端手机端登录不进去如何解决 服务器已满快速解决方法...
  2. SAP ERP助力文档管理服务实力企业实现管理信息化,提升交易效率
  3. SBAS-InSAR输出数据不正确的问题
  4. 【案例 6-4】斗地主洗牌发牌
  5. 转载和积累系列 - HTTPS原理和HTTP缓存机制
  6. 不确定性量化(Uncertainty Quantification):前言
  7. 糖尿病治疗进入肽时代,Bachem公司的肽了解一下
  8. 迅捷CAD看图怎么快速查看图纸呢?
  9. CAD快速看图,如何将CAD转PDF呢?
  10. 3Dmax与Maya哪个更实用