USB设备插入和拔出的波形

本文详细解析了iPhone和U盘在插入及拔出时D+和D-上的波形变化,对比了不同设备间的差异,并深入探讨了USB高速设备识别过程中的关键信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面测试了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.youkuaiyun.com/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) 的波形。

<think>好的,我现在需要设计一个电池USB电源之间的自动切换电路。用户的问题是关于如何设计这样的电路方案,我需要根据提供的引用资料来整理出一个合理的方案。 首先,我应该回顾一下用户提供的引用内容。引用[1]、[2]、[3]、[5]都提到了电源切换电路的设计,特别是使用二极管、MOS管以及相关芯片的方案。引用[4]则介绍了TP4056充电管理模块,这可能涉及到充电部分的设计。 用户的需求是电池(可能是锂电池)USB电源之间的切换,所以需要实现当USB插入时,系统由USB供电,同时可能给电池充电;当USB断开时,自动切换到电池供电。这需要自动切换电路,可能还需要充电管理。 首先想到的是二极管方案,这是最简单的。例如,引用[3]提到用二极管来实现电源选择,当USB存在时,二极管导通,优先使用USB供电,同时防止电流倒灌到电池。但二极管的缺点是压降较大,可能会影响效率,尤其是低压系统中。比如,如果USB是5V,经过二极管后可能只有4.3V左右,这可能会影响后续电路的工作。此外,当使用电池供电时,电池电压也需要经过二极管,进一步降低可用电压,可能不适用于3.7V锂电池的情况,因为3.7V减去二极管压降后可能低于设备的工作电压。 接下来是MOS管方案,引用[2]、[3]、[5]都提到了MOS管切换电路。MOS管的导通电阻小,压降低,效率更高。例如,引用[5]中的Type-C锂电池切换电路,当USB存在时,MOS管关闭电池通路,由USB供电;当USB断开时,MOS管导通,电池供电。这里可能涉及PMOS或NMOS的选择,以及控制逻辑的设计。例如,使用PMOS作为开关,当USB供电时,USB的电压使得PMOS的栅极电压高于源极,从而关闭电池通路;当USB断开时,栅极电压降低,PMOS导通,电池供电。不过需要注意MOS管的开关速度,避免切换时的电压跌落,如引用[5]提到的并联肖特基二极管来临时提供通路,防止电压骤降导致系统复位。 另外,引用[1]中的锂电池外接电源切换电路可能提供了具体的原理图参考,比如使用MOS管比较器来控制切换。同时,充电管理部分可能需要TP4056这样的芯片,如引用[4]所述,负责给锂电池充电,并具备保护功能。 所以,一个完整的方案可能包括:自动切换电路(MOS管实现)+充电管理模块(TP4056)+保护电路(过充、过放、过流等)。此外,可能还需要考虑软开关电路,以实现低功耗关机,如引用[1]提到的硬件开关机电路。 接下来需要考虑具体的设计步骤。首先确定电源参数:USB是5V,锂电池是3.7V(充满4.2V,放电截止约3V)。系统的工作电压可能是3.3V或5V,如果是5V,则需要升压电路;如果是3.3V,则可能需要LDO稳压。不过切换电路部分需要处理输入电压的优先级。 在切换电路中,当USB存在时,系统应由USB供电,并且同时给电池充电。当USB断开时,切换到电池供电。这里需要注意充电供电的隔离,防止电池电流倒灌到USB。因此,充电管理模块需要与切换电路协同工作。 可能的方案是使用MOS管控制电池USB的供电路径。例如,当USB插入时,USB的电压通过MOS管Q1供给系统,同时另一个MOS管Q2断开电池的供电路径。此时,USB的电压也通过TP4056给电池充电。当USB拔出时,Q1关闭,Q2导通,电池供电。这需要MOS管的控制逻辑正确,确保无瞬间短路或断路。 另外,引用[5]提到在切换瞬间可能出现电压跌落的问题,可以通过并联肖特基二极管来临时导通,避免系统复位。这需要在MOS管两端并联二极管,或者在输出端加电容储能。 还需要考虑电源路径管理,例如系统电压的稳定性,在切换过程中电容的储能是否足够维持电压,直到MOS管完全导通。较大的电容可以减缓电压下降的速度,但会增加成本尺寸。 此外,保护电路也是必要的,比如电池的过充、过放、过流保护,这些可能由TP4056模块提供,如引用[4]所述。同时,系统可能需要额外的保护,如反接保护、ESD保护等。 总结步骤: 1. 选择自动切换电路拓扑:MOS管方案(经典电路或变种)。 2. 设计MOS管控制逻辑,确保USB优先。 3. 加入充电管理模块(如TP4056)为电池充电。 4. 添加必要的保护电路滤波电容。 5. 仿真验证切换过程,确保无电压跌落或毛刺。 6. PCB布局时注意电流路径热管理。 可能的问题点包括MOS管的选型(Vgs阈值、导通电阻)、切换速度、二极管的选择(肖特基压降低)、充电电流设置、系统负载电流需求等。需要参考引用中的具体电路实例,比如引用[5]中的电路图,结合TP4056的应用电路,确保充电供电部分协调工作。 最后,测试时需要注意实际切换时的电压变化,使用示波器捕捉切换瞬间的波形,确保系统稳定。如果发现问题,可能需要调整MOS管的驱动电阻或添加缓冲电路。</think>### 电池与USB电源自动切换电路设计方案 #### 一、核心需求分析 1. **电源优先级**:USB供电时,系统由USB供电并给锂电池充电;USB断开后自动切换至锂电池供电。 2. **无缝切换**:切换过程中需避免电压跌落导致系统重启[^5]。 3. **充电管理**:需集成锂电池充电模块(如TP4056),支持过充、过流保护[^4]。 4. **低损耗**:切换电路需尽量减少压降(如MOS管方案)[^3]。 --- #### 二、典型电路方案 ##### 方案1:MOS管经典切换电路 **电路拓扑**: - **PMOS控制电池通路**:USB存在时,PMOS关闭电池供电;USB断开后导通。 - **二极管隔离USB通路**:USB通过肖特基二极管直接供电,避免反向电流。 **电路示例**: ```plaintext USB输入 → 肖特基二极管D1 → VOUT ↑ 锂电池 → PMOS(Q1) → VOUT ``` **控制逻辑**: - USB插入时,USB电压拉高Q1栅极,PMOS关闭;系统由USB供电。 - USB断开后,Q1栅极电压降低,PMOS导通,电池供电[^2]。 **优化措施**: - **并联肖特基二极管**:在PMOS两端并联二极管,避免切换瞬间电压跌落。 - **增加储能电容**:在VOUT端添加大容量电容(如100μF)缓冲切换过程。 ##### 方案2:集成电源切换芯片 **适用场景**:对体积复杂度敏感的设计。 **芯片选型**:如TPS2113A(双输入优先选择芯片)。 **优势**: - 自动选择优先级更高的电源。 - 支持无缝切换,压降低至20mV。 --- #### 三、完整系统设计(含充电管理) 1. **充电模块**: - 使用TP4056芯片,支持最大1A充电电流,集成过温保护。 - 电路连接:USB输入→TP4056→锂电池。 2. **切换电路**: - **MOS管方案**:PMOS控制电池路径,二极管隔离USB路径(参考方案1)。 - **切换逻辑优化**:加入RC延迟电路,避免USB插拔抖动导致误切换。 3. **保护电路**: - **电池保护**:TP4056内置过充/过放保护,可外接DW01A芯片增强保护。 - **系统保护**:在VOUT端添加保险丝TVS二极管,防止过压/浪涌。 --- #### 四、关键设计参数与选型 | 组件 | 选型建议 | 备注 | |------------|------------------------------|---------------------------------------| | **MOS管** | AO3401(PMOS,Vgs=-1.2V) | 低导通电阻(Rds(on)=36mΩ) | | **二极管** | SS34(肖特基,40V/3A) | 压降0.3V,减少损耗 | | **电容** | 100μF陶瓷电容(低ESR) | 储能缓冲,维持切换瞬间电压稳定 | | **充电IC** | TP4056 | 支持1A充电,集成保护功能 | --- #### 五、验证与调试 1. **仿真验证**: - 使用LTspice仿真切换过程,观察电压跌落是否在允许范围内(如>3.3V)[^1]。 2. **实测步骤**: - **插入USB**:测量VOUT是否由USB供电(≈5V),电池是否充电。 - **拔出USB**:用示波器捕捉VOUT切换波形,确保无跌落至系统复位电压以下。 - **负载测试**:满负载(如500mA)下重复切换,验证稳定性。 --- #### 六、常见问题与解决 1. **切换时系统重启**: - **原因**:MOS管切换速度慢,导致电压跌落。 - **解决**:并联肖特基二极管或增大储能电容。 2. **电池无法充电**: - **排查**:检查TP4056使能引脚是否接高电平,充电电流电阻是否匹配。 3. **MOS管发热**: - **优化**:选择更低Rds(on)的MOS管,或增加散热面积。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值