打印

usb地址 、数据长度疑问

[复制链接]
1957|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
钻研的鱼|  楼主 | 2012-2-28 12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhuzaixingfu| | 2012-2-29 00:05 | 只看该作者
主机发送Get_Descriptor请求获取默认管道的最大包长度,然后(Windows)系统会要求hub对设备进行一次的复位操作(USB规范里面没这要求)。再次复位的目的是使设备进入一个确定的状态。主机控制器通过Set_Address请求向设备分配一个唯一的地址。在完成这次传输之后,设备进入地址状态(Address state),之后就启用新地址继续与主机通信。这个地址对于设备来说是终生制的,设备在,地址在;设备消失(被拔出,复位,系统重启),地址被收回。同一个设备当再次被枚举后得到的地址不一定是上次那个了。
到了这个时候,也就是SetAddress后,设备的地址域就不是0了。

使用特权

评论回复
板凳
zhuzaixingfu| | 2012-2-29 00:07 | 只看该作者
Out传输时,如果操作,底层驱动会将其分批发,每次发的最大长度就是USB端点支持的最大数据包。
IN传输时,就要看设备底层怎么操作了

使用特权

评论回复
地板
钻研的鱼|  楼主 | 2012-3-3 08:10 | 只看该作者
不错,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

967

帖子

4

粉丝