打印

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

[复制链接]
2822|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ADM, AN, DM, ni, se
本人最近需要将一USB设备枚举成CCID设备,下面是BusHound抓到的数据,那位有相关经验的大神给分析下 错在哪里啊   跪谢!
C:\Documents and Settings\Administrator\桌面\QQ截图20130401142855.png

相关帖子

沙发
xiaojun_|  楼主 | 2013-4-1 14:31 | 只看该作者
截图如下:

QQ截图20130401142855.png (24.28 KB )

QQ截图20130401142855.png

使用特权

评论回复
板凳
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字节),求解释!

使用特权

评论回复
5
xiaojun_|  楼主 | 2013-4-2 10:09 | 只看该作者
john_lee 发表于 2013-4-1 15:08
取配置描述符(configuration descriptor)错误。

还有  为什么主机不先获取设备描述符  而是先获取配置描述符??

使用特权

评论回复
6
john_lee| | 2013-4-2 12:24 | 只看该作者
显然你的 endpoint 的 transaction 没有搞对,你要调试一下了。
我的 configuration descriptor 也是超过了 MaxPacketSize 的:
Device  Length    Phase  Data                                                Description       Delta  Cmd.Phase.Ofs(rep)  Time          Driver      
------  --------  -----  --------------------------------------------------  ----------------  -----  ------------------  ------------  ------------
  43.0            CTL    80 06 00 02  00 00 86 00                            GET DESCRIPTOR     80us        24.1.0        12:13:31.569  usbccgp      
  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               
                         05 09 04 00  00 01 02 02  01 00 05 24  00 10 01 05  ...........$....               24.2.16                                   
                         24 01 01 01  04 24 02 06  05 24 06 00  01 07 05 81  $....$...$......               24.2.32                                   
                         03 40 00 01  09 04 01 00  02 0a 00 00  00 07 05 82  .@..............               24.2.48                                   
                         02 40 00 00  07 05 03 02  40 00 00 08  0b 02 02 02  .@......@.......               24.2.64                                   
                         02 01 06 09  04 02 00 00  02 02 01 00  05 24 00 10  .............$..               24.2.80                                   
                         01 05 24 01  01 03 04 24  02 06 05 24  06 02 03 09  ..$....$...$....               24.2.96                                   
                         04 03 00 02  0a 00 00 00  07 05 84 02  40 00 00 07  ............@...               24.2.112                                 
                         05 05 02 40  00 00                                  ...@..                         24.2.128                                 
host 已经获取了 device descriptor,并且分配了 USB 地址,只不过这个过程 bushound 截获不到。

使用特权

评论回复
7
xiaojun_|  楼主 | 2013-4-2 13:20 | 只看该作者
john_lee 发表于 2013-4-2 12:24
显然你的 endpoint 的 transaction 没有搞对,你要调试一下了。
我的 configuration descriptor 也是超过了 ...

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




使用特权

评论回复
8
天命风流| | 2013-4-2 14:10 | 只看该作者
受教了

使用特权

评论回复
9
xiaojun_|  楼主 | 2013-4-2 17:46 | 只看该作者
大神们   求救啊  !!!

使用特权

评论回复
10
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 很给力!
11
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抓包如下:

使用特权

评论回复
12
梧桐絮| | 2013-4-3 12:34 | 只看该作者
发表下个人意见,你的配置描述符里面写着有3个端点,“00 03 0b”,为什么后续只有两个端点的内容?

使用特权

评论回复
13
梧桐絮| | 2013-4-3 12:34 | 只看该作者
噢,看错了。是三个。不好意思哈。。。

使用特权

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

本版积分规则

5

主题

19

帖子

1

粉丝