chenlingyan
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1514回复:8

枚举过程中出现pid check failed.

楼主#
更多 发布于:2004-12-26 10:14



  12.0  CTL    00 05 02 00  00 00 00 00                                                                                SET ADDRESS             20.1.0        
  12.0  CTL    80 06 00 01  00 00 12 00                                                                                GET DESCRIPTOR          21.1.0        
  12.0  DI     12 01 00 02  00 00 00 40  71 04 34 12  00 02 00 00  00 01                                               .......@q.4.....        21.2.0        
  12.0  CTL    80 06 00 02  00 00 09 00                                                                                GET DESCRIPTOR          22.1.0        
  12.0  DI     09 02 25 00  01 01 00 a0  64                                                                            ..%.....d               22.2.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              23.1.0        
  12.0  DI     03 01 00 00                                                                                             ....                    23.2.0        
  12.0  CTL    23 03 04 00  03 00 00 00                                                                                SET FEATURE             24.1.0        
  12.1  DI     08 00 00 00  e0 3f 42 f2                                                                                .....?B.                25.1.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              26.1.0        
  12.0  DI     03 01 10 00                                                                                             ....                    26.2.0        
  12.0  CTL    23 01 14 00  03 00 00 00                                                                                CLEAR FEATURE           27.1.0        
  12.0  CTL    80 06 00 01  00 00 40 00                                                                                GET DESCRIPTOR          28.1.0        
  12.0  DI     12 01 00 02  00 00 00 40  71 04 34 12  00 02 00 00  00 01                                               .......@q.4.....        28.2.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              29.1.0        
  12.0  DI     03 01 00 00                                                                                             ....                    29.2.0        
  12.0  CTL    23 03 04 00  03 00 00 00                                                                                SET FEATURE             30.1.0        
  12.1  DI     08 00 00 00  e0 3f 42 f2                                                                                .....?B.                31.1.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              32.1.0        
  12.0  DI     03 01 10 00                                                                                             ....                    32.2.0        
  12.0  CTL    23 01 14 00  03 00 00 00                                                                                CLEAR FEATURE           33.1.0        
  12.0  CTL    00 05 02 00  00 00 00 00                                                                                SET ADDRESS             34.1.0        
  12.0  USTS   06 00 00 c0                                                                                             pid check failed        34.2.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              35.1.0        
  12.0  DI     03 01 00 00                                                                                             ....                    35.2.0        
  12.0  CTL    23 03 04 00  03 00 00 00                                                                                SET FEATURE             36.1.0        
  12.1  DI     08 00 00 00  90 06 47 80                                                                                ......G.                37.1.0        
  12.0  CTL    a3 00 00 00  03 00 04 00                                                                                GET STATUS              38.1.0        
  12.0  DI     03 01 10 00                                                                                             ....                    38.2.0        
  12.0  CTL    23 01 14 00  03 00 00 00                                                                                CLEAR FEATURE           39.1.0        
  12.0  CTL    80 06 00 01  00 00 40 00                                                                                GET DESCRIPTOR          40.1.0        
  12.0  USTS   06 00 00 c0                                                                                             pid check failed        40.2.0        
  12.0  CTL    23 01 01 00  03 00 00 00                                                                                CLEAR FEATURE           41.1.0        

以上是我在枚举过程中抓到的数据,多次出现pid check failed,枚举不能成功。
我是这样理解的,PID是硬件层的东西,固件对其不作任何的处理。但是不知道为什么会出现pid错误。各位同仁有没有遇到同样的问题?这有可能是硬件的问题吗?

最新喜欢:

crazytancrazyt...
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-26 12:13


我是这样理解的,PID是硬件层的东西,固件对其不作任何的处理。但是不知道为什么会出现pid错误。各位同仁有没有遇到同样的问题?这有可能是硬件的问题吗?


这样理解不对吧,PID要通过固件从硬件里面读出来,然后通过usb发上来给主机,所以可以查查这个过程有没有错。当然首先要看看主机收到的PID数据是什么?一般不会是硬件问题。
chenlingyan
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-26 14:41
PID 不是IN,OUT等等吗?我在固件里能读到吗?我好像觉得读不到呢
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-27 13:55
你没有响应HOST发给你的GET DESCRIPTOR命令.
新手上路,请多关照.
chenlingyan
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-27 14:12
12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 28.1.0
12.0 DI 12 01 00 02 00 00 00 40 71 04 34 12 00 02 00 00 00 01 .......@q.4..... 28.2.0

这个不说明我响应get descriptor了吗? 这个描述符是我设置的描述符。
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-27 14:35
12.0 CTL 00 05 02 00 00 00 00 00 SET ADDRESS 20.1.0
12.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 21.1.0
12.0 DI 12 01 00 02 00 00 00 40 71 04 34 12 00 02 00 00 00 01 .......@q.4..... 21.2.0
12.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 22.1.0
12.0 DI 09 02 25 00 01 01 00 a0 64 ..%.....d 22.2.0
这些都是正确的.但后面:
12.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 23.1.0
12.0 DI 03 01 00 00 .... 23.2.0
这是HOST发送给HUB的命令,表示有一个有效的设备接入.
然后就乱了.
PID是PACKAGE ID,这个在BUSHOUND里是被屏蔽的.
你最好跟一下中断,看看各个中断的顺序是什么.
新手上路,请多关照.
chenlingyan
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-27 14:47
多谢,我的中断可能有问题,比如reset,一次连接到主机有3个reset.而get device descriptor有时也会有两三个。不知这是什么原因?
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-27 18:36
设备接入后,一般只会产生一次中断,如果再产生中断那可能是HOST没
有识别到你的设备或识别过程错误,这样它就会在给你发个中断.还有
就是你的USB控制芯片重新连接,就好象你拔除了设备,再插上一样.
你查查你的程序吧.
新手上路,请多关照.
chenlingyan
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-28 19:20
bus hound抓到数据的顺序是正确 的。先get descriptor,这部分说明host已经接收到数据,接下来set address.bus hound 也抓到了。再下来的get descriptor好像就不可以了。

这会不会是descriptor的错误造成的呢?
游客

返回顶部