打印

图解USB协议之四 USB枚举失败常见原因分析

[复制链接]
3612|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
avatar_21ic|  楼主 | 2010-3-1 15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图解USB协议之四 USB枚举失败分析.pdf (81.16 KB)

“HD-USB12”全速 低速USB2.0协议分析仪技术文档.pdf (446.05 KB)
    本篇
基于固件代码的开发及移植过程中可能引起的USB枚举失败的原因进行分析。




数据采集设备:“HD-USB12全速/低速USB2.0协议分析仪



一、如图1所示的USB枚举失败

1
Index[666 - 668]:表示主机向默认地址发送GET_DESCRIPTOR指令包。

2
Index[670 - 671]:表示设备默认地址端点不可用。

3
)由上我们可以推断出固件代码对GET_DESCRIPTOR指令包无响应。


(图1)(本数据由HD-USB12 USB协议分析仪采集)



二、如图2所示的USB枚举失败

1
Index[697 - 699]:表示主机向默认地址发送SET_ADDRESS指令包。

2
Index[701 - 703]:表示设备完成SET_ADDRESS指令后,给主机发送一个空应答。

3
Index[705 - 710]:表示主机向地址DEC=01重复发送SET_DESCRIPTOR指令包,但设备无任何应答,因此该事务包设备并没有接收到。

4
)由上我们可以推断出固件中设置地址的代码执行失败。


(图2)(本数据由HD-USB12 USB协议分析仪采集)

三、如图3所示的USB枚举失败(图3为过滤掉IN + NAKSOF包后的数据)

1
Index[694 - 696]:表示主机向默认地址发送SET_ADDRESS指令包。但设备对该指令答,无应答。

2
)由上我们可以推断出固件代码对SET_ADDRESS指令包无响应或响应没发送空应答。


(图3)(本数据由HD-USB12 USB协议分析仪采集)

四、设备发送给主机的描述信息不完整,如少发送接口或端点信息等导致枚举失败。这要求分析所有采集到的数据才能发现问题。由于数据量较大,就不用图片说明了。
以上是根据本人开发过程中曾经碰到的问题进行的总结分析,在实际情况中枚举失败的原因很多,不可能一一列出,但只要有一台总线协议分析设备能抓取数据进行分析是很容易找到原因的。
另外,附件中上传了一份《“HD-USB12”全速/低速USB2.0协议分析仪技术文档》,有需要的同学可以下载。

相关帖子

沙发
icer1| | 2010-3-7 00:44 | 只看该作者
支持一下

使用特权

评论回复
板凳
OurWay| | 2010-7-29 17:24 | 只看该作者
挺不错的原创**,谢谢提供

使用特权

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

本版积分规则

个人签名:和若春风,肃若秋霜;取象于钱,外圆内方。

11

主题

22

帖子

0

粉丝