本篇基于固件代码的开发及移植过程中可能引起的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)由上我们可以推断出固件中设置地址的代码执行失败。
三、如图3所示的USB枚举失败(图3为过滤掉IN + NAK及SOF包后的数据)
1)Index[694 - 696]:表示主机向默认地址发送SET_ADDRESS指令包。但设备对该指令答,无应答。
2)由上我们可以推断出固件代码对SET_ADDRESS指令包无响应或响应没发送空应答。
四、设备发送给主机的描述信息不完整,如少发送接口或端点信息等导致枚举失败。这要求分析所有采集到的数据才能发现问题。由于数据量较大,就不用图片说明了。
以上是根据本人开发过程中曾经碰到的问题进行的总结分析,在实际情况中枚举失败的原因很多,不可能一一列出,但只要有一台总线协议分析设备能抓取数据进行分析是很容易找到原因的。
另外,附件中上传了一份《“HD-USB12”全速/低速USB2.0协议分析仪技术文档》,有需要的同学可以下载。
http://forum.eet-cn.com/FORUM_POST_10012_1200154619_0.HTM
用户1098939 2010-4-9 21:04
用户1537318 2010-4-5 16:31
广东省东莞市耀威工业材料有限公司拥有一定业界科技人脉,全心全意为客户提供uv解决方案,使客户获得利益最大化,携手耀威,实现双赢。
期待业务垂询:武生15625561778 0769-85329091
用户1537318 2010-4-5 16:17
耀威uv胶(无影胶)产品说明 【特 点】 单组份包装,使用方便;可用紫外光或日光固化,固化速度快,并有如下特点:光学性能: 胶液晶莹透明,固化后光透过率﹥90%,折光系数与玻璃相近。粘接性能: 固化后体积收缩率小,延伸率大,粘接强度高。耐候性能 :耐候性好,经紫外光长时间照射不黄变,可在-50℃—+130℃的温度范围使用。【用 途】 可广泛用于玻璃家具, 玻璃工艺品,塑料,电子,灯饰, 水晶, 光学仪器, 医用器件及建筑装饰行业所需的玻璃/金属、玻璃/玻璃、玻璃/塑料、塑料/塑料、LED、电子元件等的粘接。公司网址:http://gddgyw.sm160.com QQ:1395677909
用户1272890 2010-3-20 22:12
用户1499302 2010-3-20 21:53
用户1499302 2010-3-20 21:53
用户1499302 2010-3-20 21:53
用户1499302 2010-3-20 21:53
用户1499302 2010-3-20 21:53
用户1499302 2010-3-20 21:52