kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2857回复:26

主机怎么不发INQUIRY命令请求?

楼主#
更多 发布于:2004-06-09 10:28
bus hound中的数据:
CTL 80 06 00 01 - 00 00 12 00
DI 12 01 10 01 - 00 00 00 10 - 71 04 88 08 - 00 01 00 00
00 01
CTL 80 06 00 02 - 00 00 09 00
DI 09 02 2e 00 - 01 01 00 40 - 32
CTL 80 06 00 02 - 00 00 2e 00
DI 09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 dc a0
b0 00 07 05 - 81 03 10 00 - 0a 07 05 01 - 03 10 00 0a
CTL 00 09 01 00 - 00 00 00 00
到这一步主机好像就不发命令请求了,
为什么没有
CDB 12 00 00 00 20 00 20 00  INQUIRY
如果我用usbdebug发送数据bushound接着显示:
DO aa aa aa aa - aa aa aa aa - aa aa aa aa - aa
aa是发送的数据。
这是怎么回事?
我的descriptor为:
USB_DEVICE_DESCRIPTOR DeviceDescr =
{
sizeof(USB_DEVICE_DESCRIPTOR),
           0x01,
0x0110,// 协议版本, 0x00,
           0, // 设备子类
0,// 设备协议
0x10,// 端点0最大数据
0x0471,// PHILIPS公司的设备ID
0x0888,// 设备制造商定的产品ID
0x0100,// 设备系列号
0,// iManufacturer
0,// iProduct
0,// iSerialNumber
1
};

USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
{
sizeof(USB_CONFIGURATION_DESCRIPTOR),
0x02,
0x2e,
1,// 只支持1个接口
1,// 配置值
0,// 字符串描述符指针(无)
0x40,// 自供电
0x32// 最大功耗(100mA)
};
USB_INTERFACE_DESCRIPTOR InterfaceDescr =
{
sizeof(USB_INTERFACE_DESCRIPTOR), 0x04,
0,// 接口数,只有1个
0,// 可选配置,只有1个
0x04,
0x08,
0x04,
0x50,
0// 字符串描述符指针(无)
};
//端点1发送描述
USB_ENDPOINT_DESCRIPTOR EP1_TXDescr =
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
0x05
0x81,// 端点1IN
USB_ENDPOINT_TYPE_INTERRUPT,// 中断传输,=0x03
0x10
10// 传输间隔时间,=10ms
};

//端点1接收描述符
USB_ENDPOINT_DESCRIPTOR EP1_RXDescr =
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
0x05    
0x01,// 端点1OUT                      
USB_ENDPOINT_TYPE_INTERRUPT,// 中断传输,=0x03    
0x10,    
10// 传输间隔时间,=10ms    
};
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-10 13:39
我发帖问了,没人着。郁闷!!
新手上路,请多关照.
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-10 13:08
爱国者的hound数据是
CTL   80 06 00 02 00 00 20 00
DI    09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06
      50 00 07 05 - 01 02 40 00 - 00 07 05 82 - 02 40 00 00
CTL   00 09 01 00 - 00 00 00 00  //set-configure
CTL   01 0b 00 00 - 00 00 00 00  //set-interface
CTL   a1 fe 00 00 - 00 00 01 00
USTS  04 00 00 80
CTL   02 01 00 00 - 00 00 00 00
CTL   a1 fe 00 00 - 00 00 01 00
USTS  04 00 00 80
CTL   02 01 00 00 - 00 00 00 00
CTL   a1 fe 00 00 - 00 00 01 00
USTS  04 00 00 80
CTL   02 01 00 00 - 00 00 00 00
DO    55 53 42 43 - 68 ee aa ff - 24 00 00 00 - 80 00 06 12
      00 00 00 24 - 00 00 00 00 - 00 00 00 00 - 00 00 00
DI    00 00 02 02 - 1f 00 00 00 - 4d 69 6e 69 - 4b 69 6e 67
      20 20 20 20 - 20 20 20 20 - 20 20 20 20 - 20 20 20 20

我的是只到了CTL   00 09 01 00 - 00 00 00 00  //set-configure
而没有像爱国者U盘一样接着 set-interface 我想这就是我的问题所在了。

我在程序中端点跟踪了一下,发先set-configure以后 ,显示设备已被配置,但主机就是不发set-interface 请求,真是奇怪。

我现在已经吧端点1设为中断模式 端点2设成bulk形式了。
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-10 09:38
还在讨论呀?!!

kevin_yin:建议你自己多动手、多看代码、多思考、多找点资料,可以看看精华区的文章。基本上你的问题上面都有解决。另外,你的问题我只能根据你的描述去估计、猜测,做不得准,解决问题最关键的最终还是靠自己。

metalwing:还是那句,建议将你的问题发贴问比较好。

千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-10 08:35
我不是做HOST,比你还惨,你的HOST还能识别设备,我的直接
NO RESPOND,郁闷。
请问固件程序光有CHARP9和INIT,HOST能识别设备吗?
新手上路,请多关照.
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-09 19:08
你是不是做host端啊? PHILIPS ISP1581 这芯片我一点都不熟悉,usb我是刚刚接触,现在被这问题卡在这 ,做不下去了,真不爽啊?
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-09 18:57
我也迷惑,但看过好象有的是这样(周立功实验板),不敢保证。
何妨一试,结果跟我说一下。
我的板子一接上,没应答,可以帮我参考一下吗?具体的见
你的另一个主题。
谢谢
新手上路,请多关照.
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-09 18:52
谢谢回答!
我有4个端点分别是ep1 in,ep1 out ,ep2 in ,ep2 out
所以1个configure,1个interface,4个endpoint共46个字节为2e
难道ep1 in , ep1 out算一个端点?
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-09 18:18
他们的端点一个是EP1,一个是EP2,你的不是,你把2E改小一点试试看,不知成不。
新手上路,请多关照.
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-09 18:12
CONFIG DESCRIPTOR 里的WTOTALLENGTH 不是等于
SIZEOF(CONFIG)+INTERFACENUM*SIZEOF(INTERFACE)
+ENDPTNUM*SIZEOF(ENDPT)吗?
但我看见有的把EPI IN和EPI OUT算为一个端点了,是这样吗?
新手上路,请多关照.
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-09 17:36
4个端点原来都是interrupte类型的,但主机还是不发INQURY命令,
后来我看了爱国者的U盘它只用了2个端点,而且都是BULK类型的
所以我就把我的全都改成02了。但还是不行,那我这4个端点应该怎么设呢?
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-09 16:50
仔细看看端点描述符第4位,怎么可能都是02呢?
不说了,又烦又累!
:)

谢谢提醒
是bus hound 的问题 我把它调大点了这是抓的数据:
CTL    80 06 00 01 - 00 00 12 00
DI     12 01 10 01 - 00 00 00 10 - 71 04 88 08 - 00 01 00 00
       00 01
CTL    80 06 00 02 - 00 00 09 00
DI     09 02 2e 00 - 01 01 00 40 - 32
CTL    80 06 00 02 - 00 00 2e 00
DI     09 02 2e 00 - 01 01 00 40 -32 09 04 00 -00 04 08 06
       50 00 07 05 - 81 02 10 00 - 00 07 05 01 - 02 10 00 00
       07 05 82 02 - 40 00 00 07 - 05 02 02 40 - 00 00
CTL    00 09 01 00 - 00 00 00 00
就停在这了,不知怎么回事?
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-09 16:36
谢谢提醒
是bus hound 的问题 我把它调大点了这是抓的数据:
CTL    80 06 00 01 - 00 00 12 00
DI     12 01 10 01 - 00 00 00 10 - 71 04 88 08 - 00 01 00 00
       00 01
CTL    80 06 00 02 - 00 00 09 00
DI     09 02 2e 00 - 01 01 00 40 - 32
CTL    80 06 00 02 - 00 00 2e 00
DI     09 02 2e 00 - 01 01 00 40 -32 09 04 00 -00 04 08 06
       50 00 07 05 - 81 02 10 00 - 00 07 05 01 - 02 10 00 00
       07 05 82 02 - 40 00 00 07 - 05 02 02 40 - 00 00
CTL    00 09 01 00 - 00 00 00 00
就停在这了,不知怎么回事?
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-09 16:19
奇怪,为什么你抓到的数据怎么都不能超过20h???
明明是27,回应是20;明明是22,也回应只有20

用的是bushound吧,你bushound设置是不是限制了?
你把buffersize和maxphase设大点。


我又找了一个纽曼的U盘抓了一下数据是:
CTL    80 06 00 02 - 00 00 27 00
DI  09 02 27 00 - 01 01 00 80 - 32 09 04 00 - 00 03 08 06
    50 00 07 05 - 81 02 40 00 - 00 07 05 02 - 02 40 00 00  
CTL    80 06 00 03 - 00 00 02 00
DI     04 03
CTL    80 06 00 03 - 00 00 04 00
DI     04 03 09 04
CTL    80 06 03 03 - 09 04 02 00
DI     22 03
CTL    80 06 03 03 - 09 04 22 00
DI     22 03 33 00 - 31 00 35 00 - 43 00 31 00 - 37 00 30 00
       43 00 34 00 - 30 00 33 00 - 41 00 41 00 - 41 00 44 00
CTL    00 09 01 00 - 00 00 00 00
CTL    00 09 01 00 - 00 00 00 00
可以看到这种U盘有3个endpoint
  
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-09 16:11
usb协议和mass storage协议我已经看过了,现在也是在一边拿着协议,一边在改我的程序,但感觉真的到实际中时,还是有很多困难。
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-06-09 16:08
谢谢flyhye回答
我用的是4个endpoint,分别是ep1 IN  ,ep1 OUT,ep2 IN , ep2  OUT所以长度就是2e了。
我又找了一个纽曼的U盘抓了一下数据是:
CTL    80 06 00 02 - 00 00 27 00
DI  09 02 27 00 - 01 01 00 80 - 32 09 04 00 - 00 03 08 06
    50 00 07 05 - 81 02 40 00 - 00 07 05 02 - 02 40 00 00  
CTL    80 06 00 03 - 00 00 02 00
DI     04 03
CTL    80 06 00 03 - 00 00 04 00
DI     04 03 09 04
CTL    80 06 03 03 - 09 04 02 00
DI     22 03
CTL    80 06 03 03 - 09 04 22 00
DI     22 03 33 00 - 31 00 35 00 - 43 00 31 00 - 37 00 30 00
       43 00 34 00 - 30 00 33 00 - 41 00 41 00 - 41 00 44 00
CTL    00 09 01 00 - 00 00 00 00
CTL    00 09 01 00 - 00 00 00 00
可以看到这种U盘有3个endpoint,不过在到
CTL    00 09 01 00 - 00 00 00 00之前比我的有多了一段数据
CTL    80 06 00 03 - 00 00 02 00这个命令是表示设备类型是string型的

我已把我的端点改为BULK了

但还是老问题啊?

  
 
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-06-09 15:39
另外,奉劝一句,多看看usb协议吧,还有mass storage协议
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-06-09 15:32
仔细看了一下,感觉应该是长度不对,
80 06 00 02 - 00 00 2e 00
要求的2eh,你给的数据是:

DI 09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 08 04
   50 00 07 05 - 81 03 10 00 - 0a 07 05 01 - 03 10 00 0a

才20h,这是第一个。

另外,爱国者的端点是bulk传输,而你的两端点是interrupt,没bulk端点。


我该了但还不行啊
接口插上bus hound数据:
CTL 80 06 00 01 - 00 00 12 00
DI 12 01 10 01 - 00 00 00 10 - 71 04 88 08 - 00 01 00 00
00 01
CTL 80 06 00 02 - 00 00 09 00
DI 09 02 2e 00 - 01 01 00 40 - 32
CTL 80 06 00 02 - 00 00 2e 00
DI 09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 08 04
50 00 07 05 - 81 03 10 00 - 0a 07 05 01 - 03 10 00 0a
CTL 00 09 01 00 - 00 00 00 00
到这儿就不动了。

我找了一个爱国者的u盘,用hound抓了数据是:
CTL  80 06 00 02 00 00 20 00
DI   09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06  
    50 00 07 05 - 01 02 40 00 - 00 07 05 82 - 02 40 00 00
CTL    00 09 01 00 - 00 00 00 00
CTL    01 0b 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00      
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
DO     55 53 42 43 - 68 ee aa ff - 24 00 00 00 - 80 00 06 12
       00 00 00 24 - 00 00 00 00 - 00 00 00 00 - 00 00 00
DI     00 00 02 02 - 1f 00 00 00 - 4d 69 6e 69 - 4b 69 6e 67
       20 20 20 20 - 20 20 20 20 - 20 20 20 20 - 20 20 20 20

我把我的descriptor改成和他的一样

CTL    80 06 00 02 - 00 00 2e 00
DI     09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 08 06
       50 00 07 05 - 81 02 10 00 - 0a 07 05 01 - 02 10 00 0a
CTL    00 09 01 00 - 00 00 00 00
但到这儿还是不动了,
不像爱国者的u盘一样接着有
CTL    01 0b 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
.....
怎么回事啊?
 
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
kevin_yin
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-06-09 15:17
我该了但还不行啊
接口插上bus hound数据:
CTL 80 06 00 01 - 00 00 12 00
DI 12 01 10 01 - 00 00 00 10 - 71 04 88 08 - 00 01 00 00
00 01
CTL 80 06 00 02 - 00 00 09 00
DI 09 02 2e 00 - 01 01 00 40 - 32
CTL 80 06 00 02 - 00 00 2e 00
DI 09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 08 04
50 00 07 05 - 81 03 10 00 - 0a 07 05 01 - 03 10 00 0a
CTL 00 09 01 00 - 00 00 00 00
到这儿就不动了。

我找了一个爱国者的u盘,用hound抓了数据是:
CTL  80 06 00 02 00 00 20 00
DI   09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06  
    50 00 07 05 - 01 02 40 00 - 00 07 05 82 - 02 40 00 00
CTL    00 09 01 00 - 00 00 00 00
CTL    01 0b 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00      
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
USTS   04 00 00 80
CTL    02 01 00 00 - 00 00 00 00
DO     55 53 42 43 - 68 ee aa ff - 24 00 00 00 - 80 00 06 12
       00 00 00 24 - 00 00 00 00 - 00 00 00 00 - 00 00 00
DI     00 00 02 02 - 1f 00 00 00 - 4d 69 6e 69 - 4b 69 6e 67
       20 20 20 20 - 20 20 20 20 - 20 20 20 20 - 20 20 20 20

我把我的descriptor改成和他的一样

CTL    80 06 00 02 - 00 00 2e 00
DI     09 02 2e 00 - 01 01 00 40 - 32 09 04 00 - 00 04 08 06
       50 00 07 05 - 81 02 10 00 - 0a 07 05 01 - 02 10 00 0a
CTL    00 09 01 00 - 00 00 00 00
但到这儿还是不动了,
不像爱国者的u盘一样接着有
CTL    01 0b 00 00 - 00 00 00 00
CTL    a1 fe 00 00 - 00 00 01 00
.....
怎么回事啊?
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-06-09 14:46
对,就这个:)

你是不是说 dc a0 b0这三个数应该为08 04 50 ?
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
上一页
游客

返回顶部