cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1757回复:18

jinghuiren兄,请你看看我的下面数据,帮我分析到底是出了什么问题。

楼主#
更多 发布于:2003-05-26 16:25
usb 5-26

  Device:  Device ID (followed by the endpoint for USB devices)
            (2) USB Root Hub
  Phase:   Phase Type:
            CTL   USB control transfer      
            URB   USB request block          
  Data:    Hex dump of the data transferred
  Info:    Description of the phase
  Time:    Elapsed time leading up to the Phase
  Cmd:     Unique identifier of the line


Device  Phase  Data                       Description       Time   Cmd.Phase.Ofs(rep)
------  -----  -------------------------  ----------------  -----  ------------------
   2    URB    48 00 09 00 - 00 00 00 00  BULK/INT XFER      22sc         1.1.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         38us         2.1.0(2)    
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   31us         2.2.0        
   2.0  CTL    23 01 10 00 - 02 00 00 00  CLEAR FEATURE     116us         4.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   15us         4.2.0        
   2.0  CTL    a3 00 00 00 - 01 00 04 00  GET STATUS        1.6ms         5.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   50us         5.2.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         37us         6.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER  180us         6.2.0        
   2.0  CTL    23 03 04 00 - 02 00 00 00  SET FEATURE       113ms         7.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER  108us         7.2.0        
   2    URB    48 00 09 00 - 00 00 00 00  BULK/INT XFER      92ms         8.1.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         33us         9.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   27us         9.2.0        
   2.0  CTL    23 01 14 00 - 02 00 00 00  CLEAR FEATURE      14us        10.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   12us        10.2.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         23ms        11.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   32us        11.2.0        
   2    URB    24 00 00 10 - 00 00 00 00                    163us        12.1.0        
   2.0  CTL    80 06 00 01 - 00 00 40 00  GET DESCRIPTOR     43us        13.1.0        
   2    URB    50 00 08 00 - 05 00 00 80  CONTROL TRANSFER   84ms        13.2.0        
   2    URB    14 00 01 10 - 00 00 00 00                    116us        14.1.0        
   2.0  CTL    23 03 04 00 - 02 00 00 00  SET FEATURE       514ms        15.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   44us        15.2.0        
   2    URB    48 00 09 00 - 00 00 00 00  BULK/INT XFER     114ms        16.1.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         29us        17.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   26us        17.2.0        
   2.0  CTL    23 01 14 00 - 02 00 00 00  CLEAR FEATURE      14us        18.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   12us        18.2.0        
   2    URB    24 00 00 10 - 00 00 00 00                     25ms        19.1.0        
   2.0  CTL    80 06 00 01 - 00 00 40 00  GET DESCRIPTOR     51us        20.1.0        
   2    URB    50 00 08 00 - 05 00 00 80  CONTROL TRANSFER   51ms        20.2.0        
   2    URB    14 00 01 10 - 00 00 00 00                     86us        21.1.0        
   2.0  CTL    23 03 04 00 - 02 00 00 00  SET FEATURE       513ms        22.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   46us        22.2.0        
   2    URB    48 00 09 00 - 00 00 00 00  BULK/INT XFER      34ms        23.1.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         26us        24.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   24us        24.2.0        
   2.0  CTL    23 01 14 00 - 02 00 00 00  CLEAR FEATURE      13us        25.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   13us        25.2.0        
   2    URB    24 00 00 10 - 00 00 00 00                     25ms        26.1.0        
   2.0  CTL    80 06 00 01 - 00 00 40 00  GET DESCRIPTOR     49us        27.1.0        
   2    URB    50 00 08 00 - 05 00 00 80  CONTROL TRANSFER   79ms        27.2.0        
   2    URB    14 00 01 10 - 00 00 00 00                    112us        28.1.0        
   2.0  CTL    23 01 01 00 - 02 00 00 00  CLEAR FEATURE     514ms        29.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   35us        29.2.0        
   2    URB    48 00 09 00 - 00 00 00 00  BULK/INT XFER     8.8sc        30.1.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         39us        31.1.0(2)    
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   31us        31.2.0        
   2.0  CTL    23 01 10 00 - 02 00 00 00  CLEAR FEATURE     104us        33.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   15us        33.2.0        
   2.0  CTL    a3 00 00 00 - 01 00 04 00  GET STATUS        1.4ms        34.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   49us        34.2.0        
   2.0  CTL    a3 00 00 00 - 02 00 04 00  GET STATUS         36us        35.1.0        
   2    URB    50 00 08 00 - 00 00 00 00  CONTROL TRANSFER   15us        35.2.0        


我的固件编译的时候,除了产生一次读设备描述符中断外,好象一直没有再产生其他的中断!!救命啊

最新喜欢:

lmhhlmhhlmhhlm...
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-29 14:19
你的问题真是很奇怪呀,如果是硬件的问题,你第一次读到E8第二次也应该是E8才对,是不是你设置了什么寄存器才引起的呀,你每次读完SETUP包之后要记着把SETUP缓冲区清空呀
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-29 11:00
想你说的这样获取的数据就是最上面我贴出来的这样
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-29 10:44
你在bushound的device中选择usb hub那个选项,看看有什么数据!
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-28 21:03
还有  第一次读取的八个字节为什么不是(80 06 00 01 00 00 40 00),变成(E8 06 00 01 00 00 40 00),甚至每次读取的第一个字节的数据都不不是很一样!奇怪吧
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-28 20:46
感谢jinghuiren和NewTech!我现在都是在98下运行的,我试着用usbhound去捕捉,可是没有发现设备啊!因为还没有驱动吧!因为每次运行到这里计算机就跳出发现新设备,安装驱动等画面。
我把仿真的数据贴出来,希望两位帮我看看
谢谢了
对了,我把数据读取在60H单元之后,没八个字节就是读出的SETUP包的内容,我都保存着,便于分析!


[编辑 -  5/28/03 by  cakor]
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-28 18:18
如果你在2k下调试,这个现象是正常的,另外正如jinghui兄说的,你好好检查一下,用bushound就可以看到了!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-28 13:00
如果之前你收到了80 06 00 02 00 00 09 00(有可能没有)命令,那你需要返回9字节的配置描述符,之后会收到80 06 00 02 00 00 ff 00,这时你要把所有的配置描述符全部发给主机,包括配置接口和端点描述符,然后主机就会要求你重新加载驱动,到这里初步没举完成,之后的事情就是你自己写的设备驱动的问题了。

根据你的情况,说明可能有下列几个问题,你可以从这几个问题去检查固件:
1,有可能你的配置描述符有错
2,有可能你没有把数据全部发给主机,
3,你发送程序有错,数据根本就没有发给主机
上述三种情况可以导致主机对你重新进行枚举,重新枚举2次后如果还不成功那就停止。

另外,我的问题也已经解决,是中断设置出了问题,导致dsp和usb中断不匹配,屏蔽掉了后面的中断,我这就去放分,我会把你给我的分家还给你 :D
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-28 11:22
但有出现新的问题:就是在获取(80 06 00 02 00 00 FF 00)后,怎么有重复(80 06 00 01 00 00 40 00)(00 05 02 00 00 00 00 00)(80 06 00 01 00 00 12 00)??请指教!
先说一下,我接下去要读取的描述符集是一个9字节的配置描述符、一个9字节的接口描述符和四个7字节的端点描述符!!
ConfigDescr:
DB 09H
DB 02H
DW 46     ;总数据长度9+9+7*4=46
DB 01H
DB 01H    
DB 00H    
DB 0a0H    
DB 32H  
我想可能的问题是我读取这些描述符的时候出错了?我现在请问这46个描述符是怎么读取的,还望指点迷津!3x  

[编辑 -  5/28/03 by  cakor]
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-28 11:09
人算不如天算,原来是我的仿真机有问题,害得我调了这么久,就说我大前天都可以读取SETUP包的,今天怎么不可以了!!送分表示感谢!谢谢两位了!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-27 23:17
我试过了,用一般的数字示波器是看不到的!我觉得在软件上想办法比较好!
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-27 15:31
那怎样才算是对的!数据线是D+、D-吗?
他们的波形是怎么样的?地址线又是、?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-27 12:05
你确定收到了setup中断?不应该呀,如果真的是这样建议用示波器看一下你的数据线和地址线。
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-27 11:55
我是按照你这么说的做的啊!!我先把他们循环读到30H-37H,然后再去看它,这样他的值就不变了!前天我还可以看到是(80 06 00 01 - 00 00 40 00)呢,可是今天又不可以了
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-27 11:41
你是怎么观察的读出的数据呀,可不能用仿真器直接看寄存器的地址,因为你读的是fifo,如果你用仿真器看,仿真器会提前把里面的数据都读出来,等到真正用的时候就变成00了,所以你的把它读到一个结构里然后看这个结构的内容
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-05-27 11:10
早上我再调式的时候,GL_N灯是可以一闪一闪的,但是我读出的八个字节的内容总是00H,WHY?
前天还是可以独到80H,06H…………
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-27 10:28
是的,第二个是set address
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-26 23:01
我用的是5v的总线供电!我猜Firmware没有写好,PC在进行GET DESCRIPTOR 请求的时候,好像没有数据传输阶段,得再仔细查看firmware,然后再进行调试。应该是先debug第一个标准请求:主机读取描述符。如果单片机发送描述符成功,则pc会发出第二个标准请求。是这样的吧?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-05-26 21:54
你现在的情况跟我的很象呀,在数据里面没看到设备返回的描述符内容,说明设备根本就没发数据给主机呀!
另外你捕捉到的怎么会有那么多的请求呀
是不是get status和set feature等请求你都没有处理呀!

还有我想问一下,d12用的是5v的还是3.3v的电源?
游客

返回顶部