USB枚举过程

==============================   博客点滴积累,部分话语和知识点来源于网络,感谢网络资源的提供者======

*USB协议是基于主从结构的,所有数据传输的传输过程都由主机发起。

USB的四种传输方式

控制传输:用于命令和状态的传输,枚举过程就是控制传输,控制传输是双向的传输,控制传输使用端点0.

中断传输:传输频率不高,周期性有一定要求的数据传输,对于中断传输的时间间隔,全速端点1ms-255ms,低速端点10-255ms,高速端点125us-32768*125us,传输方向是单方向的。

批量传输:大容量的数据传输,但对延迟性和带宽没有严格要求的传输,传输端点是单方向的。

同步传输:用于需要保证带宽,并且不能忍受延迟的信息,整个带宽都将用于保证数据同步的完整。并且不支持出错重传。同步传输端点是单方向

USB2.0枚举过程

1 USB设备插入,USB主机检测到设备,复位总线

检测方式:USB主枚举机D+和D-接有下拉电阻,USB设备接有上拉电阻,低速设备接在D-上,全速和高速接在D+上,插入后主机 会检测枚举枚举到电平变化,对于高速设备,开始是当全速设备的,由于高速设备是电流驱动的,对这个上拉电阻有个通断控制。详细可看这篇文章:http://blog.csdn.net/lg2lh/article/details/7321542

2 主机发起第一个控制传输,获取描述符,只会读取一个数据包的描述符。

1)建立工程:首先主机发SETUP令牌包+数据包DATA0(数据含义表示获取描述符),设备发ACK应答(只考虑正常情况),设备准备描述符数据(发送的地址是地址0端点0)。

2)数据过程:主机发IN令牌包,设备发送数据包,主机ACK应答。

3)状态过程:主机发OUT令牌包+数据包(数据为空)设备发ACK应答。

3   再次复位总线

4   主机发起第二个控制传输,设置设备地址

1)建立工程:首先主机发SETUP令牌包+数据包DATA0(数据含义请求设置地址),设备发ACK应答(只考虑正常情况)(发送的地址是地址0端点0,建立过程必须是DATA0)

2)数据过程:没有数据。

3)状态过程:主机发IN令牌包,设备发送数据包(表明状态),主机发ACK应答。

5 向新的地址再次获取完整的描述符

1)建立工程:首先主机发SETUP令牌包+数据包DATA0(数据含义表示获取描述符),设备发ACK应答(只考虑正常情况),设备准备描述符数据(新地址)。

2)数据过程:主机发IN令牌包,设备发送数据包,主机ACK应答。(如果一次没有发完,就会重复多次数据过程)

3)状态过程:主机发OUT令牌包+数据包(数据为空),设备发ACK应答。

接下来,获取配置描述符,获取配置集合,等其他描述符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值