rogerji
驱动牛犊
驱动牛犊
  • 注册日期2001-12-11
  • 最后登录2002-08-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2141回复:7

BULKUSB管道通讯的问题!

楼主#
更多 发布于:2002-04-21 15:42
BULKUSB是负责BULK管道的数据流,请问能否在BULKUSB上进行修改,使它负责CONTROL管道的数据流,如果可以的话,应该如何实现?
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-24 08:50
我这里要求把PDA实现成一个USB移动硬盘的功能,即插上设备后,PC主机的资源管理器中要求出现一个硬盘盘符,而拔除后消失,我想在实现时要采用UMSS 的CBI类传输,我用的芯片是PHILIP的D12芯片,但是我看到它提供的FIRM WARE例程中很奇怪,设备进入 CONTROL IN中断时仅发一个0长度的包给主机,其他什么也不做,这样怎么能向主机发回数据呢?还是在另有地方实现了CONTROL传送的数据部分向主机传送?


Sorry,对移动硬盘实现原理我不太清楚。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-24 08:48
请问大侠,我的设备是别的厂家做的,我并没有详细的资料,我读出了设备的的endpoint描述符,获得了句柄,是否可以不使用UsbBuildVendorRequest而直接使用这些句柄来仅仅完成一些基本的读写功能,请问上面这个宏主要用在什么地方,完成类似什么样子的功能?

缺省管道没有显式的管道句柄,在缺省管道控制传输最好使用宏.至于其他管道(同步、块、中断)可以必须使用管道句柄。你可以使用一些宏也可以自己设置URB。如:
urb->UrbIsochronousTransfer.PipeHandle =
               PipeInfo->PipeHandle;
UsbBuildVendorRequest是支持设备在缺省管道的厂商命令的控制传输,如:
UsbBuildVendorRequest(urb,//需要初始化的urb
                   URB_FUNCTION_VENDOR_DEVICE,//设备厂商命令
                     sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST),
                           GetData ? USBD_TRANSFER_DIRECTION_IN :
                                  0,//IN or Out,
                              0,
 Request,//以下三个参数为设备得到的setup包的相应项
                              Value,
                              Index,
                              localBuffer,
                              NULL,
                              length,//
                              NULL);
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
liuwan
驱动小牛
驱动小牛
  • 注册日期2001-10-15
  • 最后登录2004-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-23 21:18
我这里要求把PDA实现成一个USB移动硬盘的功能,即插上设备后,PC主机的资源管理器中要求出现一个硬盘盘符,而拔除后消失,我想在实现时要采用UMSS 的CBI类传输,我用的芯片是PHILIP的D12芯片,但是我看到它提供的FIRM WARE例程中很奇怪,设备进入 CONTROL IN中断时仅发一个0长度的包给主机,其他什么也不做,这样怎么能向主机发回数据呢?还是在另有地方实现了CONTROL传送的数据部分向主机传送?
菜菜
dogLee
驱动牛犊
驱动牛犊
  • 注册日期2001-11-19
  • 最后登录2002-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-23 20:19
请问大侠,我的设备是别的厂家做的,我并没有详细的资料,我读出了设备的的endpoint描述符,获得了句柄,是否可以不使用UsbBuildVendorRequest而直接使用这些句柄来仅仅完成一些基本的读写功能,请问上面这个宏主要用在什么地方,完成类似什么样子的功能?
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-22 17:45
UsbBuildVendorRequest是DDK中宏定义,UsbDriverCallUSBD不是,但DDK\\SRC\\USB\\中bulkusb和Isousb中都有代码;你也可以自己写.
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
crazy
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-22 16:18
斑竹说的这个函数是DDK中的吗?
crazy
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-22 08:32
所有的usb设备必须实现缺省管道的传输,而缺省管道就是USB设备中唯一的双向控制管道.BulkUSB中也同样实现了缺省管道的控制传输.如得到设备描述符等.CONTROL管道的厂商数据流可通过
UsbBuildVendorRequest(urb,
                              URB_FUNCTION_VENDOR_DEVICE,
                              sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST),
                              GetData ? USBD_TRANSFER_DIRECTION_IN : 0,
                              0,
                              Request,
                              Value,
                              Index,
                              localBuffer,
                              NULL,
                              length,
                              NULL);
#if DBG
        DebugPrint(\"BufferLength =  0x%x buffer = 0x%x\\n\",
            length, localBuffer);
#endif
        ntStatus = UsbDriverCallUSBD(deviceObject, urb);
得到.
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
游客

返回顶部