阅读:1454回复:2
现在才发现,这个帖子应该发在这里――使用过BUS HOUND工具的高手们请进,40分题。
我的任务是采用USB连接把三星FLASH设备实现成移动硬盘,我的USB芯片用D12,设备类当然是使用MASS STORAGE类,命令格式是SCSI 传输命令集,传输协议用BULK ONLY协议。在固件中的端点描述符中我共定义了两个端点,BULK IN和BULK OUT端点,根据D12手册,它们都是2号端点。我用BUS HOUND捕捉到目前我的程序在插入枚举时总线上的数据如下:
9.0 CTL 80 06 00 01 - 00 00 12 00 GET DESCRIPTR 0us 1.1.0 9.0 DI 12 01 10 01 - 00 00 00 10 ........ 4.2ms 1.2.0 a0 0e 03 68 - 00 01 00 00 ...h.... 1.2.8 00 01 .. 1.2.16 9.0 CTL 80 06 00 02 - 00 00 09 00 GET DESCRIPTR 31us 2.1.0 9.0 DI 09 02 20 00 - 01 01 00 80 .. ..... 3.9ms 2.2.0 32 2 2.2.8 9.0 CTL 80 06 00 02 - 00 00 20 00 GET DESCRIPTR 34us 3.1.0 9.0 DI 09 02 20 00 - 01 01 00 80 .. ..... 4.9ms 3.2.0 32 09 04 00 - 00 02 08 06 2....... 3.2.8 50 00 07 05 - 82 02 40 00 P.....@. 3.2.16 00 07 05 02 - 02 40 00 00 .....@.. 3.2.24 9.0 CTL 00 09 01 00 - 00 00 00 00 SET CONFIG 28us 4.1.0 9.2 DO 55 53 42 43 - c8 3a 3d 81 USBC.:=. 4.9ms 5.1.0 24 00 00 00 - 80 00 06 12 $....... 5.1.8 00 00 00 24 - 00 00 00 00 ...$.... 5.1.16 00 00 00 00 - 00 00 00 ....... 5.1.24 (*出问题处*)9 DI 00 80 02 02 - 1f 00 00 00 ........ 997us 7.1.0 4f 54 69 20 - 20 20 20 20 OTi 7.1.8 55 6c 74 72 - 61 20 46 6c Ultra Fl 7.1.16 6f 70 70 79 - 20 20 20 20 oppy 7.1.24 31 2e 30 30 1.00 7.1.32 9.2 DO 55 53 42 43 - c8 3a 3d 81 USBC.:=. 20sc 8.1.0 24 00 00 00 - 80 00 06 12 $....... 8.1.8 00 00 00 24 - 00 00 00 00 ...$.... 8.1.16 00 00 00 00 - 00 00 00 ....... 8.1.24 可惜帖子中无法清晰的排版,前面的9代表我的设备序号,9.0代表控制管道,9.2代表我的批管道。DI 表示数据方向由设备往主机,DO表示数据方向由主机往设备。 现在我的问题出在我标识处,本来此处应该是响应上一个BULK OUT(9.2) 通道发来的CBW命令块,命令块中包含了INQUIRY命令,此处应该由BULK IN(9.2)通道向主机发回该命令的数据部分,事实上我发回的数据部分格式没有问题,但是前面的通道标识号却不知为何变成了 9 !!而我希望的是9.2,请问各位大侠:我的问题出在何处?为何bus hound不能识别我的bulk in通道序号,我在描述符中可是正确的送出了这两个端点的描述符啊。 问题很急,恳请各位大虾援手,一定给分。 |
|
|
沙发#
发布于:2002-07-02 09:11
附:我的固件程序中的端点描述符部分,我觉得这里面我没有问题。大家人多眼睛亮,帮我看看:(注:D12的两个批端点都是2号端点)
const USB_ENDPOINT_DESCRIPTOR BulkInDescriptor = { 0x07, USB_ENDPOINT_DESCRIPTOR_TYPE, 0x82, //方向为IN的2号端点 USB_ENDPOINT_TYPE_BULK, SWAP(0x0040), 0, }; const USB_ENDPOINT_DESCRIPTOR BulkOutDescriptor = { 0x07, USB_ENDPOINT_DESCRIPTOR_TYPE, 0x02, //方向为OUT的2号端点 USB_ENDPOINT_TYPE_BULK, SWAP(0x0040), 0 }; |
|
|
板凳#
发布于:2002-07-02 11:44
我在那个版回答了,不知对不对呢? :D
|
|
|