0%

【USB】USB插拔检测原理及应用

前言

本文大部分技术原理内容摘选自USB中文网

USB2.0

USB供电电平为5V,通信电平为3.3V,上拉通常是3.3V上拉。(5V电平接10K上拉电阻)

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

alt text

USB2.0设备连接状态检测

USB设备插入到主机端口后,会有以下一个典型流程:

  • 设备端检测到主机的VBus-5V供电后,D+/D-由SE0状态转为挂接3.3V上拉电阻(低速设备端D-,高速/全速设备端D+)
  • 主机端读取D+/D-电平变化,识别USB2.0-低速/全速 设备接入
  • USB主机对插入的设备发送复位信号,进行设备复位

  • 如果是主机上电前已连接的设备,设备端通过检测到主机下发的第一个复位信号来判断自身已连接
  • 动态接入,设备端检测到自身的VBus电压升高(>=4.01V),判断自身已连接
  • 设备端也可检测 D+/D- 电平变化,判断是否已连接

注意:

1
2
3
4
USB2.0高速设备在设备的连接检测时,是以USB2.0全速的工作状态进行通讯连接的。

在USB主机端对设备复位后,USB高速设备会主动发送USB高速协商信号;
主机端如果正确识别,则工作在全速状态的USB2.0高速设备切换到高速状态。

SE0状态:

USB2.0设备断开状态检测

  • 主机端-设备断开检测

低速、全速设备:

高速设备:主机通过检测帧开始的包结束来判断设备是否断开,帧开始的间隔是125us,所以设备断开后,主机最多在125us就可以检测到设备断开

USB3.0

USB-OTG设备插拔检测-主从机识别软件方案

以杰理方案为例,周期轮询

如果设备一个USB端口同时使能 主机和从机 模式的话,则需要轮询识别接入的设备是主机还是从机

思考与拓展

参考站点