求助:CCID枚举不成功!!!

[复制链接]
 楼主| xiaojun_ 发表于 2013-4-1 14:30 | 显示全部楼层 |阅读模式
ADM, AN, DM, ni, se
本人最近需要将一USB设备枚举成CCID设备,下面是BusHound抓到的数据,那位有相关经验的大神给分析下 错在哪里啊   跪谢!
C:\Documents and Settings\Administrator\桌面\QQ截图20130401142855.png
 楼主| xiaojun_ 发表于 2013-4-1 14:31 | 显示全部楼层
截图如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
john_lee 发表于 2013-4-1 15:08 | 显示全部楼层
取配置描述符(configuration descriptor)错误。
 楼主| xiaojun_ 发表于 2013-4-2 10:03 | 显示全部楼层
john_lee 发表于 2013-4-1 15:08
取配置描述符(configuration descriptor)错误。

主机在获取配置描述符时 ,我的设备只能发送63字节的数据过去  ,大于等于64字节BusHound就报以上错误(我的端点0最大包长度为64字节,配置描述符总长为93字节),求解释!
 楼主| xiaojun_ 发表于 2013-4-2 10:09 | 显示全部楼层
john_lee 发表于 2013-4-1 15:08
取配置描述符(configuration descriptor)错误。

还有  为什么主机不先获取设备描述符  而是先获取配置描述符??
john_lee 发表于 2013-4-2 12:24 | 显示全部楼层
显然你的 endpoint 的 transaction 没有搞对,你要调试一下了。
我的 configuration descriptor 也是超过了 MaxPacketSize 的:
  1. Device  Length    Phase  Data                                                Description       Delta  Cmd.Phase.Ofs(rep)  Time          Driver      
  2. ------  --------  -----  --------------------------------------------------  ----------------  -----  ------------------  ------------  ------------
  3.   43.0            CTL    80 06 00 02  00 00 86 00                            GET DESCRIPTOR     80us        24.1.0        12:13:31.569  usbccgp      
  4.   43.0       134  IN     09 02 86 00  04 01 04 80  19 08 0b 00  02 02 02 01  ................  435us        24.2.0        12:13:31.569               
  5.                          05 09 04 00  00 01 02 02  01 00 05 24  00 10 01 05  ...........$....               24.2.16                                   
  6.                          24 01 01 01  04 24 02 06  05 24 06 00  01 07 05 81  $....$...$......               24.2.32                                   
  7.                          03 40 00 01  09 04 01 00  02 0a 00 00  00 07 05 82  .@..............               24.2.48                                   
  8.                          02 40 00 00  07 05 03 02  40 00 00 08  0b 02 02 02  .@......@.......               24.2.64                                   
  9.                          02 01 06 09  04 02 00 00  02 02 01 00  05 24 00 10  .............$..               24.2.80                                   
  10.                          01 05 24 01  01 03 04 24  02 06 05 24  06 02 03 09  ..$....$...$....               24.2.96                                   
  11.                          04 03 00 02  0a 00 00 00  07 05 84 02  40 00 00 07  ............@...               24.2.112                                 
  12.                          05 05 02 40  00 00                                  ...@..                         24.2.128                                 
host 已经获取了 device descriptor,并且分配了 USB 地址,只不过这个过程 bushound 截获不到。
 楼主| xiaojun_ 发表于 2013-4-2 13:20 | 显示全部楼层
john_lee 发表于 2013-4-2 12:24
显然你的 endpoint 的 transaction 没有搞对,你要调试一下了。
我的 configuration descriptor 也是超过了 ...

嗯  谢谢你  我调整了一下  现在可以收到93字节的配置描述符了 然后就停住了  但是我的xp系统还是识别不了它是ccid设备  这是怎么回事呢




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
天命风流 发表于 2013-4-2 14:10 | 显示全部楼层
受教了
 楼主| xiaojun_ 发表于 2013-4-2 17:46 | 显示全部楼层
大神们   求救啊  !!!
john_lee 发表于 2013-4-2 18:22 | 显示全部楼层
不熟悉ccid,但估计是 configuration descriptor 的数据有问题,还有一个疑点,a3 00 00 00 0x 00 04 00,这个 request 很奇怪,怎么接收方(Recipient)是 other(3)啊?并且 bRequest 是 0,表示 GET STATUS,但 wLength(长度)应该是 2 啊,怎么这里是 4?

评分

参与人数 1威望 +2 收起 理由
xiaojun_ + 2 很给力!

查看全部评分

 楼主| xiaojun_ 发表于 2013-4-3 10:51 | 显示全部楼层
john_lee 发表于 2013-4-2 18:22
不熟悉ccid,但估计是 configuration descriptor 的数据有问题,还有一个疑点,a3 00 00 00 0x 00 04 00, ...

这是什么情况啊  ? BusHound抓包如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
梧桐絮 发表于 2013-4-3 12:34 | 显示全部楼层
发表下个人意见,你的配置描述符里面写着有3个端点,“00 03 0b”,为什么后续只有两个端点的内容?
梧桐絮 发表于 2013-4-3 12:34 | 显示全部楼层
噢,看错了。是三个。不好意思哈。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部