[ZLG-ARM] 请教2148USB设备描述接口的写法!!!!

[复制链接]
2157|3
 楼主| justcool 发表于 2007-12-20 21:29 | 显示全部楼层 |阅读模式
自己想做个基于2148的USB口与PC通讯的固件驱动,是在KEIL带的HID例子的基础上改,在改动usbdesc.c这个文件的时候,我把KEIL带的虚拟串口例子的描述搬上去,下载到板子上后,系统可以找到一个USB兼容设备,并且找到了两个虚拟的串口,但是我把他改成了只有一个接口的描述后,系统就找不到USB兼容设备了,只是找到了一个未知设备,但是里面的字符串描述符都没问题,哪位大侠可以指点一下<br />#include&nbsp;&quot;type.h&quot;<br />#include&nbsp;&quot;usb.h&quot;<br />#include&nbsp;&quot;usbcfg.h&quot;<br />#include&nbsp;&quot;usbdesc.h&quot;<br /><br />/*&nbsp;Two&nbsp;interface&nbsp;descriptor&nbsp;for&nbsp;2&nbsp;Virtual&nbsp;COM&nbsp;port,,&nbsp;each&nbsp;VCOM&nbsp;uses&nbsp;3&nbsp;endpoints&nbsp;*/<br />/*&nbsp;The&nbsp;total&nbsp;number&nbsp;of&nbsp;endpoints&nbsp;are&nbsp;6,&nbsp;2&nbsp;interrupt&nbsp;IN&nbsp;for&nbsp;modem&nbsp;status&nbsp;reading,<br />2&nbsp;BULK&nbsp;OUT&nbsp;for&nbsp;COM&nbsp;TX,&nbsp;and&nbsp;2&nbsp;BULK&nbsp;IN&nbsp;for&nbsp;COM&nbsp;RX&nbsp;*/<br />&nbsp;<br />#define&nbsp;NUM_ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;<br /><br />/*&nbsp;USB&nbsp;Standard&nbsp;Device&nbsp;Descriptor&nbsp;*/<br />const&nbsp;BYTE&nbsp;USB_DeviceDescriptor[]&nbsp;=&nbsp;{<br />&nbsp;&nbsp;USB_DEVICE_DESC_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />&nbsp;&nbsp;USB_DEVICE_DESCRIPTOR_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDescriptorType&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0x0100),&nbsp;/*&nbsp;1.00&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bcdUSB&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDeviceClass&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDeviceSubClass&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDeviceProtocol&nbsp;*/<br />&nbsp;&nbsp;64,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bMaxPacketSize0&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0xC251),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;idVendor&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0x1305),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;idProduct&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0x0110),&nbsp;/*&nbsp;1.10&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bcdDevice&nbsp;*/<br />&nbsp;&nbsp;0x04,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;iManufacturer&nbsp;*/<br />&nbsp;&nbsp;0x24,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;iProduct&nbsp;*/<br />&nbsp;&nbsp;0x4A,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;iSerialNumber&nbsp;*/<br />&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bNumConfigurations&nbsp;*/<br />};<br /><br />/*&nbsp;USB&nbsp;Configuration&nbsp;Descriptor&nbsp;*/<br />/*&nbsp;&nbsp;&nbsp;All&nbsp;Descriptors&nbsp;(Configuration,&nbsp;Interface,&nbsp;Endpoint,&nbsp;Class,&nbsp;Vendor&nbsp;*/<br />const&nbsp;BYTE&nbsp;USB_ConfigDescriptor[]&nbsp;=&nbsp;{<br />/*&nbsp;Configuration&nbsp;1&nbsp;*/<br />&nbsp;&nbsp;USB_CONFIGUARTION_DESC_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />&nbsp;&nbsp;USB_CONFIGURATION_DESCRIPTOR_TYPE,&nbsp;/*&nbsp;bDescriptorType&nbsp;*/<br />&nbsp;&nbsp;WBVAL(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;wTotalLength&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;USB_CONFIGUARTION_DESC_SIZE&nbsp;+<br />&nbsp;&nbsp;&nbsp;&nbsp;USB_INTERFACE_DESC_SIZE&nbsp;+<br />&nbsp;&nbsp;&nbsp;&nbsp;NUM_ENDPOINTS&nbsp;*&nbsp;USB_ENDPOINT_DESC_SIZE<br />&nbsp;&nbsp;),<br />&nbsp;&nbsp;0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bNumInterfaces&nbsp;*/<br />&nbsp;&nbsp;0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bConfigurationValue&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;iConfiguration&nbsp;*/<br />&nbsp;&nbsp;USB_CONFIG_BUS_POWERED&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bmAttributes&nbsp;*/<br />&nbsp;&nbsp;USB_CONFIG_REMOTE_WAKEUP,<br />&nbsp;&nbsp;USB_CONFIG_POWER_MA(100),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bMaxPower&nbsp;*/<br />/*&nbsp;Interface&nbsp;0,&nbsp;Alternate&nbsp;Setting&nbsp;0,&nbsp;Class&nbsp;Code&nbsp;Unknown&nbsp;*/<br />&nbsp;&nbsp;USB_INTERFACE_DESC_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />&nbsp;&nbsp;USB_INTERFACE_DESCRIPTOR_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDescriptorType&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bInterfaceNumber&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bAlternateSetting&nbsp;*/<br />&nbsp;&nbsp;NUM_ENDPOINTS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bNumEndpoints&nbsp;*/<br />&nbsp;&nbsp;USB_DEVICE_CLASS_VENDOR_SPECIFIC,&nbsp;&nbsp;/*&nbsp;bInterfaceClass,&nbsp;USB_CLASS_VENDOR_SPECIFIC&nbsp;*/<br />&nbsp;&nbsp;0xFF,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bInterfaceSubClass,&nbsp;USB_SUBCLASS_CODE_UNKNOWN&nbsp;*/<br />&nbsp;&nbsp;0xFF,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bInterfaceProtocol,&nbsp;USB_PROTOCOL_CODE_UNKNOWN&nbsp;*/<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;iInterface,&nbsp;STR_INDEX_INTERFACE&nbsp;=&nbsp;no_string&nbsp;*/<br />/*&nbsp;Endpoint,&nbsp;EP1&nbsp;Interrupt&nbsp;In&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_DESC_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_DESCRIPTOR_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDescriptorType&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_IN(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bEndpointAddress&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_TYPE_INTERRUPT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bmAttributes&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0x0040),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;wMaxPacketSize&nbsp;*/<br />&nbsp;&nbsp;0x20,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;32ms&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bInterval&nbsp;*/<br />/*&nbsp;Endpoint,&nbsp;EP2&nbsp;Bulk&nbsp;Out&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_DESC_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_DESCRIPTOR_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bDescriptorType&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_OUT(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bEndpointAddress&nbsp;*/<br />&nbsp;&nbsp;USB_ENDPOINT_TYPE_INTERRUPT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bmAttributes&nbsp;*/<br />&nbsp;&nbsp;WBVAL(0x0040),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;wMaxPacketSize&nbsp;*/<br />&nbsp;&nbsp;0x20,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;32ms&nbsp;*/<br />/*&nbsp;Terminator&nbsp;*/<br />&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bLength&nbsp;*/<br />};
computer00 发表于 2007-12-20 21:50 | 显示全部楼层

可能是因为端点数不一样,加载驱动程序失败吧。

  
 楼主| justcool 发表于 2007-12-20 21:57 | 显示全部楼层

谢谢

请问圈圈大侠,端点数的配置具体还有哪些地方需要改过来呢,能否详细说说,在此先谢过了
computer00 发表于 2007-12-22 13:06 | 显示全部楼层

你这个不是标准的USB设备,需要自己提供驱动程序。

你不如改成HID设备算了,然后换个VID和PID。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部