USB设备插入和拔出的波形

下面测试了iPhone和U盘插入/拔出时D+和D-上的波形。黄色为D+,绿色为D-。

iPhone插入的波形

iPhone插入—整体波形

整体波形

  • 1 处的波形只有iPhone插入连接CarPlay或者是Android手机插入连接Carlife才会有,还不知道这里的波形是怎么产生的。

  • 2 处的波形是枚举阶段速度的判定,即握手检测阶段。

  • 3 处的波形与2 处的类似,像是Host再做一次reset。

  • 4 处的波形是连接CarPlay做RoleSwitch,车机变成USB Device,iPhone变成USB Host,iPhone枚举车机的波形,等同于2的阶段,也是握手检测阶段。

  • 4 处之后是正常的通信阶段,差不多是400mv。


iPhone插入—1 处的波形

1 处的波形

这是1处波形放大之后的图,红色左边的都是属于1处的波形。总共包含三部分:
(a):D+和D-同时拉高为600mv左右;
(b):D+和D-同时拉低到0V,之后D-拉高到600mv;
(c):D-拉低到0V,直到第2处波形。

从USB协议分析仪(Total Phase Data)截取到的数据对应如下:
协议分析
从抓取到的数据来看有个Chirp K信号,说明(b)中的D-为高肯定是对应于这里的Chirp K信号。


iPhone插入—2 处的波形

2 处的波形

与之对应的USB协议分析如下:
这里写图片描述

下面来仔细分析2 处波形的具体细节。
(a):这一个波形对应于USB协议的低速/全速设备的判定阶段,通过D+和D-上面的电压进行判定。iPhone属于高速的USB设备,因此D+上会有一个1.5k的上拉电阻,因此可以看到D+上有一个3.3V左右的电压。在(a)和 (b) 之间有一小段的低电平,这就是SE0状态,Host发送设备复位操作,设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms。
相关的USB 协议内容在第7章规定:
这里写图片描述
这里写图片描述

(b):D+为0v,D-为800mv左右,此时是Chirp K状态,由USB设备产生,只有高速设备才会去产生一个Chirp K信号。USB设备看到Host发送的复位操作,通过内部的电流源向D-线持续灌大小为17.78mA电流。因此我们可以看到D-为800mv左右。
(c):USB Host上的hub检测到高速USB设备产生Chirp K信号,hub会开始回复一连串的KJKJKJ……序列,如图中的c和d的波形。设备检测到6个hub发出的Chirp 信号后(3对KJ序列,此时的KJ序列还维持在800mv左右),它必须在500us内切换到高速模式。
(d):USB设备切换至高速模式,hub发送出来的KJKJKJ……序列幅值降到了原先的一半,400mv。

(b) ~ d) 的内容可以参照USB协议的:7.1.7.5 章节中的High-speed Detection Handshake。或者也可以参照我之前的文章:
USB 全速/高速设备识别信号分析
USB 2.0 协议中文注解
USB 2.0 协议中J、K、SE0状态的定义


iPhone插入—3 处的波形

这里写图片描述
这里写图片描述

3处的波形如果展开来看,同样是Host发送reset信号,设备产生Chirp K信号,Hub回应KJKJKJ序列进行握手的信号。至于为什么还多出一次reset,可以参照下面文章的说明:http://blog.csdn.net/luckywang1103/article/details/40263285

3处和4处之间就是车机(USB Host)与iPhone(USB Device)的获取设备描述符以及数据通信阶段,此时车机会去枚举(此时只包括识别高速设备之后的枚举动作)iPhone。并判断这台iPhone是否支持CarPlay,如果支持,那么需要进行RoleSwitch,所以才会有4的波形,否则不会有的
这里写图片描述


iPhone插入—4 处的波形

这个只有在插入iPhone连接CarPlay才会出现这个波形,这里是由于做了RoleSwitch,iPhone做Host,车机做Device,iPhone枚举车机时候产生的波形。这里的波形与第2处类似。这中间USB会断开一次并重连。
这里写图片描述


iPhone拔掉的波形

这里写图片描述

这个是iPhone拔掉时候的波形,在拔掉之前,车机是作为Device,iPhone是作为Host。
(a):D+和D-有数据在通信中;
(b):3ms左右的idle 状态;
(c):在设备开始进入idle状态后,必须在3.125ms(TWTREV)内还原至全速配置。依靠断开termination resistors并重新连接D+上的上拉电阻来完成切换至全速配置。在恢复到全速下,设备必须在TWTRSTHS(100us~875us)时间内采样总线上的状态。如果是Full-Speed J(D+为“1”,D-为“0”)的状态,那么设备继续进入Suspend的动作。(SE0的状态标记hub发送reset,设备将进入“High-speed Detection Handshake”,在7.1.7.5节中定义)。在USB设备控制器上,如果检测到持续3ms的Suspend状态,那么会产生中断报告断开。
之后车机由USB Device模式切换至USB Host模式,Full-Speed J的状态清除,D+和D-的信号都为0V。
这一部分的内容在USB 协议的7.1.7.6 Suspending章节进行的规定,或者可以参照这篇文章:USB 挂起和唤醒


U盘插入

U盘插入车机中播放音乐,此时车机做为USB Host,U盘作为USB Device,车机枚举U盘。
这里写图片描述

跟iPhone插入的波形比对,发现这里少了1处和4处的波形。少了4处是因为U盘插入不用做RoleSwitch,所以不用再次枚举。至于为什么少了1处的波形,还不知道原因。


U盘拔掉

这里写图片描述

这里的 (a) 还在通信中,(b) 处表示处于idle状态。与iPhone拔掉的差异是这里少了 (c) 的波形。

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值