Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:2049回复:10

USB主机和设备间通讯的问题,请各位大哥帮帮忙?

楼主#
更多 发布于:2002-08-19 17:18
在下开发了USB设备端的driver,想用2000ddk下的bulkusb测试一下,VID和PID已按照bulkusb.inf中所指定的写到了device端的descriptors中,可设备插到主机上时,显示是一个unknow device,虽然指定了bulkinf,可系统却去找c:/winnt/system32/inf/usb.inf
还显示:An error occurred during the installation of the device
       The installation failed because a function driver was not specified for the device instance.

各位大哥能告诉小弟是哪里的错吗?
多谢了
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-19 17:40
设备描述符数据不对。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
gxjt
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2006-06-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-19 17:40
根本就没装上驱动程序嘛
[color=red] “阿弥陀佛,无上医王,舍此不求,是谓痴狂。” “一句弥陀,阿伽陀药,舍此不服,是谓大错。” 南无阿弥陀佛......[/color]
Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-20 11:11
感谢各位大哥的帮助
能告诉小弟该如何修改吗?
是改device端呢还是host端?
下面是我得device descriptors(EP0,ep1(bulk IN),ep2(bulk out)),neng帮小弟看一下吗?多谢

desc.dev.bLength               = sizeof( device_desc_t );
desc.dev.bDescriptorType       = 1;
desc.dev.bcdUSB                = 0x100; /* 1.0 */
desc.dev.bDeviceClass          = 0; /* vendor specific */
desc.dev.bDeviceSubClass       = 0;
desc.dev.bDeviceProtocol       = 0;
desc.dev.bMaxPacketSize0       = 16; /* ep0 max fifo size */
desc.dev.idVendor              = 0x5e,0x04; /* vendor ID undefined */
desc.dev.idProduct             = 0x0a,0x93; /* product */
desc.dev.bcdDevice             = 0; /* vendor assigned device release num */
desc.dev.iManufacturer         = 0; /* index of manufacturer string */
desc.dev.iProduct              = 0; /* index of product description string */
desc.dev.iSerialNumber         = 0; /* index of string holding product s/n */
desc.dev.bNumConfigurations    = 1;

desc.b.cfg.bLength             = sizeof( config_desc_t );
desc.b.cfg.bDescriptorType     = 2;
desc.b.cfg.wTotalLength        = make_word_c( sizeof(struct cdb) );
desc.b.cfg.bNumInterfaces      = 1;
desc.b.cfg.bConfigurationValue = 1;
desc.b.cfg.iConfiguration      = 0;
desc.b.cfg.bmAttributes        = USB_CONFIG_BUSPOWERED;
desc.b.cfg.MaxPower            = USB_POWER( 500 );

desc.b.intf.bLength            = sizeof( intf_desc_t );
desc.b.intf.bDescriptorType    = USB_DESC_INTERFACE;
desc.b.intf.bInterfaceNumber   = 0; /* unique intf index*/
desc.b.intf.bAlternateSetting  = 0;
desc.b.intf.bNumEndpoints      = 2;
desc.b.intf.bInterfaceClass    = 0; /* vendor specific */
desc.b.intf.bInterfaceSubClass = 0;
desc.b.intf.bInterfaceProtocol = 0;
desc.b.intf.iInterface         = 0;

desc.b.ep1.bLength             = sizeof( ep_desc_t );
desc.b.ep1.bDescriptorType     = USB_DESC_ENDPOINT;
desc.b.ep1.bEndpointAddress    = USB_EP_ADDRESS( 1, USB_IN );
desc.b.ep1.bmAttributes        = USB_EP_BULK;
desc.b.ep1.wMaxPacketSize      = make_word_c( 64 );
desc.b.ep1.bInterval           = 0;

desc.b.ep2.bLength             = sizeof( ep_desc_t );
desc.b.ep2.bDescriptorType     = USB_DESC_ENDPOINT;
desc.b.ep2.bEndpointAddress    = USB_EP_ADDRESS( 2, USB_OUT );
desc.b.ep2.bmAttributes        = USB_EP_BULK;
desc.b.ep2.wMaxPacketSize      = make_word_c( 64 );
desc.b.ep2.bInterval           = 0;

// FIXME: Add support for all endpoint...

/* set language */
/* See: http://www.usb.org/developers/data/USB_LANGIDs.pdf */
sd_zero.bDescriptorType = USB_DESC_STRING;
sd_zero.bLength         = sizeof( string_desc_t );
sd_zero.bString[0]      = make_word_c( 0x409 ); /* American English */
usb_set_string_descriptor( 0, &sd_zero );
}
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-20 11:16
设备端返回数据为0才会是Unknown USB device。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-20 14:18
谢谢tigerzd
我查了一下当USB插入主机时,Device端就根本没进到我申请的中断中。
能告诉我是怎么回事吗?
ytain37
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2006-06-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-20 19:23
首先你得确定一下你的设备工作是不是正常。
还有就是所用的晶振频率对不对。
我是一只菜菜鸟!飞呀飞不高!
LIUTANG
驱动大牛
驱动大牛
  • 注册日期2001-03-30
  • 最后登录2020-12-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望58点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-08-20 22:34
设备没有正常响应主机的请求,建议仔细查看你的FIRMWARE是不是有BUG
Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-21 09:12
多谢各位大哥的帮助
可我没有USB分析仪,该怎么查呢?
我设备端的OS是linux,能给我的建议吗?
Sweery
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2006-10-15
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-21 09:41
建议你在9x下,先走通USB的配置,基本完成
80 06 00 01 00 00 40 00
00 05 XX 00 00 00 00 00
80 06 00 02 00 00 40(??FF) 00
80 06 00 03 00 00 40 00
这些命令就先可以了.
你的firmware走完了这些吗?
SweetJerry
zjb9606
禁止发言
禁止发言
  • 注册日期2001-03-31
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分28476分
  • 威望148950点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-08-21 13:24
用户被禁言,该主题自动屏蔽!
游客

返回顶部