USB协议之一 设备连接检测、断开检测

本文介绍了USB2.0设备的连接状态检测过程,包括设备接口电路图、连接状态的详细步骤,以及设备端和主机端如何检测断开。USB设备通过D+或D-的上拉电阻和VBus电压变化来实现连接与断开的识别,而主机端则依据D+/D-的电压水平或高速帧的包结束信号来判断设备状态。

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

转自:https://www.usbzh.com/article/detail-641.html

一、USB2.0设备连接状态的检测简介

  USB设备支持即插即用,所以对于USB主机端,一个重要的特性就是USB设备的动态连接检测。
  USB主机端支持设备的连接状态的检测,是需要USB设备的配合的。USB主机端与USB设备端相互配合,实现了USB设备的连接状态检测。

二、USB2.0设备接口电路图

  我们知道,2.0设备USB引脚接线定义分为四根线,分别为电源线(VBus),D+,D-和地线GND。主机端与设备的电路图如图所示:
在这里插入图片描述
  USB主机端的D+和D-均有一个15K的下拉电阻,而设备端根据USB设备分为两大类:USB低速和USB全速高速,分别在其设备的D-或D+上拉一个1.5K的电阻。

  • 主机端D+和D-均有一个15K的下拉电阻。
  • 低速设备端D-上拉一个1.5K的电阻
  • 高速/全速设备端D+上拉一个1.5K的电阻

三、USB2.0设备的连接状态检测详细过程

一个USB设备连接到主机后,大概分为以下几个阶段:
![在这里插入图片描述](https://img-blog.csdnimg.cn/3f72fbc1ef5b4dfea4190880a78aa434.png

  • 默认态,USB主机端VBus为高电平。
  • USB设备连接到USB主机。
  • USB设备端的VBus从低电平变为高电压(>=4.01V)
  • USB设备端VBus检测到高电平
  • USB设备端低速挂接D-上的1.5K上拉电阻,全速或高速设备接接D+上的1.5K上拉电阻。
  • USB主机端检测到D+/或D-端的电压变高(2.0V以上)
  • USB主机端根据D+/D-线缆上的电压变化识别USB2.0低速设备或全速设备(高速设备)连接上来
  • USB主机对检测到的设备发送复位信号,进行设备复位。

USB2.0设备的连接分为固定连接和接入连接。
  对于固定连接的设备,由于USB设备端与主机端一直相连,所以设备端可以通过检测主机端对USB设备的第一个复位信号来检测。
  对于接入连接的设备,设备端可以通过检测其VBus总线上的电压变为高电压(>=4.01V)来检测设备端已经连接。
  由于USB主机如USB控制器,USB根集线器和USB设备的驱动程序在主机端运行,并且USB主机端是经过千锤百炼的,所以对于USB设备断开引起的异常,大部分的问题都是由USB设备端引起的,并且大部分发生在自供电的USB设备。

四、 USB设备端断开的检测

  USB设备一般分为自供电和VBUS供电。

  对于由VBUS供电的设备,当设备与主机断开后,设备将无电源供电,这种情况下设备端的固件程序无法运行,故对于此种设备,USB设备端断开的检测无任何意义。

  USB规范对USB总线VBus上的电压的有规定,所以对于支持VBUS检测的USB设备,可以通过检测VBUS上的电压低于VBSVLD即4.01V时即可认为USB设备与主机已经断开。
  对于不支持VBus上检测的USB设备,是通过D+/D-上的电压变化来检测的。

  无论是否支持VBUS检测的USB设备,当检测到设备已经与主机断开后,都需要D+或D-上的上拉电阻,来确保下次连接检测的初始化状态是正确的。

  在实际的硬件电路中,VBUS设备端会有一个旁路电容,过快的快速插拔导致设备端的VBUS电压因旁路电容的存在导致无法降低到4.01V以下,导致设备端的断开检测设备。

五、USB主机端的设备断开的检测

  USB2.0规定,当主机端的D+或D-的电压小于0.8V时,并且持续TDDIS(最小值为2us)的时间长度时,USB主机端就可以认定设备已经断开。对于USB低速或全设备,可以通过此种方式进行设备断开的检测。

当设备与主机端后,由于主机端的D+或D-端的下拉电阻的存在,会使电压降为0V.

  对于工作在高速模式下的USB设备,其D+/D-上的电平和低全速的设备不一样,所以检测方式不一样。USB2.0协议规定,对于连接到高速设备的高速主机,D+和D-上的差分信号电平大于625mV时,就可认定USB设备已经断开。当D+和D-的差分电平差不大于625mV时,高速主机的断开检测模块不能认为USB设备已经断开。USB主机会检测到每个高速帧开始的包结速信号,当包结束电压大于检测电压,表示设备断开。在实际应用中,高速设备的断开电压可能在525mV到625mV之间,并且不同的主机的断开检测电路电压不同。
  由于主机是通过检测帧开始的包结束来判断设备是否断开,而帧开始的间隔是125us,所以当设备断开后,最多在125us内主机就可以检测到设备已经断开。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值