Chinaunix首页 | 论坛 | 博客
  • 博客访问: 670703
  • 博文数量: 207
  • 博客积分: 1743
  • 博客等级: 上尉
  • 技术积分: 2044
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-20 14:36
文章分类

全部博文(207)

文章存档

2016年(24)

2015年(10)

2014年(50)

2013年(45)

2012年(78)

分类: LINUX

2014-04-11 13:40:56


本篇 基于固件代码的开发及移植过程中可能引起的 USB 枚举失败的原因进行分 析。

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

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

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

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

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

1.gif

(图 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.gif 
(图 2 )(本数据由 HD-USB12 USB 协议分析仪采集)

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

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

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

3.gif 
(图 3 )(本数据由 HD-USB12 USB 协议分析仪采集)
阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~