jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
阅读:3870回复:42

将枚举进行到底―GET CONFIGURATION问题!

楼主#
更多 发布于:2003-03-01 18:54
在大家的帮助下,我的枚举已经进行到了GET CONFIGURATION了,主机发送获得接口请求后,我返回了一个字节数据(值为1)
然后主机就又发送了一个00 09 00 00 00 00 00 00(设置配置)请求,是不是我发送的数据不对呢?

最新喜欢:

templatempla sandmansandma...
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-21 21:14
jinghuiren老兄,我现在正在啃scsi命令,你对这方面熟悉吗!
 


支去书店找电子工业出版的有一本专讲 《IDE 与 SCSI总线》的。
决对好用。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-21 10:22
不熟悉,严格的说是第一次听说,而且还不知道是什么东西,遗憾ing :(
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-21 01:25
jinghuiren老兄,我现在正在啃scsi命令,你对这方面熟悉吗!
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-20 23:51
恭喜大伙都成功了。
我的可能要先放一下。
4qiuxh
驱动小牛
驱动小牛
  • 注册日期2002-11-27
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-20 19:49
to renjinghui:为什么我得中断只是suspend和busreset呢?把这两个中断处理完了就没有中断再进来了阿?这是为什么呢?谢谢了
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-18 12:52
呵呵,多谢个位老兄的鼎立帮助!我的问题已经解决,原因是别人写的设备驱动出了问题,我用SOFTICE调了一下,发现ConfigDevice()里在搜索指定配置描述附中的接口描述符时出了错,用的函数太过古老了,找不着,所以就无法建立pipe list,因此主机只好再发命令把设备置于未配置状态(也就是00 09 00 00 00 00 00 00命令),改了之后就好了!

这是昨天完成的,可是前天晚上开了会,因为那时还没做完,所以被老板狠狠骂了一顿,我比窦娥都冤呀!

真的很感谢大家,多谢多谢了!!! :)
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-14 20:52
我的已经通过了,现在正在识别SCSI的命令包了!

我建议你试试以下几个方法:
1、重装系统98、2000
2、肯定是你的get config的应答有问题!
3、set address时的设置有错,导致set config应答之后,收不到bulk only控制包

祝你好运!!!
:D
cogan
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-11 14:46
[quote]下面是最新收到的数据:
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR      
  15.0  DI     12 01 02 00 - 00 00 00 40       .......@              
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       .. .....              
  15.0  CTL    00 09 01 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 08 00 00 - 00 00 01 00       GET CONFIG            
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    80 0a 00 00 - 00 00 01 00       GET INTERFACE        
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    00 09 00 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       . .....                

下面是又一次了,上面的是一次枚举收到的数据
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR        
  15.0  DI     12 01 02 00 - 00 00 00 40       ......@              

不明白到底是那里出了问题, :(


[编辑 -  3/6/03 by  jinghuiren]


这个就是枚举没有成功了。
因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor. [/quote]

这种说法不太准确,usb是有可能发几次GetDescriptor命令的
flyfree
驱动牛犊
驱动牛犊
  • 注册日期2002-12-26
  • 最后登录2007-09-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-11 12:13
收到 set config 后有没有设置端点使能?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-09 17:57
哎,我看短时间内是搞不定了,先结了贴再说吧. :(
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-09 13:16
我用的是 USB1.1

收到的请求有:

01、80 06 00 01 00 00 40 00
02、00 05 02 00 00 00 00 00
03、80 06 00 01 00 00 12 00
04、80 06 00 02 00 00 09 00
05、80 06 00 02 00 00 ff 00
06、80 06 00 03 00 00 ff 00
07、80 06 02 03 09 04 ff 00

之后就收不到 08 step 了。
但在前 07 step 中已经加载过 .INF 和 .SYS 了。 出现黄色叹号, 我的问题可能出在哪里。 是的回应数值不对还是驱动有问题?
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-03-09 13:10
[quote]之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪

在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗?



置哪个标志位啊? [/quote]

我也觉得应该置那个标志位。  SETUP -> IN   IN 为: NoDataControl
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-09 13:02
下面是最新收到的数据:
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR      
  15.0  DI     12 01 02 00 - 00 00 00 40       .......@              
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       .. .....              
  15.0  CTL    00 09 01 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 08 00 00 - 00 00 01 00       GET CONFIG            
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    80 0a 00 00 - 00 00 01 00       GET INTERFACE        
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    00 09 00 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       . .....                

下面是又一次了,上面的是一次枚举收到的数据
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR        
  15.0  DI     12 01 02 00 - 00 00 00 40       ......@              

不明白到底是那里出了问题, :(


[编辑 -  3/6/03 by  jinghuiren]


这个就是枚举没有成功了。
因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor.
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-03-09 12:50
现在问题是:我在set config里面只设置了一个标志位,然后主机就发送get config命令,我收到后返回了当前的配置值1,然后主机就又发了个00 09 00 00 00 00 00 00给我,之后就什么也没有了,而设备管理器里面显示的设备上那个黄色的叹号还有,这是不是说明我后续枚举没有完成呢。



我也是出现了黄色的叹号, 我想很可能是没有成功,
因为我还没有收到 00 09 00 00 00 00 00 00 就出现黄色叹号了。
我只收到 80 06 ...... 和 00 05 ..... ,
等收到 80 06 02 03 09 04 ff 00 的时候,MCU 就不动了。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-03-07 18:34
我用的是3.3的,前不久有人传了一个我当下来的,你往前翻几页看看,还在呢.
那我按你说的再试试,我现在还有一点怀疑,是不是cpu太快也会对我的设备有影响,我用的是P4-2.4G的.
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-03-07 14:23
cypress的设成FF我想是因为它用自己的驱动程序,而且FF的含义就是Vendor自定义类和子类。如果你想用缺省的W2K MassStorageClass驱动,不如就改成08 06 50或08 04 50算了。
还有你的BusHound版本多少的?我怎么抓不到买的2.0硬盘盒的数据信息?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-03-07 14:15
但是我看CYPRESS里面成功枚举的也没有呀,不过他们设的是FF,那我也改成FF试试。
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-03-07 14:08
我还是感觉你返回配置描述符表里的接口描述符有问题,你不告诉主机什么类,子类及协议,主机怎么继续给你发信息?当然它就会继续要配置和接口信息了。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-03-07 10:27
下面是收到的全部数据:
15  CTL    80 06 00 01 - 00 00 12 00                              GET DESCRIPTR
 15  DI     12 01 02 00 - 00 00 00 40 - 47 05 49 1b - 00 00 00 00  .......@G.I...  
            00 01                                                  ..            
 15  CTL    80 06 00 02 - 00 00 c8 00                              GET DESCRIPTR
 15  DI     09 02 20 00 - 01 01 01 80 - 32 09 04 00 - 00 02 00 00  .. .....2.....
            00 00 07 05 - 81 02 00 02 - 00 07 05 02 - 02 00 02 00  .............  
 15  CTL    00 09 01 00 - 00 00 00 00                              SET CONFIG    
 15  CTL    80 08 00 00 - 00 00 01 00                              GET CONFIG    
 15  USTS   04 00 00 c0                                            pid stalled  
 15  CTL    81 0a 00 00 - 00 00 01 00                              GET INTERFACE
 15  USTS   04 00 00 c0                                            pid stalled  
 15  CTL    00 09 00 00 - 00 00 00 00                              SET CONFIG

难道是 GET CONFIG和 INTERFACE  有错吗,GET INTERFACE不是只需要返回一个0就可以了吗?
上一页
游客

返回顶部