前言
本文大部分技术原理内容摘选自USB中文网
USB2.0
USB供电电平为5V,通信电平为3.3V,上拉通常是3.3V上拉。(5V电平接10K上拉电阻)
- USB主机端D+和D-均有一个15K的下拉电阻
- 低速设备端D-上拉一个1.5K的电阻
- 高速/全速设备端D+上拉一个1.5K的电阻
USB2.0设备连接状态检测
USB设备插入到主机端口后,会有以下一个典型流程:
- 设备端检测到主机的VBus-5V供电后,D+/D-由
SE0状态
转为挂接3.3V上拉电阻
(低速设备端D-,高速/全速设备端D+) - 主机端读取D+/D-电平变化,识别USB2.0-低速/全速 设备接入
- USB主机对插入的设备发送复位信号,进行设备复位
- 如果是主机上电前已连接的设备,设备端通过检测到主机下发的第一个复位信号来判断自身已连接
- 动态接入,设备端检测到自身的VBus电压升高(>=4.01V),判断自身已连接
- 设备端也可检测 D+/D- 电平变化,判断是否已连接
注意:
1 | USB2.0高速设备在设备的连接检测时,是以USB2.0全速的工作状态进行通讯连接的。 |
SE0状态:
USB2.0设备断开状态检测
- 主机端-设备断开检测
低速、全速设备:
高速设备:主机通过检测帧开始的包结束来判断设备是否断开,帧开始的间隔是125us,所以设备断开后,主机最多在125us就可以检测到设备断开
USB3.0
USB-OTG设备插拔检测-主从机识别软件方案
以杰理方案为例,周期轮询
如果设备一个USB端口同时使能 主机和从机 模式的话,则需要轮询识别接入的设备是主机还是从机